我想确保我使用OpenGL进行2D渲染,但使用SDL进行事件处理.据我所知,SDL使用软件渲染,OpenGL是硬件加速的.我正在阅读一本关于SDL的书,但它还没有提到使用OpenGL来渲染事件和SDL.
您可以从阅读开始: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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
显然,有更多优雅和有效的获取输入的方法,但只是想展示一个简单的例子.