0
我已經寫了一些基於Qt的dll和一些OpenGL調用。如果我使用用於渲染的QGLWidget加載我的Qt應用程序中的DLL,則從DLL中調用QGLContext :: currentContext將返回正確的上下文。但是,如果在非基於Qt的程序中使用我的DLL,則不會返回QGLContext。因此,我無法在非基於Qt的應用程序中使用QGLShaderProgram。用Qt抓取當前的OpenGL上下文
我做錯了什麼?
P.S.直接調用glCreateProgram等在我的庫似乎工作正常,但我想使用Qt類。
「通過要求Qt類,你的DLL現在需要Qt」這不是問題。問題是如何使用QGLShader類來渲染從非Qt程序創建的現有OpenGL上下文。 你提供的相關Qt 5(un stable)的不幸鏈接,所以我不能使用它們 – Jeka
你不這樣做。要麼使用Qt要麼不要使用它。你也許可以跳過箍來使它工作,但你爲什麼? – Bart
@Jeka:「這不是問題,問題是如何使用QGLShader類來渲染從非Qt程序創建的現有OpenGL上下文。」那*就是你的問題。你不能*使用Qt(或者至少,不是OpenGL部件)。 * *應用程序整體*使用Qt或不。如果您的DLL正在被非Qt應用程序使用,那麼您的*應用程序*不會使用Qt。所以你也不能。 –