f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync *
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * Copyright © 2000 SuSE, Inc.
f78b12e570284aa8291f4ca1add24937fd107403vboxsync *
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * Permission to use, copy, modify, distribute, and sell this software and its
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * documentation for any purpose is hereby granted without fee, provided that
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * the above copyright notice appear in all copies and that both that
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * copyright notice and this permission notice appear in supporting
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * documentation, and that the name of SuSE not be used in advertising or
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * publicity pertaining to distribution of the software without specific,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * written prior permission. SuSE makes no representations about the
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * suitability of this software for any purpose. It is provided "as is"
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * without express or implied warranty.
f78b12e570284aa8291f4ca1add24937fd107403vboxsync *
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
f78b12e570284aa8291f4ca1add24937fd107403vboxsync *
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * Author: Keith Packard, SuSE, Inc.
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#ifndef _MIPICT_H_
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define _MIPICT_H_
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#include "picturestr.h"
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define MI_MAX_INDEXED 256 /* XXX depth must be <= 8 */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#if MI_MAX_INDEXED <= 256
f78b12e570284aa8291f4ca1add24937fd107403vboxsynctypedef CARD8 miIndexType;
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsynctypedef struct _miIndexed {
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Bool color;
f78b12e570284aa8291f4ca1add24937fd107403vboxsync CARD32 rgba[MI_MAX_INDEXED];
f78b12e570284aa8291f4ca1add24937fd107403vboxsync miIndexType ent[32768];
f78b12e570284aa8291f4ca1add24937fd107403vboxsync} miIndexedRec, *miIndexedPtr;
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define miCvtR8G8B8to15(s) ((((s) >> 3) & 0x001f) | \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync (((s) >> 6) & 0x03e0) | \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync (((s) >> 9) & 0x7c00))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define miIndexToEnt15(mif,rgb15) ((mif)->ent[rgb15])
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define miIndexToEnt24(mif,rgb24) miIndexToEnt15(mif,miCvtR8G8B8to15(rgb24))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define miIndexToEntY24(mif,rgb24) ((mif)->ent[CvtR8G8B8toY15(rgb24)])
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT int
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncmiCreatePicture (PicturePtr pPicture);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncmiDestroyPicture (PicturePtr pPicture);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncmiDestroyPictureClip (PicturePtr pPicture);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT int
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncmiChangePictureClip (PicturePtr pPicture,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int type,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync pointer value,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int n);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncmiChangePicture (PicturePtr pPicture,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Mask mask);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncmiValidatePicture (PicturePtr pPicture,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Mask mask);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT int
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncmiChangePictureTransform (PicturePtr pPicture,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync PictTransform *transform);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT int
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncmiChangePictureFilter (PicturePtr pPicture,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int filter,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xFixed *params,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int nparams);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncmiCompositeSourceValidate (PicturePtr pPicture);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncmiComputeCompositeRegion (RegionPtr pRegion,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync PicturePtr pSrc,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync PicturePtr pMask,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync PicturePtr pDst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync INT16 xSrc,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync INT16 ySrc,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync INT16 xMask,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync INT16 yMask,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync INT16 xDst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync INT16 yDst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync CARD16 width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync CARD16 height);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncmiPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncmiRealizeGlyph (ScreenPtr pScreen,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GlyphPtr glyph);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncmiUnrealizeGlyph (ScreenPtr pScreen,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GlyphPtr glyph);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncmiGlyphs (CARD8 op,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync PicturePtr pSrc,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync PicturePtr pDst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync PictFormatPtr maskFormat,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync INT16 xSrc,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync INT16 ySrc,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int nlist,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GlyphListPtr list,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GlyphPtr *glyphs);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncmiRenderColorToPixel (PictFormatPtr pPict,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xRenderColor *color,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync CARD32 *pixel);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncmiRenderPixelToColor (PictFormatPtr pPict,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync CARD32 pixel,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xRenderColor *color);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncmiIsSolidAlpha (PicturePtr pSrc);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncmiCompositeRects (CARD8 op,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync PicturePtr pDst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xRenderColor *color,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int nRect,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xRectangle *rects);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncmiTrapezoidBounds (int ntrap, xTrapezoid *traps, BoxPtr box);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncmiPointFixedBounds (int npoint, xPointFixed *points, BoxPtr bounds);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncmiTriangleBounds (int ntri, xTriangle *tris, BoxPtr bounds);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncmiInitIndexed (ScreenPtr pScreen,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync PictFormatPtr pFormat);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncmiCloseIndexed (ScreenPtr pScreen,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync PictFormatPtr pFormat);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncmiUpdateIndexed (ScreenPtr pScreen,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync PictFormatPtr pFormat,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int ndef,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xColorItem *pdef);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif /* _MIPICT_H_ */