diff options
Diffstat (limited to 'nx-X11/programs/Xserver/cfb24')
-rw-r--r-- | nx-X11/programs/Xserver/cfb24/Imakefile | 6 | ||||
-rw-r--r-- | nx-X11/programs/Xserver/cfb24/cfbmodule.c | 65 | ||||
-rw-r--r-- | nx-X11/programs/Xserver/cfb24/cfbrrop24.h | 54 | ||||
-rw-r--r-- | nx-X11/programs/Xserver/cfb24/module/Imakefile | 12 |
4 files changed, 137 insertions, 0 deletions
diff --git a/nx-X11/programs/Xserver/cfb24/Imakefile b/nx-X11/programs/Xserver/cfb24/Imakefile new file mode 100644 index 000000000..af31096be --- /dev/null +++ b/nx-X11/programs/Xserver/cfb24/Imakefile @@ -0,0 +1,6 @@ +XCOMM $XFree86: xc/programs/Xserver/cfb24/Imakefile,v 3.1 2002/05/31 15:12:56 dawes Exp $ + +#define PixelSize 24 +#define LinkDirectory ../cfb + +#include "../cfb/Imakefile.inc" diff --git a/nx-X11/programs/Xserver/cfb24/cfbmodule.c b/nx-X11/programs/Xserver/cfb24/cfbmodule.c new file mode 100644 index 000000000..c2fb2bcf5 --- /dev/null +++ b/nx-X11/programs/Xserver/cfb24/cfbmodule.c @@ -0,0 +1,65 @@ +/* $XFree86: xc/programs/Xserver/cfb24/cfbmodule.c,v 1.8 1999/01/26 05:53:49 dawes Exp $ */ +/* + * Copyright (C) 1998 The XFree86 Project, Inc. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of the XFree86 Project shall + * not be used in advertising or otherwise to promote the sale, use or other + * dealings in this Software without prior written authorization from the + * XFree86 Project. + */ + +#ifdef HAVE_XORG_CONFIG_H +#include <xorg-config.h> +#endif + +#define PSZ 24 + +#ifdef XFree86LOADER + +#include "xf86Module.h" +#include "cfb.h" + +static MODULESETUPPROTO(cfb24Setup); + +static XF86ModuleVersionInfo VersRec = +{ + "cfb24", + MODULEVENDORSTRING, + MODINFOSTRING1, + MODINFOSTRING2, + XORG_VERSION_CURRENT, + 1, 0, 0, + ABI_CLASS_ANSIC, /* Only need the ansic layer */ + ABI_ANSIC_VERSION, + MOD_CLASS_NONE, + {0,0,0,0} /* signature, to be patched into the file by a tool */ +}; + +XF86ModuleData cfb24ModuleData = { &VersRec, cfb24Setup, NULL }; + +static pointer +cfb24Setup(pointer module, pointer opts, int *errmaj, int *errmin) +{ + /* This modules requires cfb, so load it */ + return LoadSubModule(module, "cfb", NULL, NULL, NULL, NULL, + errmaj, errmin); +} + +#endif diff --git a/nx-X11/programs/Xserver/cfb24/cfbrrop24.h b/nx-X11/programs/Xserver/cfb24/cfbrrop24.h new file mode 100644 index 000000000..9f15d1a82 --- /dev/null +++ b/nx-X11/programs/Xserver/cfb24/cfbrrop24.h @@ -0,0 +1,54 @@ +/* $XFree86: xc/programs/Xserver/cfb24/cfbrrop24.h,v 3.1tsi Exp $ */ + +#define RROP_DECLARE \ + unsigned long piQxelAnd[3], piQxelXor[3], spiQxelXor[8]; + +#define RROP_COPY_SETUP(ptn) \ + spiQxelXor[0] = ptn & 0xFFFFFF; \ + spiQxelXor[2] = ptn << 24; \ + spiQxelXor[3] = (ptn & 0xFFFF00)>> 8; \ + spiQxelXor[4] = ptn << 16; \ + spiQxelXor[5] = (ptn & 0xFF0000)>> 16; \ + spiQxelXor[6] = ptn << 8; \ + spiQxelXor[1] = spiQxelXor[7] = 0; + +#define RROP_SOLID24_COPY(dst,index) {\ + register int idx = ((index) & 3)<< 1; \ + *(dst) = (*(dst) & cfbrmask[idx])|spiQxelXor[idx]; \ + idx++; \ + *((dst)+1) = (*((dst)+1) & cfbrmask[idx])|spiQxelXor[idx]; \ + } + +#define RROP_SET_SETUP(xor, and) \ + spiQxelXor[0] = xor & 0xFFFFFF; \ + spiQxelXor[1] = xor << 24; \ + spiQxelXor[2] = xor << 16; \ + spiQxelXor[3] = xor << 8; \ + spiQxelXor[4] = (xor >> 8) & 0xFFFF; \ + spiQxelXor[5] = (xor >> 16) & 0xFF; \ + piQxelAnd[0] = (and & 0xFFFFFF)|(and << 24); \ + piQxelAnd[1] = (and << 16)|((and >> 8) & 0xFFFF); \ + piQxelAnd[2] = (and << 8)|((and >> 16) & 0xFF); \ + piQxelXor[0] = (xor & 0xFFFFFF)|(xor << 24); \ + piQxelXor[1] = (xor << 16)|((xor >> 8) & 0xFFFF); \ + piQxelXor[2] = (xor << 8)|((xor >> 16) & 0xFF); + + +#define RROP_SOLID24_SET(dst,index) {\ + switch((index) & 3){ \ + case 0: \ + *(dst) = ((*(dst) & (piQxelAnd[0] |0xFF000000))^(piQxelXor[0] & 0xFFFFFF)); \ + break; \ + case 3: \ + *(dst) = ((*(dst) & (piQxelAnd[2]|0xFF))^(piQxelXor[2] & 0xFFFFFF00)); \ + break; \ + case 1: \ + *(dst) = ((*(dst) & (piQxelAnd[0]|0xFFFFFF))^(piQxelXor[0] & 0xFF000000)); \ + *((dst)+1) = ((*((dst)+1) & (piQxelAnd[1]|0xFFFF0000))^(piQxelXor[1] & 0xFFFF)); \ + break; \ + case 2: \ + *(dst) = ((*(dst) & (piQxelAnd[1]|0xFFFF))^(piQxelXor[1] & 0xFFFF0000)); \ + *((dst)+1) = ((*((dst)+1) & (piQxelAnd[2]|0xFFFFFF00))^(piQxelXor[2] & 0xFF)); \ + break; \ + } \ + } diff --git a/nx-X11/programs/Xserver/cfb24/module/Imakefile b/nx-X11/programs/Xserver/cfb24/module/Imakefile new file mode 100644 index 000000000..d9da99214 --- /dev/null +++ b/nx-X11/programs/Xserver/cfb24/module/Imakefile @@ -0,0 +1,12 @@ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:48:16 cpqbld Exp $ + + + +XCOMM $XFree86$ + +#define IHaveModules + +#define PixelSize 24 +#define LinkDirectory ../../cfb + +#include "../../cfb/Imakefile.inc" |