我正在使用双缓冲渲染带有闪烁对象(通常为30Hz)的图像。对于屏幕截图,我想将当前缓冲区和前一个缓冲区混合在一起,而不必永久存储前一个缓冲区。
我将如何访问SDL2当前的前后缓冲区并将它们混合到一个缓冲区中?
答案 0 :(得分:0)
摘自SDL_RenderPresent
文档:
每次出现后,应将backbuffer视为无效;不要假定先前的内容将在帧之间存在。
原因可能是每个后端的处理方式都不同,因此SDL无法保证在缓冲区显示后它所包含的内容(不会造成不必要的性能损失)。
因此,您必须自己存储以前的缓冲区。就是说,您可能不必每次都复制缓冲区,只需对要截屏的帧进行复制即可。