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