#ifndef _opengl #define _opengl // Macros #define HEIGHT 480 #define WIDTH 640 #define GL_GLEXT_PROTOTYPES #include "stdlib.h" extern char * __ClassNames[]; // Includes #include #include #include #include #include #include #include #include #include "unsignedIntegerArray.h" #include "floatArray.h" #include "shader.h" #include "mesh.h" typedef struct opengl{ unsigned short __classIndex; Display * mainDisplay; Window mainWindow; int MainScreen; Window RootWindow; int lastTime; clock_t deltaTime; struct timespec startTime; int frameCount; GLuint vertexbuffer; GLuint indexBuffer; struct shader * currentShader; struct mesh * quads; unsigned char image[HEIGHT][WIDTH]; } opengl; void opengl_initialize( opengl * this ); void opengl_showVersion( opengl * this ); void opengl_setupTime( opengl * this ); void opengl_setupWindow( opengl * this ); void opengl_setupRenderLoop( opengl * this ); void opengl_createShaders( opengl * this ); void opengl_createQuad( opengl * this ); double opengl_clockToMilliseconds( opengl * this, clock_t ticks ); void opengl_render( opengl * this ); void opengl_displayFPS( opengl * this ); void opengl_vertex2f( opengl * this, float x, float y ); void opengl_color3f( opengl * this, float r, float g, float b ); void opengl_clear( opengl * this, GLbitfield mask ); void opengl_clearColor( opengl * this, float r, float g, float b, float a ); void opengl_begin( opengl * this, GLenum mode ); void opengl_end( opengl * this ); void opengl_flush( opengl * this ); static int DoubleBufferAttributes[] ; opengl opengl_new( ); opengl * opengl_newPointer( ); #endif