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; |