Ciao a tutti.
Da un punto di vista pratico, conosco le opengl piuttosto bene. Con l'avvento delle opengl 3.0 pero', ho cominciato a sentire la necessita' di studiare un po' di teoria, e mi sono reso conto di ignorare tante cose, che sicuramente un programmatore piu' teorico conosce molto bene. Inoltre io non son espertissimo di C, quindi alcuni meccanismi di funzionamento delle dll mi sfuggono e mi disorientano.

Allora...finora ho capito che....innanzitutto le openGL non sono una libreria, ma solo una specifica di linguaggio, ossia una descrizione (su "carta") delle funzioni e di quello che devono fare. La specifica viene definita dall' OpenGL Architecture Review Board (ARB), che sarebbe un insieme di potenti aziende coinvolte nel mercato 3D.

Ogni produttore di hardware poi implementa, nei drivers delle proprie schede video, le funzioni dettate dalle specifiche, che in questo modo diventano "drivers opengl".

Ora ci sono alcune cose che non capisco.
Per ora limitiamoci a Windows. Nel sistema operativo c'e' una famigerata opengl32.dll. A che serve? Inizialmente pensavo fosse necessaria solo quando non fossero presenti i drivers proprietari delle schede video. Infatti Microsoft supporta, in assenza di questi, un'emulazione software, e pensavo che la cosa avvenisse proprio con questa dll.
Ma non e' cosi': ho verificato sperimentalmente che la dll serve anche nel caso in cui siano presenti gli ultimissimi drivers.
Quindi e' una specie di libreria necessaria per interfacciarsi con i drivers proprietari? Viene forse sovrascritta proprio durante l'installazione dei drivers stessi?

Ho ancora molte domande da fare, ad esempio riguardo quello che accadra' con le opengl3.0, ma per ora mi fermo qui, aspettando una chiarificazione sul ruolo della dll e su come le istruzioni opengl di un sw vengano passate alla scehda video. Poi vorrei andare avanti. L'idea e' di fare un post che chiarisca la cosa a tutti quelli che non hanno ben chiaro il meccanismo (e sono molti) .

Grazie a tutti.

Z.