aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/xfree86/xf4bpp/offscreen.c
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/hw/xfree86/xf4bpp/offscreen.c')
-rw-r--r--xorg-server/hw/xfree86/xf4bpp/offscreen.c342
1 files changed, 0 insertions, 342 deletions
diff --git a/xorg-server/hw/xfree86/xf4bpp/offscreen.c b/xorg-server/hw/xfree86/xf4bpp/offscreen.c
deleted file mode 100644
index 3160e7ef8..000000000
--- a/xorg-server/hw/xfree86/xf4bpp/offscreen.c
+++ /dev/null
@@ -1,342 +0,0 @@
-/*
- * Copyright 1993 Gerrit Jan Akkerman
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Gerrit Jan Akkerman not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * GERRIT JAN AKKERMAN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
- * IN NO EVENT SHALL GERRIT JAN AKKERMAN BE LIABLE FOR ANY SPECIAL, INDIRECT
- * OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
- * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
- * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- *
-*/
-/*
- * Copyright IBM Corporation 1987,1988,1989
- *
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of IBM not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
-*/
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include "xf4bpp.h"
-#include "vgaVideo.h"
-#include "pixmapstr.h"
-#include "scrnintstr.h"
-#include "windowstr.h"
-
-#define saved_screen(pWin) \
- ((unsigned char *)(((PixmapPtr)((pWin)->drawable.pScreen->devPrivate))->devPrivate.ptr))
-
-#define SAVEDSCREEN(pWin, x, y) \
- (*(saved_screen(pWin) + (y) * (BYTES_PER_LINE(pWin)) + (x)))
-
-#define DO_ROP(src,dst,alu,planes) \
- ((dst) = do_rop((src),(dst),(alu),(planes)))
-
-/* NOTE:
- * The following to functions don't do anything. They're just there to
- * provide a stable interface to the rest of the system.
- */
-
-static int
-do_rop
-(
- int src,
- int dst,
- int alu,
- const unsigned long planes
-)
-{
- int _dst; /* New dst */
-
- switch ( alu ) {
- case GXclear: /* 0x0 Zero 0 */
- _dst = 0; break ;
- case GXinvert: /* 0xa NOT dst */
- _dst = ~dst; break ;
- case GXset: /* 0xf 1 */
- _dst = src; break ;
- default:
- case GXnoop: /* 0x5 dst */
- return dst;
- case GXnor: /* 0x8 NOT src AND NOT dst */
- _dst = ~src & ~dst; break ;
- case GXandInverted: /* 0x4 NOT src AND dst */
- _dst = ~src & dst; break ;
- case GXand: /* 0x1 src AND dst */
- _dst = src & dst; break ;
- case GXequiv: /* 0x9 NOT src XOR dst */
- _dst = ~src ^ dst; break ;
- case GXxor: /* 0x6 src XOR dst */
- _dst = src ^ dst; break ;
- case GXandReverse: /* 0x2 src AND NOT dst */
- _dst = src & ~dst; break ;
- case GXnand: /* 0xe NOT src OR NOT dst */
- _dst = ~src | ~dst; break ;
- case GXorReverse: /* 0xb src OR NOT dst */
- _dst = src | ~dst; break ;
- case GXorInverted: /* 0xd NOT src OR dst */
- _dst = ~src | dst; break ;
- case GXor: /* 0x7 src OR dst */
- _dst = src | dst; break ;
- case GXcopyInverted: /* 0xc NOT src */
- _dst = ~src; break ;
- case GXcopy: /* 0x3 src */
- _dst = src; break ;
- }
- return (dst & ~planes) | (_dst & planes);
-}
-
-/* File vgaBitBlt.c */
-void
-xf4bppOffBitBlt( pWin, alu, writeplanes, x0, y0, x1, y1, w, h )
-WindowPtr pWin; /* GJA */
-const int alu, writeplanes ;
-register int x0 ;
-int y0 ;
-register int x1 ;
-int y1 ;
-register int w, h ;
-{
- int x,y;
-
- switch ( alu ) {
- case GXclear: /* 0x0 Zero 0 */
- case GXinvert: /* 0xa NOT dst */
- case GXset: /* 0xf 1 */
- xf4bppOffFillSolid( pWin, VGA_ALLPLANES, alu, writeplanes,
- x0, y0, w, h ) ;
- case GXnoop: /* 0x5 dst */
- return ;
- default:
- break ;
- }
-
- if ( (w <= 0) || (h <= 0) ) return;
-
- for ( y = 0 ; y < h ; y++ ) {
- for ( x = 0 ; x < w ; x++ ) {
- DO_ROP(SAVEDSCREEN(pWin,x0+x,y0+y),SAVEDSCREEN(pWin,x1+x,y1+y),
- alu,writeplanes);
- }
- }
-}
-
-/* for file vgaImages.c */
-
-void
-xf4bppOffDrawColorImage( pWin, x, y, w, h, data, RowIncrement, alu, planes )
-WindowPtr pWin; /* GJA */
-int x, y ;
-register int w, h ;
-unsigned char *data ;
-register int RowIncrement ;
-const int alu ;
-const unsigned long int planes ;
-{
- int dx,dy;
-
- for ( dy = 0 ; dy < h ; dy++ ) {
- for ( dx = 0 ; dx < w ; dx++ ) {
- DO_ROP( data[dy * RowIncrement + dx],
- SAVEDSCREEN(pWin,x+dx,y+dy), alu, planes);
- }
- }
-}
-
-void
-xf4bppOffReadColorImage( pWin, x, y, lx, ly, data, RowIncrement )
-WindowPtr pWin; /* GJA */
-int x, y ;
-int lx, ly ;
-unsigned char *data ;
-int RowIncrement ;
-{
- int dx, dy;
-
- if ( ( lx <= 0 ) || ( ly <= 0 ) )
- return ;
-
- for ( dy = 0 ; dy < ly ; dy++ ) {
- for ( dx = 0 ; dx < lx ; dx++ ) {
- data[dy*RowIncrement+dx] = SAVEDSCREEN(pWin,x+dx,y+dy);
- }
- }
-}
-
-/* For file vgaSolid.c */
-
-void xf4bppOffFillSolid( pWin, color, alu, planes, x0, y0, lx, ly )
-WindowPtr pWin; /* GJA */
-unsigned long int color ;
-const int alu ;
-unsigned long int planes ;
-register int x0 ;
-register const int y0 ;
-register int lx ;
-register const int ly ; /* MUST BE > 0 !! */
-{
- int dx, dy;
-
- if ( ( lx == 0 ) || ( ly == 0 ) )
- return;
-
- for ( dy = 0 ; dy < ly ; dy++ ) {
- for ( dx = 0 ; dx < lx ; dx++ ) {
- DO_ROP(color,SAVEDSCREEN(pWin, x0+dx,y0+dy),alu,planes);
- }
- }
-}
-
-/* For file vgaStipple.c */
-
-/* GJA -- modified this to take both Width and Height, and to
- * reduce x and y to Width and Height by taking remainders.
- */
-static unsigned char
-xygetbits
-(
- register int x,
- register int y,
- register const unsigned int Width,
- register const unsigned int paddedByteWidth,
- register const unsigned int Height,
- register const unsigned char * const data
-)
-{
- register unsigned char bits ;
- unsigned const char *lineptr, *cptr ;
- register int shift ;
- register int wrap ;
-
- x = x % Width;
- y = y % Height;
-
- lineptr = data + (y * paddedByteWidth);
- cptr = lineptr + (x >> 3) ;
- bits = *cptr ;
- if ((shift = x & 7))
- bits = SCRLEFT8( bits, shift ) |
- SCRRIGHT8( cptr[1], ( 8 - shift ) ) ;
- if ( ( wrap = x + 8 - Width ) > 0 ) {
- bits &= SCRLEFT8( 0xFF, wrap ) ;
- bits |= SCRRIGHT8( *lineptr, ( 8 - wrap ) ) ;
- }
-
- return bits ;
-}
-
-static void
-DoMono
-(
- WindowPtr pWin, /* GJA */
- int w,
- int x,
- int y,
- register const unsigned char *mastersrc,
- int h,
- unsigned int width,
- register unsigned int paddedByteWidth,
- unsigned int height,
- int xshift,
- int yshift,
- int alu,
- int planes,
- int fg
-)
-{
- int dy, dx, i;
- int byte;
-
- for ( dy = 0 ; dy < h ; dy++ ) {
- for ( dx = 0; dx <= w - 8 ; dx += 8 ) {
- /* get next byte */
- byte = xygetbits(dx+xshift,dy+yshift,width,
- paddedByteWidth, height, mastersrc);
- for ( i = 0 ; i < 8 ; i++ ) {
- if ( byte & (128 >> i) ) {
- DO_ROP(fg,SAVEDSCREEN(pWin,x+dx+i,y+dy),
- alu,planes);
- }
- }
- }
- /* get last bits */
- byte = xygetbits(dx+xshift,dy+yshift,width,
- paddedByteWidth, height, mastersrc);
- for ( i = 0 ; i < (w - dx) ; i++ ) {
- if ( byte & (128 >> i) ) {
- DO_ROP(fg,SAVEDSCREEN(pWin,x+dx+i,y+dy),
- alu,planes);
- }
- }
- }
-}
-
-void
-xf4bppOffFillStipple( pWin, pStipple, fg, alu, planes, x, y, w, h, xSrc, ySrc )
-WindowPtr pWin; /* GJA */
-register PixmapPtr const pStipple ;
-unsigned long int fg ;
-const int alu ;
-unsigned long int planes ;
-int x, y, w, h ;
-const int xSrc, ySrc ;
-{
- unsigned int width ;
- unsigned int height ;
- int xshift ;
- int yshift ;
-
- if ( ( alu == GXnoop ) || !( planes &= VGA_ALLPLANES ) )
- return ;
-
- /* Figure Bit Offsets & Source Address */
- width = pStipple->drawable.width ;
- if ( ( xshift = ( x - xSrc ) ) < 0 )
- xshift = width - ( ( - xshift ) % width ) ;
- else
- xshift %= width ;
-
- height = pStipple->drawable.height ;
- if ( ( yshift = ( y - ySrc ) ) < 0 )
- yshift = height - ( ( - yshift ) % height ) ;
- else
- yshift %= height ;
-
- DoMono( pWin, w, x, y,
- (const unsigned char *) pStipple->devPrivate.ptr,
- h,
- width,
- ( ( width + 31 ) & (unsigned)(~31) ) >> 3,
- height,
- xshift, yshift,
- alu, (int)planes, (int)fg ) ;
- return ;
-}