Magellan Linux

Contents 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 - (show annotations) (download)
Tue May 8 20:58:51 2007 UTC (17 years ago) by niro
File size: 4073 byte(s)
-import

1 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; \