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
-~----------~----~----~----~------~----~------~--~---

Reply via email to