ATI_separate_stencil support added

This commit is contained in:
Elias Naur 2003-08-23 11:34:14 +00:00
parent 7d35ee2744
commit a232c6fbfb
5 changed files with 86 additions and 0 deletions

View File

@ -813,6 +813,10 @@ public abstract class GL extends CoreGL14 implements GLConstants {
public static native void glPNTrianglesiATI(int pname, int param);
public static native void glStencilOpSeparateATI(int face, int sfail, int dpfail, int dppass);
public static native void glStencilFuncSeparateATI(int frontfunc, int backfunc, int ref, int mask);
public static native void glPointParameterfARB(int pname, float param);
public static native void glPointParameterfEXT(int pname, float param);

View File

@ -936,6 +936,13 @@ glGetMapAttribParameterfvNVPROC glGetMapAttribParameterfvNV = NULL;
glEvalMapsNVPROC glEvalMapsNV = NULL;
#endif /* GL_NV_evaluators */
/* ATI_separate_stencil */
#ifdef GL_ATI_separate_stencil
glStencilOpSeparateATIPROC glStencilOpSeparateATI = NULL;
glStencilFuncSeparateATIPROC glStencilFuncSeparateATI = NULL;
#endif /* GL_ATI_separate_stencil */
/* ATI_pn_triangles */
#ifdef GL_ATI_pn_triangles
@ -2094,6 +2101,16 @@ void extgl_InitATIPNTriangles()
#endif
}
void extgl_InitATISeparateStencil()
{
#ifdef GL_ATI_separate_stencil
if (!extgl_Extensions.ATI_separate_stencil)
return;
glStencilOpSeparateATI = (glStencilOpSeparateATIPROC)extgl_GetProcAddress("glStencilOpSeparateATI");
glStencilFuncSeparateATI = (glStencilFuncSeparateATIPROC)extgl_GetProcAddress("glStencilFuncSeparateATI");
#endif
}
void extgl_InitNVEvaluators()
{
#ifdef GL_NV_evaluators
@ -3163,6 +3180,7 @@ void extgl_InitSupportedExtensions()
extgl_Extensions.ATI_fragment_shader = GLQueryExtension("GL_ATI_fragment_shader");
extgl_Extensions.ATI_pn_triangles = GLQueryExtension("GL_ATI_pn_triangles");
extgl_Extensions.ATI_point_cull_mode = GLQueryExtension("GL_ATI_point_cull_mode");
extgl_Extensions.ATI_separate_stencil = GLQueryExtension("GL_ATI_separate_stencil");
extgl_Extensions.ATI_text_fragment_shader = GLQueryExtension("GL_ATI_text_fragment_shader");
extgl_Extensions.ATI_texture_mirror_once = GLQueryExtension("GL_ATI_texture_mirror_once");
extgl_Extensions.ATI_vertex_array_object = GLQueryExtension("GL_ATI_vertex_array_object");
@ -3228,6 +3246,7 @@ int extgl_Initialize()
extgl_InitNVFence();
extgl_InitNVRegisterCombiners2();
extgl_InitATIPNTriangles();
extgl_InitATISeparateStencil();
extgl_InitARBPointParameters();
extgl_InitARBVertexBlend();
extgl_InitEXTMultiDrawArrays();

View File

@ -5443,6 +5443,26 @@ extern glPrimitiveRestartIndexNVPROC glPrimitiveRestartIndexNV;
#endif /* GL_ARB_fragment_program */
/*-------------------------------------------------------------------*/
/*------------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
#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803
typedef void (APIENTRY * glStencilOpSeparateATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
typedef void (APIENTRY * glStencilFuncSeparateATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
extern glStencilOpSeparateATIPROC glStencilOpSeparateATI;
extern glStencilFuncSeparateATIPROC glStencilFuncSeparateATI;
#endif /* GL_ATI_separate_stencil */
/*-------------------------------------------------------------------*/
/*------------GL_ATI_TEXT_FRAGMENT_SHADER----------------------------*/
/*-------------------------------------------------------------------*/
@ -5883,6 +5903,7 @@ struct ExtensionTypes
int ATI_fragment_shader;
int ATI_pn_triangles;
int ATI_point_cull_mode;
int ATI_separate_stencil;
int ATI_text_fragment_shader;
int ATI_texture_mirror_once;
int ATI_vertex_array_object;

View File

@ -1910,6 +1910,32 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL_glPNTrianglesiATI(JNIEnv * env,
CHECK_GL_ERROR
}
/*
* Class: org_lwjgl_opengl_GL
* Method: glStencilOpSeparateATI
* Signature: (IIII)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL_glStencilOpSeparateATI
(JNIEnv *env, jclass clazz, jint p0, jint p1, jint p2, jint p3)
{
CHECK_EXISTS(glStencilOpSeparateATI)
glStencilOpSeparateATI(p0, p1, p2, p3);
CHECK_GL_ERROR
}
/*
* Class: org_lwjgl_opengl_GL
* Method: glStencilFuncSeparateATI
* Signature: (IIII)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL_glStencilFuncSeparateATI
(JNIEnv *env, jclass clazz, jint p0, jint p1, jint p2, jint p3)
{
CHECK_EXISTS(glStencilFuncSeparateATI)
glStencilFuncSeparateATI(p0, p1, p2, p3);
CHECK_GL_ERROR
}
/*
* Class: org_lwjgl_opengl_GL
* Method: glPointParameterfARB

View File

@ -1279,6 +1279,22 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL_glPNTrianglesfATI
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL_glPNTrianglesiATI
(JNIEnv *, jclass, jint, jint);
/*
* Class: org_lwjgl_opengl_GL
* Method: glStencilOpSeparateATI
* Signature: (IIII)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL_glStencilOpSeparateATI
(JNIEnv *, jclass, jint, jint, jint, jint);
/*
* Class: org_lwjgl_opengl_GL
* Method: glStencilFuncSeparateATI
* Signature: (IIII)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL_glStencilFuncSeparateATI
(JNIEnv *, jclass, jint, jint, jint, jint);
/*
* Class: org_lwjgl_opengl_GL
* Method: glPointParameterfARB