summaryrefslogtreecommitdiffstats
path: root/src/mesa/shader/arbprogparse.h
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2005-11-03 03:30:34 +0000
committerBrian Paul <[email protected]>2005-11-03 03:30:34 +0000
commit72030e0d91cc505db1eb7d39d5240b2f562cf710 (patch)
tree75f2085ad159184a033423f022e242ebf81862e6 /src/mesa/shader/arbprogparse.h
parentccfe3d4683bb6c97ffacd67267aa002dcb060433 (diff)
Streamline code generation by using a fixed size instruction buffer in
arb_program struct.
Diffstat (limited to 'src/mesa/shader/arbprogparse.h')
-rw-r--r--src/mesa/shader/arbprogparse.h18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/mesa/shader/arbprogparse.h b/src/mesa/shader/arbprogparse.h
index 947c22e767b..59f8e3b22ed 100644
--- a/src/mesa/shader/arbprogparse.h
+++ b/src/mesa/shader/arbprogparse.h
@@ -1,6 +1,6 @@
/*
* Mesa 3-D graphics library
- * Version: 6.3
+ * Version: 6.5
*
* Copyright (C) 1999-2005 Brian Paul All Rights Reserved.
*
@@ -31,25 +31,29 @@
#include "nvvertprog.h"
#include "nvfragprog.h"
+
+#define MAX_INSTRUCTIONS 256
+
+
/**
* This is basically a union of the vertex_program and fragment_program
* structs that we can use to parse the program into
*
- * XXX: this should go into mtypes.h?
+ * XXX we can probably get rid of this entirely someday.
*/
struct arb_program
{
struct program Base;
struct program_parameter_list *Parameters;
- GLuint InputsRead;
- GLuint OutputsWritten;
+ GLbitfield InputsRead;
+ GLbitfield OutputsWritten;
GLuint Position; /* Just used for error reporting while parsing */
GLuint MajorVersion;
GLuint MinorVersion;
/* ARB_vertex_program specifics */
- struct vp_instruction *VPInstructions;
+ struct vp_instruction VPInstructions[MAX_INSTRUCTIONS];
/* Options currently recognized by the parser */
/* ARB_fp */
@@ -60,8 +64,8 @@ struct arb_program
GLboolean HintPositionInvariant;
/* ARB_fragment_program specifics */
- struct fp_instruction *FPInstructions;
- GLuint TexturesUsed[MAX_TEXTURE_IMAGE_UNITS];
+ struct fp_instruction FPInstructions[MAX_INSTRUCTIONS];
+ GLbitfield TexturesUsed[MAX_TEXTURE_IMAGE_UNITS];
GLuint NumAluInstructions;
GLuint NumTexInstructions;
GLuint NumTexIndirections;