Contents of /trunk/vnc/patches/vnc-server-always-use-fb.patch
Parent Directory | Revision Log
Revision 153 -
(show annotations)
(download)
Tue May 8 20:52:56 2007 UTC (17 years, 5 months ago) by niro
File size: 6159 byte(s)
Tue May 8 20:52:56 2007 UTC (17 years, 5 months ago) by niro
File size: 6159 byte(s)
-import
1 | --- unix/xc/programs/Xserver/vnc/Xvnc/xvnc.cc.always_use_fb 2007-03-05 14:03:21.000000000 +0100 |
2 | +++ unix/xc/programs/Xserver/vnc/Xvnc/xvnc.cc 2007-03-05 14:10:57.000000000 +0100 |
3 | @@ -33,27 +33,28 @@ |
4 | #include <network/TcpSocket.h> |
5 | #include "vncExtInit.h" |
6 | |
7 | +#ifdef HAVE_DIX_CONFIG_H |
8 | +#include <dix-config.h> |
9 | +#endif |
10 | + |
11 | extern "C" { |
12 | #define class c_class |
13 | #define public c_public |
14 | +#define new c_new |
15 | #ifdef WIN32 |
16 | #include <X11/Xwinsock.h> |
17 | #endif |
18 | #include <stdio.h> |
19 | -#include "X11/X.h" |
20 | +#include <X11/X.h> |
21 | #define NEED_EVENTS |
22 | -#include "X11/Xproto.h" |
23 | -#include "X11/Xos.h" |
24 | +#include <X11/Xproto.h> |
25 | +#include <X11/Xos.h> |
26 | #include "scrnintstr.h" |
27 | #include "servermd.h" |
28 | -#ifdef VNC_USE_FB |
29 | #include "fb.h" |
30 | -#else |
31 | -#define PSZ 8 |
32 | -#include "cfb.h" |
33 | -#endif |
34 | #include "mi.h" |
35 | -#include "mibstore.h" |
36 | +#include "micmap.h" |
37 | +#include "miline.h" |
38 | #include "colormapst.h" |
39 | #include "gcstruct.h" |
40 | #include "input.h" |
41 | @@ -66,24 +67,12 @@ |
42 | #endif |
43 | #include <X11/XWDFile.h> |
44 | #include "dix.h" |
45 | -#include "miline.h" |
46 | #include "inputstr.h" |
47 | #include "keysym.h" |
48 | extern int defaultColorVisualClass; |
49 | +#undef new |
50 | #undef class |
51 | #undef public |
52 | -#ifndef VNC_USE_FB |
53 | - extern Bool cfb16ScreenInit(ScreenPtr, pointer, int, int, int, int, int); |
54 | - extern Bool cfb32ScreenInit(ScreenPtr, pointer, int, int, int, int, int); |
55 | - extern Bool cfb16CreateGC(GCPtr); |
56 | - extern Bool cfb32CreateGC(GCPtr); |
57 | - extern void cfb16GetSpans(DrawablePtr, int, DDXPointPtr, int*, int, char*); |
58 | - extern void cfb32GetSpans(DrawablePtr, int, DDXPointPtr, int*, int, char*); |
59 | - extern void cfb16GetImage(DrawablePtr, int, int, int, int, unsigned int, |
60 | - unsigned long, char*); |
61 | - extern void cfb32GetImage(DrawablePtr, int, int, int, int, unsigned int, |
62 | - unsigned long, char*); |
63 | -#endif |
64 | } |
65 | |
66 | #define XVNCVERSION "Free Edition 4.1.2" |
67 | @@ -502,67 +491,6 @@ |
68 | } |
69 | #endif |
70 | |
71 | -#ifndef VNC_USE_FB |
72 | -static Bool vfbMultiDepthCreateGC(GCPtr pGC) |
73 | -{ |
74 | - switch (vfbBitsPerPixel(pGC->depth)) |
75 | - { |
76 | - case 1: return mfbCreateGC (pGC); |
77 | - case 8: return cfbCreateGC (pGC); |
78 | - case 16: return cfb16CreateGC (pGC); |
79 | - case 32: return cfb32CreateGC (pGC); |
80 | - default: return FALSE; |
81 | - } |
82 | -} |
83 | - |
84 | -static void vfbMultiDepthGetSpans( |
85 | - DrawablePtr pDrawable, /* drawable from which to get bits */ |
86 | - int wMax, /* largest value of all *pwidths */ |
87 | - register DDXPointPtr ppt, /* points to start copying from */ |
88 | - int *pwidth, /* list of number of bits to copy */ |
89 | - int nspans, /* number of scanlines to copy */ |
90 | - char *pdstStart) /* where to put the bits */ |
91 | -{ |
92 | - switch (pDrawable->bitsPerPixel) { |
93 | - case 1: |
94 | - mfbGetSpans(pDrawable, wMax, ppt, pwidth, nspans, pdstStart); |
95 | - break; |
96 | - case 8: |
97 | - cfbGetSpans(pDrawable, wMax, ppt, pwidth, nspans, pdstStart); |
98 | - break; |
99 | - case 16: |
100 | - cfb16GetSpans(pDrawable, wMax, ppt, pwidth, nspans, pdstStart); |
101 | - break; |
102 | - case 32: |
103 | - cfb32GetSpans(pDrawable, wMax, ppt, pwidth, nspans, pdstStart); |
104 | - break; |
105 | - } |
106 | - return; |
107 | -} |
108 | - |
109 | -static void |
110 | -vfbMultiDepthGetImage(DrawablePtr pDrawable, int sx, int sy, int w, int h, |
111 | - unsigned int format, unsigned long planeMask, |
112 | - char *pdstLine) |
113 | -{ |
114 | - switch (pDrawable->bitsPerPixel) |
115 | - { |
116 | - case 1: |
117 | - mfbGetImage(pDrawable, sx, sy, w, h, format, planeMask, pdstLine); |
118 | - break; |
119 | - case 8: |
120 | - cfbGetImage(pDrawable, sx, sy, w, h, format, planeMask, pdstLine); |
121 | - break; |
122 | - case 16: |
123 | - cfb16GetImage(pDrawable, sx, sy, w, h, format, planeMask, pdstLine); |
124 | - break; |
125 | - case 32: |
126 | - cfb32GetImage(pDrawable, sx, sy, w, h, format, planeMask, pdstLine); |
127 | - break; |
128 | - } |
129 | -} |
130 | -#endif |
131 | - |
132 | static ColormapPtr InstalledMaps[MAXSCREENS]; |
133 | |
134 | static int vfbListInstalledColormaps(ScreenPtr pScreen, Colormap *pmaps) |
135 | @@ -832,44 +760,32 @@ |
136 | defaultColorVisualClass |
137 | = (pvfb->bitsPerPixel > 8) ? TrueColor : PseudoColor; |
138 | |
139 | -#ifdef VNC_USE_FB |
140 | - if (!fbScreenInit(pScreen, pbits, pvfb->width, pvfb->height, |
141 | - dpi, dpi, pvfb->paddedWidth, pvfb->bitsPerPixel)) |
142 | - return FALSE; |
143 | + miSetPixmapDepths(); |
144 | |
145 | -#ifdef RENDER |
146 | - if (ret && Render) |
147 | - fbPictureInit(pScreen, 0, 0); |
148 | -#endif /* RENDER */ |
149 | -#else /* VNC_USE_FB */ |
150 | switch (pvfb->bitsPerPixel) |
151 | { |
152 | - case 1: |
153 | - ret = mfbScreenInit(pScreen, pbits, pvfb->width, pvfb->height, |
154 | - dpi, dpi, pvfb->paddedWidth); |
155 | - break; |
156 | case 8: |
157 | - ret = cfbScreenInit(pScreen, pbits, pvfb->width, pvfb->height, |
158 | - dpi, dpi, pvfb->paddedWidth); |
159 | + miSetVisualTypesAndMasks (8, 1 << PseudoColor, 8, PseudoColor, 0, 0, 0); |
160 | + |
161 | break; |
162 | case 16: |
163 | - ret = cfb16ScreenInit(pScreen, pbits, pvfb->width, pvfb->height, |
164 | - dpi, dpi, pvfb->paddedWidth); |
165 | + miSetVisualTypesAndMasks (16, 1 << TrueColor, 8, TrueColor, 0xf800, 0x07e0, 0x001f); |
166 | break; |
167 | case 32: |
168 | - ret = cfb32ScreenInit(pScreen, pbits, pvfb->width, pvfb->height, |
169 | - dpi, dpi, pvfb->paddedWidth); |
170 | + miSetVisualTypesAndMasks (32, 1 << TrueColor , 8, TrueColor, 0xff000000, 0x00ff0000, 0x0000ff00); |
171 | break; |
172 | default: |
173 | return FALSE; |
174 | } |
175 | |
176 | - if (!ret) return FALSE; |
177 | + if (!fbScreenInit(pScreen, pbits, pvfb->width, pvfb->height, |
178 | + dpi, dpi, pvfb->paddedWidth, pvfb->bitsPerPixel)) |
179 | + return FALSE; |
180 | |
181 | - pScreen->CreateGC = vfbMultiDepthCreateGC; |
182 | - pScreen->GetImage = vfbMultiDepthGetImage; |
183 | - pScreen->GetSpans = vfbMultiDepthGetSpans; |
184 | -#endif |
185 | +#ifdef RENDER |
186 | + if (ret && Render) |
187 | + fbPictureInit(pScreen, 0, 0); |
188 | +#endif /* RENDER */ |
189 | |
190 | pScreen->InstallColormap = vfbInstallColormap; |
191 | pScreen->UninstallColormap = vfbUninstallColormap; |
192 | @@ -915,18 +831,7 @@ |
193 | } |
194 | } |
195 | |
196 | -#ifdef VNC_USE_FB |
197 | ret = fbCreateDefColormap(pScreen); |
198 | -#else |
199 | - if (pvfb->bitsPerPixel == 1) |
200 | - { |
201 | - ret = mfbCreateDefColormap(pScreen); |
202 | - } |
203 | - else |
204 | - { |
205 | - ret = cfbCreateDefColormap(pScreen); |
206 | - } |
207 | -#endif |
208 | |
209 | miSetZeroLineBias(pScreen, pvfb->lineBias); |
210 |