mipict.h revision 6747b715
105b261ecSmrg/* 205b261ecSmrg * 305b261ecSmrg * Copyright © 2000 SuSE, Inc. 405b261ecSmrg * 505b261ecSmrg * Permission to use, copy, modify, distribute, and sell this software and its 605b261ecSmrg * documentation for any purpose is hereby granted without fee, provided that 705b261ecSmrg * the above copyright notice appear in all copies and that both that 805b261ecSmrg * copyright notice and this permission notice appear in supporting 905b261ecSmrg * documentation, and that the name of SuSE not be used in advertising or 1005b261ecSmrg * publicity pertaining to distribution of the software without specific, 1105b261ecSmrg * written prior permission. SuSE makes no representations about the 1205b261ecSmrg * suitability of this software for any purpose. It is provided "as is" 1305b261ecSmrg * without express or implied warranty. 1405b261ecSmrg * 1505b261ecSmrg * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL 1605b261ecSmrg * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE 1705b261ecSmrg * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1805b261ecSmrg * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 1905b261ecSmrg * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 2005b261ecSmrg * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 2105b261ecSmrg * 2205b261ecSmrg * Author: Keith Packard, SuSE, Inc. 2305b261ecSmrg */ 2405b261ecSmrg 2505b261ecSmrg#ifndef _MIPICT_H_ 2605b261ecSmrg#define _MIPICT_H_ 2705b261ecSmrg 2805b261ecSmrg#include "picturestr.h" 2905b261ecSmrg 3005b261ecSmrg#define MI_MAX_INDEXED 256 /* XXX depth must be <= 8 */ 3105b261ecSmrg 3205b261ecSmrg#if MI_MAX_INDEXED <= 256 3305b261ecSmrgtypedef CARD8 miIndexType; 3405b261ecSmrg#endif 3505b261ecSmrg 3605b261ecSmrgtypedef struct _miIndexed { 3705b261ecSmrg Bool color; 3805b261ecSmrg CARD32 rgba[MI_MAX_INDEXED]; 3905b261ecSmrg miIndexType ent[32768]; 4005b261ecSmrg} miIndexedRec, *miIndexedPtr; 4105b261ecSmrg 4205b261ecSmrg#define miCvtR8G8B8to15(s) ((((s) >> 3) & 0x001f) | \ 4305b261ecSmrg (((s) >> 6) & 0x03e0) | \ 4405b261ecSmrg (((s) >> 9) & 0x7c00)) 4505b261ecSmrg#define miIndexToEnt15(mif,rgb15) ((mif)->ent[rgb15]) 4605b261ecSmrg#define miIndexToEnt24(mif,rgb24) miIndexToEnt15(mif,miCvtR8G8B8to15(rgb24)) 4705b261ecSmrg 4805b261ecSmrg#define miIndexToEntY24(mif,rgb24) ((mif)->ent[CvtR8G8B8toY15(rgb24)]) 4905b261ecSmrg 506747b715Smrgextern _X_EXPORT int 5105b261ecSmrgmiCreatePicture (PicturePtr pPicture); 5205b261ecSmrg 536747b715Smrgextern _X_EXPORT void 5405b261ecSmrgmiDestroyPicture (PicturePtr pPicture); 5505b261ecSmrg 566747b715Smrgextern _X_EXPORT void 5705b261ecSmrgmiDestroyPictureClip (PicturePtr pPicture); 5805b261ecSmrg 596747b715Smrgextern _X_EXPORT int 6005b261ecSmrgmiChangePictureClip (PicturePtr pPicture, 6105b261ecSmrg int type, 6205b261ecSmrg pointer value, 6305b261ecSmrg int n); 6405b261ecSmrg 656747b715Smrgextern _X_EXPORT void 6605b261ecSmrgmiChangePicture (PicturePtr pPicture, 6705b261ecSmrg Mask mask); 6805b261ecSmrg 696747b715Smrgextern _X_EXPORT void 7005b261ecSmrgmiValidatePicture (PicturePtr pPicture, 7105b261ecSmrg Mask mask); 7205b261ecSmrg 736747b715Smrgextern _X_EXPORT int 7405b261ecSmrgmiChangePictureTransform (PicturePtr pPicture, 7505b261ecSmrg PictTransform *transform); 7605b261ecSmrg 776747b715Smrgextern _X_EXPORT int 7805b261ecSmrgmiChangePictureFilter (PicturePtr pPicture, 7905b261ecSmrg int filter, 8005b261ecSmrg xFixed *params, 8105b261ecSmrg int nparams); 8205b261ecSmrg 836747b715Smrgextern _X_EXPORT void 8405b261ecSmrgmiCompositeSourceValidate (PicturePtr pPicture, 8505b261ecSmrg INT16 x, 8605b261ecSmrg INT16 y, 8705b261ecSmrg CARD16 width, 8805b261ecSmrg CARD16 height); 896747b715Smrgextern _X_EXPORT Bool 9005b261ecSmrgmiComputeCompositeRegion (RegionPtr pRegion, 9105b261ecSmrg PicturePtr pSrc, 9205b261ecSmrg PicturePtr pMask, 9305b261ecSmrg PicturePtr pDst, 9405b261ecSmrg INT16 xSrc, 9505b261ecSmrg INT16 ySrc, 9605b261ecSmrg INT16 xMask, 9705b261ecSmrg INT16 yMask, 9805b261ecSmrg INT16 xDst, 9905b261ecSmrg INT16 yDst, 10005b261ecSmrg CARD16 width, 10105b261ecSmrg CARD16 height); 10205b261ecSmrg 1036747b715Smrgextern _X_EXPORT Bool 10405b261ecSmrgmiPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats); 10505b261ecSmrg 1066747b715Smrgextern _X_EXPORT Bool 10705b261ecSmrgmiRealizeGlyph (ScreenPtr pScreen, 10805b261ecSmrg GlyphPtr glyph); 10905b261ecSmrg 1106747b715Smrgextern _X_EXPORT void 11105b261ecSmrgmiUnrealizeGlyph (ScreenPtr pScreen, 11205b261ecSmrg GlyphPtr glyph); 11305b261ecSmrg 1146747b715Smrgextern _X_EXPORT void 11505b261ecSmrgmiGlyphs (CARD8 op, 11605b261ecSmrg PicturePtr pSrc, 11705b261ecSmrg PicturePtr pDst, 11805b261ecSmrg PictFormatPtr maskFormat, 11905b261ecSmrg INT16 xSrc, 12005b261ecSmrg INT16 ySrc, 12105b261ecSmrg int nlist, 12205b261ecSmrg GlyphListPtr list, 12305b261ecSmrg GlyphPtr *glyphs); 12405b261ecSmrg 1256747b715Smrgextern _X_EXPORT void 12605b261ecSmrgmiRenderColorToPixel (PictFormatPtr pPict, 12705b261ecSmrg xRenderColor *color, 12805b261ecSmrg CARD32 *pixel); 12905b261ecSmrg 1306747b715Smrgextern _X_EXPORT void 13105b261ecSmrgmiRenderPixelToColor (PictFormatPtr pPict, 13205b261ecSmrg CARD32 pixel, 13305b261ecSmrg xRenderColor *color); 13405b261ecSmrg 1356747b715Smrgextern _X_EXPORT Bool 13605b261ecSmrgmiIsSolidAlpha (PicturePtr pSrc); 13705b261ecSmrg 1386747b715Smrgextern _X_EXPORT void 13905b261ecSmrgmiCompositeRects (CARD8 op, 14005b261ecSmrg PicturePtr pDst, 14105b261ecSmrg xRenderColor *color, 14205b261ecSmrg int nRect, 14305b261ecSmrg xRectangle *rects); 14405b261ecSmrg 1456747b715Smrgextern _X_EXPORT void 14605b261ecSmrgmiTrapezoidBounds (int ntrap, xTrapezoid *traps, BoxPtr box); 14705b261ecSmrg 1486747b715Smrgextern _X_EXPORT void 14905b261ecSmrgmiTrapezoids (CARD8 op, 15005b261ecSmrg PicturePtr pSrc, 15105b261ecSmrg PicturePtr pDst, 15205b261ecSmrg PictFormatPtr maskFormat, 15305b261ecSmrg INT16 xSrc, 15405b261ecSmrg INT16 ySrc, 15505b261ecSmrg int ntrap, 15605b261ecSmrg xTrapezoid *traps); 15705b261ecSmrg 1586747b715Smrgextern _X_EXPORT void 15905b261ecSmrgmiPointFixedBounds (int npoint, xPointFixed *points, BoxPtr bounds); 16005b261ecSmrg 1616747b715Smrgextern _X_EXPORT void 16205b261ecSmrgmiTriangleBounds (int ntri, xTriangle *tris, BoxPtr bounds); 16305b261ecSmrg 1646747b715Smrgextern _X_EXPORT void 16505b261ecSmrgmiTriangles (CARD8 op, 16605b261ecSmrg PicturePtr pSrc, 16705b261ecSmrg PicturePtr pDst, 16805b261ecSmrg PictFormatPtr maskFormat, 16905b261ecSmrg INT16 xSrc, 17005b261ecSmrg INT16 ySrc, 17105b261ecSmrg int ntri, 17205b261ecSmrg xTriangle *tris); 17305b261ecSmrg 1746747b715Smrgextern _X_EXPORT void 17505b261ecSmrgmiTriStrip (CARD8 op, 17605b261ecSmrg PicturePtr pSrc, 17705b261ecSmrg PicturePtr pDst, 17805b261ecSmrg PictFormatPtr maskFormat, 17905b261ecSmrg INT16 xSrc, 18005b261ecSmrg INT16 ySrc, 18105b261ecSmrg int npoint, 18205b261ecSmrg xPointFixed *points); 18305b261ecSmrg 1846747b715Smrgextern _X_EXPORT void 18505b261ecSmrgmiTriFan (CARD8 op, 18605b261ecSmrg PicturePtr pSrc, 18705b261ecSmrg PicturePtr pDst, 18805b261ecSmrg PictFormatPtr maskFormat, 18905b261ecSmrg INT16 xSrc, 19005b261ecSmrg INT16 ySrc, 19105b261ecSmrg int npoint, 19205b261ecSmrg xPointFixed *points); 19305b261ecSmrg 1946747b715Smrgextern _X_EXPORT PicturePtr 19505b261ecSmrgmiCreateAlphaPicture (ScreenPtr pScreen, 19605b261ecSmrg PicturePtr pDst, 19705b261ecSmrg PictFormatPtr pPictFormat, 19805b261ecSmrg CARD16 width, 19905b261ecSmrg CARD16 height); 20005b261ecSmrg 2016747b715Smrgextern _X_EXPORT Bool 20205b261ecSmrgmiInitIndexed (ScreenPtr pScreen, 20305b261ecSmrg PictFormatPtr pFormat); 20405b261ecSmrg 2056747b715Smrgextern _X_EXPORT void 20605b261ecSmrgmiCloseIndexed (ScreenPtr pScreen, 20705b261ecSmrg PictFormatPtr pFormat); 20805b261ecSmrg 2096747b715Smrgextern _X_EXPORT void 21005b261ecSmrgmiUpdateIndexed (ScreenPtr pScreen, 21105b261ecSmrg PictFormatPtr pFormat, 21205b261ecSmrg int ndef, 21305b261ecSmrg xColorItem *pdef); 21405b261ecSmrg 21505b261ecSmrg#endif /* _MIPICT_H_ */ 216