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