]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - glquake.h
implemented scissor rect clipping of lights in realtime lighting mode
[xonotic/darkplaces.git] / glquake.h
index 690edba963a69fc267eba601d462aa4534ad3349..ef65f0d1b4b903f49f8ecbd4b5ff811faf851fd0 100644 (file)
--- a/glquake.h
+++ b/glquake.h
@@ -37,20 +37,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 //#include <GL/gl.h>
 
-extern qboolean isG200;
-extern qboolean isRagePro;
-
 //====================================================
 
-extern const char *gl_vendor;
-extern const char *gl_renderer;
-extern const char *gl_version;
-extern const char *gl_extensions;
-
-void GL_OpenLibrary(void);
-void GL_CloseLibrary(void);
-void *GL_GetProcAddress(char *name);
-
 // wgl uses APIENTRY
 #ifndef APIENTRY
 #define APIENTRY
@@ -61,7 +49,7 @@ void *GL_GetProcAddress(char *name);
 #define GLAPIENTRY APIENTRY
 #endif
 
-#ifndef GL_MATRIX_MODE
+#ifndef GL_PROJECTION
 typedef unsigned int GLenum;
 typedef unsigned char GLboolean;
 typedef unsigned int GLbitfield;
@@ -89,10 +77,13 @@ typedef double GLdouble;
 // double precision float in [0,1]
 typedef double GLclampd;
 
-#define GL_MATRIX_MODE                         0x0BA0
 #define GL_MODELVIEW                           0x1700
 #define GL_PROJECTION                          0x1701
 #define GL_TEXTURE                             0x1702
+#define GL_MATRIX_MODE                         0x0BA0
+#define GL_MODELVIEW_MATRIX                    0x0BA6
+#define GL_PROJECTION_MATRIX                   0x0BA7
+#define GL_TEXTURE_MATRIX                      0x0BA8
 
 #define GL_DEPTH_TEST                          0x0B71
 
@@ -122,8 +113,11 @@ typedef double GLclampd;
 #define GL_TEXTURE_2D                          0x0DE1
 #define GL_TEXTURE_WRAP_S                      0x2802
 #define GL_TEXTURE_WRAP_T                      0x2803
+#define GL_TEXTURE_WRAP_R                      0x8072
+#define GL_TEXTURE_BORDER_COLOR                        0x1004
 #define GL_TEXTURE_MAG_FILTER                  0x2800
 #define GL_TEXTURE_MIN_FILTER                  0x2801
+#define GL_UNPACK_ALIGNMENT                    0x0CF5
 
 #define GL_NEAREST                             0x2600
 #define GL_LINEAR                              0x2601
@@ -203,6 +197,12 @@ typedef double GLclampd;
 #define GL_ACCUM_BUFFER_BIT                    0x00000200
 #define GL_STENCIL_BUFFER_BIT                  0x00000400
 #define GL_COLOR_BUFFER_BIT                    0x00004000
+
+#define GL_STENCIL_TEST                                0x0B90
+#define GL_KEEP                                        0x1E00
+#define GL_REPLACE                             0x1E01
+#define GL_INCR                                        0x1E02
+#define GL_DECR                                        0x1E03
 #endif
 
 // GL_ARB_multitexture
@@ -289,6 +289,61 @@ extern int gl_combine_extension;
 
 extern cvar_t gl_combine;
 
