Domanda

Sto utilizzando le estensioni OpenGL su Windows the modo doloroso.GLEW è la strada più semplice da percorrere?Come posso iniziare?

È stato utile?

Soluzione

Sì, il Libreria Wrangler di estensioni OpenGL (GLEW) è un modo indolore per utilizzare le estensioni OpenGL su Windows.Ecco come iniziare:

Identifica l'estensione OpenGL e le API dell'estensione che desideri utilizzare.Le estensioni OpenGL sono elencate nel file Registro delle estensioni OpenGL.

Controlla se la tua scheda grafica supporta le estensioni che desideri utilizzare.Scarica e installa i driver e gli SDK più recenti per la tua scheda grafica.

Versioni recenti di SDK NVIDIA OpenGL spedire con GLEW.Se lo stai utilizzando, non è necessario eseguire alcuni dei seguenti passaggi.

Scaricamento GLEW e decomprimilo.

Aggiungi il GLEW bidone percorso di Windows SENTIERO variabile d'ambiente.In alternativa, puoi anche posizionare il glew32.dll in una directory in cui Windows preleva le sue DLL.

Aggiungi il GLEW includere percorso dell'elenco delle directory di inclusione del compilatore.

Aggiungi il GLEW lib percorso dell'elenco delle directory della libreria del compilatore.

Indica al tuo compilatore di utilizzare glew32.lib durante il collegamento.Se utilizzi compilatori Visual C++, un modo per farlo è aggiungere la seguente riga al codice:

#pragma comment(lib, "glew32.lib")

Aggiungere un #include <GL/glew.h> linea al tuo codice.Assicurati che sia posizionato sopra gli include di altri file di intestazione GL.(In realtà potresti non aver bisogno dei file di intestazione GL inclusi se includi glew.h.)

Inizializza GLEW utilizzando glewInit() dopo aver inizializzato GLUT o GL.Se fallisce, allora c'è qualcosa che non va nella tua configurazione.

if (GLEW_OK != glewInit())
{
    // GLEW failed!
    exit(1);
}

Controlla se le estensioni che desideri utilizzare sono ora disponibili tramite GLEW.Puoi farlo controllando una variabile booleana denominata GLEW_nome_della_tua_estensione che è esposto da GLEW.

Esempio:

if (!GLEW_EXT_framebuffer_object)
{
    exit(1);
}

Questo è tutto!Ora puoi utilizzare le chiamate all'estensione OpenGL nel tuo codice proprio come se esistessero naturalmente per Windows.

Altri suggerimenti

Personalmente non utilizzerei un comando di uscita.

Vorrei lanciare un'eccezione in modo da poter cancellare qualsiasi altra inizializzazione alla fine della funzione.

cioè:

try
{
    // init opengl/directx
    // init directaudio
    // init directinput

    if (GLEW_OK != glewInit())
    {
        throw std::exception("glewInit failed");
    }
}
catch ( const std::exception& ex )
{
    // message to screen using ex.what()
    // clear up
}

E sono d'accordo con OJ: se vuoi scrivere tutorial per altri, allora questo è davvero il posto sbagliato.Esistono già molti buoni posti per tutorial su OpenGL. Prova questo per esempio.

Ho perso un po' di tempo, ma alla fine sono riuscito a far funzionare GLEW.Sto utilizzando Windows7 (x64), Eclipse CDT e MinGW e il modo è questo:

Scarica MSYS (per MinGW) e ricorda di avere MinGW installato correttamente (variabile d'ambiente PATH impostata correttamente):http://sourceforge.net/projects/mingw/files/MSYS/Base/msys-core/msys-1.0.10/MSYS-1.0.10.exe/download?use_mirror=freefr&download=

Una volta installato MSYS, vai a:http://glew.sourceforge.net/e scaricare il pacchetto TGZ, destinato all'uso con i sistemi UNIX

Quindi apri il pacchetto (puoi usare anche 7zip) e trova il "Makefile".Aprilo e con un editor di testo (Blocco note dovrebbe funzionare bene) trova la riga che contiene "GLEW_DEST" e sostituiscila con qualcosa come "GLEW_DEST ?= C:/MinGW"

Ora sei pronto, apri MSYS (C:\MinGW\msys\1.0\msys.bat nel mio caso) e nella shell aperta, vai alla cartella dove si trova "Makefile".

Quindi scrivi un semplice:"make install" e il gioco è fatto (almeno per me ha funzionato)

PS:Ho anche copiato e incollato il file glew-1.10.0-win32\glew-1.10.0\bin elease\Win32 nella mia cartella System32 e in Eclipse CDT ho aggiunto la libreria "glew32" nell'opzione del linker e ho aggiunto un #include <GL/glew.h> Prima #include <GL/glut.h>

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top