diff options
author | Keith Whitwell <[email protected]> | 2004-02-14 15:00:42 +0000 |
---|---|---|
committer | Keith Whitwell <[email protected]> | 2004-02-14 15:00:42 +0000 |
commit | 964e5325bdcca702cfb2f210e0b89809e42847ef (patch) | |
tree | 1d65322fce17d62024ad7f900c30a48e7bbb321c /src/mesa/main/arbprogram.c | |
parent | 70dacabfe503e89d8c4a8df9fa6568aa5613a25b (diff) |
Make it easier for drivers to create "subclasses" of the existing
program struct hierarchy.
Add driver callbacks to enable the above and make it possible to track
more changes to program objects.
Diffstat (limited to 'src/mesa/main/arbprogram.c')
-rw-r--r-- | src/mesa/main/arbprogram.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/mesa/main/arbprogram.c b/src/mesa/main/arbprogram.c index ab27e086770..f6d16b5547f 100644 --- a/src/mesa/main/arbprogram.c +++ b/src/mesa/main/arbprogram.c @@ -202,6 +202,9 @@ _mesa_ProgramStringARB(GLenum target, GLenum format, GLsizei len, } _mesa_parse_arb_vertex_program(ctx, target, (const GLubyte *) string, len, prog); + + if (ctx->Driver.ProgramStringNotify) + ctx->Driver.ProgramStringNotify( ctx, target, &prog->Base ); } else if (target == GL_FRAGMENT_PROGRAM_ARB && ctx->Extensions.ARB_fragment_program) { @@ -212,9 +215,13 @@ _mesa_ProgramStringARB(GLenum target, GLenum format, GLsizei len, } _mesa_parse_arb_fragment_program(ctx, target, (const GLubyte *) string, len, prog); + + if (ctx->Driver.ProgramStringNotify) + ctx->Driver.ProgramStringNotify( ctx, target, &prog->Base ); } else { _mesa_error(ctx, GL_INVALID_ENUM, "glProgramStringARB(target)"); + return; } } @@ -618,8 +625,10 @@ _mesa_GetProgramivARB(GLenum target, GLenum pname, GLint *params) *params = ctx->Const.MaxFragmentProgramEnvParams; break; case GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB: - /* XXX ok? */ - *params = GL_TRUE; + if (ctx->Driver.IsProgramNative) + *params = ctx->Driver.IsProgramNative( ctx, target, prog ); + else + *params = GL_TRUE; break; /* |