mirror of
https://github.com/nzp-team/fteqw.git
synced 2024-11-15 00:42:06 +00:00
41b0d993f2
support RLE+luminance+alpha tga files. support half-float tga files. recognise hdr astc images. added appropriate fallbacks for astc support. load mip-less .astc files (mostly just for debugging stuff). allow packages to warn about required engine/gpu features. catch when stdin flags get changed to blocking by external libraries, to avoid fatal stalls. basic support for .mdx files (kingpin models) sort packages loaded via wildcards, by datetime then name, to avoid random ordering from certain filesystems. git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5531 fc73d0e0-1445-4013-8a0c-d673dee63da5
1319 lines
59 KiB
C
1319 lines
59 KiB
C
/*
|
|
Copyright (C) 1996-1997 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.
|
|
|
|
*/
|
|
|
|
#ifndef GLQUAKE_H
|
|
#define GLQUAKE_H
|
|
|
|
// disable data conversion warnings
|
|
#ifdef MSVCDISABLEWARNINGS
|
|
#pragma warning(disable : 4244) // MIPS
|
|
#pragma warning(disable : 4136) // X86
|
|
#pragma warning(disable : 4051) // ALPHA
|
|
#endif
|
|
|
|
void AddPointToBounds (const vec3_t v, vec3_t mins, vec3_t maxs);
|
|
qboolean BoundsIntersect (const vec3_t mins1, const vec3_t maxs1, const vec3_t mins2, const vec3_t maxs2);
|
|
void ClearBounds (vec3_t mins, vec3_t maxs);
|
|
|
|
struct builddata_s
|
|
{
|
|
void (*buildfunc)(model_t *mod, msurface_t *surf, struct builddata_s *bd);
|
|
void *facedata;
|
|
};
|
|
void ModBrush_LoadGLStuff(void *ctx, void *data, size_t a, size_t b); //data === builddata_t
|
|
|
|
|
|
typedef struct
|
|
{
|
|
int allocated[LMBLOCK_SIZE_MAX];
|
|
int firstlm;
|
|
int lmnum;
|
|
unsigned int width;
|
|
unsigned int height;
|
|
qboolean deluxe;
|
|
} lmalloc_t;
|
|
void Mod_LightmapAllocInit(lmalloc_t *lmallocator, qboolean hasdeluxe, unsigned int width, unsigned int height, int firstlm); //firstlm is for debugging stray lightmap indexes
|
|
void Mod_LightmapAllocDone(lmalloc_t *lmallocator, model_t *mod);
|
|
void Mod_LightmapAllocBlock(lmalloc_t *lmallocator, int w, int h, unsigned short *x, unsigned short *y, int *tnum);
|
|
|
|
|
|
|
|
#ifdef GLQUAKE
|
|
#if defined(ANDROID) /*FIXME: actually just to use standard GLES headers instead of full GL*/
|
|
#ifndef GLSLONLY
|
|
#include <GLES/gl.h>
|
|
#ifndef GL_CLIP_PLANE0
|
|
#define GL_CLIP_PLANE0 0x3000
|
|
#endif
|
|
#else
|
|
#include <GLES2/gl2.h>
|
|
#endif
|
|
/*gles has no doubles*/
|
|
#define GLclampd GLclampf
|
|
#define GLdouble GLfloat
|
|
#define GL_NONE 0
|
|
#elif defined(__MACOSX__)
|
|
//apple, you suck.
|
|
#include <AGL/agl.h>
|
|
#elif defined(__APPLE__)
|
|
#include <OpenGL/gl.h> //tuna says use this.
|
|
//apple really do suck.
|
|
#elif defined(NACL) || defined(FTE_TARGET_WEB)
|
|
#include <GLES2/gl2.h>
|
|
#define GLclampd GLclampf
|
|
#define GLdouble GLfloat
|
|
#else
|
|
#ifdef _WIN32 //windows might use the standard header filename, but it still requires that we manually include windows.h first.
|
|
#ifndef WIN32_BLOATED
|
|
#define WIN32_LEAN_AND_MEAN
|
|
#endif
|
|
#include <windows.h>
|
|
#endif
|
|
|
|
#include <GL/gl.h>
|
|
#ifdef GL_STATIC
|
|
#define GL_GLEXT_PROTOTYPES
|
|
#include <GL/glext.h>
|
|
#endif
|
|
#endif
|
|
// #include <GL/glu.h>
|
|
|
|
#ifndef APIENTRY
|
|
#define APIENTRY //our code decorates function pointers with this for windows, so make sure it exists on systems that don't need it.
|
|
#endif
|
|
#include "glsupp.h"
|
|
|
|
|
|
|
|
/*gles2 has no fixed function*/
|
|
#ifndef GL_ALPHA_TEST
|
|
#define GL_ALPHA_TEST 0
|
|
#endif
|
|
#ifndef GL_FILL
|
|
#define GL_FILL (Sys_Error("GL_FILL was used"),0)
|
|
#endif
|
|
#ifndef GL_CLAMP
|
|
#define GL_CLAMP GL_CLAMP_TO_EDGE
|
|
#endif
|
|
#ifndef GL_TEXTURE_ENV
|
|
#define GL_TEXTURE_ENV (Con_Printf("GL_TEXTURE_ENV was used"),0)
|
|
#define GL_TEXTURE_ENV_MODE (Con_Printf("GL_TEXTURE_ENV_MODE was used"),0)
|
|
#define GL_VERTEX_ARRAY (Con_Printf("GL_VERTEX_ARRAY was used"),0)
|
|
#define GL_COLOR_ARRAY (Con_Printf("GL_COLOR_ARRAY was used"),0)
|
|
#define GL_TEXTURE_COORD_ARRAY (Con_Printf("GL_TEXTURE_COORD_ARRAY was used"),0)
|
|
#define GL_DECAL (Con_Printf("GL_DECAL was used"),0)
|
|
#define GL_ADD (Con_Printf("GL_ADD was used"),0)
|
|
#define GL_FLAT (Con_Printf("GL_FLAT was used"),0)
|
|
#define GL_SMOOTH (Con_Printf("GL_SMOOTH was used"),0)
|
|
#define GL_MODULATE 0x2100
|
|
#define GL_PROJECTION (Con_Printf("GL_PROJECTION was used"),0)
|
|
#define GL_MODELVIEW (Con_Printf("GL_MODELVIEW was used"),0)
|
|
#define GL_CLIP_PLANE0 (Con_Printf("GL_CLIP_PLANE0 was used"),0)
|
|
#endif
|
|
#ifndef GL_COLOR_ARRAY_POINTER
|
|
#define GL_COLOR_ARRAY_POINTER 0
|
|
#define GL_NORMAL_ARRAY 0
|
|
#define GL_NORMAL_ARRAY_POINTER 0
|
|
#define GL_TEXTURE_COORD_ARRAY_POINTER 0
|
|
#define GL_VERTEX_ARRAY_POINTER 0
|
|
#define GL_BLEND_SRC 0
|
|
#define GL_BLEND_DST 0
|
|
#endif
|
|
#ifndef GL_POLYGON
|
|
#define GL_POLYGON (Con_Printf("GL_POLYGON was used"),0)
|
|
#define GL_QUAD_STRIP (Con_Printf("GL_QUAD_STRIP was used"),0)
|
|
#define GL_QUADS (Con_Printf("GL_QUADS was used"),0)
|
|
#endif
|
|
|
|
void GL_InitFogTexture(void);
|
|
|
|
// Function prototypes for the Texture Object Extension routines
|
|
typedef GLboolean (APIENTRY *ARETEXRESFUNCPTR)(GLsizei, const GLuint *,
|
|
const GLboolean *);
|
|
typedef void (APIENTRY *BINDTEXFUNCPTR)(GLenum, GLuint);
|
|
typedef void (APIENTRY *DELTEXFUNCPTR)(GLsizei, const GLuint *);
|
|
typedef void (APIENTRY *GENTEXFUNCPTR)(GLsizei, GLuint *);
|
|
typedef GLboolean (APIENTRY *ISTEXFUNCPTR)(GLuint);
|
|
typedef void (APIENTRY *PRIORTEXFUNCPTR)(GLsizei, const GLuint *,
|
|
const GLclampf *);
|
|
typedef void (APIENTRY *TEXSUBIMAGEPTR)(int, int, int, int, int, int, int, int, void *);
|
|
typedef void (APIENTRY *FTEPFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
|
|
typedef void (APIENTRY *FTEPFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
|
|
typedef void (APIENTRY *FTEPFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, const GLvoid* img);
|
|
typedef void (APIENTRY *FTEPFNGLPNTRIANGLESIATIPROC)(GLenum pname, GLint param);
|
|
typedef void (APIENTRY *FTEPFNGLPNTRIANGLESFATIPROC)(GLenum pname, GLfloat param);
|
|
typedef void (APIENTRY *FTEPFNGLACTIVESTENCILFACEEXTPROC) (GLenum face);
|
|
|
|
typedef GLhandleARB (APIENTRYP FTEPFNGLCREATEPROGRAMOBJECTARBPROC) (void);
|
|
typedef void (APIENTRYP FTEPFNGLDELETEOBJECTARBPROC) (GLhandleARB obj);
|
|
typedef void (APIENTRYP FTEPFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj);
|
|
typedef GLhandleARB (APIENTRYP FTEPFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType);
|
|
typedef void (APIENTRYP FTEPFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB* *string, const GLint *length);
|
|
typedef void (APIENTRYP FTEPFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj);
|
|
typedef void (APIENTRYP FTEPFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint *params);
|
|
typedef void (APIENTRYP FTEPFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj);
|
|
typedef void (APIENTRYP FTEPFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog);
|
|
typedef void (APIENTRYP FTEPFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj);
|
|
typedef void (APIENTRYP FTEPFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, GLcharARB *name);
|
|
typedef GLint (APIENTRYP FTEPFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name);
|
|
typedef void (APIENTRYP FTEPFNGLVERTEXATTRIBPOINTER) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
|
|
typedef void (APIENTRYP FTEPFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
|
|
typedef void (APIENTRYP FTEPFNGLENABLEVERTEXATTRIBARRAY) (GLuint index);
|
|
typedef void (APIENTRYP FTEPFNGLDISABLEVERTEXATTRIBARRAY) (GLuint index);
|
|
typedef GLint (APIENTRYP FTEPFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name);
|
|
typedef void (APIENTRYP FTEPFNGLGETVERTEXATTRIBIV) (GLuint index, GLenum pname, GLint *params);
|
|
typedef void (APIENTRYP FTEPFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
|
|
typedef void (APIENTRYP FTEPFNGLUNIFORMMATRIXPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
|
typedef void (APIENTRYP FTEPFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
|
|
typedef void (APIENTRYP FTEPFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
|
|
typedef void (APIENTRYP FTEPFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
|
|
typedef void (APIENTRYP FTEPFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
|
|
typedef void (APIENTRYP FTEPFNGLUNIFORM1IARBPROC) (GLint location, GLint v0);
|
|
typedef void (APIENTRYP FTEPFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0);
|
|
typedef void (APIENTRYP FTEPFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source);
|
|
|
|
typedef void (APIENTRY * FTEPFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count);
|
|
typedef void (APIENTRY * FTEPFNGLUNLOCKARRAYSEXTPROC) (void);
|
|
|
|
#ifndef GL_STATIC
|
|
extern BINDTEXFUNCPTR qglBindTexture;
|
|
extern DELTEXFUNCPTR delTexFunc;
|
|
extern TEXSUBIMAGEPTR TexSubImage2DFunc;
|
|
extern void (APIENTRY *qglStencilOpSeparate) (GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
|
|
#endif
|
|
extern FTEPFNGLPNTRIANGLESIATIPROC qglPNTrianglesiATI;
|
|
extern FTEPFNGLPNTRIANGLESFATIPROC qglPNTrianglesfATI;
|
|
extern void (APIENTRY *qglPatchParameteriARB)(GLenum pname, GLint value); //core in gl4
|
|
|
|
qboolean GL_CheckExtension(char *extname);
|
|
|
|
struct glfmt_s
|
|
{
|
|
int sizedformat; //texstorage
|
|
int cformat; //sized format used when gl_compress is set
|
|
int internalformat; //used instead of internal format when gl_compress is set, or 0
|
|
int format; //0 for compressed data
|
|
int type; //0 for compressed data
|
|
int swizzle_r;
|
|
int swizzle_g;
|
|
int swizzle_b;
|
|
int swizzle_a;
|
|
};
|
|
|
|
typedef struct {
|
|
float glversion;
|
|
int maxglslversion;
|
|
int maxattribs; //max generic attributes. probably only 16 on nvidia.
|
|
qboolean nofixedfunc;
|
|
qboolean gles;
|
|
qboolean webgl_ie; //workaround ie webgl bugs/omissions.
|
|
qboolean blacklist_invariant; //mesa's invariant keyword is broken (for us when combined with fixed function)
|
|
qboolean tex_env_combine;
|
|
qboolean nv_tex_env_combine4;
|
|
qboolean env_add;
|
|
|
|
// qboolean sgis_generate_mipmap;
|
|
|
|
qboolean arb_texture_env_combine;
|
|
qboolean arb_texture_env_dot3;
|
|
|
|
qboolean arb_texture_compression; //means we support dynamic compression, rather than any specific compressed texture formats
|
|
qboolean astc_decodeprecision; //means we can tell the gpu that our astc textures actually are ldr.
|
|
|
|
qboolean geometryshaders;
|
|
qboolean arb_tessellation_shader;
|
|
|
|
qboolean ext_framebuffer_objects;
|
|
qboolean arb_framebuffer_srgb;
|
|
// qboolean arb_fragment_program;
|
|
qboolean arb_shader_objects;
|
|
qboolean arb_shadow;
|
|
qboolean arb_depth_texture;
|
|
qboolean ext_stencil_wrap;
|
|
qboolean ext_packed_depth_stencil;
|
|
qboolean arb_depth_clamp;
|
|
int ext_texture_filter_anisotropic;
|
|
|
|
struct glfmt_s formatinfo[PTI_MAX];
|
|
int unpackalignment;
|
|
} gl_config_t;
|
|
|
|
extern gl_config_t gl_config;
|
|
|
|
extern float gldepthmin, gldepthmax;
|
|
|
|
void GL_UpdateFiltering(image_t *imagelist, int filtermip[3], int filterpic[3], int mipcap[2], float lodbias, float anis);
|
|
qboolean GL_LoadTextureMips(texid_t tex, const struct pendingtextureinfo *mips);
|
|
void GL_DestroyTexture(texid_t tex);
|
|
void GL_SetupFormats(void);
|
|
|
|
/*
|
|
typedef struct
|
|
{
|
|
float x, y, z;
|
|
float s, t;
|
|
float r, g, b;
|
|
} glvert_t;
|
|
|
|
FTE_DEPRECATED extern glvert_t glv;
|
|
*/
|
|
#endif
|
|
|
|
// r_local.h -- private refresh defs
|
|
|
|
//#define ALIAS_BASE_SIZE_RATIO (1.0 / 11.0)
|
|
// normalizing factor so player model works out to about
|
|
// 1 pixel per triangle
|
|
//#define MAX_LBM_HEIGHT 480
|
|
|
|
//#define TILE_SIZE 128 // size of textures generated by R_GenTiledSurf
|
|
|
|
//#define SKYSHIFT 7
|
|
//#define SKYSIZE (1 << SKYSHIFT)
|
|
//#define SKYMASK (SKYSIZE - 1)
|
|
|
|
#define BACKFACE_EPSILON 0.01
|
|
|
|
|
|
void R_TimeRefresh_f (void);
|
|
|
|
#include "particles.h"
|
|
|
|
//====================================================
|
|
|
|
extern entity_t r_worldentity;
|
|
extern vec3_t r_entorigin;
|
|
extern entity_t *currententity;
|
|
extern int r_visframecount; // ??? what difs?
|
|
extern int r_framecount; //number of scenes drawn (specifically, number of times the world is frustum culled)
|
|
|
|
extern qboolean r_loadbumpmapping;
|
|
|
|
//
|
|
// view origin
|
|
//
|
|
extern vec3_t vup;
|
|
extern vec3_t vpn;
|
|
extern vec3_t vright;
|
|
extern vec3_t r_origin;
|
|
|
|
//
|
|
// screen size info
|
|
//
|
|
extern refdef_t r_refdef;
|
|
extern unsigned int r_viewcontents;
|
|
int r_viewarea;
|
|
extern int r_viewcluster, r_viewcluster2, r_oldviewcluster, r_oldviewcluster2; //q2
|
|
extern texture_t *r_notexture_mip;
|
|
extern int d_lightstylevalue[256]; // 8.8 fraction of base light value
|
|
|
|
extern texid_t netgraphtexture; // netgraph texture
|
|
extern shader_t *netgraphshader;
|
|
|
|
extern const char *gl_vendor;
|
|
extern const char *gl_renderer;
|
|
extern const char *gl_version;
|
|
|
|
FTE_DEPRECATED void PPL_RevertToKnownState(void);
|
|
|
|
qboolean R_CullBox (vec3_t mins, vec3_t maxs);
|
|
qboolean R_CullEntityBox(entity_t *e, vec3_t modmins, vec3_t modmaxs);
|
|
qboolean R_CullSphere (vec3_t origin, float radius);
|
|
void Sh_PreGenerateLights(void);
|
|
void Sh_PurgeShadowMeshes(void);
|
|
|
|
#ifdef GLQUAKE
|
|
void R_TranslatePlayerSkin (int playernum);
|
|
void GL_MTBind(int tmu, int target, texid_t texnum); /*use this if you're going to change the texture object (ensures glActiveTexture(tmu))*/
|
|
void GL_LazyBind(int tmu, int target, texid_t texnum); /*use this if you don't care about the active tmu, only that it is bound on that tmu (does not guarentee glActiveTexture) (ie: no glTexImage etc)*/
|
|
void GL_CullFace(unsigned int sflags);
|
|
void GL_TexEnv(GLenum mode);
|
|
|
|
// Multitexture
|
|
#define GL_TEXTURE0_SGIS 0x835E
|
|
#define GL_TEXTURE1_SGIS 0x835F
|
|
|
|
|
|
extern int gl_stencilbits;
|
|
|
|
|
|
extern int gl_mtexarbable; //max texture units
|
|
extern qboolean gl_mtexable;
|
|
|
|
extern int mtexid0;
|
|
|
|
extern qboolean gl_mtexable;
|
|
|
|
void GL_SelectTexture (int tmunum);
|
|
void GL_SetShaderState2D(qboolean is2d);
|
|
void GL_ForceDepthWritable(void);
|
|
|
|
#endif
|
|
|
|
//
|
|
// gl_draw.c
|
|
//
|
|
#ifdef GLQUAKE
|
|
texid_tf GL_LoadPicTexture (qpic_t *pic);
|
|
void GL_Set2D (qboolean flipped);
|
|
#endif
|
|
|
|
//
|
|
// gl_rmain.c
|
|
//
|
|
qboolean R_ShouldDraw(entity_t *e);
|
|
#ifdef GLQUAKE
|
|
void R_RotateForEntity (float *modelmatrix, float *modelviewmatrix, const entity_t *e, const model_t *mod);
|
|
|
|
void GL_ShutdownPostProcessing(void);
|
|
void GL_InitSceneProcessingShaders (void);
|
|
void GL_SetupSceneProcessingTextures (void);
|
|
#endif
|
|
|
|
//
|
|
// gl_alias.c
|
|
//
|
|
void R_DrawGAliasShadowVolume(entity_t *e, vec3_t lightpos, float radius);
|
|
|
|
#ifdef GLQUAKE
|
|
//misc model formats
|
|
void R_DrawHLModel(entity_t *curent);
|
|
|
|
//typedef float m3by3_t[3][3];
|
|
//int GetTag(model_t *mod, char *tagname, int frame, float **org, m3by3_t **ang);
|
|
#endif
|
|
|
|
//
|
|
// gl_rlight.c
|
|
//
|
|
void R_GenDlightBatches(batch_t *batches[]);
|
|
void R_InitFlashblends(void);
|
|
#ifdef GLQUAKE
|
|
void GLR_MarkQ2Lights (dlight_t *light, int bit, mnode_t *node);
|
|
#endif
|
|
void GLQ3_LightGrid(model_t *mod, const vec3_t point, vec3_t res_diffuse, vec3_t res_ambient, vec3_t res_dir);
|
|
qboolean R_LoadRTLights(void);
|
|
qboolean R_ImportRTLights(const char *entlump);
|
|
|
|
//doom
|
|
#ifdef MAP_DOOM
|
|
void R_DoomWorld();
|
|
#endif
|
|
#ifdef MAP_PROC
|
|
qboolean QDECL D3_LoadMap_CollisionMap(model_t *mod, void *buf, size_t bufsize);
|
|
unsigned char *D3_CalcVis(model_t *mod, vec3_t org);
|
|
void D3_GenerateAreas(model_t *mod);
|
|
#endif
|
|
|
|
//gl_bloom.c
|
|
#ifdef GLQUAKE
|
|
void R_BloomRegister(void);
|
|
qboolean R_CanBloom(void);
|
|
void R_BloomBlend (texid_t source, int x, int y, int w, int h);
|
|
void R_BloomShutdown(void);
|
|
#endif
|
|
|
|
//
|
|
// gl_ngraph.c
|
|
//
|
|
void R_NetGraph (void);
|
|
|
|
|
|
#if defined(GLQUAKE)
|
|
|
|
//updates the viewport correctly.
|
|
//pxrect.y is relative to the top.
|
|
//gl requires viewports specified relative to the bottom.
|
|
//so we need to do a little extra maths, which keeps confusing me, so one macro to ensure consistancy.
|
|
#define GL_ViewportUpdate() qglViewport(r_refdef.pxrect.x, r_refdef.pxrect.maxheight-(r_refdef.pxrect.y+r_refdef.pxrect.height), r_refdef.pxrect.width, r_refdef.pxrect.height)
|
|
|
|
#ifdef GL_STATIC
|
|
//these are the functions that are valid in gles2.
|
|
//other functions should never actually be used.
|
|
#define qglActiveTextureARB glActiveTexture
|
|
#define qglAttachShader glAttachShader
|
|
#define qglBindAttribLocation glBindAttribLocation
|
|
#define qglBindBuffer glBindBuffer
|
|
#define qglBindFramebuffer glBindFramebuffer
|
|
#define qglBindRenderbufferEXT glBindRenderbuffer
|
|
#define qglBindTexture glBindTexture
|
|
#define qglBlendColor glBlendColor
|
|
#define qglBlendEquation glBlendEquation
|
|
#define qglBlendEquationSeparate glBlendEquationSeparate
|
|
#define qglBlendFunc glBlendFunc
|
|
#define qglBlendFuncSeparate glBlendFuncSeparate
|
|
#define qglBufferData glBufferData
|
|
#define qglBufferSubData glBufferSubData
|
|
#define qglCheckFramebufferStatusEXT glCheckFramebufferStatus
|
|
#define qglClear glClear
|
|
#define qglClearColor glClearColor
|
|
#define qglClearDepthf glClearDepthf
|
|
#define qglClearStencil glClearStencil
|
|
#define qglColorMask glColorMask
|
|
#define qglCompileShader glCompileShader
|
|
#define qglCompressedTexImage2D glCompressedTexImage2D
|
|
#define qglCompressedTexSubImage2D glCompressedTexSubImage2D
|
|
#define qglCopyTexImage2D glCopyTexImage2D
|
|
#define qglCopyTexSubImage2D glCopyTexSubImage2D
|
|
#define qglCreateProgram glCreateProgram
|
|
#define qglCreateShader glCreateShader
|
|
#define qglCullFace glCullFace
|
|
#define qglDeleteBuffers glDeleteBuffers
|
|
#define qglDeleteFramebuffers glDeleteFramebuffers
|
|
#define qglDeleteProgram glDeleteProgram
|
|
#define qglDeleteRenderbuffers glDeleteRenderbuffers
|
|
#define qglDeleteShader glDeleteShader
|
|
#define qglDeleteTextures glDeleteTextures
|
|
#define qglDepthFunc glDepthFunc
|
|
#define qglDepthMask glDepthMask
|
|
#define qglDepthRangef glDepthRangef
|
|
#define qglDetachShader glDetachShader
|
|
#define qglDisable glDisable
|
|
#define qglDisableVertexAttribArray glDisableVertexAttribArray
|
|
#define qglDrawArrays glDrawArrays
|
|
#define qglDrawElements glDrawElements
|
|
#define qglEnable glEnable
|
|
#define qglEnableVertexAttribArray glEnableVertexAttribArray
|
|
#define qglFinish glFinish
|
|
#define qglFlush glFlush
|
|
#define qglFramebufferRenderbufferEXT glFramebufferRenderbuffer
|
|
#define qglFramebufferTexture2D glFramebufferTexture2D
|
|
#define qglFrontFace glFrontFace
|
|
#define qglGenBuffers glGenBuffers
|
|
#define qglGenerateMipmap glGenerateMipmap
|
|
#define qglGenFramebuffers glGenFramebuffers
|
|
#define qglGenRenderbuffersEXT glGenRenderbuffers
|
|
#define qglGenTextures glGenTextures
|
|
#define qglGetActiveAttrib glGetActiveAttrib
|
|
#define qglGetActiveUniform glGetActiveUniform
|
|
#define qglGetAttachedShaders glGetAttachedShaders
|
|
#define qglGetAttribLocation glGetAttribLocation
|
|
#define qglGetBooleanv glGetBooleanv
|
|
#define qglGetBufferParameteriv glGetBufferParameteriv
|
|
#define qglGetError glGetError
|
|
#define qglGetFloatv glGetFloatv
|
|
#define qglGetFramebufferAttachmentParameteriv glGetFramebufferAttachmentParameteriv
|
|
#define qglGetIntegerv glGetIntegerv
|
|
#define qglGetProgramiv glGetProgramiv
|
|
#define qglGetProgramInfoLog glGetProgramInfoLog
|
|
#define qglGetRenderbufferParameteriv glGetRenderbufferParameteriv
|
|
#define qglGetShaderiv glGetShaderiv
|
|
#define qglGetShaderInfoLog glGetShaderInfoLog
|
|
#define qglGetShaderPrecisionFormat glGetShaderPrecisionFormat
|
|
#define qglGetShaderSource glGetShaderSource
|
|
#define qglGetString glGetString
|
|
#define qglGetTexParameterfv glGetTexParameterfv
|
|
#define qglGetTexParameteriv glGetTexParameteriv
|
|
#define qglGetUniformfv glGetUniformfv
|
|
#define qglGetUniformiv glGetUniformiv
|
|
#define qglGetUniformLocation glGetUniformLocation
|
|
#define qglGetVertexAttribfv glGetVertexAttribfv
|
|
#define qglGetVertexAttribiv glGetVertexAttribiv
|
|
#define qglGetVertexAttribPointerv glGetVertexAttribPointerv
|
|
#define qglHint glHint
|
|
#define qglIsBuffer glIsBuffer
|
|
#define qglIsEnabled glIsEnabled
|
|
#define qglIsFramebuffer glIsFramebuffer
|
|
#define qglIsProgram glIsProgram
|
|
#define qglIsRenderbuffer glIsRenderbuffer
|
|
#define qglIsShader glIsShader
|
|
#define qglIsTexture glIsTexture
|
|
#define qglLineWidth glLineWidth
|
|
#define qglLinkProgram glLinkProgram
|
|
#define qglPixelStorei glPixelStorei
|
|
#define qglPolygonOffset glPolygonOffset
|
|
#define qglReadPixels glReadPixels
|
|
#define qglReleaseShaderCompiler glReleaseShaderCompiler
|
|
#define qglRenderbufferStorageEXT glRenderbufferStorage
|
|
#define qglSampleCoverage glSampleCoverage
|
|
#define qglScissor glScissor
|
|
#define qglShaderBinary glShaderBinary
|
|
#define qglShaderSource glShaderSource
|
|
#define qglStencilFunc glStencilFunc
|
|
#define qglStencilFuncSeparate glStencilFuncSeparate
|
|
#define qglStencilMask glStencilMask
|
|
#define qglStencilMaskSeparate glStencilMaskSeparate
|
|
#define qglStencilOp glStencilOp
|
|
#define qglStencilOpSeparate glStencilOpSeparate
|
|
#define qglTexImage2D glTexImage2D
|
|
#define qglTexParameterf glTexParameterf
|
|
#define qglTexParameterfv glTexParameterfv
|
|
#define qglTexParameteri glTexParameteri
|
|
#define qglTexParameteriv glTexParameteriv
|
|
#define qglTexSubImage2D glTexSubImage2D
|
|
#define qglUniform1f glUniform1f
|
|
#define qglUniform1fv glUniform1fv
|
|
#define qglUniform1i glUniform1i
|
|
#define qglUniform1iv glUniform1iv
|
|
#define qglUniform2f glUniform2f
|
|
#define qglUniform2fv glUniform2fv
|
|
#define qglUniform2i glUniform2i
|
|
#define qglUniform2iv glUniform2iv
|
|
#define qglUniform3f glUniform3f
|
|
#define qglUniform3fv glUniform3fv
|
|
#define qglUniform3i glUniform3i
|
|
#define qglUniform3iv glUniform3iv
|
|
#define qglUniform4f glUniform4f
|
|
#define qglUniform4fv glUniform4fv
|
|
#define qglUniform4i glUniform4i
|
|
#define qglUniform4iv glUniform4iv
|
|
#define qglUniformMatrix2fv glUniformMatrix2fv
|
|
#define qglUniformMatrix3fv glUniformMatrix3fv
|
|
#define qglUniformMatrix4fv glUniformMatrix4fv
|
|
#define qglUseProgram glUseProgram
|
|
#define qglValidateProgram glValidateProgram
|
|
#define qglVertexAttrib1f glVertexAttrib1f
|
|
#define qglVertexAttrib1fv glVertexAttrib1fv
|
|
#define qglVertexAttrib2f glVertexAttrib2f
|
|
#define qglVertexAttrib2fv glVertexAttrib2fv
|
|
#define qglVertexAttrib3f glVertexAttrib3f
|
|
#define qglVertexAttrib3fv glVertexAttrib3fv
|
|
#define qglVertexAttrib4f glVertexAttrib4f
|
|
#define qglVertexAttrib4fv glVertexAttrib4fv
|
|
#define qglVertexAttribPointer glVertexAttribPointer
|
|
#define qglViewport glViewport
|
|
|
|
#define qglGenFramebuffersEXT qglGenFramebuffers
|
|
#define qglDeleteFramebuffersEXT qglDeleteFramebuffers
|
|
#define qglBindFramebufferEXT qglBindFramebuffer
|
|
#define qglFramebufferTexture2DEXT qglFramebufferTexture2D
|
|
#define qglDeleteRenderbuffersEXT qglDeleteRenderbuffers
|
|
//#define qglCompressedTexImage2DARB qglCompressedTexImage2D
|
|
|
|
#define qglCreateProgramObjectARB glCreateProgram
|
|
#define qglDeleteProgramObject_ glDeleteProgram
|
|
#define qglDeleteShaderObject_ glDeleteShader
|
|
#define qglUseProgramObjectARB glUseProgram
|
|
#define qglCreateShaderObjectARB glCreateShader
|
|
#define qglShaderSourceARB glShaderSource
|
|
#define qglCompileShaderARB glCompileShader
|
|
#define qglGetProgramParameteriv_ glGetProgramiv
|
|
#define qglGetShaderParameteriv_ glGetShaderiv
|
|
#define qglAttachObjectARB glAttachShader
|
|
#define qglGetProgramInfoLog_ glGetProgramInfoLog
|
|
#define qglGetShaderInfoLog_ glGetShaderInfoLog
|
|
#define qglLinkProgramARB glLinkProgram
|
|
#define qglBindAttribLocationARB glBindAttribLocation
|
|
#define qglGetAttribLocationARB glGetAttribLocation
|
|
#define qglGetUniformLocationARB glGetUniformLocation
|
|
#define qglUniformMatrix4fvARB glUniformMatrix4fv
|
|
#define qglUniform4fARB glUniform4f
|
|
#define qglUniform4fvARB glUniform4fv
|
|
#define qglUniform3fARB glUniform3f
|
|
#define qglUniform3fvARB glUniform3fv
|
|
#define qglUniform2fvARB glUniform2fv
|
|
#define qglUniform1iARB glUniform1i
|
|
#define qglUniform1fARB glUniform1f
|
|
|
|
#define qglGenBuffersARB glGenBuffers
|
|
#define qglDeleteBuffersARB glDeleteBuffers
|
|
#define qglBindBufferARB glBindBuffer
|
|
#define qglBufferDataARB glBufferData
|
|
#define qglBufferSubDataARB glBufferSubData
|
|
#define qglMapBufferARB glMapBuffer
|
|
#define qglUnmapBufferARB glUnmapBuffer
|
|
|
|
#else
|
|
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 *qglClearDepthf) (GLclampf depth);
|
|
extern void (APIENTRY *qglClearStencil) (GLint s);
|
|
extern void (APIENTRY *qglColorMask) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
|
|
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 *qglDepthRangef) (GLclampf zNear, GLclampf zFar);
|
|
extern void (APIENTRY *qglDisable) (GLenum cap);
|
|
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 *qglFinish) (void);
|
|
extern void (APIENTRY *qglFlush) (void);
|
|
extern void (APIENTRY *qglFrontFace) (GLenum mode);
|
|
extern void (APIENTRY *qglGenTextures) (GLsizei n, GLuint *textures);
|
|
extern void (APIENTRY *qglGenerateMipmap)(GLenum target);
|
|
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 const GLubyte * (APIENTRY *qglGetString) (GLenum name);
|
|
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 *qglLineWidth) (GLfloat width);
|
|
extern void (APIENTRY *qglPixelStorei) (GLenum pname, GLint param);
|
|
extern void (APIENTRY *qglPolygonOffset) (GLfloat factor, GLfloat units);
|
|
extern void (APIENTRY *qglReadPixels) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
|
|
extern void (APIENTRY *qglScissor) (GLint x, GLint y, GLsizei width, GLsizei height);
|
|
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 *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 *qglViewport) (GLint x, GLint y, GLsizei width, GLsizei height);
|
|
extern FTEPFNGLCOMPRESSEDTEXIMAGE2DARBPROC qglCompressedTexImage2D;
|
|
extern void (APIENTRY *qglCompressedTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); //gl1.3
|
|
|
|
extern void (APIENTRY *qglGenFramebuffersEXT)(GLsizei n, GLuint* ids);
|
|
extern void (APIENTRY *qglDeleteFramebuffersEXT)(GLsizei n, const GLuint* ids);
|
|
extern void (APIENTRY *qglBindFramebufferEXT)(GLenum target, GLuint id);
|
|
extern void (APIENTRY *qglGenRenderbuffersEXT)(GLsizei n, GLuint* ids);
|
|
extern void (APIENTRY *qglDeleteRenderbuffersEXT)(GLsizei n, const GLuint* ids);
|
|
extern void (APIENTRY *qglBindRenderbufferEXT)(GLenum target, GLuint id);
|
|
extern void (APIENTRY *qglRenderbufferStorageEXT)(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height);
|
|
extern void (APIENTRY *qglFramebufferTexture2DEXT)(GLenum target, GLenum attachmentPoint, GLenum textureTarget, GLuint textureId, GLint level);
|
|
extern void (APIENTRY *qglFramebufferRenderbufferEXT)(GLenum target, GLenum attachmentPoint, GLenum textureTarget, GLuint textureId);
|
|
extern GLenum (APIENTRY *qglCheckFramebufferStatusEXT)(GLenum target);
|
|
extern void (APIENTRY *qglGetFramebufferAttachmentParameteriv)(GLenum target, GLenum attachment, GLenum pname, GLint * params);
|
|
|
|
//glslang - arb_shader_objects
|
|
extern FTEPFNGLCREATEPROGRAMOBJECTARBPROC qglCreateProgramObjectARB;
|
|
extern FTEPFNGLDELETEOBJECTARBPROC qglDeleteProgramObject_;
|
|
extern FTEPFNGLDELETEOBJECTARBPROC qglDeleteShaderObject_;
|
|
extern FTEPFNGLUSEPROGRAMOBJECTARBPROC qglUseProgramObjectARB;
|
|
extern FTEPFNGLCREATESHADEROBJECTARBPROC qglCreateShaderObjectARB;
|
|
extern FTEPFNGLSHADERSOURCEARBPROC qglShaderSourceARB;
|
|
extern FTEPFNGLCOMPILESHADERARBPROC qglCompileShaderARB;
|
|
extern FTEPFNGLGETOBJECTPARAMETERIVARBPROC qglGetProgramParameteriv_;
|
|
extern FTEPFNGLGETOBJECTPARAMETERIVARBPROC qglGetShaderParameteriv_;
|
|
extern FTEPFNGLATTACHOBJECTARBPROC qglAttachObjectARB;
|
|
extern FTEPFNGLGETINFOLOGARBPROC qglGetProgramInfoLog_;
|
|
extern FTEPFNGLGETINFOLOGARBPROC qglGetShaderInfoLog_;
|
|
extern FTEPFNGLLINKPROGRAMARBPROC qglLinkProgramARB;
|
|
extern FTEPFNGLBINDATTRIBLOCATIONARBPROC qglBindAttribLocationARB;
|
|
extern FTEPFNGLGETATTRIBLOCATIONARBPROC qglGetAttribLocationARB;
|
|
extern FTEPFNGLGETUNIFORMLOCATIONARBPROC qglGetUniformLocationARB;
|
|
extern FTEPFNGLUNIFORMMATRIXPROC qglUniformMatrix4fvARB;
|
|
extern FTEPFNGLUNIFORM4FARBPROC qglUniform4fARB;
|
|
extern FTEPFNGLUNIFORM4FVARBPROC qglUniform4fvARB;
|
|
extern FTEPFNGLUNIFORM3FARBPROC qglUniform3fARB;
|
|
extern FTEPFNGLUNIFORM3FVARBPROC qglUniform3fvARB;
|
|
extern FTEPFNGLUNIFORM2FVARBPROC qglUniform2fvARB;
|
|
extern FTEPFNGLUNIFORM1IARBPROC qglUniform1iARB;
|
|
extern FTEPFNGLUNIFORM1FARBPROC qglUniform1fARB;
|
|
extern FTEPFNGLVERTEXATTRIB4FARBPROC qglVertexAttrib4f;
|
|
extern FTEPFNGLVERTEXATTRIBPOINTER qglVertexAttribPointer;
|
|
extern FTEPFNGLGETVERTEXATTRIBIV qglGetVertexAttribiv;
|
|
extern FTEPFNGLENABLEVERTEXATTRIBARRAY qglEnableVertexAttribArray;
|
|
extern FTEPFNGLDISABLEVERTEXATTRIBARRAY qglDisableVertexAttribArray;
|
|
|
|
extern void (APIENTRY *qglGenBuffersARB)(GLsizei n, GLuint* ids);
|
|
extern void (APIENTRY *qglDeleteBuffersARB)(GLsizei n, GLuint* ids);
|
|
extern void (APIENTRY *qglBindBufferARB)(GLenum target, GLuint id);
|
|
extern void (APIENTRY *qglBufferDataARB)(GLenum target, GLsizei size, const void* data, GLenum usage);
|
|
extern void (APIENTRY *qglBufferSubDataARB)(GLenum target, GLint offset, GLsizei size, void* data);
|
|
extern void *(APIENTRY *qglMapBufferARB)(GLenum target, GLenum access);
|
|
extern GLboolean (APIENTRY *qglUnmapBufferARB)(GLenum target);
|
|
|
|
#define GLintptr qintptr_t
|
|
#define GLsizeiptr quintptr_t
|
|
#ifndef GL_MAP_READ_BIT
|
|
#define GL_MAP_READ_BIT 1
|
|
#endif
|
|
extern void *(APIENTRY *qglMapBufferRange)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
|
|
|
|
#endif
|
|
extern void (APIENTRY *qglBufferStorage)(GLenum target, GLsizeiptr size, const GLvoid *data, GLbitfield flags);
|
|
|
|
extern void (APIENTRY *qglGenQueriesARB)(GLsizei n, GLuint *ids);
|
|
extern void (APIENTRY *qglDeleteQueriesARB)(GLsizei n, const GLuint *ids);
|
|
//extern GLboolean (APIENTRY *qglIsQueryARB)(GLuint id);
|
|
extern void (APIENTRY *qglBeginQueryARB)(GLenum target, GLuint id);
|
|
extern void (APIENTRY *qglEndQueryARB)(GLenum target);
|
|
//extern void (APIENTRY *qglGetQueryivARB)(GLenum target, GLenum pname, GLint *params);
|
|
//extern void (APIENTRY *qglGetQueryObjectivARB)(GLuint id, GLenum pname, GLint *params);
|
|
extern void (APIENTRY *qglGetQueryObjectuivARB)(GLuint id, GLenum pname, GLuint *params);
|
|
|
|
extern void (APIENTRY *qglDrawBuffers)(GLsizei n, GLsizei *ids); //gl2
|
|
|
|
extern GLenum (APIENTRY *qglGetGraphicsResetStatus) (void);
|
|
|
|
//non-gles2 gl functions
|
|
extern void (APIENTRY *qglAccum) (GLenum op, GLfloat value);
|
|
extern void (APIENTRY *qglAlphaFunc) (GLenum func, GLclampf ref);
|
|
extern GLboolean (APIENTRY *qglAreTexturesResident) (GLsizei n, const GLuint *textures, GLboolean *residences);
|
|
extern void (APIENTRY *qglArrayElement) (GLint i);
|
|
extern void (APIENTRY *qglBitmap) (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
|
|
extern void (APIENTRY *qglCallList) (GLuint list);
|
|
extern void (APIENTRY *qglCallLists) (GLsizei n, GLenum type, const GLvoid *lists);
|
|
extern void (APIENTRY *qglClearAccum) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
|
|
extern void (APIENTRY *qglClearDepth) (GLclampd depth);
|
|
extern void (APIENTRY *qglClearIndex) (GLfloat c);
|
|
extern void (APIENTRY *qglClipPlane) (GLenum plane, const GLdouble *equation);
|
|
extern void (APIENTRY *qglColor3b) (GLbyte red, GLbyte green, GLbyte blue);
|
|
extern void (APIENTRY *qglColor3bv) (const GLbyte *v);
|
|
extern void (APIENTRY *qglColor3d) (GLdouble red, GLdouble green, GLdouble blue);
|
|
extern void (APIENTRY *qglColor3dv) (const GLdouble *v);
|
|
extern void (APIENTRY *qglColor3f) (GLfloat red, GLfloat green, GLfloat blue);
|
|
extern void (APIENTRY *qglColor3fv) (const GLfloat *v);
|
|
extern void (APIENTRY *qglColor3i) (GLint red, GLint green, GLint blue);
|
|
extern void (APIENTRY *qglColor3iv) (const GLint *v);
|
|
extern void (APIENTRY *qglColor3s) (GLshort red, GLshort green, GLshort blue);
|
|
extern void (APIENTRY *qglColor3sv) (const GLshort *v);
|
|
extern void (APIENTRY *qglColor3ub) (GLubyte red, GLubyte green, GLubyte blue);
|
|
extern void (APIENTRY *qglColor3ubv) (const GLubyte *v);
|
|
extern void (APIENTRY *qglColor3ui) (GLuint red, GLuint green, GLuint blue);
|
|
extern void (APIENTRY *qglColor3uiv) (const GLuint *v);
|
|
extern void (APIENTRY *qglColor3us) (GLushort red, GLushort green, GLushort blue);
|
|
extern void (APIENTRY *qglColor3usv) (const GLushort *v);
|
|
extern void (APIENTRY *qglColor4b) (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
|
|
extern void (APIENTRY *qglColor4bv) (const GLbyte *v);
|
|
extern void (APIENTRY *qglColor4d) (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
|
|
extern void (APIENTRY *qglColor4dv) (const GLdouble *v);
|
|
extern void (APIENTRY *qglColor4f) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
|
|
extern void (APIENTRY *qglColor4fv) (const GLfloat *v);
|
|
extern void (APIENTRY *qglColor4i) (GLint red, GLint green, GLint blue, GLint alpha);
|
|
extern void (APIENTRY *qglColor4iv) (const GLint *v);
|
|
extern void (APIENTRY *qglColor4s) (GLshort red, GLshort green, GLshort blue, GLshort alpha);
|
|
extern void (APIENTRY *qglColor4sv) (const GLshort *v);
|
|
extern void (APIENTRY *qglColor4ub) (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
|
|
extern void (APIENTRY *qglColor4ubv) (const GLubyte *v);
|
|
extern void (APIENTRY *qglColor4ui) (GLuint red, GLuint green, GLuint blue, GLuint alpha);
|
|
extern void (APIENTRY *qglColor4uiv) (const GLuint *v);
|
|
extern void (APIENTRY *qglColor4us) (GLushort red, GLushort green, GLushort blue, GLushort alpha);
|
|
extern void (APIENTRY *qglColor4usv) (const GLushort *v);
|
|
extern void (APIENTRY *qglColorMaterial) (GLenum face, GLenum mode);
|
|
extern void (APIENTRY *qglColorPointer) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
|
|
extern void (APIENTRY *qglCopyPixels) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
|
|
extern void (APIENTRY *qglCopyTexImage1D) (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
|
|
extern void (APIENTRY *qglCopyTexSubImage1D) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
|
|
extern void (APIENTRY *qglDeleteLists) (GLuint list, GLsizei range);
|
|
extern void (APIENTRY *qglDepthRange) (GLclampd zNear, GLclampd zFar);
|
|
extern void (APIENTRY *qglDisableClientState) (GLenum array);
|
|
extern void (APIENTRY *qglDrawBuffer) (GLenum mode);
|
|
extern void (APIENTRY *qglDrawPixels) (GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
|
|
extern void (APIENTRY *qglEdgeFlag) (GLboolean flag);
|
|
extern void (APIENTRY *qglEdgeFlagPointer) (GLsizei stride, const GLvoid *pointer);
|
|
extern void (APIENTRY *qglEdgeFlagv) (const GLboolean *flag);
|
|
extern void (APIENTRY *qglEndList) (void);
|
|
extern void (APIENTRY *qglEvalCoord1d) (GLdouble u);
|
|
extern void (APIENTRY *qglEvalCoord1dv) (const GLdouble *u);
|
|
extern void (APIENTRY *qglEvalCoord1f) (GLfloat u);
|
|
extern void (APIENTRY *qglEvalCoord1fv) (const GLfloat *u);
|
|
extern void (APIENTRY *qglEvalCoord2d) (GLdouble u, GLdouble v);
|
|
extern void (APIENTRY *qglEvalCoord2dv) (const GLdouble *u);
|
|
extern void (APIENTRY *qglEvalCoord2f) (GLfloat u, GLfloat v);
|
|
extern void (APIENTRY *qglEvalCoord2fv) (const GLfloat *u);
|
|
extern void (APIENTRY *qglEvalMesh1) (GLenum mode, GLint i1, GLint i2);
|
|
extern void (APIENTRY *qglEvalMesh2) (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
|
|
extern void (APIENTRY *qglEvalPoint1) (GLint i);
|
|
extern void (APIENTRY *qglEvalPoint2) (GLint i, GLint j);
|
|
extern void (APIENTRY *qglFeedbackBuffer) (GLsizei size, GLenum type, GLfloat *buffer);
|
|
extern void (APIENTRY *qglFogf) (GLenum pname, GLfloat param);
|
|
extern void (APIENTRY *qglFogfv) (GLenum pname, const GLfloat *params);
|
|
extern void (APIENTRY *qglFogi) (GLenum pname, GLint param);
|
|
extern void (APIENTRY *qglFogiv) (GLenum pname, const GLint *params);
|
|
extern void (APIENTRY *qglFrustum) (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
|
|
extern GLuint (APIENTRY *qglGenLists) (GLsizei range);
|
|
extern void (APIENTRY *qglGetClipPlane) (GLenum plane, GLdouble *equation);
|
|
extern void (APIENTRY *qglGetDoublev) (GLenum pname, GLdouble *params);
|
|
extern void (APIENTRY *qglGetLightfv) (GLenum light, GLenum pname, GLfloat *params);
|
|
extern void (APIENTRY *qglGetLightiv) (GLenum light, GLenum pname, GLint *params);
|
|
extern void (APIENTRY *qglGetMapdv) (GLenum target, GLenum query, GLdouble *v);
|
|
extern void (APIENTRY *qglGetMapfv) (GLenum target, GLenum query, GLfloat *v);
|
|
extern void (APIENTRY *qglGetMapiv) (GLenum target, GLenum query, GLint *v);
|
|
extern void (APIENTRY *qglGetMaterialfv) (GLenum face, GLenum pname, GLfloat *params);
|
|
extern void (APIENTRY *qglGetMaterialiv) (GLenum face, GLenum pname, GLint *params);
|
|
extern void (APIENTRY *qglGetPixelMapfv) (GLenum map, GLfloat *values);
|
|
extern void (APIENTRY *qglGetPixelMapuiv) (GLenum map, GLuint *values);
|
|
extern void (APIENTRY *qglGetPixelMapusv) (GLenum map, GLushort *values);
|
|
extern void (APIENTRY *qglGetPointerv) (GLenum pname, GLvoid* *params);
|
|
extern void (APIENTRY *qglGetPolygonStipple) (GLubyte *mask);
|
|
extern void (APIENTRY *qglGetTexEnvfv) (GLenum target, GLenum pname, GLfloat *params);
|
|
extern void (APIENTRY *qglGetTexEnviv) (GLenum target, GLenum pname, GLint *params);
|
|
extern void (APIENTRY *qglGetTexGendv) (GLenum coord, GLenum pname, GLdouble *params);
|
|
extern void (APIENTRY *qglGetTexGenfv) (GLenum coord, GLenum pname, GLfloat *params);
|
|
extern void (APIENTRY *qglGetTexGeniv) (GLenum coord, GLenum pname, GLint *params);
|
|
extern void (APIENTRY *qglGetTexImage) (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
|
|
extern void (APIENTRY *qglGetTexLevelParameterfv) (GLenum target, GLint level, GLenum pname, GLfloat *params);
|
|
extern void (APIENTRY *qglGetTexLevelParameteriv) (GLenum target, GLint level, GLenum pname, GLint *params);
|
|
extern void (APIENTRY *qglIndexMask) (GLuint mask);
|
|
extern void (APIENTRY *qglIndexPointer) (GLenum type, GLsizei stride, const GLvoid *pointer);
|
|
extern void (APIENTRY *qglIndexd) (GLdouble c);
|
|
extern void (APIENTRY *qglIndexdv) (const GLdouble *c);
|
|
extern void (APIENTRY *qglIndexf) (GLfloat c);
|
|
extern void (APIENTRY *qglIndexfv) (const GLfloat *c);
|
|
extern void (APIENTRY *qglIndexi) (GLint c);
|
|
extern void (APIENTRY *qglIndexiv) (const GLint *c);
|
|
extern void (APIENTRY *qglIndexs) (GLshort c);
|
|
extern void (APIENTRY *qglIndexsv) (const GLshort *c);
|
|
extern void (APIENTRY *qglIndexub) (GLubyte c);
|
|
extern void (APIENTRY *qglIndexubv) (const GLubyte *c);
|
|
extern void (APIENTRY *qglInitNames) (void);
|
|
extern void (APIENTRY *qglInterleavedArrays) (GLenum format, GLsizei stride, const GLvoid *pointer);
|
|
extern GLboolean (APIENTRY *qglIsList) (GLuint list);
|
|
extern void (APIENTRY *qglLightModelf) (GLenum pname, GLfloat param);
|
|
extern void (APIENTRY *qglLightModelfv) (GLenum pname, const GLfloat *params);
|
|
extern void (APIENTRY *qglLightModeli) (GLenum pname, GLint param);
|
|
extern void (APIENTRY *qglLightModeliv) (GLenum pname, const GLint *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 *qglLighti) (GLenum light, GLenum pname, GLint param);
|
|
extern void (APIENTRY *qglLightiv) (GLenum light, GLenum pname, const GLint *params);
|
|
extern void (APIENTRY *qglLineStipple) (GLint factor, GLushort pattern);
|
|
extern void (APIENTRY *qglListBase) (GLuint base);
|
|
extern void (APIENTRY *qglLoadIdentity) (void);
|
|
extern void (APIENTRY *qglLoadMatrixd) (const GLdouble *m);
|
|
extern void (APIENTRY *qglLoadMatrixf) (const GLfloat *m);
|
|
extern void (APIENTRY *qglLoadName) (GLuint name);
|
|
extern void (APIENTRY *qglLogicOp) (GLenum opcode);
|
|
extern void (APIENTRY *qglMap1d) (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
|
|
extern void (APIENTRY *qglMap1f) (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
|
|
extern void (APIENTRY *qglMap2d) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
|
|
extern void (APIENTRY *qglMap2f) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
|
|
extern void (APIENTRY *qglMapGrid1d) (GLint un, GLdouble u1, GLdouble u2);
|
|
extern void (APIENTRY *qglMapGrid1f) (GLint un, GLfloat u1, GLfloat u2);
|
|
extern void (APIENTRY *qglMapGrid2d) (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
|
|
extern void (APIENTRY *qglMapGrid2f) (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
|
|
extern void (APIENTRY *qglMaterialf) (GLenum face, GLenum pname, GLfloat param);
|
|
extern void (APIENTRY *qglMaterialfv) (GLenum face, GLenum pname, const GLfloat *params);
|
|
extern void (APIENTRY *qglMateriali) (GLenum face, GLenum pname, GLint param);
|
|
extern void (APIENTRY *qglMaterialiv) (GLenum face, GLenum pname, const GLint *params);
|
|
extern void (APIENTRY *qglMatrixMode) (GLenum mode);
|
|
extern void (APIENTRY *qglMultMatrixd) (const GLdouble *m);
|
|
extern void (APIENTRY *qglMultMatrixf) (const GLfloat *m);
|
|
extern void (APIENTRY *qglNewList) (GLuint list, GLenum mode);
|
|
extern void (APIENTRY *qglNormal3b) (GLbyte nx, GLbyte ny, GLbyte nz);
|
|
extern void (APIENTRY *qglNormal3bv) (const GLbyte *v);
|
|
extern void (APIENTRY *qglNormal3d) (GLdouble nx, GLdouble ny, GLdouble nz);
|
|
extern void (APIENTRY *qglNormal3dv) (const GLdouble *v);
|
|
extern void (APIENTRY *qglNormal3f) (GLfloat nx, GLfloat ny, GLfloat nz);
|
|
extern void (APIENTRY *qglNormal3fv) (const GLfloat *v);
|
|
extern void (APIENTRY *qglNormal3i) (GLint nx, GLint ny, GLint nz);
|
|
extern void (APIENTRY *qglNormal3iv) (const GLint *v);
|
|
extern void (APIENTRY *qglNormal3s) (GLshort nx, GLshort ny, GLshort nz);
|
|
extern void (APIENTRY *qglNormal3sv) (const GLshort *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 *qglPassThrough) (GLfloat token);
|
|
extern void (APIENTRY *qglPixelMapfv) (GLenum map, GLsizei mapsize, const GLfloat *values);
|
|
extern void (APIENTRY *qglPixelMapuiv) (GLenum map, GLsizei mapsize, const GLuint *values);
|
|
extern void (APIENTRY *qglPixelMapusv) (GLenum map, GLsizei mapsize, const GLushort *values);
|
|
extern void (APIENTRY *qglPixelStoref) (GLenum pname, GLfloat param);
|
|
extern void (APIENTRY *qglPixelTransferf) (GLenum pname, GLfloat param);
|
|
extern void (APIENTRY *qglPixelTransferi) (GLenum pname, GLint param);
|
|
extern void (APIENTRY *qglPixelZoom) (GLfloat xfactor, GLfloat yfactor);
|
|
extern void (APIENTRY *qglPointSize) (GLfloat size);
|
|
extern void (APIENTRY *qglPolygonMode) (GLenum face, GLenum mode);
|
|
extern void (APIENTRY *qglPolygonStipple) (const GLubyte *mask);
|
|
extern void (APIENTRY *qglPopAttrib) (void);
|
|
extern void (APIENTRY *qglPopClientAttrib) (void);
|
|
extern void (APIENTRY *qglPopMatrix) (void);
|
|
extern void (APIENTRY *qglPopName) (void);
|
|
extern void (APIENTRY *qglPrioritizeTextures) (GLsizei n, const GLuint *textures, const GLclampf *priorities);
|
|
extern void (APIENTRY *qglPushAttrib) (GLbitfield mask);
|
|
extern void (APIENTRY *qglPushClientAttrib) (GLbitfield mask);
|
|
extern void (APIENTRY *qglPushMatrix) (void);
|
|
extern void (APIENTRY *qglPushName) (GLuint name);
|
|
extern void (APIENTRY *qglRasterPos2d) (GLdouble x, GLdouble y);
|
|
extern void (APIENTRY *qglRasterPos2dv) (const GLdouble *v);
|
|
extern void (APIENTRY *qglRasterPos2f) (GLfloat x, GLfloat y);
|
|
extern void (APIENTRY *qglRasterPos2fv) (const GLfloat *v);
|
|
extern void (APIENTRY *qglRasterPos2i) (GLint x, GLint y);
|
|
extern void (APIENTRY *qglRasterPos2iv) (const GLint *v);
|
|
extern void (APIENTRY *qglRasterPos2s) (GLshort x, GLshort y);
|
|
extern void (APIENTRY *qglRasterPos2sv) (const GLshort *v);
|
|
extern void (APIENTRY *qglRasterPos3d) (GLdouble x, GLdouble y, GLdouble z);
|
|
extern void (APIENTRY *qglRasterPos3dv) (const GLdouble *v);
|
|
extern void (APIENTRY *qglRasterPos3f) (GLfloat x, GLfloat y, GLfloat z);
|
|
extern void (APIENTRY *qglRasterPos3fv) (const GLfloat *v);
|
|
extern void (APIENTRY *qglRasterPos3i) (GLint x, GLint y, GLint z);
|
|
extern void (APIENTRY *qglRasterPos3iv) (const GLint *v);
|
|
extern void (APIENTRY *qglRasterPos3s) (GLshort x, GLshort y, GLshort z);
|
|
extern void (APIENTRY *qglRasterPos3sv) (const GLshort *v);
|
|
extern void (APIENTRY *qglRasterPos4d) (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
|
|
extern void (APIENTRY *qglRasterPos4dv) (const GLdouble *v);
|
|
extern void (APIENTRY *qglRasterPos4f) (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
|
|
extern void (APIENTRY *qglRasterPos4fv) (const GLfloat *v);
|
|
extern void (APIENTRY *qglRasterPos4i) (GLint x, GLint y, GLint z, GLint w);
|
|
extern void (APIENTRY *qglRasterPos4iv) (const GLint *v);
|
|
extern void (APIENTRY *qglRasterPos4s) (GLshort x, GLshort y, GLshort z, GLshort w);
|
|
extern void (APIENTRY *qglRasterPos4sv) (const GLshort *v);
|
|
extern void (APIENTRY *qglRectd) (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
|
|
extern void (APIENTRY *qglRectdv) (const GLdouble *v1, const GLdouble *v2);
|
|
extern void (APIENTRY *qglRectf) (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
|
|
extern void (APIENTRY *qglRectfv) (const GLfloat *v1, const GLfloat *v2);
|
|
extern void (APIENTRY *qglRecti) (GLint x1, GLint y1, GLint x2, GLint y2);
|
|
extern void (APIENTRY *qglRectiv) (const GLint *v1, const GLint *v2);
|
|
extern void (APIENTRY *qglRects) (GLshort x1, GLshort y1, GLshort x2, GLshort y2);
|
|
extern void (APIENTRY *qglRectsv) (const GLshort *v1, const GLshort *v2);
|
|
extern GLint (APIENTRY *qglRenderMode) (GLenum mode);
|
|
extern void (APIENTRY *qglRotated) (GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
|
|
extern void (APIENTRY *qglRotatef) (GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
|
|
extern void (APIENTRY *qglScaled) (GLdouble x, GLdouble y, GLdouble z);
|
|
extern void (APIENTRY *qglScalef) (GLfloat x, GLfloat y, GLfloat z);
|
|
extern void (APIENTRY *qglSelectBuffer) (GLsizei size, GLuint *buffer);
|
|
extern void (APIENTRY *qglShadeModel) (GLenum mode);
|
|
extern void (APIENTRY *qglTexCoord1d) (GLdouble s);
|
|
extern void (APIENTRY *qglTexCoord1dv) (const GLdouble *v);
|
|
extern void (APIENTRY *qglTexCoord1f) (GLfloat s);
|
|
extern void (APIENTRY *qglTexCoord1fv) (const GLfloat *v);
|
|
extern void (APIENTRY *qglTexCoord1i) (GLint s);
|
|
extern void (APIENTRY *qglTexCoord1iv) (const GLint *v);
|
|
extern void (APIENTRY *qglTexCoord1s) (GLshort s);
|
|
extern void (APIENTRY *qglTexCoord1sv) (const GLshort *v);
|
|
extern void (APIENTRY *qglTexCoord2d) (GLdouble s, GLdouble t);
|
|
extern void (APIENTRY *qglTexCoord2dv) (const GLdouble *v);
|
|
extern void (APIENTRY *qglTexCoord2f) (GLfloat s, GLfloat t);
|
|
extern void (APIENTRY *qglTexCoord2fv) (const GLfloat *v);
|
|
extern void (APIENTRY *qglTexCoord2i) (GLint s, GLint t);
|
|
extern void (APIENTRY *qglTexCoord2iv) (const GLint *v);
|
|
extern void (APIENTRY *qglTexCoord2s) (GLshort s, GLshort t);
|
|
extern void (APIENTRY *qglTexCoord2sv) (const GLshort *v);
|
|
extern void (APIENTRY *qglTexCoord3d) (GLdouble s, GLdouble t, GLdouble r);
|
|
extern void (APIENTRY *qglTexCoord3dv) (const GLdouble *v);
|
|
extern void (APIENTRY *qglTexCoord3f) (GLfloat s, GLfloat t, GLfloat r);
|
|
extern void (APIENTRY *qglTexCoord3fv) (const GLfloat *v);
|
|
extern void (APIENTRY *qglTexCoord3i) (GLint s, GLint t, GLint r);
|
|
extern void (APIENTRY *qglTexCoord3iv) (const GLint *v);
|
|
extern void (APIENTRY *qglTexCoord3s) (GLshort s, GLshort t, GLshort r);
|
|
extern void (APIENTRY *qglTexCoord3sv) (const GLshort *v);
|
|
extern void (APIENTRY *qglTexCoord4d) (GLdouble s, GLdouble t, GLdouble r, GLdouble q);
|
|
extern void (APIENTRY *qglTexCoord4dv) (const GLdouble *v);
|
|
extern void (APIENTRY *qglTexCoord4f) (GLfloat s, GLfloat t, GLfloat r, GLfloat q);
|
|
extern void (APIENTRY *qglTexCoord4fv) (const GLfloat *v);
|
|
extern void (APIENTRY *qglTexCoord4i) (GLint s, GLint t, GLint r, GLint q);
|
|
extern void (APIENTRY *qglTexCoord4iv) (const GLint *v);
|
|
extern void (APIENTRY *qglTexCoord4s) (GLshort s, GLshort t, GLshort r, GLshort q);
|
|
extern void (APIENTRY *qglTexCoord4sv) (const GLshort *v);
|
|
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 *qglTexGend) (GLenum coord, GLenum pname, GLdouble param);
|
|
extern void (APIENTRY *qglTexGendv) (GLenum coord, GLenum pname, const GLdouble *params);
|
|
extern void (APIENTRY *qglTexGenf) (GLenum coord, GLenum pname, GLfloat param);
|
|
extern void (APIENTRY *qglTexGenfv) (GLenum coord, GLenum pname, const GLfloat *params);
|
|
extern void (APIENTRY *qglTexGeni) (GLenum coord, GLenum pname, GLint param);
|
|
extern void (APIENTRY *qglTexGeniv) (GLenum coord, GLenum pname, const GLint *params);
|
|
extern void (APIENTRY *qglTexImage1D) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
|
|
extern void (APIENTRY *qglTexImage3D) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
|
|
extern void (APIENTRY *qglTexSubImage1D) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
|
|
extern void (APIENTRY *qglTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
|
|
extern void (APIENTRY *qglTranslated) (GLdouble x, GLdouble y, GLdouble z);
|
|
extern void (APIENTRY *qglTranslatef) (GLfloat x, GLfloat y, GLfloat z);
|
|
|
|
extern FTEPFNGLUNIFORMMATRIXPROC qglUniformMatrix4x3fv;
|
|
extern FTEPFNGLUNIFORMMATRIXPROC qglUniformMatrix3x4fv;
|
|
|
|
extern FTEPFNGLCOMPRESSEDTEXIMAGE3DARBPROC qglCompressedTexImage3D;
|
|
extern void (APIENTRY *qglCompressedTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); //gl1.3
|
|
extern FTEPFNGLGETCOMPRESSEDTEXIMAGEARBPROC qglGetCompressedTexImage;
|
|
|
|
extern const GLubyte * (APIENTRY * qglGetStringi) (GLenum name, GLuint index);
|
|
|
|
/*
|
|
extern qboolean gl_arb_fragment_program;
|
|
extern PFNGLPROGRAMSTRINGARBPROC qglProgramStringARB;
|
|
extern PFNGLGETPROGRAMIVARBPROC qglGetProgramivARB;
|
|
extern PFNGLBINDPROGRAMARBPROC qglBindProgramARB;
|
|
extern PFNGLGENPROGRAMSARBPROC qglGenProgramsARB;
|
|
*/
|
|
|
|
extern FTEPFNGLLOCKARRAYSEXTPROC qglLockArraysEXT;
|
|
extern FTEPFNGLUNLOCKARRAYSEXTPROC qglUnlockArraysEXT;
|
|
|
|
typedef void (APIENTRY *lpSelTexFUNC) (GLenum en);
|
|
extern lpSelTexFUNC qglSelectTextureSGIS;
|
|
|
|
//these functions are not available in gles2, for one reason or another
|
|
extern void (APIENTRY *qglBegin) (GLenum mode);
|
|
extern void (APIENTRY *qglVertex2d) (GLdouble x, GLdouble y);
|
|
extern void (APIENTRY *qglVertex2dv) (const GLdouble *v);
|
|
extern void (APIENTRY *qglVertex2f) (GLfloat x, GLfloat y);
|
|
extern void (APIENTRY *qglVertex2fv) (const GLfloat *v);
|
|
extern void (APIENTRY *qglVertex2i) (GLint x, GLint y);
|
|
extern void (APIENTRY *qglVertex2iv) (const GLint *v);
|
|
extern void (APIENTRY *qglVertex2s) (GLshort x, GLshort y);
|
|
extern void (APIENTRY *qglVertex2sv) (const GLshort *v);
|
|
extern void (APIENTRY *qglVertex3d) (GLdouble x, GLdouble y, GLdouble z);
|
|
extern void (APIENTRY *qglVertex3dv) (const GLdouble *v);
|
|
extern void (APIENTRY *qglVertex3f) (GLfloat x, GLfloat y, GLfloat z);
|
|
extern void (APIENTRY *qglVertex3fv) (const GLfloat *v);
|
|
extern void (APIENTRY *qglVertex3i) (GLint x, GLint y, GLint z);
|
|
extern void (APIENTRY *qglVertex3iv) (const GLint *v);
|
|
extern void (APIENTRY *qglVertex3s) (GLshort x, GLshort y, GLshort z);
|
|
extern void (APIENTRY *qglVertex3sv) (const GLshort *v);
|
|
extern void (APIENTRY *qglVertex4d) (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
|
|
extern void (APIENTRY *qglVertex4dv) (const GLdouble *v);
|
|
extern void (APIENTRY *qglVertex4f) (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
|
|
extern void (APIENTRY *qglVertex4fv) (const GLfloat *v);
|
|
extern void (APIENTRY *qglVertex4i) (GLint x, GLint y, GLint z, GLint w);
|
|
extern void (APIENTRY *qglVertex4iv) (const GLint *v);
|
|
extern void (APIENTRY *qglVertex4s) (GLshort x, GLshort y, GLshort z, GLshort w);
|
|
extern void (APIENTRY *qglVertex4sv) (const GLshort *v);
|
|
extern void (APIENTRY *qglEnd) (void);
|
|
extern void (APIENTRY *qglReadBuffer) (GLenum mode);
|
|
|
|
//misc extensions
|
|
extern FTEPFNGLACTIVESTENCILFACEEXTPROC qglActiveStencilFaceEXT;
|
|
extern void (APIENTRY *qglDepthBoundsEXT) (GLclampd zmin, GLclampd zmax);
|
|
|
|
extern void (APIENTRY *qglDrawRangeElements) (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *);
|
|
extern void (APIENTRY *qglMultiDrawElements) (GLenum mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei drawcount);
|
|
extern void (APIENTRY *qglEnableClientState) (GLenum array);
|
|
extern void (APIENTRY *qglVertexPointer) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
|
|
|
|
extern void (APIENTRY *qglGenVertexArrays)(GLsizei n, GLuint *arrays);
|
|
extern void (APIENTRY *qglBindVertexArray)(GLuint vaoarray);
|
|
|
|
extern void (APIENTRY *qglTexStorage2D)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); //gl4.2
|
|
extern void (APIENTRY *qglTexStorage3D)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); //gl4.2
|
|
|
|
|
|
//glslang helper api
|
|
struct programshared_s;
|
|
union programhandle_u GLSlang_CreateProgram(struct programshared_s *prog, const char *name, int ver, const char **precompilerconstants, const char *vert, const char *cont, const char *eval, const char *geom, const char *frag, qboolean silent, vfsfile_t *blobfile);
|
|
GLint GLSlang_GetUniformLocation (int prog, char *name);
|
|
void GL_SelectProgram(int program);
|
|
#define GLSlang_UseProgram(prog) GL_SelectProgram(prog)
|
|
#define GLSlang_SetUniform1i(uni, parm0) qglUniform1iARB(uni, parm0)
|
|
#define GLSlang_SetUniform1f(uni, parm0) qglUniform1fARB(uni, parm0)
|
|
|
|
|
|
#ifdef _DEBUG
|
|
#if defined(__GNUC__) && !defined(NACL)
|
|
#define checkglerror() do {int i=qglGetError(); if (i) Sys_Printf("GL Error %i detected at line %s:%i (caller %p)\n", i, __FILE__, __LINE__, __builtin_return_address(0));}while(0)
|
|
#else
|
|
#define checkglerror() do {int i=qglGetError(); if (i) Con_Printf("GL Error %i detected at line %s:%i\n", i, __FILE__, __LINE__);}while(0)
|
|
#endif
|
|
#else
|
|
#define checkglerror()
|
|
#endif
|
|
|
|
|
|
|
|
|
|
qboolean GL_Init(rendererstate_t *info, void *(*getglfunction) (char *name));
|
|
void GL_ForgetPointers(void);
|
|
|
|
#endif
|
|
|
|
qbyte GetPaletteIndex(int red, int green, int blue);
|
|
qbyte GetPaletteIndexNoFB(int red, int green, int blue);
|
|
int Mod_ReadFlagsFromMD1(char *name, int md3version);
|
|
|
|
/*
|
|
//opengl 3 deprecation
|
|
|
|
. Application-generated object names - the names of all object types, such as
|
|
buffer, query, and texture objects, must be generated using the corresponding
|
|
Gen* commands. Trying to bind an object name not returned by a Gen*
|
|
command will result in an INVALID OPERATION error. This behavior is
|
|
already the case for framebuffer, renderbuffer, and vertex array objects. Object
|
|
types which have default objects (objects named zero) , such as vertex
|
|
array, framebuffer, and texture objects, may also bind the default object, even
|
|
though it is not returned by Gen*.
|
|
|
|
. OpenGL Shading Language versions 1.10 and 1.20. These versions of the
|
|
shading language depend on many API features that have also been deprecated.
|
|
|
|
. Pixel transfer modes and operations - all pixel transfer modes, including
|
|
pixel maps, shift and bias, color table lookup, color matrix, and convolution
|
|
commands and state, and all associated state and commands defining
|
|
that state.
|
|
|
|
. Legacy OpenGL 1.0 pixel formats - the values 1, 2, 3, and 4 are no longer
|
|
accepted as internal formats by TexImage* or any other command taking
|
|
an internal format argument. The initial internal format of a texel array is
|
|
RGBA instead of 1.
|
|
|
|
. Texture borders - the border value to TexImage* must always be zero, or
|
|
an INVALID VALUE error is generated (section 3.8.1); all language in section
|
|
3.8 referring to nonzero border widths during texture image specification
|
|
and texture sampling; and all associated state.
|
|
|
|
GL_COLOR_INDEX
|
|
|
|
glBegin
|
|
glEnd
|
|
glEdgeFlag*;
|
|
glColor*,
|
|
glFogCoord*
|
|
glIndex*
|
|
glNormal3*
|
|
glSecondaryColor3*
|
|
glTexCoord*
|
|
glVertex*
|
|
|
|
glColorPointer
|
|
glEdgeFlagPointer
|
|
glFogCoordPointer
|
|
glIndexPointer
|
|
glNormalPointer
|
|
glSecondary-
|
|
glColorPointer,
|
|
glTexCoordPointer
|
|
glVertexPointer
|
|
glEnableClientState
|
|
glDisableClientState,
|
|
|
|
glInterleavedArrays
|
|
glClientActiveTexture
|
|
glFrustum,
|
|
glLoadIdentity
|
|
glLoadMatrix
|
|
glLoadTransposeMatrix
|
|
glMatrixMode,
|
|
glMultMatrix
|
|
glMultTransposeMatrix
|
|
glOrtho
|
|
glPopMatrix
|
|
glPushMatrix,
|
|
glRotate
|
|
glScale
|
|
glTranslate
|
|
GL_RESCALE_NORMAL
|
|
GL_NORMALIZE
|
|
glTexGen*
|
|
GL_TEXTURE_GEN_*,
|
|
Material*
|
|
glLight*
|
|
glLightModel*
|
|
glColorMaterial
|
|
glShadeModel
|
|
GL_LIGHTING
|
|
GL_VERTEX_PROGRAM_TWO_SIDE
|
|
GL_LIGHTi,
|
|
GL_COLOR_MATERIAL
|
|
glClipPlane
|
|
GL_CLAMP_VERTEX_COLOR
|
|
GL_CLAMP_FRAGMENT_COLOR
|
|
glRect*
|
|
|
|
glRasterPos*
|
|
glWindowPos*
|
|
|
|
GL_POINT_SMOOTH
|
|
GL_POINT_SPRITE
|
|
|
|
glLineStipple
|
|
GL_LINE_STIPPLE
|
|
GL_POLYGON
|
|
GL_QUADS
|
|
GL_QUAD_STRIP
|
|
glPolygonMode
|
|
glPolygonStipple
|
|
GL_POLYGON_STIPPLE
|
|
glDrawPixels
|
|
glPixelZoom
|
|
glBitmap
|
|
GL_BITMAP
|
|
|
|
GL_TEXTURE_COMPONENTS
|
|
GL_ALPHA
|
|
GL_LUMINANCE
|
|
GL_LUMINANCE_ALPHA
|
|
GL_INTENSITY
|
|
|
|
GL_DEPTH_TEXTURE_MODE
|
|
|
|
GL_CLAMP
|
|
|
|
GL_GENERATE_MIPMAP
|
|
|
|
glAreTexturesResident
|
|
glPrioritizeTextures,
|
|
GL_TEXTURE_PRIORITY
|
|
GL_TEXTURE_ENV
|
|
GL_TEXTURE_FILTER_CONTROL
|
|
GL_TEXTURE_LOD_BIAS
|
|
|
|
GL_TEXTURE_1D
|
|
GL_TEXTURE_2D,
|
|
GL_TEXTURE_3D
|
|
GL_TEXTURE_1D_ARRAY
|
|
GL_TEXTURE_2D_ARRAY
|
|
GL_TEXTURE_CUBE_MAP
|
|
GL_COLOR_SUM
|
|
GL_FOG
|
|
glFog
|
|
GL_MAX_TEXTURE_UNITS
|
|
GL_MAX_TEXTURE_COORDS
|
|
glAlphaFunc
|
|
GL_ALPHA_TEST
|
|
|
|
glClearAccum
|
|
GL_ACCUM_BUFFER_BIT
|
|
|
|
glCopyPixels
|
|
|
|
GL_AUX0
|
|
GL_RED_BITS
|
|
GL_GREEN_BITS
|
|
GL_BLUE_BITS
|
|
GL_ALPHA_BITS
|
|
GL_DEPTH_BITS
|
|
STENCIL BITS
|
|
glMap*
|
|
glEvalCoord*
|
|
glMapGrid*
|
|
glEvalMesh*
|
|
glEvalPoint*
|
|
|
|
glRenderMode
|
|
glInitNames
|
|
glPopName
|
|
glPushName
|
|
glLoadName
|
|
glSelectBuffer
|
|
glFeedbackBuffer
|
|
glPassThrough
|
|
glNewList
|
|
glEndList
|
|
glCallList
|
|
glCallLists
|
|
glListBase
|
|
glGenLists,
|
|
glIsList
|
|
glDeleteLists
|
|
|
|
|
|
GL_PERSPECTIVE_CORRECTION_HINT
|
|
GL_POINT_SMOOTH_HINT,
|
|
GL_FOG_HINT
|
|
GL_GENERATE_MIPMAP_HINT
|
|
|
|
glPushAttrib
|
|
glPushClientAttrib
|
|
glPopAttrib
|
|
glPopClientAttrib,
|
|
GL_MAX_ATTRIB_STACK_DEPTH,
|
|
GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
|
|
GL_ATTRIB_STACK_DEPTH
|
|
GL_CLIENT_ATTRIB_STACK_DEPTH
|
|
GL_ALL_ATTRIB_BITS
|
|
GL_CLIENT_ALL_ATTRIB_BITS.
|
|
GL_EXTENSIONS
|
|
*/
|
|
|
|
#endif
|