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 come risolvere eventuali problemi che potremmo incontrare.

Caricamento dinamico interfaccia OpenGL

Fino alle Qt 5.4, su piataforma windows la scelta di come interfacciare le librerie Qt con le librerie opengl disponibili doveva avvenire in fase di compilazione delle librerie Qt, con le due opzioni del comando configure: desktop o opengl

Con

configure -opengl desktop

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

Usando invece il comando

configure -opengl es2

le librerie si interfacciavano con le librerie angle che a loro volta facevano da ponte tra le opengl e le direct3d. Abbiamo in questo caso un sistema meno performante, ma meno problemi in caso di implementazioni 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 la seguente procedure

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

In caso di problemi

Con Windows 7 ed alcuni driver della intel ho ricontrato alcuni problemi nella procedura. In particolare le librerie riconosceva come funzionante le librerie opengl, cosa in realtà non vera (grazie a mamma Intel!). Perciò era necessario forzare il sistema ad attivare la piattaforma angle.

Per farlo è sufficiente impostare la variabile di ambiente QT_OPENGL ad angle.

QT_OPENGL=angle

In alternativa, se vogliamo che il programma autonomamente adotti le librerie angle, nel codice della funzione main aggiungiamo il metodo

QCoreApplication::setAttribute(Qt::AA_UseOpenGLES)

qt_windows_e_i_driver_opengl_intel.1428912981.txt.gz · Ultima modifica: 2015/04/13 10:16 da mickele

Facebook Twitter Google+ Digg Reddit LinkedIn StumbleUpon Email