在初始化阶段使用的函数(来自遗留库)中有一个简单的代码,例如在纹理加载程序模块中。

loadTexture() {
    // ...
    gl_func = wglGetProcAddress(...)
    // ...
    gl_func()
}

我是不是应该担心电话的费用?或者它太快了,不需要缓存机制?或者WGL为进程缓存这样的调用?
GLX和Apple的其他类似功能呢?我是否也应该担心他们?

最佳答案

wglGetProcAddress将至少执行一些字符串比较,因此它不是免费的。最大的问题是,如果每次使用gl函数时都插入wglGetProcAddress,那么代码将很难看。
最好使用一个生成器,将所有丑陋的wglGetProcAddress放在一个单独的文件中。例如使用gluxglloadgen

关于linux - wglGetProcAddress的性能,是否应缓存调用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17955893/

10-11 01:54