Как я могу сделать с OpenGL, но все еще использовать SDL для событий? - PullRequest
1 голос
/ 04 августа 2011

Я хочу убедиться, что я использую OpenGL для 2d рендеринга, но SDL для событий.Из того, что я слышал, SDL использует программный рендеринг, а OpenGL аппаратно ускоряется.Я сейчас читаю одну книгу по SDL, но она еще не упоминала об использовании OpenGL для рендеринга и SDL для событий.

1 Ответ

5 голосов
/ 04 августа 2011

Вы можете начать с чтения: http://www.gpwiki.org/index.php/SDL:Tutorials:Using_SDL_with_OpenGL

Вы будете использовать SDL для создания контекста OpenGL, в котором вы будете выполнять весь рендеринг на основе OpenGL.

Под событиями вы подразумеваете ввод пользователя? Если это так, то просто в конце каждого кадра / цикла используйте SDL для проверки ввода следующим образом:

int main( )
{
    ...

    while( running )
    {
        ...

        update( );
        draw( );

        ...

        handleKeys( );
    }

    return 0;
}

void handleKeys( )
{
    SDL_Event event;

    while( SDL_PollEvent( &event ) )
    {
        switch( event.type )
        {
        case SDL_KEYDOWN:
            //Check for event and act accordingly
            break;

        case SDL_KEYUP:
            //Check for event and act accordingly
            break;

        case SDL_MOUSEBUTTONDOWN:
            //Check for event and act accordingly
            break;

        default:
            break;
        } 
    }
}

Очевидно, что есть гораздо более элегантные и эффективные способы получения информации, но я просто хотел показать простой пример.

...