From 014be60398ecde48e5c4e033e79e4ceebf07571f Mon Sep 17 00:00:00 2001 From: Neil Roberts Date: Wed, 10 Jul 2019 12:56:22 +0200 Subject: [PATCH] glsl: Add a macro for the default values for glsl_struct_field There are two constructors for glsl_struct_field with different parameters. Instead of repeating them for both constructors, this patch adds a convenience macro. This will make it easier to add a third constructor in a later patch. Reviewed-by: Eric Anholt --- src/compiler/glsl_types.h | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/src/compiler/glsl_types.h b/src/compiler/glsl_types.h index 3fd49a759c6..439dccaf933 100644 --- a/src/compiler/glsl_types.h +++ b/src/compiler/glsl_types.h @@ -1245,29 +1245,27 @@ struct glsl_struct_field { unsigned implicit_sized_array:1; #ifdef __cplusplus +#define DEFAULT_CONSTRUCTORS(_type, _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), \ + 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, const char *_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), - memory_write_only(0), memory_coherent(0), memory_volatile(0), - memory_restrict(0), image_format(0), explicit_xfb_buffer(0), - implicit_sized_array(0) + : DEFAULT_CONSTRUCTORS(_type, _name) { /* empty */ } glsl_struct_field() - : type(NULL), name(NULL), location(-1), offset(-1), xfb_buffer(0), - xfb_stride(0), interpolation(0), centroid(0), - sample(0), matrix_layout(0), patch(0), - precision(0), 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) + : DEFAULT_CONSTRUCTORS(NULL, NULL) { /* empty */ } +#undef DEFAULT_CONSTRUCTORS #endif }; -- 2.30.2