|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 3808
|
[OpenGL] domandina veloce e secca
Non mi è chiara una cosa: insieme ad i driver di una scheda video cosa viene fornito che riguarda l'OpenGL?
ok, l'OpenGL gira anche per via software, quando il venditore di una scheda video/acceleratore grafico ti fornisce il pacchetto dei driver per l'accelerazione via hardware, dentro cosa mette? header? librerie? interprete? continuo a cercare ma una risposta secca non la trovo. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
L'opengl che trovi nei driver è un'implementazione di openGL stessa tramite chiamate al driver sottostante, per quello la fornisce il produttore della scheda video.
Ci stanno 4 "enti" che fanno il software stack: (nomi esempio) -Khronos decide l'interfaccia -Microsoft seguendo l'interfaccia sviluppa il supporto lato SO (wgl, etc) -Nvidia o AMD scrivono l'interfaccia tra l'interfaccia tra OS e il driver (dentro c'è l'implementazione vera e propria delle chiamate, il compilatore degli shader, etc). -Nvidia o AMD (o indiani random) scrivono il driver E poi la gente si chiede com'è che DX funziona meglio Ultima modifica di Tommo : 31-03-2011 alle 18:26. |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 3808
|
Quote:
quindi io se programmo usando le OpenGL sfrutto degli header per interfacciarmi con le librerie suddette, ora arriva il bello: gli header sono forniti da chi? la libreria è fornita da chi? mettiamo che io programmo con una Nvidia, come rispondo? quando genero un eseguibile, quell'eseguibile si presuppone valido per tutti i sistemi operativi compatibili per quella compilazione oppure in realtà sono incluse nella compilazione le librerie Nvidia inserite staticamente nell'eseguibile e sono poi magari i driver di una ATI a tradurre da Nvidia ad istruzioni ATI? facendo l'ultima domanda per complicare di più il ragionamento: GLUT e freeGLUT sono wrapper? che cosa sono? |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Allora gli header sono forniti da Khronos, infatti quelli sono tutti uguali. Su windows puoi trovarli sia negli include di sistema sia nello SDK dei driver.
La libreria inteso come codice binario eseguibile invece è parte del driver (su invidia è nvogl32.dll ad esempio). L'interfaccia comune serve proprio a far si che in sistemi che hanno lo stesso protocollo di linking dinamico, lo stesso .exe possa "legarsi" a diverse implementazioni (Nvidia, AMD, Intel...). glu è una roba header only che si appoggia solo a opengl, invece glut ha un'interfaccia comune a tutti i SO ma poi l'implementazione varia (si deve interfacciare all'input, al window server, etc). |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 3808
|
Quote:
Alla fine io programmatore, delle dll o delle altre librerie non me ne curo, mi basta sapere a che serve e che fa la X funzione e per me il programma va, ma come viene implementata la chiamata tra quell'exe che ho banalmente compilato per tutti i windows a 32 bit e il sistema operativo/scheda video? Inoltre per le OpenGL si pone il problema che io in realtà non so a priori come si chiamano le librerie, perché Intel le chiamerà in un modo, Nvidia in un altro, e così via, e però il programma gira comunque. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:20.



















