Author: pebender
Date: Fri Mar 27 06:35:54 2009
New Revision: 4520
Added:
trunk/gar-minimyth/script/xorg-7.3/Mesa/files/Mesa-7.2-x8r8g8b8_fbconfig.patch
trunk/gar-minimyth/script/xorg-7.4/Mesa/files/Mesa-7.2-x8r8g8b8_fbconfig.patch
Modified:
trunk/gar-minimyth/html/minimyth/document-changelog.txt
trunk/gar-minimyth/script/xorg-7.3/Mesa/Makefile
trunk/gar-minimyth/script/xorg-7.3/Mesa/checksums
trunk/gar-minimyth/script/xorg-7.4/Mesa/Makefile
trunk/gar-minimyth/script/xorg-7.4/Mesa/checksums
Log:
- Added Mesa x8r8g8b8 fbconfig fix referenced in
<http://bugs.edge.launchpad.net/ubuntu/+source/mythtv/+bug/341898>.
Modified: trunk/gar-minimyth/html/minimyth/document-changelog.txt
==============================================================================
--- trunk/gar-minimyth/html/minimyth/document-changelog.txt (original)
+++ trunk/gar-minimyth/html/minimyth/document-changelog.txt Fri Mar 27
06:35:54 2009
@@ -13,6 +13,10 @@
patch glvdpau20212.
MythTV trunk: version trunk.20261 trunk svn 20261.
+Fixed bugs
+ - Added Mesa x8r8g8b8 fbconfig fix referenced in
+ <http://bugs.edge.launchpad.net/ubuntu/+source/mythtv/+bug/341898>.
+
Modified kernel
- Enabled IP multicast to so the kernel can drop IPTV multicast
traffic.
Modified: trunk/gar-minimyth/script/xorg-7.3/Mesa/Makefile
==============================================================================
--- trunk/gar-minimyth/script/xorg-7.3/Mesa/Makefile (original)
+++ trunk/gar-minimyth/script/xorg-7.3/Mesa/Makefile Fri Mar 27 06:35:54
2009
@@ -4,7 +4,7 @@
MASTER_SITES = http://www.mesa3d.org/beta/
MASTER_SITES += http://easynews.dl.sourceforge.net/sourceforge/mesa3d/
DISTFILES = MesaLib-$(GARVERSION).tar.gz MesaGLUT-$(GARVERSION).tar.gz
MesaDemos-$(GARVERSION).tar.gz
-PATCHFILES = $(DISTNAME)-pkg_config.patch $(DISTNAME)-gen_matypes.patch
$(DISTNAME).patch.gar
+PATCHFILES = $(DISTNAME)-x8r8g8b8_fbconfig.patch
$(DISTNAME)-pkg_config.patch $(DISTNAME)-gen_matypes.patch
$(DISTNAME).patch.gar
PATCHFILES += $(DISTNAME)-version.patch
LICENSE = LGPL2/MIT
Modified: trunk/gar-minimyth/script/xorg-7.3/Mesa/checksums
==============================================================================
--- trunk/gar-minimyth/script/xorg-7.3/Mesa/checksums (original)
+++ trunk/gar-minimyth/script/xorg-7.3/Mesa/checksums Fri Mar 27 06:35:54
2009
@@ -1,6 +1,7 @@
81a2a4b7cbfce7553f7ad8d924edbe2f download/MesaLib-7.2.tar.gz
42e3c6c6d156cd9dc545dbef72407354 download/MesaGLUT-7.2.tar.gz
10c762e39486df395838af1d7b57e69c download/MesaDemos-7.2.tar.gz
+1a2f05fe6c7f9160260ad9298dd43830 download/Mesa-7.2-x8r8g8b8_fbconfig.patch
dcd054163689e2092de934621501bbdd download/Mesa-7.2-pkg_config.patch
448c672648563c41617ea8c4e9501a86 download/Mesa-7.2-gen_matypes.patch
676c751777e479e67dfa7b98216a375b download/Mesa-7.2.patch.gar
Added:
trunk/gar-minimyth/script/xorg-7.3/Mesa/files/Mesa-7.2-x8r8g8b8_fbconfig.patch
==============================================================================
--- (empty file)
+++
trunk/gar-minimyth/script/xorg-7.3/Mesa/files/Mesa-7.2-x8r8g8b8_fbconfig.patch
Fri Mar 27 06:35:54 2009
@@ -0,0 +1,300 @@
+diff -Naur Mesa-7.2-old/src/mesa/drivers/dri/swrast/swrast.c
Mesa-7.2-new/src/mesa/drivers/dri/swrast/swrast.c
+--- Mesa-7.2-old/src/mesa/drivers/dri/swrast/swrast.c 2008-08-25
07:46:43.000000000 -0700
++++ Mesa-7.2-new/src/mesa/drivers/dri/swrast/swrast.c 2009-03-27
06:14:27.000000000 -0700
+@@ -162,17 +162,27 @@
+ depth_buffer_factor = 4;
+ back_buffer_factor = 2;
+
+- if (pixel_bits == 8) {
++ switch (pixel_bits) {
++ case 8:
+ fb_format = GL_RGB;
+ fb_type = GL_UNSIGNED_BYTE_2_3_3_REV;
+- }
+- else if (pixel_bits == 16) {
++ break;
++ case 16:
+ fb_format = GL_RGB;
+ fb_type = GL_UNSIGNED_SHORT_5_6_5;
+- }
+- else {
++ break;
++ case 24:
++ fb_format = GL_BGR;
++ fb_type = GL_UNSIGNED_INT_8_8_8_8_REV;
++ break;
++ case 32:
+ fb_format = GL_BGRA;
+ fb_type = GL_UNSIGNED_INT_8_8_8_8_REV;
++ break;
++ default:
++ fprintf(stderr, "[%s:%u] bad depth %d\n", __func__, __LINE__,
++ pixel_bits);
++ return NULL;
+ }
+
+ configs = driCreateConfigs(fb_format, fb_type,
+@@ -194,7 +204,7 @@
+ {
+ static const __DRIextension *emptyExtensionList[] = { NULL };
+ __DRIscreen *psp;
+- __DRIconfig **configs8, **configs16, **configs32;
++ __DRIconfig **configs8, **configs16, **configs24, **configs32;
+
+ (void) data;
+
+@@ -211,11 +221,12 @@
+
+ configs8 = swrastFillInModes(psp, 8, 8, 0, 1);
+ configs16 = swrastFillInModes(psp, 16, 16, 0, 1);
++ configs24 = swrastFillInModes(psp, 24, 24, 8, 1);
+ configs32 = swrastFillInModes(psp, 32, 24, 8, 1);
+
+ configs16 = (__DRIconfig **)driConcatConfigs(configs8, configs16);
+-
+- *driver_configs = driConcatConfigs(configs16, configs32);
++ configs24 = (__DRIconfig **)driConcatConfigs(configs16, configs24);
++ *driver_configs = driConcatConfigs(configs24, configs32);
+
+ driInitExtensions( NULL, card_extensions, GL_FALSE );
+
+@@ -247,19 +258,24 @@
+ choose_pixel_format(const GLvisual *v)
+ {
+ if (v->rgbMode) {
+- int bpp = v->rgbBits;
++ int depth = v->rgbBits;
+
+- if (bpp == 32
++ if (depth == 32
+ && v->redMask == 0xff0000
+ && v->greenMask == 0x00ff00
+ && v->blueMask == 0x0000ff)
+ return PF_A8R8G8B8;
+- else if (bpp == 16
++ else if (depth == 24
++ && v->redMask == 0xff0000
++ && v->greenMask == 0x00ff00
++ && v->blueMask == 0x0000ff)
++ return PF_X8R8G8B8;
++ else if (depth == 16
+ && v->redMask == 0xf800
+ && v->greenMask == 0x07e0
+ && v->blueMask == 0x001f)
+ return PF_R5G6B5;
+- else if (bpp == 8
++ else if (depth == 8
+ && v->redMask == 0x07
+ && v->greenMask == 0x38
+ && v->blueMask == 0xc0)
+@@ -288,7 +304,6 @@
+ GLenum internalFormat, GLuint width, GLuint height)
+ {
+ struct swrast_renderbuffer *xrb = swrast_renderbuffer(rb);
+- int bpp;
+ unsigned mask = PITCH_ALIGN_BITS - 1;
+
+ TRACE;
+@@ -297,23 +312,8 @@
+ rb->Width = width;
+ rb->Height = height;
+
+- switch (internalFormat) {
+- case GL_RGB:
+- bpp = rb->RedBits + rb->GreenBits + rb->BlueBits;
+- break;
+- case GL_RGBA:
+- bpp = rb->RedBits + rb->GreenBits + rb->BlueBits + rb->AlphaBits;
+- break;
+- case GL_COLOR_INDEX8_EXT:
+- bpp = rb->IndexBits;
+- break;
+- default:
+- _mesa_problem( NULL, "unexpected format in %s", __FUNCTION__ );
+- return GL_FALSE;
+- }
+-
+ /* always pad to PITCH_ALIGN_BITS */
+- xrb->pitch = ((width * bpp + mask) & ~mask) / 8;
++ xrb->pitch = ((width * xrb->bpp + mask) & ~mask) / 8;
+
+ return GL_TRUE;
+ }
+@@ -369,6 +369,17 @@
+ xrb->Base.GreenBits = 8 * sizeof(GLubyte);
+ xrb->Base.BlueBits = 8 * sizeof(GLubyte);
+ xrb->Base.AlphaBits = 8 * sizeof(GLubyte);
++ xrb->bpp = 32;
++ break;
++ case PF_X8R8G8B8:
++ xrb->Base.InternalFormat = GL_RGB;
++ xrb->Base._BaseFormat = GL_RGB;
++ xrb->Base.DataType = GL_UNSIGNED_BYTE;
++ xrb->Base.RedBits = 8 * sizeof(GLubyte);
++ xrb->Base.GreenBits = 8 * sizeof(GLubyte);
++ xrb->Base.BlueBits = 8 * sizeof(GLubyte);
++ xrb->Base.AlphaBits = 0;
++ xrb->bpp = 32;
+ break;
+ case PF_R5G6B5:
+ xrb->Base.InternalFormat = GL_RGB;
+@@ -378,6 +389,7 @@
+ xrb->Base.GreenBits = 6 * sizeof(GLubyte);
+ xrb->Base.BlueBits = 5 * sizeof(GLubyte);
+ xrb->Base.AlphaBits = 0;
++ xrb->bpp = 16;
+ break;
+ case PF_R3G3B2:
+ xrb->Base.InternalFormat = GL_RGB;
+@@ -387,12 +399,14 @@
+ xrb->Base.GreenBits = 3 * sizeof(GLubyte);
+ xrb->Base.BlueBits = 2 * sizeof(GLubyte);
+ xrb->Base.AlphaBits = 0;
++ xrb->bpp = 8;
+ break;
+ case PF_CI8:
+ xrb->Base.InternalFormat = GL_COLOR_INDEX8_EXT;
+ xrb->Base._BaseFormat = GL_COLOR_INDEX;
+ xrb->Base.DataType = GL_UNSIGNED_BYTE;
+ xrb->Base.IndexBits = 8 * sizeof(GLubyte);
++ xrb->bpp = 8;
+ break;
+ default:
+ return NULL;
+diff -Naur Mesa-7.2-old/src/mesa/drivers/dri/swrast/swrast_priv.h
Mesa-7.2-new/src/mesa/drivers/dri/swrast/swrast_priv.h
+--- Mesa-7.2-old/src/mesa/drivers/dri/swrast/swrast_priv.h 2008-08-25
07:46:43.000000000 -0700
++++ Mesa-7.2-new/src/mesa/drivers/dri/swrast/swrast_priv.h 2009-03-27
06:12:35.000000000 -0700
+@@ -90,6 +90,8 @@
+
+ /* renderbuffer pitch (in bytes) */
+ GLuint pitch;
++ /* bits per pixel of storage */
++ GLuint bpp;
+ };
+
+ static INLINE __DRIcontext *
+@@ -115,10 +117,10 @@
+ * Pixel formats we support
+ */
+ #define PF_CI8 1 /**< Color Index mode */
+-#define PF_A8R8G8B8 2 /**< 32-bit TrueColor: 8-A, 8-R, 8-G,
8-B bits
*/
+-#define PF_R5G6B5 3 /**< 16-bit TrueColor: 5-R, 6-G, 5-B
bits */
+-#define PF_R3G3B2 4 /**< 8-bit TrueColor: 3-R, 3-G, 2-B
bits */
+-
++#define PF_A8R8G8B8 2 /**< 32bpp TrueColor: 8-A, 8-R, 8-G,
8-B bits */
++#define PF_R5G6B5 3 /**< 16bpp TrueColor: 5-R, 6-G, 5-B
bits */
++#define PF_R3G3B2 4 /**< 8bpp TrueColor: 3-R, 3-G, 2-B
bits */
++#define PF_X8R8G8B8 5 /**< 32bpp TrueColor: 8-R, 8-G, 8-B
bits */
+
+ /**
+ * Renderbuffer pitch alignment (in bits).
+diff -Naur Mesa-7.2-old/src/mesa/drivers/dri/swrast/swrast_span.c
Mesa-7.2-new/src/mesa/drivers/dri/swrast/swrast_span.c
+--- Mesa-7.2-old/src/mesa/drivers/dri/swrast/swrast_span.c 2008-08-25
07:46:43.000000000 -0700
++++ Mesa-7.2-new/src/mesa/drivers/dri/swrast/swrast_span.c 2009-03-27
06:12:35.000000000 -0700
+@@ -79,6 +79,24 @@
+ DST[BCOMP] = SRC[0]
+
+
++/* 32-bit BGRX */
++#define STORE_PIXEL_X8R8G8B8(DST, X, Y, VALUE) \
++ DST[3] = 0xff; \
++ DST[2] = VALUE[RCOMP]; \
++ DST[1] = VALUE[GCOMP]; \
++ DST[0] = VALUE[BCOMP]
++#define STORE_PIXEL_RGB_X8R8G8B8(DST, X, Y, VALUE) \
++ DST[3] = 0xff; \
++ DST[2] = VALUE[RCOMP]; \
++ DST[1] = VALUE[GCOMP]; \
++ DST[0] = VALUE[BCOMP]
++#define FETCH_PIXEL_X8R8G8B8(DST, SRC) \
++ DST[ACOMP] = 0xff; \
++ DST[RCOMP] = SRC[2]; \
++ DST[GCOMP] = SRC[1]; \
++ DST[BCOMP] = SRC[0]
++
++
+ /* 16-bit BGR */
+ #define STORE_PIXEL_R5G6B5(DST, X, Y, VALUE) \
+ do { \
+@@ -139,6 +157,24 @@
+ #include "swrast/s_spantemp.h"
+
+
++/* 32-bit BGRX */
++#define NAME(FUNC) FUNC##_X8R8G8B8
++#define RB_TYPE GLubyte
++#define SPAN_VARS \
++ struct swrast_renderbuffer *xrb = swrast_renderbuffer(rb);
++#define INIT_PIXEL_PTR(P, X, Y) \
++ GLubyte *P = (GLubyte *)xrb->Base.Data + YFLIP(xrb, Y) * xrb->pitch +
(X) * 4;
++#define INC_PIXEL_PTR(P) P += 4
++#define STORE_PIXEL(DST, X, Y, VALUE) \
++ STORE_PIXEL_X8R8G8B8(DST, X, Y, VALUE)
++#define STORE_PIXEL_RGB(DST, X, Y, VALUE) \
++ STORE_PIXEL_RGB_X8R8G8B8(DST, X, Y, VALUE)
++#define FETCH_PIXEL(DST, SRC) \
++ FETCH_PIXEL_X8R8G8B8(DST, SRC)
++
++#include "swrast/s_spantemp.h"
++
++
+ /* 16-bit BGR */
+ #define NAME(FUNC) FUNC##_R5G6B5
+ #define RB_TYPE GLubyte
+@@ -210,6 +246,24 @@
+ #include "swrast_spantemp.h"
+
+
++/* 32-bit BGRX */
++#define NAME(FUNC) FUNC##_X8R8G8B8_front
++#define RB_TYPE GLubyte
++#define SPAN_VARS \
++ struct swrast_renderbuffer *xrb = swrast_renderbuffer(rb);
++#define INIT_PIXEL_PTR(P, X, Y) \
++ GLubyte *P = (GLubyte *)row;
++#define INC_PIXEL_PTR(P) P += 4
++#define STORE_PIXEL(DST, X, Y, VALUE) \
++ STORE_PIXEL_X8R8G8B8(DST, X, Y, VALUE)
++#define STORE_PIXEL_RGB(DST, X, Y, VALUE) \
++ STORE_PIXEL_RGB_X8R8G8B8(DST, X, Y, VALUE)
++#define FETCH_PIXEL(DST, SRC) \
++ FETCH_PIXEL_X8R8G8B8(DST, SRC)
++
++#include "swrast_spantemp.h"
++
++
+ /* 16-bit BGR */
+ #define NAME(FUNC) FUNC##_R5G6B5_front
+ #define RB_TYPE GLubyte
+@@ -279,6 +333,15 @@
+ xrb->Base.PutValues = put_values_A8R8G8B8;
+ xrb->Base.PutMonoValues = put_mono_values_A8R8G8B8;
+ break;
++ case PF_X8R8G8B8:
++ xrb->Base.GetRow = get_row_X8R8G8B8;
++ xrb->Base.GetValues = get_values_X8R8G8B8;
++ xrb->Base.PutRow = put_row_X8R8G8B8;
++ xrb->Base.PutRowRGB = put_row_rgb_X8R8G8B8;
++ xrb->Base.PutMonoRow = put_mono_row_X8R8G8B8;
++ xrb->Base.PutValues = put_values_X8R8G8B8;
++ xrb->Base.PutMonoValues = put_mono_values_X8R8G8B8;
++ break;
+ case PF_R5G6B5:
+ xrb->Base.GetRow = get_row_R5G6B5;
+ xrb->Base.GetValues = get_values_R5G6B5;
+@@ -334,6 +397,15 @@
+ xrb->Base.PutValues = put_values_A8R8G8B8_front;
+ xrb->Base.PutMonoValues = put_mono_values_A8R8G8B8_front;
+ break;
++ case PF_X8R8G8B8:
++ xrb->Base.GetRow = get_row_X8R8G8B8_front;
++ xrb->Base.GetValues = get_values_X8R8G8B8_front;
++ xrb->Base.PutRow = put_row_X8R8G8B8_front;
++ xrb->Base.PutRowRGB = put_row_rgb_X8R8G8B8_front;
++ xrb->Base.PutMonoRow = put_mono_row_X8R8G8B8_front;
++ xrb->Base.PutValues = put_values_X8R8G8B8_front;
++ xrb->Base.PutMonoValues = put_mono_values_X8R8G8B8_front;
++ break;
+ case PF_R5G6B5:
+ xrb->Base.GetRow = get_row_R5G6B5_front;
+ xrb->Base.GetValues = get_values_R5G6B5_front;
Modified: trunk/gar-minimyth/script/xorg-7.4/Mesa/Makefile
==============================================================================
--- trunk/gar-minimyth/script/xorg-7.4/Mesa/Makefile (original)
+++ trunk/gar-minimyth/script/xorg-7.4/Mesa/Makefile Fri Mar 27 06:35:54
2009
@@ -4,7 +4,7 @@
MASTER_SITES = http://www.mesa3d.org/beta/
MASTER_SITES += http://easynews.dl.sourceforge.net/sourceforge/mesa3d/
DISTFILES = MesaLib-$(GARVERSION).tar.gz MesaGLUT-$(GARVERSION).tar.gz
MesaDemos-$(GARVERSION).tar.gz
-PATCHFILES = $(DISTNAME)-pkg_config.patch $(DISTNAME)-gen_matypes.patch
$(DISTNAME).patch.gar
+PATCHFILES = $(DISTNAME)-x8r8g8b8_fbconfig.patch
$(DISTNAME)-pkg_config.patch $(DISTNAME)-gen_matypes.patch
$(DISTNAME).patch.gar
PATCHFILES += $(DISTNAME)-version.patch
LICENSE = LGPL2/MIT
Modified: trunk/gar-minimyth/script/xorg-7.4/Mesa/checksums
==============================================================================
--- trunk/gar-minimyth/script/xorg-7.4/Mesa/checksums (original)
+++ trunk/gar-minimyth/script/xorg-7.4/Mesa/checksums Fri Mar 27 06:35:54
2009
@@ -1,6 +1,7 @@
81a2a4b7cbfce7553f7ad8d924edbe2f download/MesaLib-7.2.tar.gz
42e3c6c6d156cd9dc545dbef72407354 download/MesaGLUT-7.2.tar.gz
10c762e39486df395838af1d7b57e69c download/MesaDemos-7.2.tar.gz
+1a2f05fe6c7f9160260ad9298dd43830 download/Mesa-7.2-x8r8g8b8_fbconfig.patch
dcd054163689e2092de934621501bbdd download/Mesa-7.2-pkg_config.patch
448c672648563c41617ea8c4e9501a86 download/Mesa-7.2-gen_matypes.patch
676c751777e479e67dfa7b98216a375b download/Mesa-7.2.patch.gar
Added:
trunk/gar-minimyth/script/xorg-7.4/Mesa/files/Mesa-7.2-x8r8g8b8_fbconfig.patch
==============================================================================
--- (empty file)
+++
trunk/gar-minimyth/script/xorg-7.4/Mesa/files/Mesa-7.2-x8r8g8b8_fbconfig.patch
Fri Mar 27 06:35:54 2009
@@ -0,0 +1,300 @@
+diff -Naur Mesa-7.2-old/src/mesa/drivers/dri/swrast/swrast.c
Mesa-7.2-new/src/mesa/drivers/dri/swrast/swrast.c
+--- Mesa-7.2-old/src/mesa/drivers/dri/swrast/swrast.c 2008-08-25
07:46:43.000000000 -0700
++++ Mesa-7.2-new/src/mesa/drivers/dri/swrast/swrast.c 2009-03-27
06:14:27.000000000 -0700
+@@ -162,17 +162,27 @@
+ depth_buffer_factor = 4;
+ back_buffer_factor = 2;
+
+- if (pixel_bits == 8) {
++ switch (pixel_bits) {
++ case 8:
+ fb_format = GL_RGB;
+ fb_type = GL_UNSIGNED_BYTE_2_3_3_REV;
+- }
+- else if (pixel_bits == 16) {
++ break;
++ case 16:
+ fb_format = GL_RGB;
+ fb_type = GL_UNSIGNED_SHORT_5_6_5;
+- }
+- else {
++ break;
++ case 24:
++ fb_format = GL_BGR;
++ fb_type = GL_UNSIGNED_INT_8_8_8_8_REV;
++ break;
++ case 32:
+ fb_format = GL_BGRA;
+ fb_type = GL_UNSIGNED_INT_8_8_8_8_REV;
++ break;
++ default:
++ fprintf(stderr, "[%s:%u] bad depth %d\n", __func__, __LINE__,
++ pixel_bits);
++ return NULL;
+ }
+
+ configs = driCreateConfigs(fb_format, fb_type,
+@@ -194,7 +204,7 @@
+ {
+ static const __DRIextension *emptyExtensionList[] = { NULL };
+ __DRIscreen *psp;
+- __DRIconfig **configs8, **configs16, **configs32;
++ __DRIconfig **configs8, **configs16, **configs24, **configs32;
+
+ (void) data;
+
+@@ -211,11 +221,12 @@
+
+ configs8 = swrastFillInModes(psp, 8, 8, 0, 1);
+ configs16 = swrastFillInModes(psp, 16, 16, 0, 1);
++ configs24 = swrastFillInModes(psp, 24, 24, 8, 1);
+ configs32 = swrastFillInModes(psp, 32, 24, 8, 1);
+
+ configs16 = (__DRIconfig **)driConcatConfigs(configs8, configs16);
+-
+- *driver_configs = driConcatConfigs(configs16, configs32);
++ configs24 = (__DRIconfig **)driConcatConfigs(configs16, configs24);
++ *driver_configs = driConcatConfigs(configs24, configs32);
+
+ driInitExtensions( NULL, card_extensions, GL_FALSE );
+
+@@ -247,19 +258,24 @@
+ choose_pixel_format(const GLvisual *v)
+ {
+ if (v->rgbMode) {
+- int bpp = v->rgbBits;
++ int depth = v->rgbBits;
+
+- if (bpp == 32
++ if (depth == 32
+ && v->redMask == 0xff0000
+ && v->greenMask == 0x00ff00
+ && v->blueMask == 0x0000ff)
+ return PF_A8R8G8B8;
+- else if (bpp == 16
++ else if (depth == 24
++ && v->redMask == 0xff0000
++ && v->greenMask == 0x00ff00
++ && v->blueMask == 0x0000ff)
++ return PF_X8R8G8B8;
++ else if (depth == 16
+ && v->redMask == 0xf800
+ && v->greenMask == 0x07e0
+ && v->blueMask == 0x001f)
+ return PF_R5G6B5;
+- else if (bpp == 8
++ else if (depth == 8
+ && v->redMask == 0x07
+ && v->greenMask == 0x38
+ && v->blueMask == 0xc0)
+@@ -288,7 +304,6 @@
+ GLenum internalFormat, GLuint width, GLuint height)
+ {
+ struct swrast_renderbuffer *xrb = swrast_renderbuffer(rb);
+- int bpp;
+ unsigned mask = PITCH_ALIGN_BITS - 1;
+
+ TRACE;
+@@ -297,23 +312,8 @@
+ rb->Width = width;
+ rb->Height = height;
+
+- switch (internalFormat) {
+- case GL_RGB:
+- bpp = rb->RedBits + rb->GreenBits + rb->BlueBits;
+- break;
+- case GL_RGBA:
+- bpp = rb->RedBits + rb->GreenBits + rb->BlueBits + rb->AlphaBits;
+- break;
+- case GL_COLOR_INDEX8_EXT:
+- bpp = rb->IndexBits;
+- break;
+- default:
+- _mesa_problem( NULL, "unexpected format in %s", __FUNCTION__ );
+- return GL_FALSE;
+- }
+-
+ /* always pad to PITCH_ALIGN_BITS */
+- xrb->pitch = ((width * bpp + mask) & ~mask) / 8;
++ xrb->pitch = ((width * xrb->bpp + mask) & ~mask) / 8;
+
+ return GL_TRUE;
+ }
+@@ -369,6 +369,17 @@
+ xrb->Base.GreenBits = 8 * sizeof(GLubyte);
+ xrb->Base.BlueBits = 8 * sizeof(GLubyte);
+ xrb->Base.AlphaBits = 8 * sizeof(GLubyte);
++ xrb->bpp = 32;
++ break;
++ case PF_X8R8G8B8:
++ xrb->Base.InternalFormat = GL_RGB;
++ xrb->Base._BaseFormat = GL_RGB;
++ xrb->Base.DataType = GL_UNSIGNED_BYTE;
++ xrb->Base.RedBits = 8 * sizeof(GLubyte);
++ xrb->Base.GreenBits = 8 * sizeof(GLubyte);
++ xrb->Base.BlueBits = 8 * sizeof(GLubyte);
++ xrb->Base.AlphaBits = 0;
++ xrb->bpp = 32;
+ break;
+ case PF_R5G6B5:
+ xrb->Base.InternalFormat = GL_RGB;
+@@ -378,6 +389,7 @@
+ xrb->Base.GreenBits = 6 * sizeof(GLubyte);
+ xrb->Base.BlueBits = 5 * sizeof(GLubyte);
+ xrb->Base.AlphaBits = 0;
++ xrb->bpp = 16;
+ break;
+ case PF_R3G3B2:
+ xrb->Base.InternalFormat = GL_RGB;
+@@ -387,12 +399,14 @@
+ xrb->Base.GreenBits = 3 * sizeof(GLubyte);
+ xrb->Base.BlueBits = 2 * sizeof(GLubyte);
+ xrb->Base.AlphaBits = 0;
++ xrb->bpp = 8;
+ break;
+ case PF_CI8:
+ xrb->Base.InternalFormat = GL_COLOR_INDEX8_EXT;
+ xrb->Base._BaseFormat = GL_COLOR_INDEX;
+ xrb->Base.DataType = GL_UNSIGNED_BYTE;
+ xrb->Base.IndexBits = 8 * sizeof(GLubyte);
++ xrb->bpp = 8;
+ break;
+ default:
+ return NULL;
+diff -Naur Mesa-7.2-old/src/mesa/drivers/dri/swrast/swrast_priv.h
Mesa-7.2-new/src/mesa/drivers/dri/swrast/swrast_priv.h
+--- Mesa-7.2-old/src/mesa/drivers/dri/swrast/swrast_priv.h 2008-08-25
07:46:43.000000000 -0700
++++ Mesa-7.2-new/src/mesa/drivers/dri/swrast/swrast_priv.h 2009-03-27
06:12:35.000000000 -0700
+@@ -90,6 +90,8 @@
+
+ /* renderbuffer pitch (in bytes) */
+ GLuint pitch;
++ /* bits per pixel of storage */
++ GLuint bpp;
+ };
+
+ static INLINE __DRIcontext *
+@@ -115,10 +117,10 @@
+ * Pixel formats we support
+ */
+ #define PF_CI8 1 /**< Color Index mode */
+-#define PF_A8R8G8B8 2 /**< 32-bit TrueColor: 8-A, 8-R, 8-G,
8-B bits
*/
+-#define PF_R5G6B5 3 /**< 16-bit TrueColor: 5-R, 6-G, 5-B
bits */
+-#define PF_R3G3B2 4 /**< 8-bit TrueColor: 3-R, 3-G, 2-B
bits */
+-
++#define PF_A8R8G8B8 2 /**< 32bpp TrueColor: 8-A, 8-R, 8-G,
8-B bits */
++#define PF_R5G6B5 3 /**< 16bpp TrueColor: 5-R, 6-G, 5-B
bits */
++#define PF_R3G3B2 4 /**< 8bpp TrueColor: 3-R, 3-G, 2-B
bits */
++#define PF_X8R8G8B8 5 /**< 32bpp TrueColor: 8-R, 8-G, 8-B
bits */
+
+ /**
+ * Renderbuffer pitch alignment (in bits).
+diff -Naur Mesa-7.2-old/src/mesa/drivers/dri/swrast/swrast_span.c
Mesa-7.2-new/src/mesa/drivers/dri/swrast/swrast_span.c
+--- Mesa-7.2-old/src/mesa/drivers/dri/swrast/swrast_span.c 2008-08-25
07:46:43.000000000 -0700
++++ Mesa-7.2-new/src/mesa/drivers/dri/swrast/swrast_span.c 2009-03-27
06:12:35.000000000 -0700
+@@ -79,6 +79,24 @@
+ DST[BCOMP] = SRC[0]
+
+
++/* 32-bit BGRX */
++#define STORE_PIXEL_X8R8G8B8(DST, X, Y, VALUE) \
++ DST[3] = 0xff; \
++ DST[2] = VALUE[RCOMP]; \
++ DST[1] = VALUE[GCOMP]; \
++ DST[0] = VALUE[BCOMP]
++#define STORE_PIXEL_RGB_X8R8G8B8(DST, X, Y, VALUE) \
++ DST[3] = 0xff; \
++ DST[2] = VALUE[RCOMP]; \
++ DST[1] = VALUE[GCOMP]; \
++ DST[0] = VALUE[BCOMP]
++#define FETCH_PIXEL_X8R8G8B8(DST, SRC) \
++ DST[ACOMP] = 0xff; \
++ DST[RCOMP] = SRC[2]; \
++ DST[GCOMP] = SRC[1]; \
++ DST[BCOMP] = SRC[0]
++
++
+ /* 16-bit BGR */
+ #define STORE_PIXEL_R5G6B5(DST, X, Y, VALUE) \
+ do { \
+@@ -139,6 +157,24 @@
+ #include "swrast/s_spantemp.h"
+
+
++/* 32-bit BGRX */
++#define NAME(FUNC) FUNC##_X8R8G8B8
++#define RB_TYPE GLubyte
++#define SPAN_VARS \
++ struct swrast_renderbuffer *xrb = swrast_renderbuffer(rb);
++#define INIT_PIXEL_PTR(P, X, Y) \
++ GLubyte *P = (GLubyte *)xrb->Base.Data + YFLIP(xrb, Y) * xrb->pitch +
(X) * 4;
++#define INC_PIXEL_PTR(P) P += 4
++#define STORE_PIXEL(DST, X, Y, VALUE) \
++ STORE_PIXEL_X8R8G8B8(DST, X, Y, VALUE)
++#define STORE_PIXEL_RGB(DST, X, Y, VALUE) \
++ STORE_PIXEL_RGB_X8R8G8B8(DST, X, Y, VALUE)
++#define FETCH_PIXEL(DST, SRC) \
++ FETCH_PIXEL_X8R8G8B8(DST, SRC)
++
++#include "swrast/s_spantemp.h"
++
++
+ /* 16-bit BGR */
+ #define NAME(FUNC) FUNC##_R5G6B5
+ #define RB_TYPE GLubyte
+@@ -210,6 +246,24 @@
+ #include "swrast_spantemp.h"
+
+
++/* 32-bit BGRX */
++#define NAME(FUNC) FUNC##_X8R8G8B8_front
++#define RB_TYPE GLubyte
++#define SPAN_VARS \
++ struct swrast_renderbuffer *xrb = swrast_renderbuffer(rb);
++#define INIT_PIXEL_PTR(P, X, Y) \
++ GLubyte *P = (GLubyte *)row;
++#define INC_PIXEL_PTR(P) P += 4
++#define STORE_PIXEL(DST, X, Y, VALUE) \
++ STORE_PIXEL_X8R8G8B8(DST, X, Y, VALUE)
++#define STORE_PIXEL_RGB(DST, X, Y, VALUE) \
++ STORE_PIXEL_RGB_X8R8G8B8(DST, X, Y, VALUE)
++#define FETCH_PIXEL(DST, SRC) \
++ FETCH_PIXEL_X8R8G8B8(DST, SRC)
++
++#include "swrast_spantemp.h"
++
++
+ /* 16-bit BGR */
+ #define NAME(FUNC) FUNC##_R5G6B5_front
+ #define RB_TYPE GLubyte
+@@ -279,6 +333,15 @@
+ xrb->Base.PutValues = put_values_A8R8G8B8;
+ xrb->Base.PutMonoValues = put_mono_values_A8R8G8B8;
+ break;
++ case PF_X8R8G8B8:
++ xrb->Base.GetRow = get_row_X8R8G8B8;
++ xrb->Base.GetValues = get_values_X8R8G8B8;
++ xrb->Base.PutRow = put_row_X8R8G8B8;
++ xrb->Base.PutRowRGB = put_row_rgb_X8R8G8B8;
++ xrb->Base.PutMonoRow = put_mono_row_X8R8G8B8;
++ xrb->Base.PutValues = put_values_X8R8G8B8;
++ xrb->Base.PutMonoValues = put_mono_values_X8R8G8B8;
++ break;
+ case PF_R5G6B5:
+ xrb->Base.GetRow = get_row_R5G6B5;
+ xrb->Base.GetValues = get_values_R5G6B5;
+@@ -334,6 +397,15 @@
+ xrb->Base.PutValues = put_values_A8R8G8B8_front;
+ xrb->Base.PutMonoValues = put_mono_values_A8R8G8B8_front;
+ break;
++ case PF_X8R8G8B8:
++ xrb->Base.GetRow = get_row_X8R8G8B8_front;
++ xrb->Base.GetValues = get_values_X8R8G8B8_front;
++ xrb->Base.PutRow = put_row_X8R8G8B8_front;
++ xrb->Base.PutRowRGB = put_row_rgb_X8R8G8B8_front;
++ xrb->Base.PutMonoRow = put_mono_row_X8R8G8B8_front;
++ xrb->Base.PutValues = put_values_X8R8G8B8_front;
++ xrb->Base.PutMonoValues = put_mono_values_X8R8G8B8_front;
++ break;
+ case PF_R5G6B5:
+ xrb->Base.GetRow = get_row_R5G6B5_front;
+ xrb->Base.GetValues = get_values_R5G6B5_front;
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"minimyth-commits" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/minimyth-commits?hl=en
-~----------~----~----~----~------~----~------~--~---