picturestr.h revision f0ab104f070bc7f569404826fea1828ed985638c
/*
* Copyright © 2000 SuSE, Inc.
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
* the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of SuSE not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. SuSE makes no representations about the
* suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
* BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* Author: Keith Packard, SuSE, Inc.
*/
#ifndef _PICTURESTR_H_
#define _PICTURESTR_H_
#include "scrnintstr.h"
#include "glyphstr.h"
#include "resource.h"
#include "privates.h"
typedef struct _DirectFormat {
typedef struct _IndexFormat {
int nvalues;
void *devPrivate;
typedef struct _PictFormat {
unsigned char type;
unsigned char depth;
#define pict_f_vector pixman_f_vector
#define pict_f_transform pixman_f_transform
#define PICT_GRADIENT_STOPTABLE_SIZE 1024
#define SourcePictTypeSolidFill 0
#define SourcePictTypeLinear 1
#define SourcePictTypeRadial 2
#define SourcePictTypeConical 3
typedef struct _PictSolidFill {
unsigned int type;
typedef struct _PictGradientStop {
xFixed x;
typedef struct _PictGradient {
unsigned int type;
int nstops;
typedef struct _PictLinearGradient {
unsigned int type;
int nstops;
typedef struct _PictCircle {
xFixed x;
xFixed y;
} PictCircle, *PictCirclePtr;
typedef struct _PictRadialGradient {
unsigned int type;
int nstops;
typedef struct _PictConicalGradient {
unsigned int type;
int nstops;
typedef union _SourcePict {
unsigned int type;
} SourcePict, *SourcePictPtr;
typedef struct _Picture {
int refcnt;
unsigned int repeat : 1;
unsigned int graphicsExposures : 1;
unsigned int subWindowMode : 1;
unsigned int polyEdge : 1;
unsigned int polyMode : 1;
unsigned int freeCompClip : 1;
unsigned int clientClipType : 2;
unsigned int componentAlpha : 1;
unsigned int repeatType : 2;
unsigned int filter : 3;
unsigned int stateChanges : CPLastBit;
unsigned long serialNumber;
int filter_nparams;
} PictureRec;
typedef struct {
char *name;
int id;
#define PictFilterNearest 0
#define PictFilterBilinear 1
#define PictFilterFast 2
#define PictFilterGood 3
#define PictFilterBest 4
#define PictFilterConvolution 5
/* if you add an 8th filter, expand the filter bitfield above */
typedef struct {
char *alias;
int alias_id;
int filter_id;
int clipType,
int n);
int filter,
int nparams);
int nlists,
int nRect,
xRectangle *rects);
int x_off,
int y_off);
int ntrap,
xTrapezoid *traps);
int ntri,
int npoint,
int npoint,
int ndef,
xColorItem *pdef);
int ntrap,
int ntri,
typedef struct _PictureScreen {
int nformats;
int subpixel;
int nfilters;
int nfilterAliases;
/**
* Called immediately after a picture's transform is changed through the
* SetPictureTransform request. Not called for source-only pictures.
*/
/**
* Called immediately after a picture's transform is changed through the
* SetPictureFilter request. Not called for source-only pictures.
*/
#define PICTURE_SCREEN_VERSION 2
#define GetPictureScreen(s) ((PictureScreenPtr)dixLookupPrivate(&(s)->devPrivates, PictureScreenPrivateKey))
#define GetPictureScreenIfSet(s) (dixPrivateKeyRegistered(PictureScreenPrivateKey) ? GetPictureScreen(s) : NULL)
#define GetPictureWindow(w) ((PicturePtr)dixLookupPrivate(&(w)->devPrivates, PictureWindowPrivateKey))
return rc;\
}
pPicture = 0; \
else { \
} \
} \
extern _X_EXPORT void
extern _X_EXPORT int
extern _X_EXPORT PictFormatPtr
extern _X_EXPORT PictFormatPtr
extern _X_EXPORT PictFormatPtr
extern _X_EXPORT int
extern _X_EXPORT char *
PictureGetFilterName (int id);
extern _X_EXPORT int
const char *filter,
int width,
int height);
extern _X_EXPORT void
extern _X_EXPORT PictFilterPtr
extern _X_EXPORT int
extern _X_EXPORT int
PictureFinishInit (void);
extern _X_EXPORT void
extern _X_EXPORT PicturePtr
int *error);
extern _X_EXPORT int
extern _X_EXPORT int
int xOrigin,
int yOrigin,
int nRect,
xRectangle *rects);
extern _X_EXPORT int
int xOrigin,
int yOrigin,
extern _X_EXPORT int
extern _X_EXPORT void
extern _X_EXPORT void
extern _X_EXPORT int
extern _X_EXPORT int
extern _X_EXPORT void
extern _X_EXPORT void
int nlist,
extern _X_EXPORT void
int nRect,
xRectangle *rects);
extern _X_EXPORT void
int ntrap,
xTrapezoid *traps);
extern _X_EXPORT void
int ntriangles,
extern _X_EXPORT void
int npoints,
extern _X_EXPORT void
int npoints,
extern _X_EXPORT void RenderExtensionInit (void);
int
AnimCursorCreate (CursorPtr *cursors, CARD32 *deltas, int ncursor, CursorPtr *ppCursor, ClientPtr client, XID cid);
extern _X_EXPORT void
int ntraps,
extern _X_EXPORT PicturePtr
int *error);
extern _X_EXPORT PicturePtr
int nStops,
int *error);
extern _X_EXPORT PicturePtr
int nStops,
int *error);
extern _X_EXPORT PicturePtr
int nStops,
int *error);
#ifdef PANORAMIX
extern _X_EXPORT void PanoramiXRenderInit (void);
extern _X_EXPORT void PanoramiXRenderReset (void);
#endif
/*
* matrix.c
*/
extern _X_EXPORT void
extern _X_EXPORT void
#endif /* _PICTURESTR_H_ */