【发布时间】:2011-10-19 14:58:55
【问题描述】:
我想确保我使用 OpenGL 进行 2d 渲染,但使用 SDL 进行事件。据我所知,SDL 使用软件渲染,而 OpenGL 是硬件加速的。我正在读一本关于 SDL 的书,但它还没有提到使用 OpenGL 进行渲染和使用 SDL 处理事件。
【问题讨论】:
我想确保我使用 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;
}
}
}
显然有更多优雅和有效的获取输入的方法,但只是想展示一个简单的例子。
【讨论】: