Compare commits
10 Commits
8e0ae5c0ff
...
2802a83a2b
Author | SHA1 | Date |
---|---|---|
jpaana | 2802a83a2b | |
jpaana | 78de5c748b | |
jpaana | 3401403fce | |
jpaana | c88af5d0b5 | |
jpaana | 7e73a7f5f4 | |
jpaana | 3f65f79fc8 | |
jpaana | 2d0e36fd8f | |
jpaana | 2c8c9dbf18 | |
jpaana | 7944553c9b | |
jpaana | 8903b0188c |
|
@ -496,6 +496,7 @@ void R_DrawWorldBumped() {
|
|||
R_DrawMeshBumped((mesh_t *)currentshadowlight->lightCmdsMesh[i].asVoid);
|
||||
}
|
||||
|
||||
if ( (msurface_t *)currentshadowlight->lightCmds[0].asVoid)
|
||||
lastShader = ((msurface_t *)currentshadowlight->lightCmds[0].asVoid)->shader->shader;
|
||||
freeIndex = 0;
|
||||
for (i=0; i<currentshadowlight->numlightcmds-1; i++) {
|
||||
|
|
24
gl_bumpgl2.c
24
gl_bumpgl2.c
|
@ -162,7 +162,8 @@ typedef char GLcharARB;
|
|||
#define GL_ARB_vertex_shader 1
|
||||
|
||||
// Taken from ARB_vertex_program
|
||||
#if !defined(__FreeBSD__)
|
||||
#ifndef GL_ARB_vertex_program
|
||||
#define GL_ARB_vertex_program 1
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v);
|
||||
typedef void (APIENTRY * PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v);
|
||||
|
@ -206,6 +207,12 @@ typedef void (APIENTRY * PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLu
|
|||
typedef void (APIENTRY * PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalize, GLsizei stride, const GLvoid *pointer);
|
||||
typedef void (APIENTRY * PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
|
||||
typedef void (APIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
|
||||
|
||||
typedef void (APIENTRY * PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, void **pointer);
|
||||
typedef void (APIENTRY * PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params);
|
||||
|
||||
typedef void (APIENTRY * PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params);
|
||||
typedef void (APIENTRY * PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params);
|
||||
#endif
|
||||
typedef void (APIENTRY * PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB *name);
|
||||
typedef void (APIENTRY * PFNGLBINDARRAYGL2PROC) (GLhandleARB shaderObject, GLenum array, const GLcharARB *name, GLint length);
|
||||
|
@ -235,8 +242,6 @@ typedef void (APIENTRY * PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint
|
|||
typedef void (APIENTRY * PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2);
|
||||
typedef void (APIENTRY * PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
|
||||
|
||||
|
||||
|
||||
typedef void (APIENTRY * PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, GLfloat *value);
|
||||
typedef void (APIENTRY * PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, GLfloat *value);
|
||||
typedef void (APIENTRY * PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, GLfloat *value);
|
||||
|
@ -247,7 +252,6 @@ typedef void (APIENTRY * PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count,
|
|||
typedef void (APIENTRY * PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, GLint *value);
|
||||
typedef void (APIENTRY * PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, GLint *value);
|
||||
|
||||
|
||||
typedef void (APIENTRY * PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLuint count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (APIENTRY * PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLuint count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (APIENTRY * PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLuint count, GLboolean transpose, const GLfloat *value);
|
||||
|
@ -260,17 +264,9 @@ typedef void (APIENTRY * PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLin
|
|||
typedef void (APIENTRY * PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint *params);
|
||||
typedef void (APIENTRY * PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name);
|
||||
typedef void (APIENTRY * PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj);
|
||||
#if !defined (__FreeBSD__)
|
||||
typedef void (APIENTRY * PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, void **pointer);
|
||||
#endif
|
||||
typedef void (APIENTRY * PFNGLGETOBJECTPARAMETERFVARBPROC)(GLhandleARB obj, GLenum pname, GLfloat *params);
|
||||
typedef void (APIENTRY * PFNGLGETOBJECTPARAMETERIVARBPROC)(GLhandleARB obj, GLenum pname, GLint *params);
|
||||
#if !defined (__FreeBSD__)
|
||||
typedef void (APIENTRY * PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params);
|
||||
|
||||
typedef void (APIENTRY * PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params);
|
||||
typedef void (APIENTRY * PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params);
|
||||
#endif
|
||||
typedef GLhandleARB (APIENTRY * PFNGLGETHANDLEARBPROC) (GLenum pname);
|
||||
typedef GLhandleARB (APIENTRY * PFNGLCREATEVERTEXARRAYOBJECTGL2PROC) (GLhandleARB formatObject, GLsizei count);
|
||||
typedef void (APIENTRY * PFNGLLOADVERTEXARRAYDATAGL2PROC) (GLhandleARB object, GLuint start, GLsizei count, GLvoid *data, GLenum preserve);
|
||||
|
@ -479,7 +475,7 @@ void GL2_CreateShaders()
|
|||
}
|
||||
|
||||
len = strlen(shader);
|
||||
qglShaderSourceARB(vertex_shaders[i], 1, &shader, &len);
|
||||
qglShaderSourceARB(vertex_shaders[i], 1, (const GLcharARB **)&shader, &len);
|
||||
GL2_checkerror();
|
||||
|
||||
shader = COM_LoadTempFile(fragment_programs[i]);
|
||||
|
@ -489,7 +485,7 @@ void GL2_CreateShaders()
|
|||
Sys_Error("GL2: %s not found\n", fragment_programs[i]);
|
||||
}
|
||||
len = strlen(shader);
|
||||
qglShaderSourceARB(fragment_shaders[i], 1, &shader, &len);
|
||||
qglShaderSourceARB(fragment_shaders[i], 1, (const GLcharARB **)&shader, &len);
|
||||
GL2_checkerror();
|
||||
|
||||
qglCompileShaderARB(vertex_shaders[i]);
|
||||
|
|
103
gl_bumpnv3x.c
103
gl_bumpnv3x.c
|
@ -60,9 +60,9 @@ typedef void (APIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsize
|
|||
typedef void (APIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params);
|
||||
typedef void (APIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params);
|
||||
|
||||
#endif
|
||||
typedef void (APIENTRY * glProgramLocalParameter4fARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
|
||||
glProgramLocalParameter4fARBPROC qglProgramLocalParameter4fARB;
|
||||
#endif
|
||||
|
||||
static char bump_vertex_program[] =
|
||||
"!!VP1.1\n"
|
||||
|
@ -280,65 +280,68 @@ static char bump_fragment_program3_colored[] =
|
|||
|
||||
static char delux_fragment_program[] =
|
||||
"!!FP1.0\n"
|
||||
"TEX R0, f[TEX1], TEX1, 2D;\n"
|
||||
"TEX R0.xyz, f[TEX1], TEX1, 2D;\n"
|
||||
"TEX R1, f[TEX0], TEX2, 2D;\n"
|
||||
"MADR R0.xyz, R0, 2, -1;\n"
|
||||
"ADDR R3.xyz, p[0], -f[TEX5];\n"
|
||||
"DP3R R2.x, R0, f[TEX2];\n"
|
||||
"DP3R R2.y, R0, f[TEX3];\n"
|
||||
"DP3R R2.z, R0, f[TEX4];\n"
|
||||
"DP3R R4.x, R3, f[TEX2];\n"
|
||||
"DP3R R4.y, R3, f[TEX3];\n"
|
||||
"DP3R R4.z, R3, f[TEX4];\n"
|
||||
"DP3R R0.x, R2, R2;\n"
|
||||
"MADR R0.xyz, 2, R0, -1;\n"
|
||||
"DP3X H0.x, R0, f[TEX2];\n"
|
||||
"DP3X H0.y, R0, f[TEX3];\n"
|
||||
"DP3X H0.z, R0, f[TEX4];\n"
|
||||
"DP3H H0.w, H0, H0;\n"
|
||||
"RSQH H0.w, H0.w;\n"
|
||||
"MULH H0.xyz, H0.w, H0;\n"
|
||||
"MOVR H1.w, R1.w;\n"
|
||||
"MADX H2.xyz, 2, R1, -1;\n"
|
||||
"MOVX H1.xyz, H2;\n"
|
||||
"DP3H_SAT H0.w, H0, H1;\n"
|
||||
"ADDR R0.xyz, p[0], -f[TEX5];\n"
|
||||
"DP3R R1.x, R0, f[TEX2];\n"
|
||||
"DP3R R1.y, R0, f[TEX3];\n"
|
||||
"DP3R R1.z, R0, f[TEX4];\n"
|
||||
"DP3R R0.x, R1, R1.xyzx;\n"
|
||||
"RSQR R0.x, R0.x;\n"
|
||||
"MULR R2.xyz, R0.x, R2;\n"
|
||||
"DP3R R0.x, R4, R4;\n"
|
||||
"RSQR R0.x, R0.x;\n"
|
||||
"MADR R4.xyz, R0.x, R4, R2;\n"
|
||||
"MULR R4.xyz, R4, 0.5;\n"
|
||||
"MOVR R0.w, R1.w;\n"
|
||||
"MADR R0.xyz, R1, 2, -1;\n"
|
||||
"DP3R_SAT R1.x, R4, R0;\n"
|
||||
"POWR R1.x, R1.x, 16;\n"
|
||||
"MULR R1.x, R1.x, R0.w;\n"
|
||||
"DP3R_SAT R0.x, R2, R0;\n"
|
||||
"TEX R2, f[TEX0], TEX3, 2D;\n"
|
||||
"TEX R3, f[TEX1], TEX0, 2D;\n"
|
||||
"MADR R0, R2, R0.x, R1.x;\n"
|
||||
"MULR o[COLR], R0, R3;\n"
|
||||
"MADR R0.xyz, R0.x, R1, H0;\n"
|
||||
"MULR R0.xyz, R0, 0.5;\n"
|
||||
"DP3H_SAT H0.x, R0, H1;\n"
|
||||
"POWH H0.x, H0.x, 16;\n"
|
||||
"MULH H0.x, H0.x, H1.w;\n"
|
||||
"TEX R0, f[TEX0], TEX3, 2D;\n"
|
||||
"TEX R1, f[TEX1], TEX0, 2D;\n"
|
||||
"MADH H0, R0, H0.w, H0.x;\n"
|
||||
"MULH o[COLR].xyz, H0, R1;\n"
|
||||
"MOVH o[COLR].w, R0.w;\n"
|
||||
"END";
|
||||
|
||||
|
||||
static char delux_fragment_program_colored[] =
|
||||
"!!FP1.0\n"
|
||||
"TEX R0, f[TEX1], TEX1, 2D;\n"
|
||||
"TEX R1, f[TEX0], TEX2, 2D;\n"
|
||||
"MADR R0.xyz, R0, 2, -1;\n"
|
||||
"ADDR R3.xyz, p[0], -f[TEX5];\n"
|
||||
"DP3R R2.x, R0, f[TEX2];\n"
|
||||
"DP3R R2.y, R0, f[TEX3];\n"
|
||||
"DP3R R2.z, R0, f[TEX4];\n"
|
||||
"DP3R R4.x, R3, f[TEX2];\n"
|
||||
"DP3R R4.y, R3, f[TEX3];\n"
|
||||
"DP3R R4.z, R3, f[TEX4];\n"
|
||||
"DP3R R0.x, R2, R2;\n"
|
||||
"MADR R0.xyz, 2, R0, -1;\n"
|
||||
"MADX H0.xyz, 2, R1, -1;\n"
|
||||
"DP3X H1.x, R0, f[TEX2];\n"
|
||||
"DP3X H1.y, R0, f[TEX3];\n"
|
||||
"DP3X H1.z, R0, f[TEX4];\n"
|
||||
"DP3H H0.w, H1, H1;\n"
|
||||
"RSQH H0.w, H0.w;\n"
|
||||
"MULH H1.xyz, H0.w, H1;\n"
|
||||
"DP3H_SAT H0.w, H1, H0;\n"
|
||||
"ADDR R0.xyz, p[0], -f[TEX5];\n"
|
||||
"DP3R R1.x, R0, f[TEX2];\n"
|
||||
"DP3R R1.y, R0, f[TEX3];\n"
|
||||
"DP3R R1.z, R0, f[TEX4];\n"
|
||||
"DP3R R0.x, R1, R1;\n"
|
||||
"RSQR R0.x, R0.x;\n"
|
||||
"MULR R2.xyz, R0.x, R2;\n"
|
||||
"DP3R R0.x, R4, R4;\n"
|
||||
"RSQR R0.x, R0.x;\n"
|
||||
"MADR R4.xyz, R0.x, R4, R2;\n"
|
||||
"MULR R4.xyz, R4, 0.5;\n"
|
||||
"MOVR R0.w, R1.w;\n"
|
||||
"MADR R0.xyz, R1, 2, -1;\n"
|
||||
"DP3R_SAT R1.x, R4, R0;\n"
|
||||
"POWR R1.x, R1.x, 16;\n"
|
||||
"MADR R0.xyz, R0.x, R1, H1;\n"
|
||||
"MULR R0.xyz, R0, 0.5;\n"
|
||||
"DP3H_SAT H0.x, R0, H0;\n"
|
||||
"POWH H0.x, H0.x, 16;\n"
|
||||
"TEX R0, f[TEX0], TEX4, 2D;\n"
|
||||
"MULR R1, R1.x, R0;\n"
|
||||
"DP3R_SAT R0.x, R2, R0;\n"
|
||||
"TEX R2, f[TEX0], TEX3, 2D;\n"
|
||||
"TEX R3, f[TEX1], TEX0, 2D;\n"
|
||||
"MADR R0, R2, R0.x, R1;\n"
|
||||
"MULR o[COLR], R0, R3;\n"
|
||||
"TEX R1, f[TEX0], TEX3, 2D;\n"
|
||||
"MULH H1, R0, H0.x;\n"
|
||||
"MADH H1, R1, H0.w, H1;\n"
|
||||
"TEX R0, f[TEX1], TEX0, 2D;\n"
|
||||
"MULH o[COLR].xyz, H1, R0;\n"
|
||||
"MOVH o[COLR].w, R1.w;\n"
|
||||
"END";
|
||||
|
||||
|
||||
|
|
|
@ -79,9 +79,9 @@ GLfloat gl_textureanisotropylevel = 2.0f;
|
|||
//cvar_t gl_anisotropic = { "gl_anisotropic", "0", 1 };
|
||||
|
||||
qboolean gl_occlusiontest = false;
|
||||
occlusion_cut_meshes;
|
||||
occlusion_cut_entities;
|
||||
occlusion_cut_lights;
|
||||
int occlusion_cut_meshes;
|
||||
int occlusion_cut_entities;
|
||||
int occlusion_cut_lights;
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
|
||||
|
@ -410,7 +410,7 @@ void CheckAnisotropicExtension(void)
|
|||
{
|
||||
GLfloat maxanisotropy;
|
||||
|
||||
if ( COM_CheckParm ("-anisotropy"))
|
||||
if ( COM_CheckParm ("-anisotropy"))
|
||||
gl_textureanisotropylevel = Q_atoi(com_argv[COM_CheckParm("-anisotropy")+1]);
|
||||
|
||||
glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &maxanisotropy);
|
||||
|
|
15
gl_rmain.c
15
gl_rmain.c
|
@ -669,23 +669,24 @@ void R_DrawAliasSurfaceShadowVolume (aliashdr_t *paliashdr, aliasframeinstant_t
|
|||
case 1:
|
||||
// EXT_stencil_two_side
|
||||
glDisable(GL_CULL_FACE);
|
||||
glEnable(GL_STENCIL_TEST_TWO_SIDE_EXT);
|
||||
qglActiveStencilFaceEXT(GL_BACK);
|
||||
glStencilOp(GL_KEEP, GL_INCR_WRAP_EXT, GL_KEEP);
|
||||
glStencilOp(GL_KEEP, GL_DECR_WRAP_EXT, GL_KEEP);
|
||||
glStencilFunc(GL_ALWAYS, 0, ~0);
|
||||
qglActiveStencilFaceEXT(GL_FRONT);
|
||||
glStencilOp(GL_KEEP, GL_DECR_WRAP_EXT, GL_KEEP);
|
||||
glStencilOp(GL_KEEP, GL_INCR_WRAP_EXT, GL_KEEP);
|
||||
glStencilFunc(GL_ALWAYS, 0, ~0);
|
||||
R_DrawAliasFrameShadowVolume2 (paliashdr, aliasframeinstant);
|
||||
glEnable(GL_CULL_FACE);
|
||||
glDisable(GL_STENCIL_TEST_TWO_SIDE_EXT);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
// ATI_separate_stencil
|
||||
glDisable(GL_CULL_FACE);
|
||||
glStencilOp(GL_KEEP, GL_INCR_WRAP_EXT, GL_KEEP);
|
||||
qglStencilFuncSeparateATI(GL_ALWAYS, GL_ALWAYS, 0, ~0);
|
||||
qglStencilOpSeparateATI(GL_FRONT, GL_KEEP, GL_DECR_WRAP_EXT, GL_KEEP);
|
||||
qglStencilOpSeparateATI(GL_BACK, GL_KEEP, GL_INCR_WRAP_EXT, GL_KEEP);
|
||||
qglStencilOpSeparateATI(GL_FRONT, GL_KEEP, GL_INCR_WRAP_EXT, GL_KEEP);
|
||||
qglStencilOpSeparateATI(GL_BACK, GL_KEEP, GL_DECR_WRAP_EXT, GL_KEEP);
|
||||
R_DrawAliasFrameShadowVolume2 (paliashdr, aliasframeinstant);
|
||||
glEnable(GL_CULL_FACE);
|
||||
break;
|
||||
|
@ -2170,6 +2171,7 @@ void R_RenderScene (void)
|
|||
case 1:
|
||||
// EXT_stencil_two_side
|
||||
glDisable(GL_CULL_FACE);
|
||||
glEnable(GL_STENCIL_TEST_TWO_SIDE_EXT);
|
||||
qglActiveStencilFaceEXT(GL_BACK);
|
||||
glStencilOp(GL_KEEP, GL_INCR_WRAP_EXT, GL_KEEP);
|
||||
glStencilFunc(GL_ALWAYS, 0, ~0);
|
||||
|
@ -2182,13 +2184,12 @@ void R_RenderScene (void)
|
|||
//Pass 1 increase
|
||||
if (sh_entityshadows.value) R_DrawEntitiesShadowVolumes(mod_brush);
|
||||
glEnable(GL_CULL_FACE);
|
||||
qglActiveStencilFaceEXT(GL_FRONT_AND_BACK);
|
||||
glDisable(GL_STENCIL_TEST_TWO_SIDE_EXT);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
// ATI_separate_stencil
|
||||
glDisable(GL_CULL_FACE);
|
||||
glStencilOp(GL_KEEP, GL_INCR_WRAP_EXT, GL_KEEP);
|
||||
qglStencilFuncSeparateATI(GL_ALWAYS, GL_ALWAYS, 0, ~0);
|
||||
qglStencilOpSeparateATI(GL_FRONT, GL_KEEP, GL_DECR_WRAP_EXT, GL_KEEP);
|
||||
qglStencilOpSeparateATI(GL_BACK, GL_KEEP, GL_INCR_WRAP_EXT, GL_KEEP);
|
||||
|
|
|
@ -1986,6 +1986,7 @@ void StencilMeshVolumes()
|
|||
case 1:
|
||||
// EXT_stencil_two_side
|
||||
glDisable(GL_CULL_FACE);
|
||||
glEnable(GL_STENCIL_TEST_TWO_SIDE_EXT);
|
||||
qglActiveStencilFaceEXT(GL_BACK);
|
||||
glStencilOp(GL_KEEP, GL_INCR_WRAP_EXT, GL_KEEP);
|
||||
glStencilFunc(GL_ALWAYS, 0, ~0);
|
||||
|
@ -1996,7 +1997,7 @@ void StencilMeshVolumes()
|
|||
for (i=0; i<currentshadowlight->numlightcmdsmesh-1; i++)
|
||||
StencilMeshVolume2((mesh_t *)currentshadowlight->lightCmdsMesh[i].asVoid);
|
||||
glEnable(GL_CULL_FACE);
|
||||
qglActiveStencilFaceEXT(GL_FRONT_AND_BACK);
|
||||
glDisable(GL_STENCIL_TEST_TWO_SIDE_EXT);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
|
|
14
glquake.h
14
glquake.h
|
@ -41,7 +41,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
func = (type) SDL_GL_GetProcAddress (name)
|
||||
#elif defined (__glx__)
|
||||
#define SAFE_GET_PROC( func, type, name) \
|
||||
func = (type) glXGetProcAddressARB (name)
|
||||
func = (type)(unsigned long)glXGetProcAddressARB (name)
|
||||
#else
|
||||
#define SAFE_GET_PROC( func, type, name) \
|
||||
func = (type) wglGetProcAddress(name); \
|
||||
|
@ -490,17 +490,16 @@ extern int occlusion_cut_lights;
|
|||
#define GL_DECR_WRAP_EXT 0x8508
|
||||
|
||||
#ifndef GL_EXT_stencil_two_side
|
||||
#define GL_EXT_stencil_two_side 1
|
||||
#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910
|
||||
#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_stencil_two_side
|
||||
#define GL_EXT_stencil_two_side 1
|
||||
typedef void (APIENTRY * PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face);
|
||||
#endif
|
||||
extern PFNGLACTIVESTENCILFACEEXTPROC qglActiveStencilFaceEXT;
|
||||
|
||||
// ATI_separate_stencil
|
||||
#ifndef GL_ATI_separate_stencil
|
||||
#define GL_ATI_separate_stencil 1
|
||||
#define GL_STENCIL_BACK_FUNC_ATI 0x8800
|
||||
#define GL_STENCIL_BACK_FAIL_ATI 0x8801
|
||||
#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802
|
||||
|
@ -508,6 +507,7 @@ extern PFNGLACTIVESTENCILFACEEXTPROC qglActiveStencilFaceEXT;
|
|||
|
||||
typedef void (APIENTRY *PFNGLSTENCILOPSEPARATEATIPROC)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
|
||||
typedef void (APIENTRY *PFNGLSTENCILFUNCSEPARATEATIPROC)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
|
||||
#endif
|
||||
|
||||
extern PFNGLSTENCILOPSEPARATEATIPROC qglStencilOpSeparateATI;
|
||||
extern PFNGLSTENCILFUNCSEPARATEATIPROC qglStencilFuncSeparateATI;
|
||||
|
@ -1005,7 +1005,8 @@ extern PFNGLVERTEXATTRIBS4SVNVPROC qglVertexAttribs4svNV ;
|
|||
extern PFNGLVERTEXATTRIBS4UBVNVPROC qglVertexAttribs4ubvNV ;
|
||||
|
||||
/* GL_ARB_vertex_buffer_object */
|
||||
|
||||
#ifndef GL_ARB_vertex_buffer_object
|
||||
#define GL_ARB_vertex_buffer_object 1
|
||||
#define GL_BUFFER_SIZE_ARB 0x8764
|
||||
#define GL_BUFFER_USAGE_ARB 0x8765
|
||||
#define GL_ARRAY_BUFFER_ARB 0x8892
|
||||
|
@ -1052,6 +1053,7 @@ typedef GLvoid* (APIENTRY * PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access
|
|||
typedef GLboolean (APIENTRY * PFNGLUNMAPBUFFERARBPROC) (GLenum target);
|
||||
typedef void (APIENTRY * PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params);
|
||||
typedef void (APIENTRY * PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, GLvoid* *params);
|
||||
#endif
|
||||
|
||||
extern PFNGLBINDBUFFERARBPROC qglBindBufferARB;
|
||||
extern PFNGLDELETEBUFFERSARBPROC qglDeleteBuffersARB;
|
||||
|
|
Loading…
Reference in New Issue