Mesa (mesa_7_6_branch): prog parse: Handle GL_VERTEX_PROGRAM_ARB in glLoadProgramNV
Ian Romanick
idr at kemper.freedesktop.org
Sat Nov 7 23:55:55 UTC 2009
Module: Mesa
Branch: mesa_7_6_branch
Commit: 2cda507fa170c040e207190dee44d1be5e8572f7
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2cda507fa170c040e207190dee44d1be5e8572f7
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Mon Nov 2 14:10:38 2009 -0800
prog parse: Handle GL_VERTEX_PROGRAM_ARB in glLoadProgramNV
---
src/mesa/shader/nvprogram.c | 14 +++++++++++++-
1 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/src/mesa/shader/nvprogram.c b/src/mesa/shader/nvprogram.c
index 80ed410..fd6cbb0 100644
--- a/src/mesa/shader/nvprogram.c
+++ b/src/mesa/shader/nvprogram.c
@@ -596,6 +596,12 @@ _mesa_LoadProgramNV(GLenum target, GLuint id, GLsizei len,
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END(ctx);
+ if (!ctx->Extensions.NV_vertex_program
+ && !ctx->Extensions.NV_fragment_program) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glLoadProgramNV()");
+ return;
+ }
+
if (id == 0) {
_mesa_error(ctx, GL_INVALID_VALUE, "glLoadProgramNV(id)");
return;
@@ -628,7 +634,13 @@ _mesa_LoadProgramNV(GLenum target, GLuint id, GLsizei len,
}
_mesa_HashInsert(ctx->Shared->Programs, id, vprog);
}
- _mesa_parse_nv_vertex_program(ctx, target, program, len, vprog);
+
+ if (ctx->Extensions.ARB_vertex_program
+ && (strncmp((char *) program, "!!ARB", 5) == 0)) {
+ _mesa_parse_arb_vertex_program(ctx, target, program, len, vprog);
+ } else {
+ _mesa_parse_nv_vertex_program(ctx, target, program, len, vprog);
+ }
}
else if (target == GL_FRAGMENT_PROGRAM_NV
&& ctx->Extensions.NV_fragment_program) {
More information about the mesa-commit
mailing list