glsl_type: Add a C wrapper to get struct field offsets
authorJason Ekstrand <jason.ekstrand@intel.com>
Tue, 18 Dec 2018 16:30:23 +0000 (10:30 -0600)
committerJason Ekstrand <jason@jlekstrand.net>
Tue, 8 Jan 2019 00:38:29 +0000 (00:38 +0000)
Reviewed-by: Alejandro PiƱeiro <apinheiro@igalia.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
src/compiler/nir_types.cpp
src/compiler/nir_types.h

index e0e37e2b28953ff56764c32bdc0c3301a925a620..6995a897d60e9ce1825701b88e603384e146fdbb 100644 (file)
@@ -65,6 +65,13 @@ glsl_get_struct_field(const glsl_type *type, unsigned index)
    return type->fields.structure[index].type;
 }
 
+const int
+glsl_get_struct_field_offset(const struct glsl_type *type,
+                             unsigned index)
+{
+   return type->fields.structure[index].offset;
+}
+
 const glsl_type *
 glsl_get_function_return_type(const glsl_type *type)
 {
index e7ffad43ad06038fc15a68da5ec9804d6ef8835e..6e671b4cc71f32ba8ab18c25e2f13f2e78b62e3c 100644 (file)
@@ -46,6 +46,9 @@ const char *glsl_get_type_name(const struct glsl_type *type);
 const struct glsl_type *glsl_get_struct_field(const struct glsl_type *type,
                                               unsigned index);
 
+const int glsl_get_struct_field_offset(const struct glsl_type *type,
+                                       unsigned index);
+
 const struct glsl_type *glsl_get_array_element(const struct glsl_type *type);
 const struct glsl_type *glsl_without_array(const struct glsl_type *type);
 const struct glsl_type *glsl_without_array_or_matrix(const struct glsl_type *type);