Stavo dubitando: sto scrivendo un motore cross-platform OpenGL C ++, ho capito che Windows costringe gli sviluppatori ad accedere alle funzionalità di OpenGL oltre la 1.1 attraverso le estensioni.
Ora il fatto è che su Linux so di poter accedere direttamente alle funzioni se la versione lo supporta tramite glext.h e la versione opengl. Il problema è che se su Linux, il core non lo supporta, è possibile che ci siano estensioni che supportano la stessa funzionalità, nel mio caso gli oggetti buffer vertici?
Sto facendo qualcosa del genere:
Windows:
#define glFunction functionpointer_to_the_extension
Linux:
Dato che glext ha già definito glFunction, posso scrivere nel codice client glFunction e compilarlo sia su Windows che Linux senza modificare una singola riga nel mio codice client usando il motore (il mio obiettivo).
Ora il fatto è che ho visto un tutorial utilizzare solo l'estensione su Linux e non controllare la versione di implementazione di opengl. Se la funzionalità è disponibile nel core, è disponibile anche come estensione (VBO, ad es.)? Oppure un'estensione che non sai mai che è disponibile?
Voglio scrivere un motore che sia in grado di utilizzare tutte le funzionalità hardware, quindi ho bisogno di controllare (su Linux) per le estensioni e la versione di base per la possibile implementazione della funzionalità.