Saxum/main.hh
2014-10-20 17:31:26 +02:00

57 lines
1.8 KiB
C++

///////////////////////////////////////////////////////////////////////////////////////////////////
//
// headers needed:
//
#include <ACGL/Math/Math.hh>
#include <ACGL/OpenGL/GL.hh>
#include <GLFW/glfw3.h>
#include <ACGL/OpenGL/Objects/ArrayBuffer.hh>
//
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
//
// implement the following functions:
//
// global variables exported by the generic main:
extern glm::uvec2 g_windowSize;
extern float g_nearPlane;
extern float g_farPlane;
//
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
//
// implement the following functions:
//
// gets called after the OpenGL window is prepared, init of example specific stuff:
void initCustomResources();
// gets called at application shutdown:
void deleteCustomResources();
// gets called ech frame, runTime is in seconds:
void draw( float runTime );
// gets called at window resize:
void resizeCallback( GLFWwindow *, int newWidth, int newHeight );
//
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
//
// useful functions:
//
// to build the projection matrix:
glm::mat4 buildFrustum( float phiInDegree, float near, float far, float aspectRatio);
// to build the view matrix:
glm::mat4 lookAt(const glm::vec3 &camPos, const glm::vec3 &viewDirection, const glm::vec3 &up);
//
///////////////////////////////////////////////////////////////////////////////////////////////////