我发现我的程序 - 只在屏幕上绘制两张图片 - 运行速度为200FPS。在这个发展阶段,200FPS真的很低!如果我删除所有纹理和其他数据并不重要。
代码的缓慢部分是 SDL_RenderPresent 和 SDL_RenderClear 。没有它们,该程序的运行速度约为300K FPS。你能告诉我哪里可能出问题吗?
窗口和渲染器
_window = SDL_CreateWindow( "Window", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, 0 );
if ( _window == NULL ) {
std::cout << "CreateWindow problem: " << SDL_GetError() << std::endl;
}
_renderer = SDL_CreateRenderer( _window, -1, SDL_RENDERER_ACCELERATED );
if ( _renderer == NULL ) {
std::cout << "CreateRenderer problem: " << SDL_GetError() << std::endl;
}
根据 SDL_RendererInfo ,仅使用两个标志 - SDL_RENDERER_ACCELERATED和SDL_RENDERER_TARGETTEXTURE。