Почему SDL_Window является неполным типом?

Я портирую на SDL2 и платформу Android игру C ++, использующую SDL 1.2. Пока все шло хорошо, за исключением одного: когда я пытаюсь получить доступ к полям SDL_Window, компилятор сообщает мне

error: invalid use of incomplete type 'SDL_Window {aka struct SDL_Window}'

Я думаю, что моя установка SDL может быть неисправна. Я скомпилировал SDL 2.0.0 из источника, найденного на libsdl.org, с помощью следующей команды:

ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk APP_PLATFORM=android-18

Затем я скопировал недавно построенный libSDL2.so в $ANDROID_TOOLCHAIN/sysroot/usr/lib и файлы в include/ каталог в $ANDROID_TOOLCHAIN/sysroot/usr/include/SDL, Эти файлы передаются в CMake и на них ссылается код игры. Мне удалось преобразовать все вызовы SDL, и теперь я застрял с этой проблемой SDL_Window.

Я сделал быстрый поиск в исходном коде SDL и обнаружил, что SDL.h включает в себя SDL_video.h который содержит typedef SDL_Window на struct SDL_Window, Затем я искал эту структуру и не нашел ничего, кроме как в исходном архиве, в файле с именем src/video/SDL_sysvideo.h, Поскольку это не файл API, я сомневаюсь, что должен включить его в свой код.

Итак, как найти определение SDL_Window в SDL2 для Android (если это актуально)?

1

Решение

Похоже, что проблема заключается в недостаточном знании API SDL 2. Давайте помнить, что никто не имеет доступа к полям struct SDL_Window: есть функции для получения размера и флагов окна, такие как SDL_GetWindowFlags а также SDL_GetWindowSize.

Так что проблема абсолютно не связана с установкой SDL или сборок Android. Извините за трату времени, люди в Интернете.

5

Другие решения

Я ожидаю, что вы должны иметь дело только в указатели объектам SDL_Window, а не помещать в стек полный объект SDL_Window.

2

По вопросам рекламы [email protected]