213 lines
14 KiB
C
213 lines
14 KiB
C
#ifndef GL_SHARED_H
|
|
#define GL_SHARED_H
|
|
|
|
#define WIN32_LEAN_AND_MEAN
|
|
#include <Windows.h>
|
|
|
|
#include <gl/gl.h>
|
|
#include <gl/glext.h>
|
|
|
|
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
|