Я пытаюсь использовать SDL2 в моем новом приложении для Android, оно должно работать хорошо:
http://wilbefast.com/2011/11/11/recent-sdl-android-goodies/
Он компилируется без единой проблемы, и есть пример проекта, поэтому его довольно легко начать использовать. Я скомпилировал библиотеку и начал с моего приложения, создал цикл обработки событий - как в SDL 1.2 и попытался вставить в него некоторые события с помощью функции:
int SDL_PushEvent(SDL_Event * event);
Однако, это всегда терпит неудачу со значением ошибки -1. Я только что определил функцию SDL_main для этого исходного файла:
http://hg.libsdl.org/SDL/file/6bb657898f55/src/main/android/SDL_android_main.cpp
Моя функция SDL_main содержит простой цикл обработки событий:
SDL_Event event;
for (;;)
{
SDL_WaitEvent(&event);
switch (event.type)
{
case SDL_QUIT:
return;
case SOME_EVENT:
break;
default:
break;
}
}
и все - ни потоков, ни мьютексов, ни ожиданий, просто простая основная функция. Я заметил, что мой цикл обработки событий обрабатывает некоторые события, их event.type равен 2151293988, похоже, что их источником является экземпляр SDLSurface, который создается в коде Java: http://hg.libsdl.org/SDL/file/6bb657898f55/android-project/src/org/libsdl/app/SDLActivity.java
Почему функция SDL_PushEvent
не работает? Кто-нибудь знает, что может быть не так?