summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCorbin Simpson <MostAwesomeDude@gmail.com>2009-04-04 22:30:14 -0700
committerCorbin Simpson <MostAwesomeDude@gmail.com>2009-04-04 22:30:14 -0700
commita4a853e593c257d3b25f8229706d11b92e1ec8c8 (patch)
tree46f7af753d1ca73de76c45fa707c3edca4261fef /src
parent7a164411ab678622d6f3194cf708b2884bfde90e (diff)
r300-gallium: Update clear() code.
We have a huge optimization opportunity, but for now we'll just use the util.
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/r300/r300_clear.c13
-rw-r--r--src/gallium/drivers/r300/r300_clear.h15
2 files changed, 20 insertions, 8 deletions
diff --git a/src/gallium/drivers/r300/r300_clear.c b/src/gallium/drivers/r300/r300_clear.c
index 8506ed2942..8b9cb819ae 100644
--- a/src/gallium/drivers/r300/r300_clear.c
+++ b/src/gallium/drivers/r300/r300_clear.c
@@ -22,11 +22,14 @@
#include "r300_clear.h"
-/* This gets its own file because Intel's is in its own file.
- * I assume there's a good reason. */
+/* Clears currently bound buffers. */
void r300_clear(struct pipe_context* pipe,
- struct pipe_surface* ps,
- unsigned color)
+ unsigned buffers,
+ const float* rgba,
+ double depth,
+ unsigned stencil)
{
- pipe->surface_fill(pipe, ps, 0, 0, ps->width, ps->height, color);
+ /* XXX we can and should do one clear if both color and zs are set */
+ util_clear(pipe, &r300_context(pipe)->framebuffer_state,
+ buffers, rgba, depth, stencil);
}
diff --git a/src/gallium/drivers/r300/r300_clear.h b/src/gallium/drivers/r300/r300_clear.h
index e24a0690c9..cd5900565e 100644
--- a/src/gallium/drivers/r300/r300_clear.h
+++ b/src/gallium/drivers/r300/r300_clear.h
@@ -20,8 +20,17 @@
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
* USE OR OTHER DEALINGS IN THE SOFTWARE. */
-#include "pipe/p_context.h"
+#ifndef R300_CLEAR_H
+#define R300_CLEAR_H
+
+#include "util/u_clear.h"
+
+#include "r300_context.h"
void r300_clear(struct pipe_context* pipe,
- struct pipe_surface* ps,
- unsigned color);
+ unsigned buffers,
+ const float* rgba,
+ double depth,
+ unsigned stencil);
+
+#endif /* R300_CLEAR_H */