[Mesa-dev] [PATCH v2] glsl: Add without_array type predicate
Ian Romanick
idr at freedesktop.org
Wed Jul 30 10:25:32 PDT 2014
On 07/29/2014 11:18 PM, Timothy Arceri wrote:
> On Tue, 2014-07-29 at 16:14 -0700, Ian Romanick wrote:
>> From: Ian Romanick <ian.d.romanick at intel.com>
>>
>> Returns the type without any arrays.
>>
>> This will be used in later patches in this series.
>>
>> Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
>> Suggested-by: Timothy Arceri <t_arceri at yahoo.com.au>
>> Cc: Timothy Arceri <t_arceri at yahoo.com.au>
>> ---
>> src/glsl/glsl_types.h | 12 ++++++++++++
>> 1 file changed, 12 insertions(+)
>>
>> diff --git a/src/glsl/glsl_types.h b/src/glsl/glsl_types.h
>> index 0b63d48..9cd132a 100644
>> --- a/src/glsl/glsl_types.h
>> +++ b/src/glsl/glsl_types.h
>> @@ -465,6 +465,18 @@ struct glsl_type {
>> }
>>
>> /**
>> + * Get the type stripped of any arrays
>> + *
>> + * \return
>> + * Pointer to the type of elements of the first non-array type for array
>> + * types, or pointer to itself for non-array types.
>> + */
>> + const glsl_type *without_array() const
>> + {
>> + return this->is_array() ? this->fields.array : this;
>> + }
>> +
>
> Sorry I noticed this as I hit send on the last email with my reviewed by
> but shouldn't this be:
>
> return this->is_array() ? this->fields.array->without_array() : this;
Right now we don't do arrays of arrays (except perhaps for geometry
shaders?), so I didn't want to add support for a thing that I couldn't
test. :) Also, I think I'd rather do the arrays-of-arrays without
recursion. I was thinking:
const glsl_type *t = this;
while (t->is_array())
t = t->fields.array;
return t;
Some of these patches will likely get picked back to 10.2, so I'd like
to do this as a follow-up patch.
Does that sound good?
>> + /**
>> * Return the amount of atomic counter storage required for a type.
>> */
>> unsigned atomic_size() const
More information about the mesa-dev
mailing list