我已经用一些OpenGL调用编写了一个基于Qt的dll。如果我从用于渲染的QGLWidget加载我的Qt应用程序中的DLL,则从DLL调用QGLContext :: currentContext将返回正确的上下文。但是如果在非基于Qt的程序中使用我的DLL,则不会返回QGLContext。因此,我无法在非基于Qt的应用程序中使用QGLShaderProgram。
我做错了什么?
P.S。在我的库中直接调用glCreateProgram等似乎工作正常,但我想使用Qt类。
答案 0 :(得分:1)
我想使用Qt类。
然后你应该在使用Qt的应用程序中使用你的DLL。通过要求Qt类,您的DLL现在需要 Qt 。如果你希望你的DLL在Qt不可用时工作,那么你就不应该使用Qt。
此外,着色器和程序的Qt类不是你在30分钟内无法发出的任何东西。