Magellan Linux

Annotation of /trunk/xorg-old/patches-6.8.2-r10/2000_all_6.8.0-fb-convert-rgb-to-bgr-when-needed.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 167 - (hide annotations) (download)
Tue May 8 20:58:51 2007 UTC (17 years ago) by niro
File size: 4073 byte(s)
-import

1 niro 167 https://bugs.freedesktop.org/show_bug.cgi?id=1895
2    
3     $Id: 2000_all_6.8.0-fb-convert-rgb-to-bgr-when-needed.patch,v 1.1 2007-05-08 20:58:49 niro Exp $
4    
5     Fix up case where we need to convert RGB->BGR (fixes SDL under sunffb, for
6     example).
7    
8     This patch by David S. Miller via Ben Collins.
9     Forward-ported by Fabio M. Di Nitto.
10    
11     Not submitted to XFree86.
12    
13     diff -ruN xc-old/programs/Xserver/fb/fbmmx.c xc/programs/Xserver/fb/fbmmx.c
14     --- xc-old/programs/Xserver/fb/fbmmx.c 2004-07-22 19:24:50.000000000 +0000
15     +++ xc/programs/Xserver/fb/fbmmx.c 2004-10-20 12:57:11.435058096 +0000
16     @@ -375,7 +375,7 @@
17    
18     CHECKPOINT();
19    
20     - fbComposeGetSolid(pSrc, src);
21     + fbComposeGetSolid(pSrc, src, pDst->format);
22    
23     if (src >> 24 == 0)
24     return;
25     @@ -453,7 +453,7 @@
26    
27     CHECKPOINT();
28    
29     - fbComposeGetSolid(pSrc, src);
30     + fbComposeGetSolid(pSrc, src, pDst->format);
31    
32     if (src >> 24 == 0)
33     return;
34     @@ -538,7 +538,7 @@
35    
36     CHECKPOINT();
37    
38     - fbComposeGetSolid(pSrc, src);
39     + fbComposeGetSolid(pSrc, src, pDst->format);
40    
41     srca = src >> 24;
42     if (srca == 0)
43     @@ -643,7 +643,7 @@
44    
45     CHECKPOINT();
46    
47     - fbComposeGetSolid(pSrc, src);
48     + fbComposeGetSolid(pSrc, src, pDst->format);
49    
50     srca = src >> 24;
51     if (srca == 0)
52     @@ -759,7 +759,7 @@
53    
54     CHECKPOINT();
55    
56     - fbComposeGetSolid(pSrc, src);
57     + fbComposeGetSolid(pSrc, src, pDst->format);
58    
59     srca = src >> 24;
60     if (srca == 0)
61     @@ -1100,7 +1100,7 @@
62    
63     CHECKPOINT();
64    
65     - fbComposeGetSolid(pSrc, src);
66     + fbComposeGetSolid(pSrc, src, pDst->format);
67    
68     srca = src >> 24;
69     if (srca == 0)
70     diff -ruN xc-old/programs/Xserver/fb/fbpict.c xc/programs/Xserver/fb/fbpict.c
71     --- xc-old/programs/Xserver/fb/fbpict.c 2004-08-06 23:42:10.000000000 +0000
72     +++ xc/programs/Xserver/fb/fbpict.c 2004-10-20 12:56:31.282162264 +0000
73     @@ -99,7 +99,7 @@
74     FbStride dstStride, maskStride;
75     CARD16 w;
76    
77     - fbComposeGetSolid(pSrc, src);
78     + fbComposeGetSolid(pSrc, src, pDst->format);
79    
80     dstMask = FbFullMask (pDst->pDrawable->depth);
81     srca = src >> 24;
82     @@ -158,7 +158,7 @@
83     CARD16 w;
84     CARD32 m, n, o, p;
85    
86     - fbComposeGetSolid(pSrc, src);
87     + fbComposeGetSolid(pSrc, src, pDst->format);
88    
89     dstMask = FbFullMask (pDst->pDrawable->depth);
90     srca = src >> 24;
91     @@ -231,7 +231,7 @@
92     FbStride dstStride, maskStride;
93     CARD16 w;
94    
95     - fbComposeGetSolid(pSrc, src);
96     + fbComposeGetSolid(pSrc, src, pDst->format);
97    
98     srca = src >> 24;
99     if (src == 0)
100     @@ -293,7 +293,7 @@
101     FbStride dstStride, maskStride;
102     CARD16 w;
103    
104     - fbComposeGetSolid(pSrc, src);
105     + fbComposeGetSolid(pSrc, src, pDst->format);
106    
107     srca = src >> 24;
108     if (src == 0)
109     @@ -358,7 +358,7 @@
110     CARD16 w;
111     CARD32 m, n, o;
112    
113     - fbComposeGetSolid(pSrc, src);
114     + fbComposeGetSolid(pSrc, src, pDst->format);
115    
116     srca = src >> 24;
117     if (src == 0)
118     @@ -763,7 +763,7 @@
119     int maskXoff, maskYoff;
120     FbBits src;
121    
122     - fbComposeGetSolid(pSrc, src);
123     + fbComposeGetSolid(pSrc, src, pDst->format);
124    
125     if ((src & 0xff000000) != 0xff000000)
126     {
127     diff -ruN xc-old/programs/Xserver/fb/fbpict.h xc/programs/Xserver/fb/fbpict.h
128     --- xc-old/programs/Xserver/fb/fbpict.h 2004-08-13 08:16:14.000000000 +0000
129     +++ xc/programs/Xserver/fb/fbpict.h 2004-10-20 12:55:00.103023600 +0000
130     @@ -72,7 +72,7 @@
131     CARD16 width,
132     CARD16 height);
133    
134     -#define fbComposeGetSolid(pict, bits) { \
135     +#define fbComposeGetSolid(pict, bits, fmt) { \
136     FbBits *__bits__; \
137     FbStride __stride__; \
138     int __bpp__; \
139     @@ -93,6 +93,14 @@
140     default: \
141     return; \
142     } \
143     + /* If necessary, convert RGB <--> BGR. */ \
144     + if (PICT_FORMAT_TYPE((pict)->format) != PICT_FORMAT_TYPE(fmt)) \
145     + { \
146     + (bits) = (((bits) & 0xff000000) | \
147     + (((bits) & 0x00ff0000) >> 16) | \
148     + (((bits) & 0x0000ff00) >> 0) | \
149     + (((bits) & 0x000000ff) << 16)); \
150     + } \
151     /* manage missing src alpha */ \
152     if ((pict)->pFormat->direct.alphaMask == 0) \
153     (bits) |= 0xff000000; \