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