]> source.dussan.org Git - tigervnc.git/commitdiff
Applied vnc-use-fb.patch from FC3, slightly modified:
authorPeter Åstrand <astrand@cendio.se>
Mon, 14 Feb 2005 14:03:35 +0000 (14:03 +0000)
committerPeter Åstrand <astrand@cendio.se>
Mon, 14 Feb 2005 14:03:35 +0000 (14:03 +0000)
Use fb unconditionally. This makes the code simpler, and the old mfb/cfb is buggy and deprecated.

git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@184 3789f03b-4d11-0410-bbf8-ca57d06f2519

xc.patch
xc/programs/Xserver/vnc/Xvnc/Imakefile
xc/programs/Xserver/vnc/Xvnc/xvnc.cc

index cc90f16d72b9e7a207f5cd403194b441870be6ea..274c8ee6421d65b1dc88fc448f502e80e8e628d2 100644 (file)
--- a/xc.patch
+++ b/xc.patch
@@ -1,110 +1,6 @@
-diff -bcr xc.org/programs/Xserver/cfb/cfb8line.c xc/programs/Xserver/cfb/cfb8line.c
-*** xc.org/programs/Xserver/cfb/cfb8line.c     2004-04-23 21:00:12.000000000 +0200
---- xc/programs/Xserver/cfb/cfb8line.c 2005-02-11 16:47:34.000000000 +0100
-***************
-*** 695,716 ****
-  # if PSZ == 24
-           y1_or_e1 = xOffset & 3;
-  # else
-! #  if PGSZ == 64 /* PIM value from <cfbmskbits.h> is not it! (for 16/32 PSZ)*/
-!          y1_or_e1 = ((long) addrp) & 0x7;
-!          addrp = (PixelType *) (((unsigned char *) addrp) - y1_or_e1);
-! #  else
-!          y1_or_e1 = ((long) addrp) & PIM;
-!          addrp = (PixelType *) (((unsigned char *) addrp) - y1_or_e1);
-! #  endif
-! #if PGSZ == 32
-! #  if PWSH != 2
-!          y1_or_e1 >>= (2 - PWSH);
-! #  endif
-! #else /* PGSZ == 64 */
-! #  if PWSH != 3
-!          y1_or_e1 >>= (3 - PWSH);
-! #  endif
-! #endif /* PGSZ */
-  # endif /* PSZ == 24 */
-  #if PSZ == 24
-           {
---- 695,705 ----
-  # if PSZ == 24
-           y1_or_e1 = xOffset & 3;
-  # else
-!          /* Round addrp down to the next PixelGroup boundary, and
-!           * set y1_or_e1 to the excess (in pixels)
-!           * (assumes PGSZB is a power of 2). */
-!          y1_or_e1 = (((unsigned long) addrp) & (PGSZB - 1)) / (PSZ / 8);
-!          addrp -= y1_or_e1;
-  # endif /* PSZ == 24 */
-  #if PSZ == 24
-           {
-diff -bcr xc.org/programs/Xserver/cfb/cfbcppl.c xc/programs/Xserver/cfb/cfbcppl.c
-*** xc.org/programs/Xserver/cfb/cfbcppl.c      2004-04-23 21:00:12.000000000 +0200
---- xc/programs/Xserver/cfb/cfbcppl.c  2005-02-11 16:47:34.000000000 +0100
-***************
-*** 383,389 ****
-       psrcLine = (unsigned int *)psrcBase + srcy * widthSrc + srcx;
-  #endif
-       pdstLine = (unsigned int *)pdstBase + dsty * widthDst + (dstx >> 5);
-!      if (dstx + width <= 32)
-       {
-           mfbmaskpartialbits(dstx, width, startmask);
-           nlMiddle = 0;
---- 383,389 ----
-       psrcLine = (unsigned int *)psrcBase + srcy * widthSrc + srcx;
-  #endif
-       pdstLine = (unsigned int *)pdstBase + dsty * widthDst + (dstx >> 5);
-!      if ((dstx & 0x1f) + width <= 32)
-       {
-           mfbmaskpartialbits(dstx, width, startmask);
-           nlMiddle = 0;
-diff -bcr xc.org/programs/Xserver/cfb/cfbtile32.c xc/programs/Xserver/cfb/cfbtile32.c
-*** xc.org/programs/Xserver/cfb/cfbtile32.c    2004-04-23 21:00:12.000000000 +0200
---- xc/programs/Xserver/cfb/cfbtile32.c        2005-02-11 16:47:34.000000000 +0100
-***************
-*** 72,78 ****
-                        (p)++,(*(p) = MROP_PREBUILT_SOLID(((srcpix<<16)|(srcpix>>8)),*(p))), \
-                        (p)++,(*(p) = MROP_PREBUILT_SOLID(((srcpix<<8)|(srcpix>>16)),*(p))))
-  
-! #if (MROP == Mcopy) && defined(FAST_CONSTANT_OFFSET_MODE) && defined(SHARED_IDCACHE)
-  # define Expand(left,right) {\
-      int part = nlwMiddle & ((PGSZB*2)-1); \
-      nlwMiddle *= 3; \
---- 72,84 ----
-                        (p)++,(*(p) = MROP_PREBUILT_SOLID(((srcpix<<16)|(srcpix>>8)),*(p))), \
-                        (p)++,(*(p) = MROP_PREBUILT_SOLID(((srcpix<<8)|(srcpix>>16)),*(p))))
-  
-! 
-! 
-! /* XXX TJR: I doubt that this optimised case works (because the non-24 bit case
-!    was broken), so I've added the #if 0 below.  Someone who knows what they're
-!    doing can re-enable it if they fix it */
-! 
-! #if (MROP == Mcopy) && defined(FAST_CONSTANT_OFFSET_MODE) && defined(SHARED_IDCACHE) && 0
-  # define Expand(left,right) {\
-      int part = nlwMiddle & ((PGSZB*2)-1); \
-      nlwMiddle *= 3; \
-***************
-*** 144,151 ****
-  
-  #if (MROP == Mcopy) && defined(FAST_CONSTANT_OFFSET_MODE) && defined(SHARED_IDCACHE)
-  # define Expand(left,right) {\
-!     int part = nlwMiddle & ((PGSZB*2)-1); \
-!     nlwMiddle >>= PWSH + 1; \
-      while (h--) { \
-       srcpix = psrc[srcy]; \
-       MROP_PREBUILD(srcpix); \
---- 150,157 ----
-  
-  #if (MROP == Mcopy) && defined(FAST_CONSTANT_OFFSET_MODE) && defined(SHARED_IDCACHE)
-  # define Expand(left,right) {\
-!     int part = nlwMiddle & 7; \
-!     nlwMiddle >>= 3; \
-      while (h--) { \
-       srcpix = psrc[srcy]; \
-       MROP_PREBUILD(srcpix); \
 diff -bcr xc.org/programs/Xserver/Imakefile xc/programs/Xserver/Imakefile
 *** xc.org/programs/Xserver/Imakefile  2004-12-15 20:22:53.000000000 +0100
---- xc/programs/Xserver/Imakefile      2005-02-11 16:50:00.000000000 +0100
+--- xc/programs/Xserver/Imakefile      2005-02-14 14:23:21.000000000 +0100
 ***************
 *** 128,134 ****
          LIBREGEX = RegexLibrary
@@ -124,29 +20,17 @@ diff -bcr xc.org/programs/Xserver/Imakefile xc/programs/Xserver/Imakefile
   #if BuildXprint
 ***************
 *** 414,419 ****
---- 414,442 ----
+--- 414,430 ----
   #define ServerToInstall Xsun
   #endif
   #endif /* XsunServer */
 + XCOMM
 + XCOMM X VNC server
 + XCOMM
-+ MFBSUBDIR = mfb
-+ CFB8SUBDIR = cfb
-+ CFB16SUBDIR = cfb16
-+ CFB24SUBDIR = cfb24
-+ CFB32SUBDIR = cfb32
 + FBSUBDIR = fb
 + XVNCDDXDIR = vnc/Xvnc
-+ #if VncUseFb
 + XVNCDIRS = $(STDDIRS) $(FBSUBDIR) $(XVNCDDXDIR) $(DEPDIRS)
 + XVNCLIBS = PreFbLibs vnc/Xvnc/LibraryTargetName(xvnc) FbPostFbLibs
-+ #else
-+ XVNCDIRS = $(STDDIRS) $(MFBSUBDIR) \
-+          $(CFB8SUBDIR) $(CFB16SUBDIR) $(CFB24SUBDIR) $(CFB32SUBDIR) \
-+          $(XVNCDDXDIR) $(DEPDIRS)
-+ XVNCLIBS = PreFbLibs vnc/Xvnc/LibraryTargetName(xvnc) CFBLibs PostFbLibs
-+ #endif
 + XVNCOBJS = $(XVNCDDXDIR)/stubs.o $(XVNCDDXDIR)/miinitext.o
 + XVNCSYSLIBS = $(FONTLIBS) $(SYSLIBS)
 + ServerTarget(Xvnc,$(XVNCDIRS),$(XVNCOBJS), \
index 870a7a29e621990bf5038a5dfc6794ebc5fa932c..0e3e677e2d7002e622405104ade3210935f8e858 100644 (file)
@@ -27,15 +27,17 @@ SRCS1 = os2_stubs.c
 OBJS1 = os2_stubs.o
 #endif
 
+FBINCLUDE = -I../../fb
+
 SRCSA =        xvnc.cc stubs.c $(SRCS1) miinitext.c $(SRCS2)
 
 OBJSA =        xvnc.o stubs.o $(OBJS1) miinitext.o $(OBJS2)
 
 INCLUDES = -I. -I.. -I$(XBUILDINCDIR) -I$(FONTINCSRC) \
-          -I../../cfb -I../../mfb -I../../mi -I../../include -I../../os  \
+           $(FBINCLUDE) -I../../mfb -I../../mi -I../../include -I../../os  \
            -I$(EXTINCSRC) -I$(XINCLUDESRC)  -I$(SERVERSRC)/render $(VNCINCLUDE)
 
-DEFINES = $(OS_DEFINES) $(SHMDEF) $(MMAPDEF) \
+DEFINES = $(OS_DEFINES) $(SHMDEF) $(MMAPDEF) $(FB_DEFINES) \
           $(VENDOR_STRING) $(VENDOR_RELEASE) $(STD_DEFINES) ServerOSDefines \
           -UXFree86LOADER
 
index 9e8b264d0b3d65d13dfad85a4ad069066eb8906a..2d2dc78dc994d3fc25823849c22b4ecb8fa2ba4a 100644 (file)
@@ -67,8 +67,7 @@ extern "C" {
 #include "X11/Xos.h"
 #include "scrnintstr.h"
 #include "servermd.h"
-#define PSZ 8
-#include "cfb.h"
+#include "fb.h"
 #include "mi.h"
 #include "mibstore.h"
 #include "colormapst.h"
@@ -92,16 +91,6 @@ extern "C" {
 #undef public
 #undef xor
 #undef and
-  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*);
 }
 
 #define XVNCVERSION "4.0"
@@ -491,66 +480,6 @@ CARD32 GetTimeInMillis()
 }
 #endif
 
-
-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;
-  }
-}
-
 static ColormapPtr InstalledMaps[MAXSCREENS];
 
 static int vfbListInstalledColormaps(ScreenPtr pScreen, Colormap *pmaps)
@@ -820,33 +749,9 @@ static Bool vfbScreenInit(int index, ScreenPtr pScreen, int argc, char** argv)
   defaultColorVisualClass
     = (pvfb->bitsPerPixel > 8) ? TrueColor : PseudoColor;
 
-  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);
-    break;
-  case 16:
-    ret = cfb16ScreenInit(pScreen, pbits, pvfb->width, pvfb->height,
-                          dpi, dpi, pvfb->paddedWidth);
-    break;
-  case 32:
-    ret = cfb32ScreenInit(pScreen, pbits, pvfb->width, pvfb->height,
-                          dpi, dpi, pvfb->paddedWidth);
-    break;
-  default:
-    return FALSE;
-  }
-
-  if (!ret) return FALSE;
-
-  pScreen->CreateGC = vfbMultiDepthCreateGC;
-  pScreen->GetImage = vfbMultiDepthGetImage;
-  pScreen->GetSpans = vfbMultiDepthGetSpans;
+  if (!fbScreenInit(pScreen, pbits, pvfb->width, pvfb->height,
+                    dpi, dpi, pvfb->paddedWidth, pvfb->bitsPerPixel))
+      return FALSE;
 
   pScreen->InstallColormap = vfbInstallColormap;
   pScreen->UninstallColormap = vfbUninstallColormap;
@@ -892,14 +797,7 @@ static Bool vfbScreenInit(int index, ScreenPtr pScreen, int argc, char** argv)
     }
   }
 
-  if (pvfb->bitsPerPixel == 1)
-  {
-    ret = mfbCreateDefColormap(pScreen);
-  }
-  else
-  {
-    ret = cfbCreateDefColormap(pScreen);
-  }
+  ret = fbCreateDefColormap(pScreen);
 
   miSetZeroLineBias(pScreen, pvfb->lineBias);