[Mesa-dev] [PATCH 1/5] Extend ir_constant::zero to handle more types.
Eric Anholt
eric at anholt.net
Mon Apr 30 11:31:52 PDT 2012
On Fri, 27 Apr 2012 10:28:00 +0200, Olivier Galibert <galibert at pobox.com> wrote:
> Signed-off-by: Olivier Galibert <galibert at pobox.com>
> ---
> src/glsl/ir.cpp | 17 ++++++++++++++++-
> 1 file changed, 16 insertions(+), 1 deletion(-)
>
> diff --git a/src/glsl/ir.cpp b/src/glsl/ir.cpp
> index 1ba8751..fbbde20 100644
> --- a/src/glsl/ir.cpp
> +++ b/src/glsl/ir.cpp
> @@ -716,12 +716,27 @@ ir_constant::ir_constant(const struct glsl_type *type, exec_list *value_list)
> ir_constant *
> ir_constant::zero(void *mem_ctx, const glsl_type *type)
> {
> - assert(type->is_numeric() || type->is_boolean());
> + assert(type->is_scalar() || type->is_vector() || type->is_matrix()
> + || type->is_record() || type->is_array());
>
> ir_constant *c = new(mem_ctx) ir_constant;
> c->type = type;
> memset(&c->value, 0, sizeof(c->value));
>
> + if (type->is_array()) {
> + c->array_elements = ralloc_array(c, ir_constant *, type->length);
> +
> + for(unsigned i = 0; i != type->length; i++)
> + c->array_elements[i] = ir_constant::zero(c, type->element_type());
> + }
> +
> + if (type->is_record()) {
> + for(unsigned i = 0; i != type->length; i++) {
Our style would be "for (unsigned i = 0; i < type->length; i++) {"
(space between 'for' and '(', and < for length checks)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20120430/2d5fd7dc/attachment-0001.pgp>
More information about the mesa-dev
mailing list