#ifndef GL_SHARED_H #define GL_SHARED_H #define WIN32_LEAN_AND_MEAN #include #include #include void GL_Load(); void GL_SwapBuffers(int inverval); void GL_CheckError(); void GL_CheckErrorEx(const char* filename, int line); void GL_CheckErrorFunction(const char* expression, const char* filename, int line); //void GL_SetTexture( int slot, uint texture ); #define GL_CHECK_ERROR() \ GL_CheckErrorEx(__FILE__, __LINE__) #define GL_CHECK_FUNC_ERROR(expr) \ expr; \ GL_CheckErrorFunction(#expr, __FILE__, __LINE__) // Extensions extern bool g_EXTFramebufferSupport; // OpenGL 1.3 Functional extern PFNGLACTIVETEXTUREPROC glActiveTexture; extern PFNGLSAMPLECOVERAGEPROC glSampleCoverage; extern PFNGLCOMPRESSEDTEXIMAGE3DPROC glCompressedTexImage3D; extern PFNGLCOMPRESSEDTEXIMAGE2DPROC glCompressedTexImage2D; extern PFNGLCOMPRESSEDTEXIMAGE1DPROC glCompressedTexImage1D; extern PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glCompressedTexSubImage3D; extern PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glCompressedTexSubImage2D; extern PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glCompressedTexSubImage1D; extern PFNGLGETCOMPRESSEDTEXIMAGEPROC glGetCompressedTexImage; extern PFNGLCLIENTACTIVETEXTUREPROC glClientActiveTexture; extern PFNGLMULTITEXCOORD1DPROC glMultiTexCoord1d; extern PFNGLMULTITEXCOORD1DVPROC glMultiTexCoord1dv; extern PFNGLMULTITEXCOORD1FPROC glMultiTexCoord1f; extern PFNGLMULTITEXCOORD1FVPROC glMultiTexCoord1fv; extern PFNGLMULTITEXCOORD1IPROC glMultiTexCoord1i; extern PFNGLMULTITEXCOORD1IVPROC glMultiTexCoord1iv; extern PFNGLMULTITEXCOORD1SPROC glMultiTexCoord1s; extern PFNGLMULTITEXCOORD1SVPROC glMultiTexCoord1sv; extern PFNGLMULTITEXCOORD2DPROC glMultiTexCoord2d; extern PFNGLMULTITEXCOORD2DVPROC glMultiTexCoord2dv; extern PFNGLMULTITEXCOORD2FPROC glMultiTexCoord2f; extern PFNGLMULTITEXCOORD2FVPROC glMultiTexCoord2fv; extern PFNGLMULTITEXCOORD2IPROC glMultiTexCoord2i; extern PFNGLMULTITEXCOORD2IVPROC glMultiTexCoord2iv; extern PFNGLMULTITEXCOORD2SPROC glMultiTexCoord2s; extern PFNGLMULTITEXCOORD2SVPROC glMultiTexCoord2sv; extern PFNGLMULTITEXCOORD3DPROC glMultiTexCoord3d; extern PFNGLMULTITEXCOORD3DVPROC glMultiTexCoord3dv; extern PFNGLMULTITEXCOORD3FPROC glMultiTexCoord3f; extern PFNGLMULTITEXCOORD3FVPROC glMultiTexCoord3fv; extern PFNGLMULTITEXCOORD3IPROC glMultiTexCoord3i; extern PFNGLMULTITEXCOORD3IVPROC glMultiTexCoord3iv; extern PFNGLMULTITEXCOORD3SPROC glMultiTexCoord3s; extern PFNGLMULTITEXCOORD3SVPROC glMultiTexCoord3sv; extern PFNGLMULTITEXCOORD4DPROC glMultiTexCoord4d; extern PFNGLMULTITEXCOORD4DVPROC glMultiTexCoord4dv; extern PFNGLMULTITEXCOORD4FPROC glMultiTexCoord4f; extern PFNGLMULTITEXCOORD4FVPROC glMultiTexCoord4fv; extern PFNGLMULTITEXCOORD4IPROC glMultiTexCoord4i; extern PFNGLMULTITEXCOORD4IVPROC glMultiTexCoord4iv; extern PFNGLMULTITEXCOORD4SPROC glMultiTexCoord4s; extern PFNGLMULTITEXCOORD4SVPROC glMultiTexCoord4sv; extern PFNGLLOADTRANSPOSEMATRIXFPROC glLoadTransposeMatrixf; extern PFNGLLOADTRANSPOSEMATRIXDPROC glLoadTransposeMatrixd; extern PFNGLMULTTRANSPOSEMATRIXFPROC glMultTransposeMatrixf; extern PFNGLMULTTRANSPOSEMATRIXDPROC glMultTransposeMatrixd; // OpenGL 1.5 Functional extern PFNGLGENQUERIESPROC glGenQueries; extern PFNGLDELETEQUERIESPROC glDeleteQueries; extern PFNGLISQUERYPROC glIsQuery; extern PFNGLBEGINQUERYPROC glBeginQuery; extern PFNGLENDQUERYPROC glEndQuery; extern PFNGLGETQUERYIVPROC glGetQueryiv; extern PFNGLGETQUERYOBJECTIVPROC glGetQueryObjectiv; extern PFNGLGETQUERYOBJECTUIVPROC glGetQueryObjectuiv; extern PFNGLBINDBUFFERPROC glBindBuffer; extern PFNGLDELETEBUFFERSPROC glDeleteBuffers; extern PFNGLGENBUFFERSPROC glGenBuffers; extern PFNGLISBUFFERPROC glIsBuffer; extern PFNGLBUFFERDATAPROC glBufferData; extern PFNGLBUFFERSUBDATAPROC glBufferSubData; extern PFNGLGETBUFFERSUBDATAPROC glGetBufferSubData; extern PFNGLMAPBUFFERPROC glMapBuffer; extern PFNGLUNMAPBUFFERPROC glUnmapBuffer; extern PFNGLGETBUFFERPARAMETERIVPROC glGetBufferParameteriv; extern PFNGLGETBUFFERPOINTERVPROC glGetBufferPointerv; // OpenGL 2.0 extern PFNGLBLENDEQUATIONSEPARATEPROC glBlendEquationSeparate; extern PFNGLDRAWBUFFERSPROC glDrawBuffers; extern PFNGLSTENCILOPSEPARATEPROC glStencilOpSeparate; extern PFNGLSTENCILFUNCSEPARATEPROC glStencilFuncSeparate; extern PFNGLSTENCILMASKSEPARATEPROC glStencilMaskSeparate; extern PFNGLATTACHSHADERPROC glAttachShader; extern PFNGLBINDATTRIBLOCATIONPROC glBindAttribLocation; extern PFNGLCOMPILESHADERPROC glCompileShader; extern PFNGLCREATEPROGRAMPROC glCreateProgram; extern PFNGLCREATESHADERPROC glCreateShader; extern PFNGLDELETEPROGRAMPROC glDeleteProgram; extern PFNGLDELETESHADERPROC glDeleteShader; extern PFNGLDETACHSHADERPROC glDetachShader; extern PFNGLDISABLEVERTEXATTRIBARRAYPROC glDisableVertexAttribArray; extern PFNGLENABLEVERTEXATTRIBARRAYPROC glEnableVertexAttribArray; extern PFNGLGETACTIVEATTRIBPROC glGetActiveAttrib; extern PFNGLGETACTIVEUNIFORMPROC glGetActiveUniform; extern PFNGLGETATTACHEDSHADERSPROC glGetAttachedShaders; extern PFNGLGETATTRIBLOCATIONPROC glGetAttribLocation; extern PFNGLGETPROGRAMIVPROC glGetProgramiv; extern PFNGLGETPROGRAMINFOLOGPROC glGetProgramInfoLog; extern PFNGLGETSHADERIVPROC glGetShaderiv; extern PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog; extern PFNGLGETSHADERSOURCEPROC glGetShaderSource; extern PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation; extern PFNGLGETUNIFORMFVPROC glGetUniformfv; extern PFNGLGETUNIFORMIVPROC glGetUniformiv; extern PFNGLGETVERTEXATTRIBDVPROC glGetVertexAttribdv; extern PFNGLGETVERTEXATTRIBFVPROC glGetVertexAttribfv; extern PFNGLGETVERTEXATTRIBIVPROC glGetVertexAttribiv; extern PFNGLGETVERTEXATTRIBPOINTERVPROC glGetVertexAttribPointerv; extern PFNGLISPROGRAMPROC glIsProgram; extern PFNGLISSHADERPROC glIsShader; extern PFNGLLINKPROGRAMPROC glLinkProgram; extern PFNGLSHADERSOURCEPROC glShaderSource; extern PFNGLUSEPROGRAMPROC glUseProgram; extern PFNGLUNIFORM1FPROC glUniform1f; extern PFNGLUNIFORM2FPROC glUniform2f; extern PFNGLUNIFORM3FPROC glUniform3f; extern PFNGLUNIFORM4FPROC glUniform4f; extern PFNGLUNIFORM1IPROC glUniform1i; extern PFNGLUNIFORM2IPROC glUniform2i; extern PFNGLUNIFORM3IPROC glUniform3i; extern PFNGLUNIFORM4IPROC glUniform4i; extern PFNGLUNIFORM1FVPROC glUniform1fv; extern PFNGLUNIFORM2FVPROC glUniform2fv; extern PFNGLUNIFORM3FVPROC glUniform3fv; extern PFNGLUNIFORM4FVPROC glUniform4fv; extern PFNGLUNIFORM1IVPROC glUniform1iv; extern PFNGLUNIFORM2IVPROC glUniform2iv; extern PFNGLUNIFORM3IVPROC glUniform3iv; extern PFNGLUNIFORM4IVPROC glUniform4iv; extern PFNGLUNIFORMMATRIX2FVPROC glUniformMatrix2fv; extern PFNGLUNIFORMMATRIX3FVPROC glUniformMatrix3fv; extern PFNGLUNIFORMMATRIX4FVPROC glUniformMatrix4fv; extern PFNGLVALIDATEPROGRAMPROC glValidateProgram; extern PFNGLVERTEXATTRIB1DPROC glVertexAttrib1d; extern PFNGLVERTEXATTRIB1DVPROC glVertexAttrib1dv; extern PFNGLVERTEXATTRIB1FPROC glVertexAttrib1f; extern PFNGLVERTEXATTRIB1FVPROC glVertexAttrib1fv; extern PFNGLVERTEXATTRIB1SPROC glVertexAttrib1s; extern PFNGLVERTEXATTRIB1SVPROC glVertexAttrib1sv; extern PFNGLVERTEXATTRIB2DPROC glVertexAttrib2d; extern PFNGLVERTEXATTRIB2DVPROC glVertexAttrib2dv; extern PFNGLVERTEXATTRIB2FPROC glVertexAttrib2f; extern PFNGLVERTEXATTRIB2FVPROC glVertexAttrib2fv; extern PFNGLVERTEXATTRIB2SPROC glVertexAttrib2s; extern PFNGLVERTEXATTRIB2SVPROC glVertexAttrib2sv; extern PFNGLVERTEXATTRIB3DPROC glVertexAttrib3d; extern PFNGLVERTEXATTRIB3DVPROC glVertexAttrib3dv; extern PFNGLVERTEXATTRIB3FPROC glVertexAttrib3f; extern PFNGLVERTEXATTRIB3FVPROC glVertexAttrib3fv; extern PFNGLVERTEXATTRIB3SPROC glVertexAttrib3s; extern PFNGLVERTEXATTRIB3SVPROC glVertexAttrib3sv; extern PFNGLVERTEXATTRIB4NBVPROC glVertexAttrib4Nbv; extern PFNGLVERTEXATTRIB4NIVPROC glVertexAttrib4Niv; extern PFNGLVERTEXATTRIB4NSVPROC glVertexAttrib4Nsv; extern PFNGLVERTEXATTRIB4NUBPROC glVertexAttrib4Nub; extern PFNGLVERTEXATTRIB4NUBVPROC glVertexAttrib4Nubv; extern PFNGLVERTEXATTRIB4NUIVPROC glVertexAttrib4Nuiv; extern PFNGLVERTEXATTRIB4NUSVPROC glVertexAttrib4Nusv; extern PFNGLVERTEXATTRIB4BVPROC glVertexAttrib4bv; extern PFNGLVERTEXATTRIB4DPROC glVertexAttrib4d; extern PFNGLVERTEXATTRIB4DVPROC glVertexAttrib4dv; extern PFNGLVERTEXATTRIB4FPROC glVertexAttrib4f; extern PFNGLVERTEXATTRIB4FVPROC glVertexAttrib4fv; extern PFNGLVERTEXATTRIB4IVPROC glVertexAttrib4iv; extern PFNGLVERTEXATTRIB4SPROC glVertexAttrib4s; extern PFNGLVERTEXATTRIB4SVPROC glVertexAttrib4sv; extern PFNGLVERTEXATTRIB4UBVPROC glVertexAttrib4ubv; extern PFNGLVERTEXATTRIB4UIVPROC glVertexAttrib4uiv; extern PFNGLVERTEXATTRIB4USVPROC glVertexAttrib4usv; extern PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer; // GL_EXT_framebuffer_object extern PFNGLISRENDERBUFFEREXTPROC glIsRenderbufferEXT; extern PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbufferEXT; extern PFNGLDELETERENDERBUFFERSEXTPROC glDeleteRenderbuffersEXT; extern PFNGLGENRENDERBUFFERSEXTPROC glGenRenderbuffersEXT; extern PFNGLRENDERBUFFERSTORAGEEXTPROC glRenderbufferStorageEXT; extern PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glGetRenderbufferParameterivEXT; extern PFNGLISFRAMEBUFFEREXTPROC glIsFramebufferEXT; extern PFNGLBINDFRAMEBUFFEREXTPROC glBindFramebufferEXT; extern PFNGLDELETEFRAMEBUFFERSEXTPROC glDeleteFramebuffersEXT; extern PFNGLGENFRAMEBUFFERSEXTPROC glGenFramebuffersEXT; extern PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glCheckFramebufferStatusEXT; extern PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glFramebufferTexture1DEXT; extern PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glFramebufferTexture2DEXT; extern PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glFramebufferTexture3DEXT; extern PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glFramebufferRenderbufferEXT; extern PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glGetFramebufferAttachmentParameterivEXT; extern PFNGLGENERATEMIPMAPEXTPROC glGenerateMipmapEXT; #endif // !GL_SHARED_H