sdl-2 - 如何在 SDL 2.0 中进行双缓冲?

标签 sdl-2

我有一个瓦片 map 阵列 [50][50]。

当我单击鼠标移动该阵列中每个图块的 x 和 y 时,我看到每个图块之间有空白 - 我相信这称为“撕裂”,这是不希望的。

我在谷歌上搜索了双缓冲并阅读了维基,http://en.wikipedia.org/wiki/Multiple_buffering#Double_buffering_in_computer_graphics .

它是如何在 SDL2 中完成的,特别是使用从“for 循环”创建的大型平铺数组?

...我怀疑您将平铺纹理复制到缓冲区纹理上,并在完全加载后将其复制到渲染器 - 尽管我无法使其正常工作,但很想看到一个完整的工作示例!

这是我以前的帖子,其中包含当前的代码:
SDL2 double buffer not working, still tearing

最佳答案

SDL2 自动为您处理双缓冲:

  • SDL_RenderClear将清除当前的渲染缓冲区。
  • SDL_RenderCopy将渲染纹理到当前渲染缓冲区。
  • SDL_RenderPresent将交换缓冲区,显示使用 SDL_RenderCopy 渲染的所有内容自上次 SDL_RenderClear称呼。
  • 关于sdl-2 - 如何在 SDL 2.0 中进行双缓冲?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28341281/

    相关文章:

    c++ - exc_bad_access 错误 xcode5 c++ sdl2

    c++ - 在 NetBeans 8.0 中的什么位置分配 SDL 2.0.3 目录?

    c++ - 为什么仅当我在 SDL2 中设置非零 alpha 大小时才获得 sRGB 帧缓冲区?

    rust - 无法跟踪 Rust 中的类型期望错误

    c++ - 不能在 block 范围内使用 SDL2 变量

    c - SDL Surfaces 数组在一定次数的重新分配后会更改内容

    c++ - 检查来自不同类的两个 Rect 之间的碰撞

    c++ - 无法初始化 OpenGL

    c++ - 在 C++ 中修改位图时流式传输位图

    cmake - CMake 中的 FindSDL2 发生了什么?