90929d4c6b284dd318f4a78c2aa407afb7423747oliver.bradley/* $XFree86: xc/programs/Xserver/hw/xfree86/xf4bpp/ppcGCstr.h,v 1.3 2003/02/18 21:29:59 tsi Exp $ */
90929d4c6b284dd318f4a78c2aa407afb7423747oliver.bradley/*
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne * Copyright IBM Corporation 1987,1988,1989
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne *
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne * All Rights Reserved
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne *
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne * Permission to use, copy, modify, and distribute this software and its
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne * documentation for any purpose and without fee is hereby granted,
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne * provided that the above copyright notice appear in all copies and that
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne * both that copyright notice and this permission notice appear in
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne * supporting documentation, and that the name of IBM not be
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne * used in advertising or publicity pertaining to distribution of the
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne * software without specific, written prior permission.
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne *
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne * IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne * IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne * SOFTWARE.
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne *
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne*/
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne/***********************************************************
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne Copyright IBM Corporation 1988
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne All Rights Reserved
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.brownePermission to use, copy, modify, and distribute this software and its
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.brownedocumentation for any purpose and without fee is hereby granted,
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browneprovided that the above copyright notice appear in all copies and that
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browneboth that copyright notice and this permission notice appear in
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.brownesupporting documentation, and that the name of IBM not be
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browneused in advertising or publicity pertaining to distribution of the
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.brownesoftware without specific, written prior permission.
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browneIBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browneALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browneIBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browneANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browneWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browneARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browneSOFTWARE.
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne******************************************************************/
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne/* $XConsortium: ppcGCstr.h /main/3 1996/02/21 17:57:42 kaleb $ */
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne#ifdef HAVE_XORG_CONFIG_H
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne#include <xorg-config.h>
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne#endif
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne#include "gc.h"
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne#include "mfb.h"
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.brownetypedef struct {
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne unsigned long planemask ;
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne unsigned long fgPixel ;
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne unsigned long bgPixel ;
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne int alu ;
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne int fillStyle ;
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne } ppcReducedRrop ;
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne/* ************************************************************************ */
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne/* private field of GC */
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.brownetypedef struct {
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne/* The next five (5) fields MUST CORRESPOND to
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne * the fields of a "mfbPrivGC" struct
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne * ----- BEGINNING OF "DO-NOT-CHANGE" REGION -----
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne */
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne unsigned char rop ; /* reduction of rasterop to 1 of 3 */
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne unsigned char ropOpStip ; /* rop for opaque stipple */
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne unsigned char ropFillArea ; /* == alu, rop, or ropOpStip */
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne unsigned char unused[sizeof(long) - 3];
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne mfbFillAreaProcPtr FillArea; /* fills regions; look at the code */
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne/* ----- END OF "DO-NOT-CHANGE" REGION ----- */
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne ppcReducedRrop colorRrop ;
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne short lastDrawableType ; /* was last drawable a window or a pixmap? */
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne short lastDrawableDepth ; /* was last drawable 1 or 8 planes? */
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne pointer devPriv ; /* Private area for device specific stuff */
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne } ppcPrivGC ;
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.brownetypedef ppcPrivGC *ppcPrivGCPtr ;
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne/* ppcCReduce.c */
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.brownevoid xf4bppGetReducedColorRrop(
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne GCPtr,
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne int,
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne ppcReducedRrop *
9ef3a0e80a4e67fde2d24364ad9a7d5d64654f19jason.browne);
/* vgaGC.c */
void xf4bppChangeGCtype(
GCPtr,
ppcPrivGCPtr
);