summaryrefslogtreecommitdiff
path: root/src/glsl/glsl_types.cpp
diff options
context:
space:
mode:
authorIan Romanick <ian.d.romanick@intel.com>2010-06-28 11:09:40 -0700
committerIan Romanick <ian.d.romanick@intel.com>2010-06-29 11:15:39 -0700
commit31bcce04b1f9c8c5e33370e26a3a9d6e60049aa8 (patch)
tree3d945d05125c5d4109c1493b24e441f9bd16bc30 /src/glsl/glsl_types.cpp
parente94642eb0d99ff7f6cdaee31ed4f5f29bdabd6f7 (diff)
glsl_type: Vector, matrix, and sampler type constructors are private
Diffstat (limited to 'src/glsl/glsl_types.cpp')
-rw-r--r--src/glsl/glsl_types.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/glsl/glsl_types.cpp b/src/glsl/glsl_types.cpp
index 69bed33d81..158659c71e 100644
--- a/src/glsl/glsl_types.cpp
+++ b/src/glsl/glsl_types.cpp
@@ -33,6 +33,37 @@ extern "C" {
hash_table *glsl_type::array_types = NULL;
+glsl_type::glsl_type(GLenum gl_type,
+ unsigned base_type, unsigned vector_elements,
+ unsigned matrix_columns, const char *name) :
+ gl_type(gl_type),
+ base_type(base_type),
+ sampler_dimensionality(0), sampler_shadow(0), sampler_array(0),
+ sampler_type(0),
+ vector_elements(vector_elements), matrix_columns(matrix_columns),
+ name(name),
+ length(0)
+{
+ /* Neither dimension is zero or both dimensions are zero.
+ */
+ assert((vector_elements == 0) == (matrix_columns == 0));
+ memset(& fields, 0, sizeof(fields));
+}
+
+glsl_type::glsl_type(GLenum gl_type,
+ enum glsl_sampler_dim dim, bool shadow, bool array,
+ unsigned type, const char *name) :
+ gl_type(gl_type),
+ base_type(GLSL_TYPE_SAMPLER),
+ sampler_dimensionality(dim), sampler_shadow(shadow),
+ sampler_array(array), sampler_type(type),
+ vector_elements(0), matrix_columns(0),
+ name(name),
+ length(0)
+{
+ memset(& fields, 0, sizeof(fields));
+}
+
static void
add_types_to_symbol_table(glsl_symbol_table *symtab,
const struct glsl_type *types,