Enable draw_buffers only if GL_ARB_draw_buffers string is
authorMichal Krol <mjkrol@gmail.org>
Mon, 11 Oct 2004 08:13:25 +0000 (08:13 +0000)
committerMichal Krol <mjkrol@gmail.org>
Mon, 11 Oct 2004 08:13:25 +0000 (08:13 +0000)
present in GL_EXTENSIONS string.
Parse OPTION ARB_draw_buffers.

src/mesa/shader/arbprogparse.c

index ae85a93ecf9f271e30769a10a6d9615a958d92cc..d145e2f59a56f0b1a15dddad9e5247460d65576c 100644 (file)
@@ -171,6 +171,9 @@ __extension__ static char arb_grammar_text[] =
 /* GL_ARB_fragment_program_shadow option flags */
 #define  ARB_FRAGMENT_PROGRAM_SHADOW                0x40
 
+/* GL_ARB_draw_buffers option flags */
+#define  ARB_DRAW_BUFFERS                           0x80
+
 /* GL_ARB_fragment_program instruction class */
 #define  OP_ALU_INST                                0x00
 #define  OP_TEX_INST                                0x01
@@ -3623,6 +3626,12 @@ parse_arb_program (GLcontext * ctx, GLubyte * inst, struct var_cache **vc_head,
                     /* TODO ARB_fragment_program_shadow code */
                  }
                  break;
+
+               case ARB_DRAW_BUFFERS:
+                 if (Program->Base.Target == GL_FRAGMENT_PROGRAM_ARB) {
+                     /* do nothing for now */
+                  }
+                  break;
             }
             break;
 
@@ -3873,7 +3882,9 @@ _mesa_parse_arb_program (GLcontext * ctx, const GLubyte * str, GLsizei len,
        enable_ext (ctx, arbprogram_syn_id,
           (byte *) "texture_rectangle", (byte *) "GL_NV_texture_rectangle") ||
        enable_ext (ctx, arbprogram_syn_id,
-          (byte *) "fragment_program_shadow", (byte *) "GL_ARB_fragment_program_shadow")) {
+          (byte *) "fragment_program_shadow", (byte *) "GL_ARB_fragment_program_shadow") ||
+       enable_ext (ctx, arbprogram_syn_id,
+          (byte *) "draw_buffers", (byte *) "GL_ARB_draw_buffers")) {
       grammar_destroy (arbprogram_syn_id);
       return 1;
    }