diff options
author | Dan Nicholson <[email protected]> | 2008-05-06 14:29:59 -0700 |
---|---|---|
committer | Dan Nicholson <[email protected]> | 2008-05-06 14:29:59 -0700 |
commit | 8eee0146f28285bdc778051afd89088685f2c3b6 (patch) | |
tree | 21ece7cf3f2f0f133031972c0a1ec370520f7b49 | |
parent | 9f948b8c335b099b305b55a2c176841a0354cdad (diff) | |
parent | 7f747204ea3b61e507b8bd48f33e8dd83f34705b (diff) |
Merge branch 'master' of ssh://git.freedesktop.org/git/mesa/mesa
-rw-r--r-- | src/mesa/main/dlist.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c index 23ede7bb68f..63a00e04f51 100644 --- a/src/mesa/main/dlist.c +++ b/src/mesa/main/dlist.c @@ -3248,6 +3248,36 @@ save_StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask) static void GLAPIENTRY +save_StencilFuncSeparateATI(GLenum frontfunc, GLenum backfunc, GLint ref, + GLuint mask) +{ + GET_CURRENT_CONTEXT(ctx); + Node *n; + ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx); + /* GL_FRONT */ + n = ALLOC_INSTRUCTION(ctx, OPCODE_STENCIL_FUNC_SEPARATE, 4); + if (n) { + n[1].e = GL_FRONT; + n[2].e = frontfunc; + n[3].i = ref; + n[4].ui = mask; + } + /* GL_BACK */ + n = ALLOC_INSTRUCTION(ctx, OPCODE_STENCIL_FUNC_SEPARATE, 4); + if (n) { + n[1].e = GL_BACK; + n[2].e = backfunc; + n[3].i = ref; + n[4].ui = mask; + } + if (ctx->ExecuteFlag) { + CALL_StencilFuncSeparate(ctx->Exec, (GL_FRONT, frontfunc, ref, mask)); + CALL_StencilFuncSeparate(ctx->Exec, (GL_BACK, backfunc, ref, mask)); + } +} + + +static void GLAPIENTRY save_StencilMaskSeparate(GLenum face, GLuint mask) { GET_CURRENT_CONTEXT(ctx); @@ -7838,6 +7868,9 @@ _mesa_init_dlist_table(struct _glapi_table *table) SET_StencilMaskSeparate(table, save_StencilMaskSeparate); SET_StencilOpSeparate(table, save_StencilOpSeparate); + /* ATI_separate_stencil */ + SET_StencilFuncSeparateATI(table, save_StencilFuncSeparateATI); + /* GL_ARB_imaging */ /* Not all are supported */ SET_BlendColor(table, save_BlendColor); |