gpt4 book ai didi

c - SDL2 [优化] : is SDL_Surface->texture->copy faster than drawing on renderer?

转载 作者:行者123 更新时间:2023-11-30 15:07:47 25 4
gpt4 key购买 nike

我想知道巫术方式是否更有效:

  • 修改大小与窗口相同的表面的 RGB 像素数据,从该表面创建纹理,然后将其复制到渲染器上。

或者(我使用的)

  • SDL_SetRenderDrawColor + SDL_SetRenderDrawPoint 直接在双缓冲渲染器中,由缓冲区数组驱动

我更喜欢第一个解决方案,但我想在测试之前确定一下。如果您了解 SDL,谢谢:)

最佳答案

当涉及到每个像素时,操作 SDL_Surface 的像素通常比使用 SDL_RenderDrawPoint() 快 一点 方式。当然,如果只是一两个像素,则不会有太大区别,但填充整个窗口可能会。将此表面转换为纹理可能需要一点时间,但不会花费太多时间(在我的计算机上,每帧大约增加 2 毫秒)。

但是,据我所知,最好的选择是访问屏幕表面的像素 (SDL_GetWindowSurface()),然后使用 SDL_UpdateWindowSurface()。

我认为 SDL_RenderDrawPoint() 速度减慢是由于 CPU 需要花费额外的时间将像素传递到 GPU(也许软件 SDL_Renderer 会运行得更快?)。

希望这有帮助。

关于c - SDL2 [优化] : is SDL_Surface->texture->copy faster than drawing on renderer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37940699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com