From f92d1478e984d57806731886820f47e1258b5115 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 20 Aug 2009 14:45:47 -0700 Subject: [PATCH] glamor: Maybe fix up the format/type for setspans. --- glamor/glamor_core.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/glamor/glamor_core.c b/glamor/glamor_core.c index 9c892ead9..c8b331a18 100644 --- a/glamor/glamor_core.c +++ b/glamor/glamor_core.c @@ -198,8 +198,20 @@ glamor_set_spans(DrawablePtr drawable, GCPtr gc, char *src, if (screen_pixmap != dest_pixmap) { fbSetSpans(drawable, gc, src, points, widths, n, sorted); } else { + GLenum format, type; int i; + switch (drawable->depth) { + case 24: + case 32: + format = GL_BGRA; + type = GL_UNSIGNED_INT_8_8_8_8_REV; + break; + default: + ErrorF("Unknown setspans depth %d\n", drawable->depth); + return; + } + if (!glamor_set_destination_pixmap(dest_pixmap)) return; for (i = 0; i < n; i++) { @@ -207,7 +219,7 @@ glamor_set_spans(DrawablePtr drawable, GCPtr gc, char *src, points[i].y - dest_pixmap->screen_y); glDrawPixels(widths[i], 1, - GL_RGBA, GL_UNSIGNED_BYTE, + format, type, src); src += PixmapBytePad(widths[i], drawable->depth); }