【问题标题】:SDL2 - Combine front and back buffer?SDL2 - 结合前后缓冲区?
【发布时间】:2019-05-07 09:16:14
【问题描述】:

我正在使用双缓冲渲染带有闪烁对象(通常为 30Hz)的图像。对于屏幕截图,我想将当前缓冲区和上一个缓冲区混合在一起,而不必永久存储上一个缓冲区。

如何访问 SDL2 的当前前后缓冲区并将它们混合到一个缓冲区中?

【问题讨论】:

  • 您是在使用 SDL_Renderer 进行绘图还是使用其他类似 OpenGL/DirectX/Vulkan/SDL_Surface blitting 的东西?
  • 我正在使用 SDL_Renderer

标签: sdl-2 blending double-buffering


【解决方案1】:

来自SDL_RenderPresent 文档:

每次出现后,后缓冲区都应被视为无效;不要假设以前的内容会存在于帧之间。

原因可能是每个后端的处理方式不同,因此 SDL 无法保证缓冲区在呈现后包含的任何内容(不会导致不必要的性能损失)。

所以你必须自己存储以前的缓冲区。也就是说,您可能不必每次都复制缓冲区,只需为您想要截屏的帧执行此操作即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-10
    相关资源
    最近更新 更多