Sto riscontrando un problema durante l'aggiornamento delle intestazioni GL. Fondamentalmente voglio accedere alla funzione glCompressedTexImage2D
ma le mie intestazioni gl sono veramente vecchie e non credo che la funzione esista in quelle intestazioni. Così ho provato ad aggiornare il mio file gl.h
ma ottengo un sacco di errori. Ho provato ad aggiornare il mio software della scheda grafica, tra le altre cose. Qualcuno può essere di aiuto?opengl, come aggiornare al meglio le intestazioni con Visual Studio?
risposta
Apparentemente, Windows è bloccato su una vecchia versione di OpenGL (1.2?). Prova a utilizzare GLEW o Glee per caricare l'estensione necessaria (GL_ARB_TEXTURE_COMPRESSION nel caso di glCompressedTexImage2D
). Queste librerie caricheranno le estensioni disponibili e ti permetteranno di controllare il tuo codice se una particolare estensione è caricata o meno.
Esempio con GLEE:
#include <gl/GLee.h>
if (GLEE_ARB_TEXTURE_COMPRESSION)
{
glCompressedTexImage2D(...);
}
else
{
// the extension is not available, use a different method
}
noti che GLEE non richiede di inizializzare esplicitamente (a differenza GLEW). Consiglio vivamente questo metodo per caricare manualmente un puntatore a funzione. Non perché sia la mia risposta :), ma perché questo si occuperà anche di scoprire se l'hardware e il suo driver supportano l'estensione (che potrebbe essere molto disordinata), ed è indipendente dalla piattaforma.
È necessario scoprire se il dispositivo corrente supporta la funzione, e quindi ottenere l'indirizzo della funzione, prima si può chiamare:
PFNGLCOMPRESSEDTEXIMAGE2DPROC p = NULL;
const char* string = glGetString(GL_EXTENSIONS);
if (strstr(string, "GL_ARB_texture_compression") != NULL)
p = (PFNGLCOMPRESSEDTEXIMAGE2DPROC)wglGetProcAddress("glCompressedTexImage2D");
Sto avendo un po 'di un aggiornamento problema le mie intestazioni GL.
Questo perché non si dovrebbe fare questo. In Windows qualsiasi cosa oltre OpenGL-1.1 viene raccolta tramite il meccanismo di estensione. Il modo più semplice per accedervi è tramite GLEW. Installalo e usa GL/glew.h
invece del normale GL/gl.h
. Quindi, dopo aver creato un contesto OpenGL, la prima cosa da chiamare è glewInit()
.
Vai: http://www.opengl.org/registry/ e scaricare la versione più recente di glext.h e wglext.h
Ora sarete in grado di ottenere manualmente puntatore a funzione di funzionalità che si desidera. Sotto Windows c'è solo OpenGL 1.1.
Per un principiante Io suggerisco di usare GLEW (GLEE è anche grande, ma non è stato aggiornato per un tempo abbastanza lungo ...)
- 1. Cosa contengono le intestazioni precompilate di Visual Studio?
- 2. come aggiornare Visual Studio Template Cache
- 3. Come aggiornare NuGet con Visual Studio Express 2012
- 4. Posso aprire vecchie Visual Studio Solutions (2005,2008, 2010,2013) in Visual Studio 2015 senza aggiornare i progetti?
- 5. Quanto è meglio il Designer WPF in Visual Studio 2010?
- 6. Come aggiornare FSharp.Core per Visual Studio 2012 fsi
- 7. Come aggiornare Xamarin per Android in Visual Studio Community 2015
- 8. Come evitare le intestazioni precompilate
- 9. Come escludere le intestazioni di libreria dall'analisi del codice statico di Visual Studio?
- 10. Come aggiornare l'aggiornamento 1 di Visual Studio 2015 all'aggiornamento 2?
- 11. Come aggiornare Visual Studio 2015 RC a RTM
- 12. Come integrare NAnt con Visual Studio?
- 13. collegamento per potenziare con visual studio 2013
- 14. Come utilizzare le librerie statiche OpenCV 2.4 con Visual Studio?
- 15. Inoltra dichiarazione/quando è meglio includere intestazioni?
- 16. Come gestire al meglio le installazioni di TYPO3 usando git?
- 17. Come sono le prestazioni di Visual Studio 2010 rispetto al 2008?
- 18. Connessione al database MySQL con Visual Studio 2013 Preview
- 19. Visual Studio 2010 lento al caricamento
- 20. È possibile aggiornare facilmente Visual Studio Community 2015 a Visual Studio Professional 2015
- 21. Introduzione al test delle unità in C# con Visual Studio
- 22. Come posizionare al meglio le GUI di Swing?
- 23. IDE Visual Studio - ritorna al precedente
- 24. Nessuna accelerazione con intestazioni precompilate su gcc (ma grande accelerazione con Visual Studio)
- 25. non #ifdef funziona come previsto con le intestazioni precompilate
- 26. Come creare CppUnit con Visual Studio 2010
- 27. Come simulare HttpServletRequest con le intestazioni?
- 28. Il progettista XAML di Visual Studio 2012 non sembra aggiornare
- 29. Nascondere le regioni in Visual Studio
- 30. Visual Studio Large Solution
Nota che Glee è defunta e non viene più aggiornato. Si è fermato a GL 3.3; da allora sono state rilasciate 6 versioni di OpenGL. Quindi per quanto ti piaccia lo stile, non dovresti usarlo. Ci sono [una serie di alternative per caricare le funzioni OpenGL] (http://www.opengl.org/wiki/OpenGL_Loading_Library). –
Grazie per l'heads-up. –