cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync *
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Copyright © 2000 SuSE, Inc.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync *
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Permission to use, copy, modify, distribute, and sell this software and its
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * documentation for any purpose is hereby granted without fee, provided that
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * the above copyright notice appear in all copies and that both that
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * copyright notice and this permission notice appear in supporting
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * documentation, and that the name of SuSE not be used in advertising or
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * publicity pertaining to distribution of the software without specific,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * written prior permission. SuSE makes no representations about the
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * suitability of this software for any purpose. It is provided "as is"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * without express or implied warranty.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync *
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync *
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Author: Keith Packard, SuSE, Inc.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#ifndef _MIPICT_H_
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define _MIPICT_H_
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "picturestr.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define MI_MAX_INDEXED 256 /* XXX depth must be <= 8 */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#if MI_MAX_INDEXED <= 256
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef CARD8 miIndexType;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#endif
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef struct _miIndexed {
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Bool color;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync CARD32 rgba[MI_MAX_INDEXED];
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync miIndexType ent[32768];
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync} miIndexedRec, *miIndexedPtr;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define miCvtR8G8B8to15(s) ((((s) >> 3) & 0x001f) | \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync (((s) >> 6) & 0x03e0) | \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync (((s) >> 9) & 0x7c00))
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define miIndexToEnt15(mif,rgb15) ((mif)->ent[rgb15])
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define miIndexToEnt24(mif,rgb24) miIndexToEnt15(mif,miCvtR8G8B8to15(rgb24))
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define miIndexToEntY24(mif,rgb24) ((mif)->ent[CvtR8G8B8toY15(rgb24)])
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT int
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiCreatePicture (PicturePtr pPicture);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiDestroyPicture (PicturePtr pPicture);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiDestroyPictureClip (PicturePtr pPicture);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT int
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiChangePictureClip (PicturePtr pPicture,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int type,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync pointer value,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int n);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiChangePicture (PicturePtr pPicture,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Mask mask);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiValidatePicture (PicturePtr pPicture,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Mask mask);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT int
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiChangePictureTransform (PicturePtr pPicture,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PictTransform *transform);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT int
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiChangePictureFilter (PicturePtr pPicture,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int filter,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync xFixed *params,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int nparams);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiCompositeSourceValidate (PicturePtr pPicture,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync INT16 x,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync INT16 y,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync CARD16 width,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync CARD16 height);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT Bool
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiComputeCompositeRegion (RegionPtr pRegion,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PicturePtr pSrc,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PicturePtr pMask,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PicturePtr pDst,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync INT16 xSrc,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync INT16 ySrc,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync INT16 xMask,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync INT16 yMask,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync INT16 xDst,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync INT16 yDst,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync CARD16 width,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync CARD16 height);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT Bool
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT Bool
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiRealizeGlyph (ScreenPtr pScreen,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync GlyphPtr glyph);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiUnrealizeGlyph (ScreenPtr pScreen,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync GlyphPtr glyph);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiGlyphs (CARD8 op,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PicturePtr pSrc,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PicturePtr pDst,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PictFormatPtr maskFormat,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync INT16 xSrc,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync INT16 ySrc,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int nlist,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync GlyphListPtr list,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync GlyphPtr *glyphs);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiRenderColorToPixel (PictFormatPtr pPict,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync xRenderColor *color,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync CARD32 *pixel);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiRenderPixelToColor (PictFormatPtr pPict,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync CARD32 pixel,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync xRenderColor *color);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT Bool
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiIsSolidAlpha (PicturePtr pSrc);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiCompositeRects (CARD8 op,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PicturePtr pDst,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync xRenderColor *color,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int nRect,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync xRectangle *rects);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiTrapezoidBounds (int ntrap, xTrapezoid *traps, BoxPtr box);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiTrapezoids (CARD8 op,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PicturePtr pSrc,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PicturePtr pDst,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PictFormatPtr maskFormat,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync INT16 xSrc,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync INT16 ySrc,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int ntrap,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync xTrapezoid *traps);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiPointFixedBounds (int npoint, xPointFixed *points, BoxPtr bounds);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiTriangleBounds (int ntri, xTriangle *tris, BoxPtr bounds);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiTriangles (CARD8 op,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PicturePtr pSrc,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PicturePtr pDst,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PictFormatPtr maskFormat,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync INT16 xSrc,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync INT16 ySrc,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int ntri,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync xTriangle *tris);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiTriStrip (CARD8 op,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PicturePtr pSrc,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PicturePtr pDst,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PictFormatPtr maskFormat,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync INT16 xSrc,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync INT16 ySrc,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int npoint,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync xPointFixed *points);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiTriFan (CARD8 op,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PicturePtr pSrc,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PicturePtr pDst,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PictFormatPtr maskFormat,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync INT16 xSrc,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync INT16 ySrc,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int npoint,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync xPointFixed *points);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT PicturePtr
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiCreateAlphaPicture (ScreenPtr pScreen,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PicturePtr pDst,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PictFormatPtr pPictFormat,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync CARD16 width,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync CARD16 height);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT Bool
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiInitIndexed (ScreenPtr pScreen,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PictFormatPtr pFormat);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiCloseIndexed (ScreenPtr pScreen,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PictFormatPtr pFormat);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncmiUpdateIndexed (ScreenPtr pScreen,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PictFormatPtr pFormat,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int ndef,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync xColorItem *pdef);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#endif /* _MIPICT_H_ */