diff options
| author | Ian Romanick <ian.d.romanick@intel.com> | 2010-06-21 11:42:02 -0700 | 
|---|---|---|
| committer | Ian Romanick <ian.d.romanick@intel.com> | 2010-06-23 10:56:03 -0700 | 
| commit | 69a079aee8f79104501faeb2a5092b643f956d33 (patch) | |
| tree | 3f4a609f0d071c97c35b598b75bf0fee5c58a24f | |
| parent | 371019248ef94ddd7ee2491813e6f41c0412b2ba (diff) | |
ir_variable: Track the location of uniforms, varings, attributes, etc.
| -rw-r--r-- | ir.cpp | 1 | ||||
| -rw-r--r-- | ir.h | 17 | 
2 files changed, 18 insertions, 0 deletions
| @@ -731,6 +731,7 @@ ir_variable::ir_variable(const struct glsl_type *type, const char *name)  {     this->type = type;     this->name = name; +   this->location = -1;     this->constant_value = NULL;     if (type && type->base_type == GLSL_TYPE_SAMPLER) @@ -218,6 +218,23 @@ public:     unsigned array_lvalue:1;     /** +    * Storage location of the base of this variable +    * +    * The precise meaning of this field depends on the nature of the variable. +    * +    *   - Vertex shader input: one of the values from \c gl_vert_attrib. +    *   - Vertex shader output: one of the values from \c gl_vert_result. +    *   - Fragment shader input: one of the values from \c gl_frag_attrib. +    *   - Fragment shader output: one of the values from \c gl_frag_result. +    *   - Uniforms: Per-stage uniform slot number. +    *   - Other: This field is not currently used. +    * +    * If the variable is a uniform, shader input, or shader output, and the +    * slot has not been assigned, the value will be -1. +    */ +   int location; + +   /**      * Emit a warning if this variable is accessed.      */     const char *warn_extension; | 
