[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

X Strike Force XFree86 SVN commit: r1078 - in trunk/debian: . patches



Author: branden
Date: 2004-02-19 17:30:01 -0500 (Thu, 19 Feb 2004)
New Revision: 1078

Added:
   trunk/debian/patches/072_Xserver_fb_convert_RGB_to_BGR.diff
Modified:
   trunk/debian/changelog
Log:
Apply patch by David S. Miller to implement support for RGB->BGR
colorspace conversion in the X server's fb layer.


Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog	2004-02-19 22:06:55 UTC (rev 1077)
+++ trunk/debian/changelog	2004-02-19 22:30:01 UTC (rev 1078)
@@ -47,8 +47,12 @@
     enables numeric keypad period key for Brazilian ABNT2 keyboards (thanks,
     Michael Loos!).  (Closes: #233621)
 
- -- Branden Robinson <branden@debian.org>  Thu, 19 Feb 2004 16:53:01 -0500
+  * Apply patch by David S. Miller to implement support for RGB->BGR
+    colorspace conversion in the X server's fb layer.
+    - debian/patches/072_Xserver_fb_convert_RGB_to_BGR.diff
 
+ -- Branden Robinson <branden@debian.org>  Thu, 19 Feb 2004 17:28:19 -0500
+
 xfree86 (4.3.0-2) unstable; urgency=low
 
   * The "It's like I have a shotgun in my mouth, I've got my finger on the

Added: trunk/debian/patches/072_Xserver_fb_convert_RGB_to_BGR.diff
===================================================================
--- trunk/debian/patches/072_Xserver_fb_convert_RGB_to_BGR.diff	2004-02-19 22:06:55 UTC (rev 1077)
+++ trunk/debian/patches/072_Xserver_fb_convert_RGB_to_BGR.diff	2004-02-19 22:30:01 UTC (rev 1078)
@@ -0,0 +1,96 @@
+$Id$
+
+Fix up case where we need to convert RGB->BGR (fixes SDL under sunffb, for
+example).
+
+This patch by David S. Miller via Ben Collins.
+
+Not submitted to XFree86.
+
+--- xc.orig/programs/Xserver/fb/fbpict.c	2002-12-13 20:46:02.000000000 -0500
++++ xc/programs/Xserver/fb/fbpict.c	2004-02-17 10:44:46.000000000 -0500
+@@ -99,7 +99,7 @@
+     return m|n|o|p;
+ }
+ 
+-#define fbComposeGetSolid(pict, bits) { \
++#define fbComposeGetSolid(pict, bits, fmt) { \
+     FbBits	*__bits__; \
+     FbStride	__stride__; \
+     int		__bpp__; \
+@@ -120,6 +120,14 @@
+     default: \
+ 	return; \
+     } \
++    /* If necessary, convert RGB <--> BGR. */ \
++    if (PICT_FORMAT_TYPE((pict)->format) != PICT_FORMAT_TYPE(fmt)) \
++    { \
++        (bits) = (((bits) & 0xff000000) | \
++                  (((bits) & 0x00ff0000) >> 16) | \
++                  (((bits) & 0x0000ff00) >>  0) | \
++                  (((bits) & 0x000000ff) << 16)); \
++    } \
+     /* manage missing src alpha */ \
+     if ((pict)->pFormat->direct.alphaMask == 0) \
+ 	(bits) |= 0xff000000; \
+@@ -162,13 +170,13 @@
+     FbStride	dstStride, maskStride;
+     CARD16	w;
+ 
+-    fbComposeGetSolid(pSrc, src);
++    fbComposeGetSolid(pSrc, src, pDst->format);
+     
+     dstMask = FbFullMask (pDst->pDrawable->depth);
+     srca = src >> 24;
+     if (src == 0)
+ 	return;
+-    
++
+     fbComposeGetStart (pDst, xDst, yDst, CARD32, dstStride, dstLine, 1);
+     fbComposeGetStart (pMask, xMask, yMask, CARD8, maskStride, maskLine, 1);
+     
+@@ -221,7 +229,7 @@
+     CARD16	w;
+     CARD32	m, n, o, p;
+ 
+-    fbComposeGetSolid(pSrc, src);
++    fbComposeGetSolid(pSrc, src, pDst->format);
+     
+     dstMask = FbFullMask (pDst->pDrawable->depth);
+     srca = src >> 24;
+@@ -294,7 +302,7 @@
+     FbStride	dstStride, maskStride;
+     CARD16	w;
+ 
+-    fbComposeGetSolid(pSrc, src);
++    fbComposeGetSolid(pSrc, src, pDst->format);
+     
+     srca = src >> 24;
+     if (src == 0)
+@@ -356,7 +364,7 @@
+     FbStride	dstStride, maskStride;
+     CARD16	w;
+ 
+-    fbComposeGetSolid(pSrc, src);
++    fbComposeGetSolid(pSrc, src, pDst->format);
+     
+     srca = src >> 24;
+     if (src == 0)
+@@ -421,7 +429,7 @@
+     CARD16	w;
+     CARD32	m, n, o;
+ 
+-    fbComposeGetSolid(pSrc, src);
++    fbComposeGetSolid(pSrc, src, pDst->format);
+     
+     srca = src >> 24;
+     if (src == 0)
+@@ -826,7 +834,7 @@
+     int		maskXoff, maskYoff;
+     FbBits	src;
+     
+-    fbComposeGetSolid(pSrc, src);
++    fbComposeGetSolid(pSrc, src, pDst->format);
+ 
+     if ((src & 0xff000000) != 0xff000000)
+     {


Property changes on: trunk/debian/patches/072_Xserver_fb_convert_RGB_to_BGR.diff
___________________________________________________________________
Name: svn:keywords
   + Id



Reply to: