gpt4 book ai didi

winapi - 如何在调整 win32 窗口大小时绘制 OpenGL 内容

转载 作者:行者123 更新时间:2023-12-02 09:13:11 29 4
gpt4 key购买 nike

在使用 OpenGL 上下文调整 win32 窗口大小时,它仅在新暴露的区域上显示黑色。我在调整大小时确实收到了 WM_PAINT 消息,并且我确实尝试渲染新内容,但在调整大小时 SwapBuffers 似乎什么也没做。

应该如何正确处理窗口大小调整,以便在调整大小时不会出现“损坏”的内容?

最佳答案

如果您为窗口类配置了背景画笔(请参阅 WNDCLASS 或 WNDCLASSEX 结构),通常会发生这种情况。如果有画笔,系统将在每次重绘步骤后立即清除窗口,然后发送 WM_PAINT。如果是垂直同步交换缓冲区,则在缓冲区交换发生之前或紧接其后、但在屏幕的该部分发送到显示设备之前,您的图片可能已被下一个调整大小步骤 overdraw 。

无论哪种方式,解决方案都是将窗口的背景画笔设置为NULL。修改 WM_ERASEBKGND 消息处理也可能会产生结果。

因评论而编辑

如果最后一帧的内容保持可见,您可能不会对通过重绘调整大小使用react。最简单的解决方案是从 WM_SIZING(或 WM_SIZE,只需尝试两者)消息处理程序中调用绘图函数。

关于winapi - 如何在调整 win32 窗口大小时绘制 OpenGL 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6593014/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com