gpt4 book ai didi

c++ - OpenGL 函数实际上是特定于上下文的吗?

转载 作者:行者123 更新时间:2023-12-01 14:20:05 25 4
gpt4 key购买 nike

我知道我必须通过glfwGetProcAddress函数到 gladLoadGLLoader上下文初始化后的函数。 GLFW 文档说这个函数返回当前上下文的指定函数的地址。基于这些信息,如果我想在另一个上下文中绘制一些东西,我必须输入

glfwMakeContextCurrent(*window*)
gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)
每次我想更改绘图上下文时。但是,只需使用 glfwMakeContextCurrent 更改上下文就足够了。功能。文档也有备注

The address of a given function is not guaranteed to be the samebetween contexts.


但似乎返回的地址在上下文​​之间实际上是相同的(至少在 Windows 中)。问题是,为了实现稳定和便携的行为,真正的方法是什么?

最佳答案

从技术上讲是的:从 OpenGL 上下文检索的函数指针仅对特定上下文有效。但是,对于大多数实际用途,您可以忽略这一点。如果两个上下文可以共享对象,那么它们几乎肯定会共享函数指针。
如果您想解决无法跨上下文共享函数指针的情况,最好的选择是编写一个专门用于处理这种情况的加载程序。例如,您可以修改 GLAD 以将 OpenGL 函数放在一个结构中,然后将这些函数加载到不同上下文的不同结构中。

关于c++ - OpenGL 函数实际上是特定于上下文的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63116021/

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