diff options
Diffstat (limited to 'src/mesa/drivers/dri/glamo/glamo_state.c')
-rw-r--r-- | src/mesa/drivers/dri/glamo/glamo_state.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/glamo/glamo_state.c b/src/mesa/drivers/dri/glamo/glamo_state.c index 2cb15887f9..2190fbeee7 100644 --- a/src/mesa/drivers/dri/glamo/glamo_state.c +++ b/src/mesa/drivers/dri/glamo/glamo_state.c @@ -54,6 +54,9 @@ #include "glamo_fbo.h" #include "glamo_state.h" +#include "glamo_context.h" +#include "glamo_cmdq.h" +#include "glamo_regs.h" static void glamoResizeBuffers(GLcontext *ctx, struct gl_framebuffer *fb, @@ -85,9 +88,39 @@ static void glamoResizeBuffers(GLcontext *ctx, struct gl_framebuffer *fb, static void glamoClear(GLcontext *ctx, GLbitfield mask) { + glamoContext *gCtx; + struct gl_framebuffer *fb; + int i; + + gCtx = GLAMO_CONTEXT(ctx); + fb = ctx->DrawBuffer; + printf("glamoClear (%f %f %f %f)\n", ctx->Color.ClearColor[0], ctx->Color.ClearColor[1], ctx->Color.ClearColor[2], ctx->Color.ClearColor[3]); fflush(stdout); + + for (i = 0; i < fb->_NumColorDrawBuffers; i++) { + + struct glamo_renderbuffer *grb; + + grb = glamo_renderbuffer(fb->_ColorDrawBuffers[i]); + + GlamoDRMAddCommandBO(gCtx, GLAMO_REG_2D_DST_ADDRL, grb->bo); + GlamoDRMAddCommand(gCtx, GLAMO_REG_2D_DST_PITCH, + grb->width & 0x7ff); + GlamoDRMAddCommand(gCtx, GLAMO_REG_2D_DST_HEIGHT, + grb->height); + GlamoDRMAddCommand(gCtx, GLAMO_REG_2D_PAT_FG, 0xabcd); + GlamoDRMAddCommand(gCtx, GLAMO_REG_2D_COMMAND2, 0xff); /* set */ + GlamoDRMAddCommand(gCtx, GLAMO_REG_2D_DST_X, fb->_Xmin); + GlamoDRMAddCommand(gCtx, GLAMO_REG_2D_DST_Y, fb->_Ymin); + GlamoDRMAddCommand(gCtx, GLAMO_REG_2D_RECT_WIDTH, + fb->_Xmax-fb->_Xmin); + GlamoDRMAddCommand(gCtx, GLAMO_REG_2D_RECT_HEIGHT, + fb->_Ymax-fb->_Ymin); + GlamoDRMAddCommand(gCtx, GLAMO_REG_2D_COMMAND3, 0); + + } } |