/* Copyright (C) 1997-2001 Id Software, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* ** QGL.H */ #ifndef __QGL_H__ #define __QGL_H__ #define QGL_EXT_compiled_vertex_array (1<<0) #define QGL_ARB_multitexture (1<<1) #define QGL_EXT_texture_filter_anisotropic (1<<2) #define QGL_ARB_fragment_program (1<<3) #define QGL_ARB_vertex_buffer_object (1<<4) void QGL_Init( void ); void QGL_Shutdown( void ); void QGL_InitExtensions( unsigned mask ); void QGL_ShutdownExtensions( unsigned mask ); unsigned QGL_ParseExtensionString( const char *s ); void QGL_EnableLogging( qboolean enable ); void QGL_LogNewFrame( void ); extern void ( APIENTRY * qglAlphaFunc )(GLenum func, GLclampf ref); extern void ( APIENTRY * qglBindTexture )(GLenum target, GLuint texture); extern void ( APIENTRY * qglBlendFunc )(GLenum sfactor, GLenum dfactor); extern void ( APIENTRY * qglClear )(GLbitfield mask); extern void ( APIENTRY * qglClearColor )(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); extern void ( APIENTRY * qglClearDepth )(GLclampd depth); extern void ( APIENTRY * qglClearIndex )(GLfloat c); extern void ( APIENTRY * qglClearStencil )(GLint s); extern void ( APIENTRY * qglColor4f )(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); extern void ( APIENTRY * qglColor4fv )(const GLfloat *v); extern void ( APIENTRY * qglColor4ub )(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); extern void ( APIENTRY * qglColor4ubv )(const GLubyte *v); extern void ( APIENTRY * qglColorMask )(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); extern void ( APIENTRY * qglColorPointer )(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); extern void ( APIENTRY * qglCopyTexImage2D )(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); extern void ( APIENTRY * qglCopyTexSubImage2D )(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); extern void ( APIENTRY * qglCullFace )(GLenum mode); extern void ( APIENTRY * qglDeleteTextures )(GLsizei n, const GLuint *textures); extern void ( APIENTRY * qglDepthFunc )(GLenum func); extern void ( APIENTRY * qglDepthMask )(GLboolean flag); extern void ( APIENTRY * qglDepthRange )(GLclampd zNear, GLclampd zFar); extern void ( APIENTRY * qglDisable )(GLenum cap); extern void ( APIENTRY * qglDisableClientState )(GLenum array); extern void ( APIENTRY * qglDrawArrays )(GLenum mode, GLint first, GLsizei count); extern void ( APIENTRY * qglDrawElements )(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); extern void ( APIENTRY * qglEnable )(GLenum cap); extern void ( APIENTRY * qglEnableClientState )(GLenum array); extern void ( APIENTRY * qglFinish )(void); extern void ( APIENTRY * qglFlush )(void); extern void ( APIENTRY * qglFogf )(GLenum pname, GLfloat param); extern void ( APIENTRY * qglFogfv )(GLenum pname, const GLfloat *params); extern void ( APIENTRY * qglFrontFace )(GLenum mode); extern void ( APIENTRY * qglFrustum )(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); extern void ( APIENTRY * qglGenTextures )(GLsizei n, GLuint *textures); extern void ( APIENTRY * qglGetBooleanv )(GLenum pname, GLboolean *params); extern GLenum ( APIENTRY * qglGetError )(void); extern void ( APIENTRY * qglGetFloatv )(GLenum pname, GLfloat *params); extern void ( APIENTRY * qglGetIntegerv )(GLenum pname, GLint *params); extern void ( APIENTRY * qglGetLightfv )(GLenum light, GLenum pname, GLfloat *params); extern void ( APIENTRY * qglGetMaterialfv )(GLenum face, GLenum pname, GLfloat *params); extern void ( APIENTRY * qglGetPointerv )(GLenum pname, GLvoid* *params); extern const GLubyte * ( APIENTRY * qglGetString )(GLenum name); extern void ( APIENTRY * qglGetTexEnvfv )(GLenum target, GLenum pname, GLfloat *params); extern void ( APIENTRY * qglGetTexEnviv )(GLenum target, GLenum pname, GLint *params); extern void ( APIENTRY * qglGetTexParameterfv )(GLenum target, GLenum pname, GLfloat *params); extern void ( APIENTRY * qglGetTexParameteriv )(GLenum target, GLenum pname, GLint *params); extern void ( APIENTRY * qglHint )(GLenum target, GLenum mode); extern GLboolean ( APIENTRY * qglIsEnabled )(GLenum cap); extern GLboolean ( APIENTRY * qglIsTexture )(GLuint texture); extern void ( APIENTRY * qglLightModelf )(GLenum pname, GLfloat param); extern void ( APIENTRY * qglLightModelfv )(GLenum pname, const GLfloat *params); extern void ( APIENTRY * qglLightf )(GLenum light, GLenum pname, GLfloat param); extern void ( APIENTRY * qglLightfv )(GLenum light, GLenum pname, const GLfloat *params); extern void ( APIENTRY * qglLineWidth )(GLfloat width); extern void ( APIENTRY * qglLoadIdentity )(void); extern void ( APIENTRY * qglLoadMatrixf )(const GLfloat *m); extern void ( APIENTRY * qglLogicOp )(GLenum opcode); extern void ( APIENTRY * qglMaterialf )(GLenum face, GLenum pname, GLfloat param); extern void ( APIENTRY * qglMaterialfv )(GLenum face, GLenum pname, const GLfloat *params); extern void ( APIENTRY * qglMatrixMode )(GLenum mode); extern void ( APIENTRY * qglMultMatrixf )(const GLfloat *m); extern void ( APIENTRY * qglNormal3f )(GLfloat nx, GLfloat ny, GLfloat nz); extern void ( APIENTRY * qglNormal3fv )(const GLfloat *v); extern void ( APIENTRY * qglNormalPointer )(GLenum type, GLsizei stride, const GLvoid *pointer); extern void ( APIENTRY * qglOrtho )(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); extern void ( APIENTRY * qglPixelStorei )(GLenum pname, GLint param); extern void ( APIENTRY * qglPointSize )(GLfloat size); extern void ( APIENTRY * qglPolygonMode )(GLenum face, GLenum mode); extern void ( APIENTRY * qglPolygonOffset )(GLfloat factor, GLfloat units); extern void ( APIENTRY * qglPopMatrix )(void); extern void ( APIENTRY * qglPushMatrix )(void); extern void ( APIENTRY * qglReadPixels )(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); extern void ( APIENTRY * qglRotatef )(GLfloat angle, GLfloat x, GLfloat y, GLfloat z); extern void ( APIENTRY * qglScalef )(GLfloat x, GLfloat y, GLfloat z); extern void ( APIENTRY * qglScissor )(GLint x, GLint y, GLsizei width, GLsizei height); extern void ( APIENTRY * qglShadeModel )(GLenum mode); extern void ( APIENTRY * qglStencilFunc )(GLenum func, GLint ref, GLuint mask); extern void ( APIENTRY * qglStencilMask )(GLuint mask); extern void ( APIENTRY * qglStencilOp )(GLenum fail, GLenum zfail, GLenum zpass); extern void ( APIENTRY * qglTexCoordPointer )(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); extern void ( APIENTRY * qglTexEnvf )(GLenum target, GLenum pname, GLfloat param); extern void ( APIENTRY * qglTexEnvfv )(GLenum target, GLenum pname, const GLfloat *params); extern void ( APIENTRY * qglTexEnvi )(GLenum target, GLenum pname, GLint param); extern void ( APIENTRY * qglTexEnviv )(GLenum target, GLenum pname, const GLint *params); extern void ( APIENTRY * qglTexImage2D )(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); extern void ( APIENTRY * qglTexParameterf )(GLenum target, GLenum pname, GLfloat param); extern void ( APIENTRY * qglTexParameterfv )(GLenum target, GLenum pname, const GLfloat *params); extern void ( APIENTRY * qglTexParameteri )(GLenum target, GLenum pname, GLint param); extern void ( APIENTRY * qglTexParameteriv )(GLenum target, GLenum pname, const GLint *params); extern void ( APIENTRY * qglTexSubImage2D )(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); extern void ( APIENTRY * qglTranslatef )(GLfloat x, GLfloat y, GLfloat z); extern void ( APIENTRY * qglVertexPointer )(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); extern void ( APIENTRY * qglViewport )(GLint x, GLint y, GLsizei width, GLsizei height); // // extensions // // GL_EXT_compiled_vertex_array extern void ( APIENTRY * qglLockArraysEXT )(GLint first, GLsizei count); extern void ( APIENTRY * qglUnlockArraysEXT )(void); // GL_ARB_multitexture extern void ( APIENTRY * qglActiveTextureARB )(GLenum texture); extern void ( APIENTRY * qglClientActiveTextureARB )(GLenum texture); // GL_ARB_fragment_program extern void ( APIENTRY * qglProgramStringARB )(GLenum target, GLenum format, GLsizei len, const GLvoid *string); extern void ( APIENTRY * qglBindProgramARB )(GLenum target, GLuint program); extern void ( APIENTRY * qglDeleteProgramsARB )(GLsizei n, const GLuint *programs); extern void ( APIENTRY * qglGenProgramsARB )(GLsizei n, GLuint *programs); extern void ( APIENTRY * qglProgramEnvParameter4fvARB )(GLenum target, GLuint index, const GLfloat *params); extern void ( APIENTRY * qglProgramLocalParameter4fvARB )(GLenum target, GLuint index, const GLfloat *params); extern void ( APIENTRY * qglGetProgramEnvParameterfvARB )(GLenum, GLuint, GLfloat *); extern void ( APIENTRY * qglGetProgramLocalParameterfvARB )(GLenum, GLuint, GLfloat *); extern void ( APIENTRY * qglGetProgramivARB )(GLenum, GLenum, GLint *); extern void ( APIENTRY * qglGetProgramStringARB )(GLenum, GLenum, GLvoid *); extern GLboolean ( APIENTRY * qglIsProgramARB )(GLuint); // GL_ARB_vertex_buffer_object extern void ( APIENTRY * qglBindBufferARB )(GLenum target, GLuint buffer); extern void ( APIENTRY * qglDeleteBuffersARB )(GLsizei n, const GLuint *buffers); extern void ( APIENTRY * qglGenBuffersARB )(GLsizei n, GLuint *buffers); extern GLboolean ( APIENTRY * qglIsBufferARB )(GLuint); extern void ( APIENTRY * qglBufferDataARB )(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); extern void ( APIENTRY * qglBufferSubDataARB )(GLenum, GLintptrARB, GLsizeiptrARB, const GLvoid *); extern void ( APIENTRY * qglGetBufferSubDataARB )(GLenum, GLintptrARB, GLsizeiptrARB, GLvoid *); extern GLvoid * ( APIENTRY * qglMapBufferARB )(GLenum target, GLenum access); extern GLboolean ( APIENTRY * qglUnmapBufferARB )(GLenum target); extern void ( APIENTRY * qglGetBufferParameterivARB )(GLenum, GLenum, GLint *); extern void ( APIENTRY * qglGetBufferPointervARB )(GLenum, GLenum, GLvoid* *); #endif