проблема с SDL_WaitEvent [sdl2]

есть такой код.

int global = 0;

static int thread_menu ( void *data ) {
        SDL_Event event;
        while ( !global ) {
                SDL_WaitEvent ( &event );
                switch ( event.type ) {
                        case SDL_MOUSEBUTTONDOWN:
                                break;
                        case SDL_MOUSEBUTTONUP:
                                {
                                        int x = event.button.x;
                                        int y = event.button.y;
                                        y = cf.screen_height - y;
                                        scene_event_click ( sc, x, y );
                                }
                                break;
                        case SDL_MOUSEMOTION:
                                {
                                        int x = event.motion.x;
                                        int y = event.motion.y;
                                        y = cf.screen_height - y;
                                        scene_event_over ( sc, x, y );
                                }
                                break;
                        default:
                                break;
                }
        }
        return 0;
}

когда я кликаю на кнопку на экране, то событие SDL_MOUSEBUTTONUP срабатывает не всегда. оно даже не срабатывает, когда я не двигаю мышь. SDL_PollEvent не подходит, потому что кнопка много раз подряд нажимается. Почему такая проблема с SDL_WaitEvent и как её решить?


Ответы (0 шт):