summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2009-12-11 11:39:53 -0700
committerKeith Whitwell <keithw@vmware.com>2010-01-07 15:57:21 +0000
commit69c7e207c768b1c4a1c0b494b04bb05c93ea6f09 (patch)
tree18fe7450dde11aac85554874812eeec1b63688ea
parent2ea23a88cffe78cd5ed84e699a00f728010092d2 (diff)
gallium/util: simplify util_framebuffer_state_equal()
And copy width, height in util_copy_framebuffer_state(). (cherry picked from commit 8f2a1736635368951c3f30e484ee6137066964d6)
-rw-r--r--src/gallium/auxiliary/util/u_surface.c16
-rw-r--r--src/gallium/auxiliary/util/u_surface.h10
2 files changed, 16 insertions, 10 deletions
diff --git a/src/gallium/auxiliary/util/u_surface.c b/src/gallium/auxiliary/util/u_surface.c
index cb88c4d701..5095ba6b21 100644
--- a/src/gallium/auxiliary/util/u_surface.c
+++ b/src/gallium/auxiliary/util/u_surface.c
@@ -122,24 +122,27 @@ boolean
util_framebuffer_state_equal(const struct pipe_framebuffer_state *dst,
const struct pipe_framebuffer_state *src)
{
- boolean changed = FALSE;
unsigned i;
+ if (dst->width != src->width ||
+ dst->height != src->height)
+ return FALSE;
+
for (i = 0; i < Elements(src->cbufs); i++) {
if (dst->cbufs[i] != src->cbufs[i]) {
- changed = TRUE;
+ return FALSE;
}
}
if (dst->nr_cbufs != src->nr_cbufs) {
- changed = TRUE;
+ return FALSE;
}
if (dst->zsbuf != src->zsbuf) {
- changed = TRUE;
+ return FALSE;
}
- return changed;
+ return TRUE;
}
@@ -152,6 +155,9 @@ util_copy_framebuffer_state(struct pipe_framebuffer_state *dst,
{
unsigned i;
+ dst->width = src->width;
+ dst->height = src->height;
+
for (i = 0; i < Elements(src->cbufs); i++) {
pipe_surface_reference(&dst->cbufs[i], src->cbufs[i]);
}
diff --git a/src/gallium/auxiliary/util/u_surface.h b/src/gallium/auxiliary/util/u_surface.h
index a9da9aadcb..3c60df2c3e 100644
--- a/src/gallium/auxiliary/util/u_surface.h
+++ b/src/gallium/auxiliary/util/u_surface.h
@@ -30,11 +30,7 @@
#include "pipe/p_compiler.h"
-
-
-struct pipe_screen;
-struct pipe_texture;
-struct pipe_surface;
+#include "pipe/p_state.h"
/**
@@ -75,4 +71,8 @@ util_copy_framebuffer_state(struct pipe_framebuffer_state *dst,
const struct pipe_framebuffer_state *src);
+extern void
+util_unreference_framebuffer_state(struct pipe_framebuffer_state *fb);
+
+
#endif /* U_SURFACE_H */