Структура SDL_WINDOWEVENT_ROTATE
Код, который я пытаюсь скомпилировать, использует структуру с именем SDL_WINDOWEVENT_ROTATE. Я не могу найти эту структуру в SDL API, и компилятор выдает мне необъявленное (первое использование в этой функции) сообщение об ошибке.
Скорее всего, разработчик написал ложный код?
2 ответа
Соглашения об именах
Прежде всего SDL_WINDOWEVENT_ROTATE
это не структура, а значение перечисления. Перечисления в SDL
все заглавные буквы в то время как структуры, а структуры и функции приведены в форме SDL
+ имя, начинающееся с заглавной буквы т.е. SDL_Surface
SDL_WindowEventID
Я просмотрел документацию и не нашел ссылок на SDL_WINDOWEVENT_ROTATE
, Но есть перечисление под названием [SDL_WindowEventID][1]
который имеет такие значения, как SDL_WINDOWEVENT_MOVED
SDL_WINDOWEVENT_ROTATE
После быстрого поиска я нашел этот кусок кода в репозитории Github:
typedef enum
{
SDL_WINDOWEVENT_NONE, /**< Never used */
// ....
// Lots of enum values
// ....
SDL_WINDOWEVENT_ROTATE /**< New event type for rotation of iOS */
} SDL_WindowEventID;
Посмотрев на вину за этот конкретный файл, я обнаружил коммит, который добавил эту строку.
53b2576b "new299 2013-04-06 исправлена локальная проблема изменения размера
Итак, без дополнительной информации, я предполагаю, что создатель этого проекта отредактировал SDL_video.h
файл, и вы пытаетесь скомпилировать этот проект или проект, основанный на нем. я
SDL_WINDOWEVENT_ROTATE - это тип события, которое находится в перечислении. Структура, которую вы хотите, это SDL_WindowEvent. Он содержит тип, отметку времени и два целых числа, которые являются data1 и data2, их содержимое зависит от типа события окна.
Для получения дополнительной информации посетите: http://wiki.libsdl.org/SDL_WindowEvent
Кстати, какую версию SDL вы используете? Я притворяюсь, что вы используете SDL-2.0