SDL2纹理更新速度

时间:2016-03-17 12:37:01

标签: c++ opengl rendering sdl-2

我正在尝试为将来运行的软件渲染示例设置SDL2环境,因此我需要直接访问要绘制的像素。下面是一些代码,它为纹理绘制1个红色像素,然后显示https://wiki.libsdl.org/MigrationGuide#If_your_game_just_wants_to_get_fully-rendered_frames_to_the_screen

BigInteger

正如我在代码注释中提到的,SDL_UnlockTexture使用fullhd纹理最多可达100ms。 (切换到SDL_UpdateTexture导致没有显着差异)我觉得实时渲染太多了。我做错了什么或者我不应该使用所有纹理API(或任何其他GPU加速的api,其中纹理必须每帧上传到gpu内存)以实时渲染整个帧?

1 个答案:

答案 0 :(得分:0)

如果您想使用原始pixeldata,您应该使用SDL的SDL_Surface而不是纹理。这是根据您的情况优化的不同SDL API,请参阅this example,不要忘记update

原因是纹理存储在VRAM中,而从VRAM读取的速度非常慢。曲面存储在RAM中,在那里处理,只写入VRAM,速度非常快。