Erstellen Sie eine neue Translation Unit scene. Hier wollen wir künftig alles kapseln was mit dem Inhalt unserer 3D Szene zu tun hat. Denken Sie dabei an die folgenden Schritte:

  • Erstellen Sie eine neue Header Datei scene.h
  • Erstellen Sie eine neue Quellcode Datei scene.c
  • Fügen Sie einen neuen Eintrag in Ihr makefile ein und ergänzen Sie die Liste der Abhängigkeiten für die Hauptregel.
  • Fügen Sie ein #include statement in der .c Datei ein, in der Sie auf die Scene zugreifen.

Die Szene

Fügen Sie die folgenden Zeilen in die scene.h ein.

#include <GLFW/glfw3.h>

void renderScene(GLFWwindow* window);

Fügen Sie die folgenden Zeilen in die scene.c ein.

#include "scene.h"

void renderScene(GLFWwindow* window)
{
    int width, height;
    glfwGetFramebufferSize(window, &width, &height);
    float ratio = width / (float) height;
    glViewport(0, 0, width, height);
    glClearColor(0.29f,0.36f,0.4f,1.0f);
    glClear(GL_COLOR_BUFFER_BIT);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(-ratio, ratio, -1.0f, 1.0f, 1.0f, -1.0f);
    glBegin(GL_QUADS);
    glColor3f(0.5f, 0.73f, 0.14f);
    glVertex3f(-0.6f, 0.0f, 0.0f);
    glVertex3f(0.0f, -0.6f, 0.0f);
    glVertex3f(0.6f, 0.0f, 0.0f);
    glVertex3f(0.0f, 0.6f, 0.0f);
    glEnd();
}

Anschließend rufen Sie innerhalb Ihres render loop die neu erstellte Funktion auf.

renderScene(window);

Selbststudium

Untersuchen Sie den Code Zeile für Zeile und nutzen Sie eine Suchmaschine Ihrer Wahl um die einzelnen OpenGL Funktionsaufrufe nachzuschlagen. Stellen Sie sicher, dass Sie alles verstehen.

Die Anweisungen innerhalb von renderScene lassen sich in 4 unabhängige Operationen unterteilen. Fügen Sie Leerzeilen ein, um diese 4 Teile optisch voneinander abzugrenzen und fügen Sie jedem Block eine Kommentarzeile hinzu, damit Sie sich am Ende des Semesters noch daran erinnern.