glsl: Add a constructor for glsl_struct_field to specify the precision
authorNeil Roberts <nroberts@igalia.com>
Wed, 10 Jul 2019 11:01:38 +0000 (13:01 +0200)
committerNeil Roberts <nroberts@igalia.com>
Thu, 11 Jul 2019 06:04:54 +0000 (08:04 +0200)
Adds a third constructor to glsl_struct_field which has an extra
parameter to specify the precision.

Reviewed-by: Eric Anholt <eric@anholt.net>
src/compiler/glsl_types.h

index 439dccaf9334712f761291ac5ddf27035a32d497..40f148a217147f16b0775c44c4ce3bd399ad3ce6 100644 (file)
@@ -1245,23 +1245,31 @@ struct glsl_struct_field {
 
    unsigned implicit_sized_array:1;
 #ifdef __cplusplus
-#define DEFAULT_CONSTRUCTORS(_type, _name)                              \
+#define DEFAULT_CONSTRUCTORS(_type, _precision, _name)                  \
    type(_type), name(_name), location(-1), offset(-1), xfb_buffer(0),   \
    xfb_stride(0), interpolation(0), centroid(0),                        \
    sample(0), matrix_layout(GLSL_MATRIX_LAYOUT_INHERITED), patch(0),    \
-   precision(GLSL_PRECISION_NONE), memory_read_only(0),                 \
+   precision(_precision), memory_read_only(0),                          \
    memory_write_only(0), memory_coherent(0), memory_volatile(0),        \
    memory_restrict(0), image_format(0), explicit_xfb_buffer(0),         \
    implicit_sized_array(0)
 
+   glsl_struct_field(const struct glsl_type *_type,
+                     int _precision,
+                     const char *_name)
+      : DEFAULT_CONSTRUCTORS(_type, _precision, _name)
+   {
+      /* empty */
+   }
+
    glsl_struct_field(const struct glsl_type *_type, const char *_name)
-      : DEFAULT_CONSTRUCTORS(_type, _name)
+      : DEFAULT_CONSTRUCTORS(_type, GLSL_PRECISION_NONE, _name)
    {
       /* empty */
    }
 
    glsl_struct_field()
-      : DEFAULT_CONSTRUCTORS(NULL, NULL)
+      : DEFAULT_CONSTRUCTORS(NULL, GLSL_PRECISION_NONE, NULL)
    {
       /* empty */
    }