C++ e OpenGL - creare una finestra

Imposta l'ambiente di lavoro e visualizza la tua prima finestra


C++ e OpenGL - creare una finestra

C++ e OpenGL - creare una finestra

Crea la tua prima finestra con GLFW e OpenGL in C++

Compilare GLFW

GLFW è una libreria scritta in C dedicata allo sviluppo in OpenGL che permette di creare il contesto in cui far uso delle API grafiche. Scarica quindi GLFW dal sito www.glfw.org/download.html nella versione Source package. Estrai l'archivio zip e crea al suo interno la cartella build.

Per compilare la libreria ti servirà anche il software CMake quindi scaricalo ed installalo.

Esegui CMake ed inserisci: - su "source code" il path root della cartella GLFW estratta - su "build the binaries" il path alla cartella build creata prima

poi premi il bottone Configure, inserisci i nel primo campo Visual Studio 16 2019 e controlla che sia selezionato il primo radio button Use default native compilers.

CMake configurazione - Creare una finestra con GLFW e OpenGL

Ora clicca su Finish e attendi che CMake esegua le operazioni. Non ti spaventare se colorerà tutte le righe di rosso alla fine della configurazione. A questo punto dovrebbe comparire una cosa di questo tipo:

CMake - Creare una finestra con GLFW e OpenGL

Quindi procedi cliccando Generate. Una volta finita l'esecuzione puoi chiudere CMake e troverai il file GLFW.sln nella cartella build.

Procedi aprendolo con Visual Studio 2019 e compilandolo.

CMake compilazione - Creare una finestra con GLFW e OpenGL

Troverai la libreria compilata glfw3.lib al percorso build/src/Debug.

GLAD

GLAD è una libreria aggiornata per gestire le specifiche per i driver delle schede grafiche. In pratica ci evita molto lavoro manuale. Ottenere ciò che ci serve è molto facile collegandosi al sito glad.dav1d.de/ ed compilando i campi così come da immagine.

GLAD - Creare una finestra con GLFW e OpenGL

  • Language: C/C++
  • Specification: OpenGL
  • API:
    • gl: Version 3.3 (o superiore)
    • gles1: None
    • gles2: None
    • glsc2: None
  • Profile Core
  • Options: Generate a loader Tutto il resto lascialo come di default.

Clicca ora su Generate, scarica l'archivio zip ed estrailo. Al suo interno troverai due cartelle include e src. Copia le cartelle glad e KHR dentro include.

Cartelle Libs e Include

Si creino due cartelle Libs e Include in un percorso a piacimento. Al loro interno verranno salvate ed organizzate tutte le librerie di terze parti. Nella cartella Libs copia il file generato glfw3.lib. Nella cartella Include copia le cartelle Copia le cartelle glad e KHR che trovi dentro glad/include.

Linking

Crea ora un nuovo progetto in Visual Studio 2019 scegliendo il linguaggio C++ e il tipo Empty Project. Per prima cosa cambia la configurazione del Debug in x64

Debug arch - Creare una finestra con GLFW e OpenGL

Ora premi la freccina in parte a Debugger Windows locale e seleziona la voce Proprietà di debug....

Proprietà di progetto - Creare una finestra con GLFW e OpenGL

Nella nuova finestra devi modificare alcune voci:
- VC++ Directories > Include Directories
- VC++ Directories > Library Directories
- Linker > Input > Additional Dependencies

VC++ Directories - Creare una finestra con GLFW e OpenGL

VC++ Directories Include e Libs - Creare una finestra con GLFW e OpenGL

Nella prima aggiungi il path alla cartella Includes, nella seconda aggiungi il path alla cartella Libs (cartelle create precedentemente) e nella terza aggiungi glfw3.lib;opengl32.lib;.

Linker Input - Creare una finestra con GLFW e OpenGL

Infine clicca su OK ed il gioco è fatto.

Ti rimane solo da copiare il file glad.c, che si trova nella cartella scaricata ed estratta glad/src, all'interno del progetto VS19.

Importare glad.c - Creare una finestra con GLFW e OpenGL

Per controllare che tutto sia andato a buon fine copia/incolla questo codice all'interno di un nuovo file .cpp e prova a compilarlo. Se non ottieni errori allora hai impostato tutto correttamente ed eseguendo il codice ti comparirà una finestra di colore nero come questa qui:

Finestra nera - Creare una finestra con GLFW e OpenGL

Per maggiori dettagli fai pure riferimento a "Learn OpenGL - Graphics Programming" - Joey de Vries.

Se ti è piaciuto questo articolo e vorresti leggerne altri quando disponibili, considera di aggiungere il Feed RSS in un aggregatore di notizie come Feedly oppure salva questo sito tra i preferiti e torna quando vuoi 👋


Author: Fantantonio 

Date: 21/04/2022

Categories: guides

Tags: c++ opengl glfw glad visual studio 2019