【问题标题】:OpenGL: will it keep image on screen by itself?OpenGL:它会自行将图像保留在屏幕上吗?
【发布时间】:2013-02-09 21:36:09
【问题描述】:

以 Windows 为例,当通过 GDI 绘制图形时,必须在每次 WM_PAINT 发生时重新绘制场景(+validate 等)。这个要求非常明显,否则图形很容易损坏。

但是,对于 OpenGL,一旦通过交换缓冲区显示场景,无论对窗口进行什么操作,它都会持续存在。这可能是一个有用的功能。

问题:这种行为是否跨平台且可靠?或者这只是一个常见但非强制性的驱动特性,不能依赖?

【问题讨论】:

    标签: opengl


    【解决方案1】:

    然而,对于 OpenGL,一旦通过交换缓冲区显示场景,无论对窗口做什么,它都会持续存在。

    绝对不是这样。交换缓冲区后,后缓冲区的内容未定义,前缓冲区的内容受到与使用其他方法绘制的内容相同的损坏。

    问题:这种行为是否跨平台且可靠?

    我不明白你的意思,因为你描述的行为不存在。

    【讨论】:

    • 至少在几个特定操作系统/硬件的组合上(我已经够用了)它看起来像 OpenGL 上下文的前缓冲区比常规 GDI 上下文“更坚固” .好吧,你回答了我的问题。
    • @Cfyz:也许你被窗口合成愚弄了。在复合窗口环境中,每个窗口都被绘制到它自己的屏幕外表面。如果窗口在可见屏幕上重叠,它们并不会真正干扰受阻的窗口。但是,当您调整窗口大小时,特别是当您减小然后重新增加大小而不重新绘制时,您可以很好地看到效果。
    猜你喜欢
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-11
    • 2023-04-11
    • 2021-03-01
    • 1970-01-01
    相关资源
    最近更新 更多