From fdaa72bc434394755353d2b649950871001e9cbf Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 6 Sep 2002 03:19:32 +0000 Subject: [PATCH] added GL_EXT_stencil_two_side and GL_NV_fence --- src/mesa/glapi/APIspec | 53 ++++++----- src/mesa/glapi/glapioffsets.h | 8 ++ src/mesa/glapi/glapitable.h | 8 ++ src/mesa/glapi/glapitemp.h | 55 +++++++++-- src/mesa/main/glprocs.h | 8 ++ src/mesa/sparc/glapi_sparc.S | 168 ++++++++++++++++++++++++++++++++++ src/mesa/x86/glapi_x86.S | 48 ++++++++++ 7 files changed, 320 insertions(+), 28 deletions(-) diff --git a/src/mesa/glapi/APIspec b/src/mesa/glapi/APIspec index 858520621cc..f5b113d0a74 100644 --- a/src/mesa/glapi/APIspec +++ b/src/mesa/glapi/APIspec @@ -1,4 +1,4 @@ -# $Id: APIspec,v 1.9 2002/09/06 02:46:44 brianp Exp $ +# $Id: APIspec,v 1.10 2002/09/06 03:19:36 brianp Exp $ # This file describes all the OpenGL functions. # We use a number of Python scripts to parse this file and @@ -6562,52 +6562,53 @@ offset ? # GL_NV_fence -name GenFencesNV +name DeleteFencesNV return void param n GLsizei -param fences GLuint * +param fences const GLuint * category GL_NV_fence -offset ? +offset 647 -name DeleteFencesNV +name GenFencesNV return void param n GLsizei -param fences const GLuint * +param fences GLuint * category GL_NV_fence -offset ? +offset 648 -name SetFenceNV -return void +name IsFenceNV +return GLboolean param fence GLuint -param condition GLenum category GL_NV_fence -offset ? +offset 649 name TestFenceNV return GLboolean param fence GLuint category GL_NV_fence -offset ? +offset 650 -name FinishFenceNV +name GetFenceivNV return void param fence GLuint +param pname GLenum +param params GLint * category GL_NV_fence -offset ? +offset 651 -name IsFenceNV -return GLboolean +name FinishFenceNV +return void param fence GLuint category GL_NV_fence -offset ? +offset 652 -name GetFenceivNV +name SetFenceNV return void param fence GLuint -param pname GLenum -param params GLint * +param condition GLenum category GL_NV_fence -offset ? +offset 653 + # GL_NV_evaluators @@ -7622,6 +7623,16 @@ category 1.4 alias WindowPos3svMESA +# GL_EXT_stencil_two_side + +name ActiveStencilFaceEXT +return void +param face GLenum +category EXT_stencil_two_side +offset 646 + + + # end of file sentinal diff --git a/src/mesa/glapi/glapioffsets.h b/src/mesa/glapi/glapioffsets.h index 21d70ef2536..4223395f3d2 100644 --- a/src/mesa/glapi/glapioffsets.h +++ b/src/mesa/glapi/glapioffsets.h @@ -648,5 +648,13 @@ #define _gloffset_PointParameterivNV 643 #define _gloffset_MultiDrawArraysEXT 644 #define _gloffset_MultiDrawElementsEXT 645 +#define _gloffset_ActiveStencilFaceEXT 646 +#define _gloffset_DeleteFencesNV 647 +#define _gloffset_GenFencesNV 648 +#define _gloffset_IsFenceNV 649 +#define _gloffset_TestFenceNV 650 +#define _gloffset_GetFenceivNV 651 +#define _gloffset_FinishFenceNV 652 +#define _gloffset_SetFenceNV 653 #endif diff --git a/src/mesa/glapi/glapitable.h b/src/mesa/glapi/glapitable.h index 5511863b67b..f75ee10ca9d 100644 --- a/src/mesa/glapi/glapitable.h +++ b/src/mesa/glapi/glapitable.h @@ -652,6 +652,14 @@ struct _glapi_table void (*PointParameterivNV)(GLenum pname, const GLint * params); /* 643 */ void (*MultiDrawArraysEXT)(GLenum mode, GLint * first, GLsizei * count, GLsizei primcount); /* 644 */ void (*MultiDrawElementsEXT)(GLenum mode, const GLsizei * count, GLenum type, const GLvoid ** indices, GLsizei primcount); /* 645 */ + void (*ActiveStencilFaceEXT)(GLenum face); /* 646 */ + void (*DeleteFencesNV)(GLsizei n, const GLuint * fences); /* 647 */ + void (*GenFencesNV)(GLsizei n, GLuint * fences); /* 648 */ + GLboolean (*IsFenceNV)(GLuint fence); /* 649 */ + GLboolean (*TestFenceNV)(GLuint fence); /* 650 */ + void (*GetFenceivNV)(GLuint fence, GLenum pname, GLint * params); /* 651 */ + void (*FinishFenceNV)(GLuint fence); /* 652 */ + void (*SetFenceNV)(GLuint fence, GLenum condition); /* 653 */ }; #endif diff --git a/src/mesa/glapi/glapitemp.h b/src/mesa/glapi/glapitemp.h index a67c4fa8a6a..21acf562870 100644 --- a/src/mesa/glapi/glapitemp.h +++ b/src/mesa/glapi/glapitemp.h @@ -3534,13 +3534,41 @@ KEYWORD1 void KEYWORD2 NAME(SamplePatternEXT)(GLenum pattern) /* No dispatch for TextureColorMaskSGIS() */ /* No dispatch for IglooInterfaceSGIX() */ -/* No dispatch for GenFencesNV() */ -/* No dispatch for DeleteFencesNV() */ -/* No dispatch for SetFenceNV() */ -/* No dispatch for TestFenceNV() */ -/* No dispatch for FinishFenceNV() */ -/* No dispatch for IsFenceNV() */ -/* No dispatch for GetFenceivNV() */ +KEYWORD1 void KEYWORD2 NAME(DeleteFencesNV)(GLsizei n, const GLuint * fences) +{ + DISPATCH(DeleteFencesNV, (n, fences), (F, "glDeleteFencesNV(%d, %p);\n", n, (void *) fences)); +} + +KEYWORD1 void KEYWORD2 NAME(GenFencesNV)(GLsizei n, GLuint * fences) +{ + DISPATCH(GenFencesNV, (n, fences), (F, "glGenFencesNV(%d, %p);\n", n, (void *) fences)); +} + +KEYWORD1 GLboolean KEYWORD2 NAME(IsFenceNV)(GLuint fence) +{ + RETURN_DISPATCH(IsFenceNV, (fence), (F, "glIsFenceNV(%d);\n", fence)); +} + +KEYWORD1 GLboolean KEYWORD2 NAME(TestFenceNV)(GLuint fence) +{ + RETURN_DISPATCH(TestFenceNV, (fence), (F, "glTestFenceNV(%d);\n", fence)); +} + +KEYWORD1 void KEYWORD2 NAME(GetFenceivNV)(GLuint fence, GLenum pname, GLint * params) +{ + DISPATCH(GetFenceivNV, (fence, pname, params), (F, "glGetFenceivNV(%d, 0x%x, %p);\n", fence, pname, (void *) params)); +} + +KEYWORD1 void KEYWORD2 NAME(FinishFenceNV)(GLuint fence) +{ + DISPATCH(FinishFenceNV, (fence), (F, "glFinishFenceNV(%d);\n", fence)); +} + +KEYWORD1 void KEYWORD2 NAME(SetFenceNV)(GLuint fence, GLenum condition) +{ + DISPATCH(SetFenceNV, (fence, condition), (F, "glSetFenceNV(%d, 0x%x);\n", fence, condition)); +} + /* No dispatch for MapControlPointsNV() */ /* No dispatch for MapParameterivNV() */ /* No dispatch for MapParameterfvNV() */ @@ -4147,6 +4175,11 @@ KEYWORD1 void KEYWORD2 NAME(WindowPos3sv)(const GLshort * v) DISPATCH(WindowPos3svMESA, (v), (F, "glWindowPos3sv(%p);\n", (void *) v)); } +KEYWORD1 void KEYWORD2 NAME(ActiveStencilFaceEXT)(GLenum face) +{ + DISPATCH(ActiveStencilFaceEXT, (face), (F, "glActiveStencilFaceEXT(0x%x);\n", face)); +} + /* @@ -4806,6 +4839,14 @@ void *DISPATCH_TABLE_NAME[] = { TABLE_ENTRY(PointParameterivNV), TABLE_ENTRY(MultiDrawArraysEXT), TABLE_ENTRY(MultiDrawElementsEXT), + TABLE_ENTRY(ActiveStencilFaceEXT), + TABLE_ENTRY(DeleteFencesNV), + TABLE_ENTRY(GenFencesNV), + TABLE_ENTRY(IsFenceNV), + TABLE_ENTRY(TestFenceNV), + TABLE_ENTRY(GetFenceivNV), + TABLE_ENTRY(FinishFenceNV), + TABLE_ENTRY(SetFenceNV), /* A whole bunch of no-op functions. These might be called * when someone tries to call a dynamically-registered * extension function without a current rendering context. diff --git a/src/mesa/main/glprocs.h b/src/mesa/main/glprocs.h index a481ea86a2f..2df9870d697 100644 --- a/src/mesa/main/glprocs.h +++ b/src/mesa/main/glprocs.h @@ -674,6 +674,13 @@ static struct name_address_offset static_functions[] = { { "glTbufferMask3DFX", (GLvoid *) glTbufferMask3DFX, _gloffset_TbufferMask3DFX }, { "glSampleMaskEXT", (GLvoid *) glSampleMaskEXT, _gloffset_SampleMaskSGIS }, { "glSamplePatternEXT", (GLvoid *) glSamplePatternEXT, _gloffset_SamplePatternSGIS }, + { "glDeleteFencesNV", (GLvoid *) glDeleteFencesNV, _gloffset_DeleteFencesNV }, + { "glGenFencesNV", (GLvoid *) glGenFencesNV, _gloffset_GenFencesNV }, + { "glIsFenceNV", (GLvoid *) glIsFenceNV, _gloffset_IsFenceNV }, + { "glTestFenceNV", (GLvoid *) glTestFenceNV, _gloffset_TestFenceNV }, + { "glGetFenceivNV", (GLvoid *) glGetFenceivNV, _gloffset_GetFenceivNV }, + { "glFinishFenceNV", (GLvoid *) glFinishFenceNV, _gloffset_FinishFenceNV }, + { "glSetFenceNV", (GLvoid *) glSetFenceNV, _gloffset_SetFenceNV }, { "glWindowPos2dARB", (GLvoid *) glWindowPos2dARB, _gloffset_WindowPos2dMESA }, { "glWindowPos2fARB", (GLvoid *) glWindowPos2fARB, _gloffset_WindowPos2fMESA }, { "glWindowPos2iARB", (GLvoid *) glWindowPos2iARB, _gloffset_WindowPos2iMESA }, @@ -793,5 +800,6 @@ static struct name_address_offset static_functions[] = { { "glWindowPos3iv", (GLvoid *) glWindowPos3iv, _gloffset_WindowPos3ivMESA }, { "glWindowPos3s", (GLvoid *) glWindowPos3s, _gloffset_WindowPos3sMESA }, { "glWindowPos3sv", (GLvoid *) glWindowPos3sv, _gloffset_WindowPos3svMESA }, + { "glActiveStencilFaceEXT", (GLvoid *) glActiveStencilFaceEXT, _gloffset_ActiveStencilFaceEXT }, { NULL, NULL } /* end of list marker */ }; diff --git a/src/mesa/sparc/glapi_sparc.S b/src/mesa/sparc/glapi_sparc.S index 97d458d6d6e..2f7c93607f0 100644 --- a/src/mesa/sparc/glapi_sparc.S +++ b/src/mesa/sparc/glapi_sparc.S @@ -14091,6 +14091,153 @@ glSamplePatternEXT: jmpl %g3, %g0 nop +.globl glDeleteFencesNV +.type glDeleteFencesNV,#function +glDeleteFencesNV: +#ifdef __sparc_v9__ + sethi %hi(0x00000000), %g2 + sethi %hi(0x00000000), %g1 + or %g2, %lo(0x00000000), %g2 + or %g1, %lo(0x00000000), %g1 + sllx %g2, 32, %g2 + ldx [%g1 + %g2], %g1 + sethi %hi(8 * _gloffset_DeleteFencesNV), %g2 + or %g2, %lo(8 * _gloffset_DeleteFencesNV), %g2 + ldx [%g1 + %g2], %g3 +#else + sethi %hi(0x00000000), %g1 + ld [%g1 + %lo(0x00000000)], %g1 + ld [%g1 + (4 * _gloffset_DeleteFencesNV)], %g3 +#endif + jmpl %g3, %g0 + nop + +.globl glGenFencesNV +.type glGenFencesNV,#function +glGenFencesNV: +#ifdef __sparc_v9__ + sethi %hi(0x00000000), %g2 + sethi %hi(0x00000000), %g1 + or %g2, %lo(0x00000000), %g2 + or %g1, %lo(0x00000000), %g1 + sllx %g2, 32, %g2 + ldx [%g1 + %g2], %g1 + sethi %hi(8 * _gloffset_GenFencesNV), %g2 + or %g2, %lo(8 * _gloffset_GenFencesNV), %g2 + ldx [%g1 + %g2], %g3 +#else + sethi %hi(0x00000000), %g1 + ld [%g1 + %lo(0x00000000)], %g1 + ld [%g1 + (4 * _gloffset_GenFencesNV)], %g3 +#endif + jmpl %g3, %g0 + nop + +.globl glIsFenceNV +.type glIsFenceNV,#function +glIsFenceNV: +#ifdef __sparc_v9__ + sethi %hi(0x00000000), %g2 + sethi %hi(0x00000000), %g1 + or %g2, %lo(0x00000000), %g2 + or %g1, %lo(0x00000000), %g1 + sllx %g2, 32, %g2 + ldx [%g1 + %g2], %g1 + sethi %hi(8 * _gloffset_IsFenceNV), %g2 + or %g2, %lo(8 * _gloffset_IsFenceNV), %g2 + ldx [%g1 + %g2], %g3 +#else + sethi %hi(0x00000000), %g1 + ld [%g1 + %lo(0x00000000)], %g1 + ld [%g1 + (4 * _gloffset_IsFenceNV)], %g3 +#endif + jmpl %g3, %g0 + nop + +.globl glTestFenceNV +.type glTestFenceNV,#function +glTestFenceNV: +#ifdef __sparc_v9__ + sethi %hi(0x00000000), %g2 + sethi %hi(0x00000000), %g1 + or %g2, %lo(0x00000000), %g2 + or %g1, %lo(0x00000000), %g1 + sllx %g2, 32, %g2 + ldx [%g1 + %g2], %g1 + sethi %hi(8 * _gloffset_TestFenceNV), %g2 + or %g2, %lo(8 * _gloffset_TestFenceNV), %g2 + ldx [%g1 + %g2], %g3 +#else + sethi %hi(0x00000000), %g1 + ld [%g1 + %lo(0x00000000)], %g1 + ld [%g1 + (4 * _gloffset_TestFenceNV)], %g3 +#endif + jmpl %g3, %g0 + nop + +.globl glGetFenceivNV +.type glGetFenceivNV,#function +glGetFenceivNV: +#ifdef __sparc_v9__ + sethi %hi(0x00000000), %g2 + sethi %hi(0x00000000), %g1 + or %g2, %lo(0x00000000), %g2 + or %g1, %lo(0x00000000), %g1 + sllx %g2, 32, %g2 + ldx [%g1 + %g2], %g1 + sethi %hi(8 * _gloffset_GetFenceivNV), %g2 + or %g2, %lo(8 * _gloffset_GetFenceivNV), %g2 + ldx [%g1 + %g2], %g3 +#else + sethi %hi(0x00000000), %g1 + ld [%g1 + %lo(0x00000000)], %g1 + ld [%g1 + (4 * _gloffset_GetFenceivNV)], %g3 +#endif + jmpl %g3, %g0 + nop + +.globl glFinishFenceNV +.type glFinishFenceNV,#function +glFinishFenceNV: +#ifdef __sparc_v9__ + sethi %hi(0x00000000), %g2 + sethi %hi(0x00000000), %g1 + or %g2, %lo(0x00000000), %g2 + or %g1, %lo(0x00000000), %g1 + sllx %g2, 32, %g2 + ldx [%g1 + %g2], %g1 + sethi %hi(8 * _gloffset_FinishFenceNV), %g2 + or %g2, %lo(8 * _gloffset_FinishFenceNV), %g2 + ldx [%g1 + %g2], %g3 +#else + sethi %hi(0x00000000), %g1 + ld [%g1 + %lo(0x00000000)], %g1 + ld [%g1 + (4 * _gloffset_FinishFenceNV)], %g3 +#endif + jmpl %g3, %g0 + nop + +.globl glSetFenceNV +.type glSetFenceNV,#function +glSetFenceNV: +#ifdef __sparc_v9__ + sethi %hi(0x00000000), %g2 + sethi %hi(0x00000000), %g1 + or %g2, %lo(0x00000000), %g2 + or %g1, %lo(0x00000000), %g1 + sllx %g2, 32, %g2 + ldx [%g1 + %g2], %g1 + sethi %hi(8 * _gloffset_SetFenceNV), %g2 + or %g2, %lo(8 * _gloffset_SetFenceNV), %g2 + ldx [%g1 + %g2], %g3 +#else + sethi %hi(0x00000000), %g1 + ld [%g1 + %lo(0x00000000)], %g1 + ld [%g1 + (4 * _gloffset_SetFenceNV)], %g3 +#endif + jmpl %g3, %g0 + nop + .globl glWindowPos2dARB .type glWindowPos2dARB,#function glWindowPos2dARB: @@ -16586,6 +16733,27 @@ glWindowPos3sv: sethi %hi(0x00000000), %g1 ld [%g1 + %lo(0x00000000)], %g1 ld [%g1 + (4 * _gloffset_WindowPos3svMESA)], %g3 +#endif + jmpl %g3, %g0 + nop + +.globl glActiveStencilFaceEXT +.type glActiveStencilFaceEXT,#function +glActiveStencilFaceEXT: +#ifdef __sparc_v9__ + sethi %hi(0x00000000), %g2 + sethi %hi(0x00000000), %g1 + or %g2, %lo(0x00000000), %g2 + or %g1, %lo(0x00000000), %g1 + sllx %g2, 32, %g2 + ldx [%g1 + %g2], %g1 + sethi %hi(8 * _gloffset_ActiveStencilFaceEXT), %g2 + or %g2, %lo(8 * _gloffset_ActiveStencilFaceEXT), %g2 + ldx [%g1 + %g2], %g3 +#else + sethi %hi(0x00000000), %g1 + ld [%g1 + %lo(0x00000000)], %g1 + ld [%g1 + (4 * _gloffset_ActiveStencilFaceEXT)], %g3 #endif jmpl %g3, %g0 nop diff --git a/src/mesa/x86/glapi_x86.S b/src/mesa/x86/glapi_x86.S index 99504eb3378..28482b3c5a7 100644 --- a/src/mesa/x86/glapi_x86.S +++ b/src/mesa/x86/glapi_x86.S @@ -4041,6 +4041,48 @@ GL_PREFIX(SamplePatternEXT): MOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX) JMP(GL_OFFSET(_gloffset_SamplePatternSGIS)) +ALIGNTEXT16 +GLOBL_FN(GL_PREFIX(DeleteFencesNV)) +GL_PREFIX(DeleteFencesNV): + MOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX) + JMP(GL_OFFSET(_gloffset_DeleteFencesNV)) + +ALIGNTEXT16 +GLOBL_FN(GL_PREFIX(GenFencesNV)) +GL_PREFIX(GenFencesNV): + MOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX) + JMP(GL_OFFSET(_gloffset_GenFencesNV)) + +ALIGNTEXT16 +GLOBL_FN(GL_PREFIX(IsFenceNV)) +GL_PREFIX(IsFenceNV): + MOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX) + JMP(GL_OFFSET(_gloffset_IsFenceNV)) + +ALIGNTEXT16 +GLOBL_FN(GL_PREFIX(TestFenceNV)) +GL_PREFIX(TestFenceNV): + MOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX) + JMP(GL_OFFSET(_gloffset_TestFenceNV)) + +ALIGNTEXT16 +GLOBL_FN(GL_PREFIX(GetFenceivNV)) +GL_PREFIX(GetFenceivNV): + MOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX) + JMP(GL_OFFSET(_gloffset_GetFenceivNV)) + +ALIGNTEXT16 +GLOBL_FN(GL_PREFIX(FinishFenceNV)) +GL_PREFIX(FinishFenceNV): + MOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX) + JMP(GL_OFFSET(_gloffset_FinishFenceNV)) + +ALIGNTEXT16 +GLOBL_FN(GL_PREFIX(SetFenceNV)) +GL_PREFIX(SetFenceNV): + MOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX) + JMP(GL_OFFSET(_gloffset_SetFenceNV)) + ALIGNTEXT16 GLOBL_FN(GL_PREFIX(WindowPos2dARB)) GL_PREFIX(WindowPos2dARB): @@ -4755,5 +4797,11 @@ GL_PREFIX(WindowPos3sv): MOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX) JMP(GL_OFFSET(_gloffset_WindowPos3svMESA)) +ALIGNTEXT16 +GLOBL_FN(GL_PREFIX(ActiveStencilFaceEXT)) +GL_PREFIX(ActiveStencilFaceEXT): + MOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX) + JMP(GL_OFFSET(_gloffset_ActiveStencilFaceEXT)) + #endif /* __WIN32__ */ -- 2.30.2