From a7611dce40e532f6c768ed7011725fcfb6424883 Mon Sep 17 00:00:00 2001 From: Brian Date: Sun, 14 Oct 2007 12:32:39 -0600 Subject: implement put_tile() --- src/mesa/drivers/x11/xm_surface.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/mesa/drivers') diff --git a/src/mesa/drivers/x11/xm_surface.c b/src/mesa/drivers/x11/xm_surface.c index 70fa97b339..75ad450360 100644 --- a/src/mesa/drivers/x11/xm_surface.c +++ b/src/mesa/drivers/x11/xm_surface.c @@ -192,7 +192,18 @@ static void put_tile(struct pipe_surface *ps, GLuint x, GLuint y, GLuint w, GLuint h, const GLfloat *p) { - assert(0); + struct xmesa_renderbuffer *xrb = xmesa_rb((struct softpipe_surface *) ps); + GLubyte tmp[MAX_WIDTH * 4]; + GLuint i, j; + GET_CURRENT_CONTEXT(ctx); + FLIP(y); + for (i = 0; i < h; i++) { + for (j = 0; j < w * 4; j++) { + CLAMPED_FLOAT_TO_UBYTE(tmp[j], p[j]); + } + xrb->St.Base.PutRow(ctx, &xrb->St.Base, w, x, y - i, tmp, NULL); + p += w * 4; + } } -- cgit v1.2.3