#include "../includes/animations.h" static GLuint _pId = 0; static GLuint _planId = 0; static void init(void); static void draw(void); void manif(int state) { switch (state) { case GL4DH_INIT: init(); break; case GL4DH_DRAW: draw(); break; default: break; } } static void init(void) { _planId = gl4dgGenQuadf(); _pId = gl4duCreateProgram("shaders/manif.vs", "shaders/manif.fs", NULL); gl4duGenMatrix(GL_FLOAT, "proj"); gl4duGenMatrix(GL_FLOAT, "model"); gl4duGenMatrix(GL_FLOAT, "view"); glEnable(GL_DEPTH_TEST); } static void draw(void) { glClearColor(0.2f, 0.2f, 0.8f, 1); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glUseProgram(_pId); gl4duBindMatrix("proj"); gl4duLoadIdentityf(); GLfloat ratio = (GLfloat)_dims[0] / (GLfloat)_dims[1]; gl4duFrustumf(-1, 1, -ratio, ratio, 1, 1000); gl4duBindMatrix("view"); gl4duLoadIdentityf(); const GLfloat distance = 2; gl4duLookAtf(0, distance, distance, 0, 0, 0, 0, 1, 0); gl4duBindMatrix("model"); gl4duLoadIdentityf(); gl4duRotatef(-90, 1, 0, 0); gl4duScalef(4 * distance, 2 * distance, 1); gl4duSendMatrices(); gl4dgDraw(_planId); glUseProgram(0); }