Strumenti Utente



qt_windows_e_i_driver_opengl_intel

Questa è una vecchia versione del documento!


Qt, Windows e i driver OpenGL della Intel

Analizziamo il nuovo metodo con cui le librerie Qt si interfacciano con le funzioni OpenGL in ambiente Windows. A seguire vediamo cosa fare se qualcosa va storto.

Caricamento dinamico interfaccia OpenGL

Fino alle Qt 5.4, su piattaforma Windows la scelta di come interfacciare le librerie Qt con le librerie OpenGL poteva avvenire solo in fase di compilazione delle Qt, con l'opzione -opengl del compando configure.

Con

configure -opengl desktop

le librerie si interfacciano direttamente con l'implementazione opengl dei driver della scheda grafica. Affinché tutto vada a buon fine è necessario però che siano disponibili le funzioni opengl nella versione 2.1.

Usando invece il comando

configure -opengl es2

le librerie si interfacciano con le librerie angle che a loro volta fanno da ponte tra comandi opengl e comandi direct3d. Abbiamo in questo caso un sistema meno performante, ma meno problemi in caso di driver opengl carenti.

Con le Qt 5.4 è stata aggiunta l'opzione dynamic. Usando

configure -opengl dynamic

le Qt determineranno runtime le librerie con cui interfacciarsi, con il seguente ordine di priorità:

  1. prima verrà provata la libreria opengl32 verificando la disponibilità di funzioni OpenGL 2.0
  2. se il passo precedente ha esito negativo, si provano la libreria ANGLE
  3. infine, se tutto è andato storto, sarà usata libreria opengl32sw.

In caso di problemi

Con Windows 7 ed alcuni driver della intel ho riscontrato alcuni problemi nella procedura. In particolare mi riferisco a driver compatibili con opengl 2.0, ma non con opengl2.1. In tal caso veniva attivata la libreria opengl32, facendo funzionare tutto tranne le funzioni del modulo opengl e il modulo QtQuick 2, carenze non da poco.

In tal caso è necessario forzare le Qt ad attivare la piattaforma ANGLE, che rende disponibile opengl 2.1. Per farlo è sufficiente impostare la variabile di ambiente QT_OPENGL ad angle. Procediamo quindi con Start → tasto destro del mouse su Computer → Proprietà → Impostazioni di sistema avanzate → Variabili d'ambiente e definiamo una nuova variabile QT_OPENGL il cui valore sarà angle.

In alternativa, se vogliamo che il programma autonomamente si interfacci alle librerie angle, nel codice della funzione main() aggiungiamo il metodo

QCoreApplication::setAttribute(Qt::AA_UseOpenGLES)

qt_windows_e_i_driver_opengl_intel.1428959516.txt.gz · Ultima modifica: 2015/04/13 23:11 da mickele

Facebook Twitter Google+ Digg Reddit LinkedIn StumbleUpon Email