--- vnc-4_1_2-unixsrc/unix/xc/programs/Xserver/vnc/Xvnc/xvnc.cc.always_use_fb 2007-03-05 14:03:21.000000000 +0100 +++ vnc-4_1_2-unixsrc/unix/xc/programs/Xserver/vnc/Xvnc/xvnc.cc 2007-03-05 14:10:57.000000000 +0100 @@ -33,27 +33,28 @@ #include #include "vncExtInit.h" +#ifdef HAVE_DIX_CONFIG_H +#include +#endif + extern "C" { #define class c_class #define public c_public +#define new c_new #ifdef WIN32 #include #endif #include -#include "X11/X.h" +#include #define NEED_EVENTS -#include "X11/Xproto.h" -#include "X11/Xos.h" +#include +#include #include "scrnintstr.h" #include "servermd.h" -#ifdef VNC_USE_FB #include "fb.h" -#else -#define PSZ 8 -#include "cfb.h" -#endif #include "mi.h" -#include "mibstore.h" +#include "micmap.h" +#include "miline.h" #include "colormapst.h" #include "gcstruct.h" #include "input.h" @@ -66,24 +67,12 @@ #endif #include #include "dix.h" -#include "miline.h" #include "inputstr.h" #include "keysym.h" extern int defaultColorVisualClass; +#undef new #undef class #undef public -#ifndef VNC_USE_FB - extern Bool cfb16ScreenInit(ScreenPtr, pointer, int, int, int, int, int); - extern Bool cfb32ScreenInit(ScreenPtr, pointer, int, int, int, int, int); - extern Bool cfb16CreateGC(GCPtr); - extern Bool cfb32CreateGC(GCPtr); - extern void cfb16GetSpans(DrawablePtr, int, DDXPointPtr, int*, int, char*); - extern void cfb32GetSpans(DrawablePtr, int, DDXPointPtr, int*, int, char*); - extern void cfb16GetImage(DrawablePtr, int, int, int, int, unsigned int, - unsigned long, char*); - extern void cfb32GetImage(DrawablePtr, int, int, int, int, unsigned int, - unsigned long, char*); -#endif } #define XVNCVERSION "Free Edition 4.1.2" @@ -502,67 +491,6 @@ } #endif -#ifndef VNC_USE_FB -static Bool vfbMultiDepthCreateGC(GCPtr pGC) -{ - switch (vfbBitsPerPixel(pGC->depth)) - { - case 1: return mfbCreateGC (pGC); - case 8: return cfbCreateGC (pGC); - case 16: return cfb16CreateGC (pGC); - case 32: return cfb32CreateGC (pGC); - default: return FALSE; - } -} - -static void vfbMultiDepthGetSpans( - DrawablePtr pDrawable, /* drawable from which to get bits */ - int wMax, /* largest value of all *pwidths */ - register DDXPointPtr ppt, /* points to start copying from */ - int *pwidth, /* list of number of bits to copy */ - int nspans, /* number of scanlines to copy */ - char *pdstStart) /* where to put the bits */ -{ - switch (pDrawable->bitsPerPixel) { - case 1: - mfbGetSpans(pDrawable, wMax, ppt, pwidth, nspans, pdstStart); - break; - case 8: - cfbGetSpans(pDrawable, wMax, ppt, pwidth, nspans, pdstStart); - break; - case 16: - cfb16GetSpans(pDrawable, wMax, ppt, pwidth, nspans, pdstStart); - break; - case 32: - cfb32GetSpans(pDrawable, wMax, ppt, pwidth, nspans, pdstStart); - break; - } - return; -} - -static void -vfbMultiDepthGetImage(DrawablePtr pDrawable, int sx, int sy, int w, int h, - unsigned int format, unsigned long planeMask, - char *pdstLine) -{ - switch (pDrawable->bitsPerPixel) - { - case 1: - mfbGetImage(pDrawable, sx, sy, w, h, format, planeMask, pdstLine); - break; - case 8: - cfbGetImage(pDrawable, sx, sy, w, h, format, planeMask, pdstLine); - break; - case 16: - cfb16GetImage(pDrawable, sx, sy, w, h, format, planeMask, pdstLine); - break; - case 32: - cfb32GetImage(pDrawable, sx, sy, w, h, format, planeMask, pdstLine); - break; - } -} -#endif - static ColormapPtr InstalledMaps[MAXSCREENS]; static int vfbListInstalledColormaps(ScreenPtr pScreen, Colormap *pmaps) @@ -832,44 +760,32 @@ defaultColorVisualClass = (pvfb->bitsPerPixel > 8) ? TrueColor : PseudoColor; -#ifdef VNC_USE_FB - if (!fbScreenInit(pScreen, pbits, pvfb->width, pvfb->height, - dpi, dpi, pvfb->paddedWidth, pvfb->bitsPerPixel)) - return FALSE; + miSetPixmapDepths(); -#ifdef RENDER - if (ret && Render) - fbPictureInit(pScreen, 0, 0); -#endif /* RENDER */ -#else /* VNC_USE_FB */ switch (pvfb->bitsPerPixel) { - case 1: - ret = mfbScreenInit(pScreen, pbits, pvfb->width, pvfb->height, - dpi, dpi, pvfb->paddedWidth); - break; case 8: - ret = cfbScreenInit(pScreen, pbits, pvfb->width, pvfb->height, - dpi, dpi, pvfb->paddedWidth); + miSetVisualTypesAndMasks (8, 1 << PseudoColor, 8, PseudoColor, 0, 0, 0); + break; case 16: - ret = cfb16ScreenInit(pScreen, pbits, pvfb->width, pvfb->height, - dpi, dpi, pvfb->paddedWidth); + miSetVisualTypesAndMasks (16, 1 << TrueColor, 8, TrueColor, 0xf800, 0x07e0, 0x001f); break; case 32: - ret = cfb32ScreenInit(pScreen, pbits, pvfb->width, pvfb->height, - dpi, dpi, pvfb->paddedWidth); + miSetVisualTypesAndMasks (32, 1 << TrueColor , 8, TrueColor, 0xff000000, 0x00ff0000, 0x0000ff00); break; default: return FALSE; } - if (!ret) return FALSE; + if (!fbScreenInit(pScreen, pbits, pvfb->width, pvfb->height, + dpi, dpi, pvfb->paddedWidth, pvfb->bitsPerPixel)) + return FALSE; - pScreen->CreateGC = vfbMultiDepthCreateGC; - pScreen->GetImage = vfbMultiDepthGetImage; - pScreen->GetSpans = vfbMultiDepthGetSpans; -#endif +#ifdef RENDER + if (ret && Render) + fbPictureInit(pScreen, 0, 0); +#endif /* RENDER */ pScreen->InstallColormap = vfbInstallColormap; pScreen->UninstallColormap = vfbUninstallColormap; @@ -915,18 +831,7 @@ } } -#ifdef VNC_USE_FB ret = fbCreateDefColormap(pScreen); -#else - if (pvfb->bitsPerPixel == 1) - { - ret = mfbCreateDefColormap(pScreen); - } - else - { - ret = cfbCreateDefColormap(pScreen); - } -#endif miSetZeroLineBias(pScreen, pvfb->lineBias);