+extern int gl_texture3d;
+#ifndef GL_TEXTURE_3D
+#define GL_PACK_SKIP_IMAGES                    0x806B
+#define GL_PACK_IMAGE_HEIGHT                   0x806C
+#define GL_UNPACK_SKIP_IMAGES                  0x806D
+#define GL_UNPACK_IMAGE_HEIGHT                 0x806E
+#define GL_TEXTURE_3D                          0x806F
+#define GL_PROXY_TEXTURE_3D                    0x8070
+#define GL_TEXTURE_DEPTH                       0x8071
+#define GL_TEXTURE_WRAP_R                      0x8072
+#define GL_MAX_3D_TEXTURE_SIZE                 0x8073
+#define GL_TEXTURE_BINDING_3D                  0x806A
+extern void (GLAPIENTRY *qglTexImage3D)(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+extern void (GLAPIENTRY *qglTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
+extern void (GLAPIENTRY *qglCopyTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+#endif
+
+extern int gl_texturecubemap;
+#ifndef GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB
+#define GL_NORMAL_MAP_ARB                          0x8511
+#define GL_REFLECTION_MAP_ARB              0x8512
+#define GL_TEXTURE_CUBE_MAP_ARB                    0x8513
+#define GL_TEXTURE_BINDING_CUBE_MAP_ARB            0x8514
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB     0x8515
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB     0x8516
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB     0x8517
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB     0x8518
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB     0x8519
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB     0x851A
+#define GL_PROXY_TEXTURE_CUBE_MAP_ARB      0x851B
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB               0x851C
+#endif
+
+extern int gl_dot3arb;
+#ifndef GL_DOT3_RGB_ARB
+#define GL_DOT3_RGB_ARB                                0x86AE
+#define GL_DOT3_RGBA_ARB                               0x86AF
+#endif
+
+/*
+// uncomment if this is actually needed by anyone
+extern int gl_dot3ext;
+#ifndef GL_DOT3_RGB_EXT
+#define GL_DOT3_RGB_EXT                                0x8740
+#define GL_DOT3_RGBA_EXT                       0x8741
+#endif
+*/
+
+#ifndef GL_SCISSOR_TEST
+#define GL_SCISSOR_TEST                                0x0C11
+#define GL_SCISSOR_BOX                         0x0C10
+#endif
+
+extern void (GLAPIENTRY *qglScissor)(GLint x, GLint y, GLsizei width, GLsizei height);
+
 extern void (GLAPIENTRY *qglClearColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
 
 extern void (GLAPIENTRY *qglClear)(GLbitfield mask);
@@ -306,9 +361,9 @@ extern void (GLAPIENTRY *qglDisable)(GLenum cap);
 extern void (GLAPIENTRY *qglEnableClientState)(GLenum cap);
 extern void (GLAPIENTRY *qglDisableClientState)(GLenum cap);
 
-//extern void (GLAPIENTRY *qglGetBooleanv)(GLenum pname, GLboolean *params);
-//extern void (GLAPIENTRY *qglGetDoublev)(GLenum pname, GLdouble *params);
-//extern void (GLAPIENTRY *qglGetFloatv)(GLenum pname, GLfloat *params);
+extern void (GLAPIENTRY *qglGetBooleanv)(GLenum pname, GLboolean *params);
+extern void (GLAPIENTRY *qglGetDoublev)(GLenum pname, GLdouble *params);
+extern void (GLAPIENTRY *qglGetFloatv)(GLenum pname, GLfloat *params);
 extern void (GLAPIENTRY *qglGetIntegerv)(GLenum pname, GLint *params);
 
 extern GLenum (GLAPIENTRY *qglGetError)(void);
@@ -320,6 +375,7 @@ extern void (GLAPIENTRY *qglClearDepth)(GLclampd depth);
 extern void (GLAPIENTRY *qglDepthFunc)(GLenum func);
 extern void (GLAPIENTRY *qglDepthMask)(GLboolean flag);
 extern void (GLAPIENTRY *qglDepthRange)(GLclampd near_val, GLclampd far_val);
+extern void (GLAPIENTRY *qglColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
 
 extern void (GLAPIENTRY *qglDrawRangeElements)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
 extern void (GLAPIENTRY *qglDrawElements)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
@@ -329,7 +385,7 @@ extern void (GLAPIENTRY *qglColorPointer)(GLint size, GLenum type, GLsizei strid
 extern void (GLAPIENTRY *qglTexCoordPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr);
 extern void (GLAPIENTRY *qglArrayElement)(GLint i);
 
-extern void (GLAPIENTRY *qglColor4ub)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+extern void (GLAPIENTRY *qglColor4f)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
 extern void (GLAPIENTRY *qglTexCoord2f)(GLfloat s, GLfloat t);
 extern void (GLAPIENTRY *qglVertex2f)(GLfloat x, GLfloat y);
 extern void (GLAPIENTRY *qglVertex3f)(GLfloat x, GLfloat y, GLfloat z);
@@ -343,8 +399,8 @@ extern void (GLAPIENTRY *qglViewport)(GLint x, GLint y, GLsizei width, GLsizei h
 //extern void (GLAPIENTRY *qglPushMatrix)(void);
 //extern void (GLAPIENTRY *qglPopMatrix)(void);
 extern void (GLAPIENTRY *qglLoadIdentity)(void);
-//extern void (GLAPIENTRY *qglLoadMatrixd)(const GLdouble *m);
-//extern void (GLAPIENTRY *qglLoadMatrixf)(const GLfloat *m);
+extern void (GLAPIENTRY *qglLoadMatrixd)(const GLdouble *m);
+extern void (GLAPIENTRY *qglLoadMatrixf)(const GLfloat *m);
 //extern void (GLAPIENTRY *qglMultMatrixd)(const GLdouble *m);
 //extern void (GLAPIENTRY *qglMultMatrixf)(const GLfloat *m);
 //extern void (GLAPIENTRY *qglRotated)(GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
@@ -356,21 +412,34 @@ extern void (GLAPIENTRY *qglTranslatef)(GLfloat x, GLfloat y, GLfloat z);
 
 extern void (GLAPIENTRY *qglReadPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
 
-//extern void (GLAPIENTRY *qglStencilFunc)(GLenum func, GLint ref, GLuint mask);
-//extern void (GLAPIENTRY *qglStencilMask)(GLuint mask);
-//extern void (GLAPIENTRY *qglStencilOp)(GLenum fail, GLenum zfail, GLenum zpass);
-//extern void (GLAPIENTRY *qglClearStencil)(GLint s);
+extern void (GLAPIENTRY *qglStencilFunc)(GLenum func, GLint ref, GLuint mask);
+extern void (GLAPIENTRY *qglStencilMask)(GLuint mask);
+extern void (GLAPIENTRY *qglStencilOp)(GLenum fail, GLenum zfail, GLenum zpass);
+extern void (GLAPIENTRY *qglClearStencil)(GLint s);
 
-//extern void (GLAPIENTRY *qglTexEnvf)(GLenum target, GLenum pname, GLfloat param);
+extern void (GLAPIENTRY *qglTexEnvf)(GLenum target, GLenum pname, GLfloat param);
 extern void (GLAPIENTRY *qglTexEnvi)(GLenum target, GLenum pname, GLint param);
-
-//extern void (GLAPIENTRY *qglTexParameterf)(GLenum target, GLenum pname, GLfloat param);
+extern void (GLAPIENTRY *qglTexParameterf)(GLenum target, GLenum pname, GLfloat param);
+extern void (GLAPIENTRY *qglTexParameterfv)(GLenum target, GLenum pname, GLfloat *params);
 extern void (GLAPIENTRY *qglTexParameteri)(GLenum target, GLenum pname, GLint param);
 
+extern void (GLAPIENTRY *qglGenTextures)(GLsizei n, GLuint *textures);
+extern void (GLAPIENTRY *qglDeleteTextures)(GLsizei n, const GLuint *textures);
 extern void (GLAPIENTRY *qglBindTexture)(GLenum target, GLuint texture);
-extern void (GLAPIENTRY *qglTexImage2D)(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels );
+extern void (GLAPIENTRY *qglPrioritizeTextures)(GLsizei n, const GLuint *textures, const GLclampf *priorities);
+extern GLboolean (GLAPIENTRY *qglAreTexturesResident)(GLsizei n, const GLuint *textures, GLboolean *residences);
+extern GLboolean (GLAPIENTRY *qglIsTexture)(GLuint texture);
+extern void (GLAPIENTRY *qglPixelStoref)(GLenum pname, GLfloat param);
+extern void (GLAPIENTRY *qglPixelStorei)(GLenum pname, GLint param);
+
+extern void (GLAPIENTRY *qglTexImage1D)(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+extern void (GLAPIENTRY *qglTexImage2D)(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+extern void (GLAPIENTRY *qglTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
 extern void (GLAPIENTRY *qglTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
-extern void (GLAPIENTRY *qglDeleteTextures)(GLsizei n, const GLuint *textures);
+extern void (GLAPIENTRY *qglCopyTexImage1D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+extern void (GLAPIENTRY *qglCopyTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+extern void (GLAPIENTRY *qglCopyTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+extern void (GLAPIENTRY *qglCopyTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
 
 #if WIN32
 extern int (WINAPI *qwglChoosePixelFormat)(HDC, CONST PIXELFORMATDESCRIPTOR *);