是否应该使用 wglMakeCurrent(0,0) 发布 GL 上下文



ist在使用wglMakeCurrent(0,0)后发布GL上下文有意义吗?

在使用后发布而不是在上下文处于当前状态时切换到另一个上下文是否有任何性能优势?

由于wglMakeCurrent()将在内部调用 GPU 驱动程序,因此这完全是特定于实现的。但是,即使有技术原因在绑定新 conext 之前释放 conext 以提高效率,每个明智的实现在执行直接切换时也应该在内部执行release;bind序列。

但是,切换渲染上下文的性能问题通常不是wglMakeCurrent开销。默认情况下,这是交换机所暗示的实际 GL 刷新。如果您对在多个 GL 上下文之间最有效地切换感兴趣,您应该查看 WGL_ARB_context_flush_control 扩展,它允许控制上下文切换上的刷新行为。

在窗口没有样式标志的情况下可能有意义 CS_OWNDC .在这种情况下,设备上下文不是专用的,应在不再需要时立即发布。

MSDN wglMakeCurrent(hdc,hglrc( doc:

如果 hglrc 为 NULL,则该函数使调用线程的当前 呈现上下文不再是最新的,并释放设备上下文 由呈现上下文使用。在这种情况下,hdc将被忽略。

.

最新更新