diff options
author | Brian Paul <[email protected]> | 2012-01-10 11:35:57 -0700 |
---|---|---|
committer | Brian Paul <[email protected]> | 2012-01-10 12:37:38 -0700 |
commit | 2e87660ca6deba9ba866a8012cf82f41374b5adb (patch) | |
tree | 11bbffc83023ff97e947af33381a2e2ae30ea293 /src/gallium/auxiliary/util/u_surface.c | |
parent | 6bf5daf331f13ec9503615a2578247e72b7d2cbb (diff) |
util: use memset() to initialize surface, sampler_view templates
These initialization functions weren't initializing all the fields so
some had undefined values. The callers of these functions sometimes use
a structure assignment to initialize new objects from these templates
so we'd just propagate the undefined values. That made for some confusing
info when debugging, plus it could lead to bugs.
v2: fix surf pointer mix-up: "&surf" -> "surf"
Jakob Bornecrantz <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary/util/u_surface.c')
-rw-r--r-- | src/gallium/auxiliary/util/u_surface.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/gallium/auxiliary/util/u_surface.c b/src/gallium/auxiliary/util/u_surface.c index c7fbd3657f9..a541a38ffa1 100644 --- a/src/gallium/auxiliary/util/u_surface.c +++ b/src/gallium/auxiliary/util/u_surface.c @@ -42,17 +42,21 @@ #include "util/u_surface.h" #include "util/u_pack_color.h" + +/** + * Initialize a pipe_surface object. 'view' is considered to have + * uninitialized contents. + */ void -u_surface_default_template(struct pipe_surface *view, +u_surface_default_template(struct pipe_surface *surf, const struct pipe_resource *texture, unsigned bind) { - view->format = texture->format; - view->u.tex.level = 0; - view->u.tex.first_layer = 0; - view->u.tex.last_layer = 0; + memset(surf, 0, sizeof(*surf)); + + surf->format = texture->format; /* XXX should filter out all non-rt/ds bind flags ? */ - view->usage = bind; + surf->usage = bind; } /** @@ -108,7 +112,6 @@ util_create_rgba_surface(struct pipe_context *pipe, return FALSE; /* create surface */ - memset(&surf_templ, 0, sizeof(surf_templ)); u_surface_default_template(&surf_templ, *textureOut, bind); /* create surface / view into texture */ *surfaceOut = pipe->create_surface(pipe, |