45e9809aff7304721fddb95654901b32195c9c7avboxsync/*
45e9809aff7304721fddb95654901b32195c9c7avboxsync * Copyright IBM Corporation 1987,1988,1989
45e9809aff7304721fddb95654901b32195c9c7avboxsync *
45e9809aff7304721fddb95654901b32195c9c7avboxsync * All Rights Reserved
45e9809aff7304721fddb95654901b32195c9c7avboxsync *
45e9809aff7304721fddb95654901b32195c9c7avboxsync * Permission to use, copy, modify, and distribute this software and its
45e9809aff7304721fddb95654901b32195c9c7avboxsync * documentation for any purpose and without fee is hereby granted,
45e9809aff7304721fddb95654901b32195c9c7avboxsync * provided that the above copyright notice appear in all copies and that
45e9809aff7304721fddb95654901b32195c9c7avboxsync * both that copyright notice and this permission notice appear in
45e9809aff7304721fddb95654901b32195c9c7avboxsync * supporting documentation, and that the name of IBM not be
45e9809aff7304721fddb95654901b32195c9c7avboxsync * used in advertising or publicity pertaining to distribution of the
45e9809aff7304721fddb95654901b32195c9c7avboxsync * software without specific, written prior permission.
45e9809aff7304721fddb95654901b32195c9c7avboxsync *
45e9809aff7304721fddb95654901b32195c9c7avboxsync * IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
45e9809aff7304721fddb95654901b32195c9c7avboxsync * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
45e9809aff7304721fddb95654901b32195c9c7avboxsync * IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
45e9809aff7304721fddb95654901b32195c9c7avboxsync * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
45e9809aff7304721fddb95654901b32195c9c7avboxsync * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
45e9809aff7304721fddb95654901b32195c9c7avboxsync * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
45e9809aff7304721fddb95654901b32195c9c7avboxsync * SOFTWARE.
45e9809aff7304721fddb95654901b32195c9c7avboxsync *
45e9809aff7304721fddb95654901b32195c9c7avboxsync*/
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#ifdef HAVE_XORG_CONFIG_H
45e9809aff7304721fddb95654901b32195c9c7avboxsync#include <xorg-config.h>
45e9809aff7304721fddb95654901b32195c9c7avboxsync#endif
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#include "gc.h"
45e9809aff7304721fddb95654901b32195c9c7avboxsync#include "mfb.h"
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct {
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned long planemask ;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned long fgPixel ;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned long bgPixel ;
45e9809aff7304721fddb95654901b32195c9c7avboxsync int alu ;
45e9809aff7304721fddb95654901b32195c9c7avboxsync int fillStyle ;
45e9809aff7304721fddb95654901b32195c9c7avboxsync } ppcReducedRrop ;
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync/* ************************************************************************ */
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync/* private field of GC */
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct {
45e9809aff7304721fddb95654901b32195c9c7avboxsync/* The next five (5) fields MUST CORRESPOND to
45e9809aff7304721fddb95654901b32195c9c7avboxsync * the fields of a "mfbPrivGC" struct
45e9809aff7304721fddb95654901b32195c9c7avboxsync * ----- BEGINNING OF "DO-NOT-CHANGE" REGION -----
45e9809aff7304721fddb95654901b32195c9c7avboxsync */
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned char rop ; /* reduction of rasterop to 1 of 3 */
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned char ropOpStip ; /* rop for opaque stipple */
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned char ropFillArea ; /* == alu, rop, or ropOpStip */
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned char unused[sizeof(long) - 3];
45e9809aff7304721fddb95654901b32195c9c7avboxsync mfbFillAreaProcPtr FillArea; /* fills regions; look at the code */
45e9809aff7304721fddb95654901b32195c9c7avboxsync/* ----- END OF "DO-NOT-CHANGE" REGION ----- */
45e9809aff7304721fddb95654901b32195c9c7avboxsync ppcReducedRrop colorRrop ;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short lastDrawableType ; /* was last drawable a window or a pixmap? */
45e9809aff7304721fddb95654901b32195c9c7avboxsync short lastDrawableDepth ; /* was last drawable 1 or 8 planes? */
45e9809aff7304721fddb95654901b32195c9c7avboxsync pointer devPriv ; /* Private area for device specific stuff */
45e9809aff7304721fddb95654901b32195c9c7avboxsync } ppcPrivGC ;
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef ppcPrivGC *ppcPrivGCPtr ;
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync/* ppcCReduce.c */
45e9809aff7304721fddb95654901b32195c9c7avboxsyncvoid xf4bppGetReducedColorRrop(
45e9809aff7304721fddb95654901b32195c9c7avboxsync GCPtr,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int,
45e9809aff7304721fddb95654901b32195c9c7avboxsync ppcReducedRrop *
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync/* vgaGC.c */
45e9809aff7304721fddb95654901b32195c9c7avboxsyncvoid xf4bppChangeGCtype(
45e9809aff7304721fddb95654901b32195c9c7avboxsync GCPtr,
45e9809aff7304721fddb95654901b32195c9c7avboxsync ppcPrivGCPtr
45e9809aff7304721fddb95654901b32195c9c7avboxsync);