【问题标题】:SDL triple bufferingSDL 三重缓冲
【发布时间】:2025-12-19 17:20:16
【问题描述】:

是否可以设置 SDL 以进行三重缓冲?
如果是这样,怎么做,因为 SDL 只有一个 SDL_DOUBLEBUF 常量。

【问题讨论】:

    标签: opengl sdl


    【解决方案1】:

    您必须在驱动程序配置中激活三重缓冲,而不是在 SDL 中。

    例如,在带有 nVidia 显卡的 linux 上,您必须启用 X.Org TripleBuffer 选项:

    Option "TripleBuffer" "1"
    

    当您将 SDL 双缓冲与 vsync 和硬件表面结合使用时,如果驱动程序支持并在配置中启用,则驱动程序将使用三重缓冲。

    【讨论】:

      【解决方案2】:

      在 Mac OS 上,当您订购双缓冲时,您将获得三重缓冲。 (第 3 个仅适用于操作系统)。

      在其他操作系统上,可以将 gpu 驱动程序的配置更改为具有第三个缓冲区。 但是 3rd 将由 gpu 驱动程序管理,因此您无法访问。

      【讨论】: