diff options
author | Corbin Simpson <MostAwesomeDude@gmail.com> | 2009-04-04 22:30:14 -0700 |
---|---|---|
committer | Corbin Simpson <MostAwesomeDude@gmail.com> | 2009-04-04 22:30:14 -0700 |
commit | a4a853e593c257d3b25f8229706d11b92e1ec8c8 (patch) | |
tree | 46f7af753d1ca73de76c45fa707c3edca4261fef /src | |
parent | 7a164411ab678622d6f3194cf708b2884bfde90e (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.c | 13 | ||||
-rw-r--r-- | src/gallium/drivers/r300/r300_clear.h | 15 |
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 */ |