#ifndef _GL_UTILITIES_ #define _GL_UTILITIES_ #ifdef __cplusplus extern "C" { #endif #if defined(__APPLE__) #define GL_SILENCE_DEPRECATION #include <OpenGL/gl3.h> #elif defined(_WIN32) #include "glew.h" #else #define GL_GLEXT_PROTOTYPES #include <GL/gl.h> #endif #include <stdlib.h> void printError(const char *functionName); GLuint loadShaders(const char *vertFileName, const char *fragFileName); GLuint loadShadersG(const char *vertFileName, const char *fragFileName, const char *geomFileName); GLuint loadShadersGT(const char *vertFileName, const char *fragFileName, const char *geomFileName, const char *tcFileName, const char *teFileName); void dumpInfo(void); // This is obsolete! Use the functions in MicroGlut instead! //void initKeymapManager(); //char keyIsDown(unsigned char c); // FBO support //------------a structure for FBO information------------------------------------- typedef struct { GLuint texid; GLuint fb; GLuint rb; GLuint depth; int width, height; } FBOstruct; FBOstruct *initFBO(int width, int height, int int_method); FBOstruct *initFBO2(int width, int height, int int_method, int create_depthimage); void useFBO(FBOstruct *out, FBOstruct *in1, FBOstruct *in2); void updateScreenSizeForFBOHandler(int w, int h); // Temporary workaround to inform useFBO of screen size changes #ifdef __cplusplus } #endif #endif