#ifndef _shader #define _shader // Macros #define GL_GLEXT_PROTOTYPES #include "stdlib.h" extern char * __ClassNames[]; // Includes #include "char.h" #include "array.h" #include "fileSystem.h" #include #include #include #include typedef struct shader{ unsigned short __classIndex; array * uniforms; array * attributes; } shader; void shader_checkShaderForErrors( shader * this, GLuint shader ); void shader_createFromFile( shader * this, char * vertexShaderPath, char * fragmentShaderPath ); struct attribute * shader_getAttributeByName( shader * this, char * attributeName ); void shader_setUniform( shader * this, char * name, void * value ); typedef struct uniform{ unsigned short __classIndex; char name[64]; GLint location; GLenum type; } uniform; typedef struct attribute{ unsigned short __classIndex; GLchar name[64]; GLint location; GLenum type; } attribute; shader shader_new( ); shader * shader_newPointer( ); uniform uniform_new( ); uniform * uniform_newPointer( ); attribute attribute_new( ); attribute * attribute_newPointer( ); #endif