picturestr.h revision 6747b715
1/*
2 * Copyright © 2000 SuSE, Inc.
3 *
4 * Permission to use, copy, modify, distribute, and sell this software and its
5 * documentation for any purpose is hereby granted without fee, provided that
6 * the above copyright notice appear in all copies and that both that
7 * copyright notice and this permission notice appear in supporting
8 * documentation, and that the name of SuSE not be used in advertising or
9 * publicity pertaining to distribution of the software without specific,
10 * written prior permission.  SuSE makes no representations about the
11 * suitability of this software for any purpose.  It is provided "as is"
12 * without express or implied warranty.
13 *
14 * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
16 * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
17 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
18 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
19 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
20 *
21 * Author:  Keith Packard, SuSE, Inc.
22 */
23
24#ifndef _PICTURESTR_H_
25#define _PICTURESTR_H_
26
27#include "scrnintstr.h"
28#include "glyphstr.h"
29#include "resource.h"
30#include "privates.h"
31
32typedef struct _DirectFormat {
33    CARD16	    red, redMask;
34    CARD16	    green, greenMask;
35    CARD16	    blue, blueMask;
36    CARD16	    alpha, alphaMask;
37} DirectFormatRec;
38
39typedef struct _IndexFormat {
40    VisualID	    vid;
41    ColormapPtr	    pColormap;
42    int		    nvalues;
43    xIndexValue	    *pValues;
44    void	    *devPrivate;
45} IndexFormatRec;
46
47typedef struct _PictFormat {
48    CARD32	    id;
49    CARD32	    format;	    /* except bpp */
50    unsigned char   type;
51    unsigned char   depth;
52    DirectFormatRec direct;
53    IndexFormatRec  index;
54} PictFormatRec;
55
56typedef struct pixman_vector PictVector, *PictVectorPtr;
57typedef struct pixman_transform PictTransform, *PictTransformPtr;
58
59#define pict_f_vector pixman_f_vector
60#define pict_f_transform pixman_f_transform
61
62#define PICT_GRADIENT_STOPTABLE_SIZE 1024
63#define SourcePictTypeSolidFill 0
64#define SourcePictTypeLinear 1
65#define SourcePictTypeRadial 2
66#define SourcePictTypeConical 3
67
68#define SourcePictClassUnknown    0
69#define SourcePictClassHorizontal 1
70#define SourcePictClassVertical   2
71
72typedef struct _PictSolidFill {
73    unsigned int type;
74    unsigned int class;
75    CARD32 color;
76} PictSolidFill, *PictSolidFillPtr;
77
78typedef struct _PictGradientStop {
79    xFixed x;
80    xRenderColor color;
81} PictGradientStop, *PictGradientStopPtr;
82
83typedef struct _PictGradient {
84    unsigned int type;
85    unsigned int class;
86    int nstops;
87    PictGradientStopPtr stops;
88    int stopRange;
89    CARD32 *colorTable;
90    int colorTableSize;
91} PictGradient, *PictGradientPtr;
92
93typedef struct _PictLinearGradient {
94    unsigned int type;
95    unsigned int class;
96    int nstops;
97    PictGradientStopPtr stops;
98    int stopRange;
99    CARD32 *colorTable;
100    int colorTableSize;
101    xPointFixed p1;
102    xPointFixed p2;
103} PictLinearGradient, *PictLinearGradientPtr;
104
105typedef struct _PictCircle {
106    xFixed x;
107    xFixed y;
108    xFixed radius;
109} PictCircle, *PictCirclePtr;
110
111typedef struct _PictRadialGradient {
112    unsigned int type;
113    unsigned int class;
114    int nstops;
115    PictGradientStopPtr stops;
116    int stopRange;
117    CARD32 *colorTable;
118    int colorTableSize;
119    PictCircle c1;
120    PictCircle c2;
121    double cdx;
122    double cdy;
123    double dr;
124    double A;
125} PictRadialGradient, *PictRadialGradientPtr;
126
127typedef struct _PictConicalGradient {
128    unsigned int type;
129    unsigned int class;
130    int nstops;
131    PictGradientStopPtr stops;
132    int stopRange;
133    CARD32 *colorTable;
134    int colorTableSize;
135    xPointFixed center;
136    xFixed angle;
137} PictConicalGradient, *PictConicalGradientPtr;
138
139typedef union _SourcePict {
140    unsigned int type;
141    PictSolidFill solidFill;
142    PictGradient gradient;
143    PictLinearGradient linear;
144    PictRadialGradient radial;
145    PictConicalGradient conical;
146} SourcePict, *SourcePictPtr;
147
148typedef struct _Picture {
149    DrawablePtr	    pDrawable;
150    PictFormatPtr   pFormat;
151    PictFormatShort format;	    /* PICT_FORMAT */
152    int		    refcnt;
153    CARD32	    id;
154    PicturePtr	    pNext;	    /* chain on same drawable */
155
156    unsigned int    repeat : 1;
157    unsigned int    graphicsExposures : 1;
158    unsigned int    subWindowMode : 1;
159    unsigned int    polyEdge : 1;
160    unsigned int    polyMode : 1;
161    unsigned int    freeCompClip : 1;
162    unsigned int    clientClipType : 2;
163    unsigned int    componentAlpha : 1;
164    unsigned int    repeatType : 2;
165    unsigned int    unused : 21;
166
167    PicturePtr	    alphaMap;
168    DDXPointRec	    alphaOrigin;
169
170    DDXPointRec	    clipOrigin;
171    pointer	    clientClip;
172
173    Atom	    dither;
174
175    unsigned long   stateChanges;
176    unsigned long   serialNumber;
177
178    RegionPtr	    pCompositeClip;
179
180    PrivateRec	    *devPrivates;
181
182    PictTransform   *transform;
183
184    int		    filter;
185    xFixed	    *filter_params;
186    int		    filter_nparams;
187    SourcePictPtr   pSourcePict;
188} PictureRec;
189
190typedef Bool (*PictFilterValidateParamsProcPtr) (ScreenPtr pScreen, int id,
191						 xFixed *params, int nparams,
192						 int *width, int *height);
193typedef struct {
194    char			    *name;
195    int				    id;
196    PictFilterValidateParamsProcPtr ValidateParams;
197    int				    width, height;
198} PictFilterRec, *PictFilterPtr;
199
200#define PictFilterNearest	0
201#define PictFilterBilinear	1
202
203#define PictFilterFast		2
204#define PictFilterGood		3
205#define PictFilterBest		4
206
207#define PictFilterConvolution	5
208
209typedef struct {
210    char	    *alias;
211    int		    alias_id;
212    int		    filter_id;
213} PictFilterAliasRec, *PictFilterAliasPtr;
214
215typedef int	(*CreatePictureProcPtr)	    (PicturePtr pPicture);
216typedef void	(*DestroyPictureProcPtr)    (PicturePtr pPicture);
217typedef int	(*ChangePictureClipProcPtr) (PicturePtr	pPicture,
218					     int	clipType,
219					     pointer    value,
220					     int	n);
221typedef void	(*DestroyPictureClipProcPtr)(PicturePtr	pPicture);
222
223typedef int	(*ChangePictureTransformProcPtr)    (PicturePtr	    pPicture,
224						     PictTransform  *transform);
225
226typedef int	(*ChangePictureFilterProcPtr)	(PicturePtr	pPicture,
227						 int		filter,
228						 xFixed		*params,
229						 int		nparams);
230
231typedef void	(*DestroyPictureFilterProcPtr)	(PicturePtr pPicture);
232
233typedef void	(*ChangePictureProcPtr)	    (PicturePtr pPicture,
234					     Mask	mask);
235typedef void	(*ValidatePictureProcPtr)    (PicturePtr pPicture,
236					     Mask       mask);
237typedef void	(*CompositeProcPtr)	    (CARD8	op,
238					     PicturePtr pSrc,
239					     PicturePtr pMask,
240					     PicturePtr pDst,
241					     INT16	xSrc,
242					     INT16	ySrc,
243					     INT16	xMask,
244					     INT16	yMask,
245					     INT16	xDst,
246					     INT16	yDst,
247					     CARD16	width,
248					     CARD16	height);
249
250typedef void	(*GlyphsProcPtr)	    (CARD8      op,
251					     PicturePtr pSrc,
252					     PicturePtr pDst,
253					     PictFormatPtr  maskFormat,
254					     INT16      xSrc,
255					     INT16      ySrc,
256					     int	nlists,
257					     GlyphListPtr   lists,
258					     GlyphPtr	*glyphs);
259
260typedef void	(*CompositeRectsProcPtr)    (CARD8	    op,
261					     PicturePtr	    pDst,
262					     xRenderColor   *color,
263					     int	    nRect,
264					     xRectangle	    *rects);
265
266typedef void	(*RasterizeTrapezoidProcPtr)(PicturePtr	    pMask,
267					     xTrapezoid	    *trap,
268					     int	    x_off,
269					     int	    y_off);
270
271typedef void	(*TrapezoidsProcPtr)	    (CARD8	    op,
272					     PicturePtr	    pSrc,
273					     PicturePtr	    pDst,
274					     PictFormatPtr  maskFormat,
275					     INT16	    xSrc,
276					     INT16	    ySrc,
277					     int	    ntrap,
278					     xTrapezoid	    *traps);
279
280typedef void	(*TrianglesProcPtr)	    (CARD8	    op,
281					     PicturePtr	    pSrc,
282					     PicturePtr	    pDst,
283					     PictFormatPtr  maskFormat,
284					     INT16	    xSrc,
285					     INT16	    ySrc,
286					     int	    ntri,
287					     xTriangle	    *tris);
288
289typedef void	(*TriStripProcPtr)	    (CARD8	    op,
290					     PicturePtr	    pSrc,
291					     PicturePtr	    pDst,
292					     PictFormatPtr  maskFormat,
293					     INT16	    xSrc,
294					     INT16	    ySrc,
295					     int	    npoint,
296					     xPointFixed    *points);
297
298typedef void	(*TriFanProcPtr)	    (CARD8	    op,
299					     PicturePtr	    pSrc,
300					     PicturePtr	    pDst,
301					     PictFormatPtr  maskFormat,
302					     INT16	    xSrc,
303					     INT16	    ySrc,
304					     int	    npoint,
305					     xPointFixed    *points);
306
307typedef Bool	(*InitIndexedProcPtr)	    (ScreenPtr	    pScreen,
308					     PictFormatPtr  pFormat);
309
310typedef void	(*CloseIndexedProcPtr)	    (ScreenPtr	    pScreen,
311					     PictFormatPtr  pFormat);
312
313typedef void	(*UpdateIndexedProcPtr)	    (ScreenPtr	    pScreen,
314					     PictFormatPtr  pFormat,
315					     int	    ndef,
316					     xColorItem	    *pdef);
317
318typedef void	(*AddTrapsProcPtr)	    (PicturePtr	    pPicture,
319					     INT16	    xOff,
320					     INT16	    yOff,
321					     int	    ntrap,
322					     xTrap	    *traps);
323
324typedef void	(*AddTrianglesProcPtr)	    (PicturePtr	    pPicture,
325					     INT16	    xOff,
326					     INT16	    yOff,
327					     int	    ntri,
328					     xTriangle	    *tris);
329
330typedef Bool	(*RealizeGlyphProcPtr)	    (ScreenPtr	    pScreen,
331					     GlyphPtr	    glyph);
332
333typedef void	(*UnrealizeGlyphProcPtr)    (ScreenPtr	    pScreen,
334					     GlyphPtr	    glyph);
335
336typedef struct _PictureScreen {
337    PictFormatPtr		formats;
338    PictFormatPtr		fallback;
339    int				nformats;
340
341    CreatePictureProcPtr	CreatePicture;
342    DestroyPictureProcPtr	DestroyPicture;
343    ChangePictureClipProcPtr	ChangePictureClip;
344    DestroyPictureClipProcPtr	DestroyPictureClip;
345
346    ChangePictureProcPtr	ChangePicture;
347    ValidatePictureProcPtr	ValidatePicture;
348
349    CompositeProcPtr		Composite;
350    GlyphsProcPtr		Glyphs; /* unused */
351    CompositeRectsProcPtr	CompositeRects;
352
353    DestroyWindowProcPtr	DestroyWindow;
354    CloseScreenProcPtr		CloseScreen;
355
356    StoreColorsProcPtr		StoreColors;
357
358    InitIndexedProcPtr		InitIndexed;
359    CloseIndexedProcPtr		CloseIndexed;
360    UpdateIndexedProcPtr	UpdateIndexed;
361
362    int				subpixel;
363
364    PictFilterPtr		filters;
365    int				nfilters;
366    PictFilterAliasPtr		filterAliases;
367    int				nfilterAliases;
368
369    /**
370     * Called immediately after a picture's transform is changed through the
371     * SetPictureTransform request.  Not called for source-only pictures.
372     */
373    ChangePictureTransformProcPtr   ChangePictureTransform;
374
375    /**
376     * Called immediately after a picture's transform is changed through the
377     * SetPictureFilter request.  Not called for source-only pictures.
378     */
379    ChangePictureFilterProcPtr	ChangePictureFilter;
380
381    DestroyPictureFilterProcPtr	DestroyPictureFilter;
382
383    TrapezoidsProcPtr		Trapezoids;
384    TrianglesProcPtr		Triangles;
385    TriStripProcPtr		TriStrip;
386    TriFanProcPtr		TriFan;
387
388    RasterizeTrapezoidProcPtr	RasterizeTrapezoid;
389
390    AddTrianglesProcPtr		AddTriangles;
391
392    AddTrapsProcPtr		AddTraps;
393
394    RealizeGlyphProcPtr   	RealizeGlyph;
395    UnrealizeGlyphProcPtr 	UnrealizeGlyph;
396
397} PictureScreenRec, *PictureScreenPtr;
398
399extern _X_EXPORT DevPrivateKeyRec PictureScreenPrivateKeyRec;
400#define PictureScreenPrivateKey (&PictureScreenPrivateKeyRec)
401
402extern _X_EXPORT DevPrivateKeyRec PictureWindowPrivateKeyRec;
403#define	PictureWindowPrivateKey (&PictureWindowPrivateKeyRec)
404
405extern _X_EXPORT RESTYPE	PictureType;
406extern _X_EXPORT RESTYPE	PictFormatType;
407extern _X_EXPORT RESTYPE	GlyphSetType;
408
409#define GetPictureScreen(s) ((PictureScreenPtr)dixLookupPrivate(&(s)->devPrivates, PictureScreenPrivateKey))
410#define GetPictureScreenIfSet(s) (dixPrivateKeyRegistered(PictureScreenPrivateKey) ? GetPictureScreen(s) : NULL)
411#define SetPictureScreen(s,p) dixSetPrivate(&(s)->devPrivates, PictureScreenPrivateKey, p)
412#define GetPictureWindow(w) ((PicturePtr)dixLookupPrivate(&(w)->devPrivates, PictureWindowPrivateKey))
413#define SetPictureWindow(w,p) dixSetPrivate(&(w)->devPrivates, PictureWindowPrivateKey, p)
414
415#define VERIFY_PICTURE(pPicture, pid, client, mode) {\
416    int rc = dixLookupResourceByType((pointer)&(pPicture), pid,\
417	                             PictureType, client, mode);\
418    if (rc != Success)\
419	return rc;\
420}
421
422#define VERIFY_ALPHA(pPicture, pid, client, mode) {\
423    if (pid == None) \
424	pPicture = 0; \
425    else { \
426	VERIFY_PICTURE(pPicture, pid, client, mode); \
427    } \
428} \
429
430extern _X_EXPORT Bool
431PictureDestroyWindow (WindowPtr pWindow);
432
433extern _X_EXPORT Bool
434PictureCloseScreen (int Index, ScreenPtr pScreen);
435
436extern _X_EXPORT void
437PictureStoreColors (ColormapPtr pColormap, int ndef, xColorItem *pdef);
438
439extern _X_EXPORT Bool
440PictureInitIndexedFormat (ScreenPtr pScreen, PictFormatPtr format);
441
442extern _X_EXPORT Bool
443PictureSetSubpixelOrder (ScreenPtr pScreen, int subpixel);
444
445extern _X_EXPORT int
446PictureGetSubpixelOrder (ScreenPtr pScreen);
447
448extern _X_EXPORT PictFormatPtr
449PictureCreateDefaultFormats (ScreenPtr pScreen, int *nformatp);
450
451extern _X_EXPORT PictFormatPtr
452PictureMatchVisual (ScreenPtr pScreen, int depth, VisualPtr pVisual);
453
454extern _X_EXPORT PictFormatPtr
455PictureMatchFormat (ScreenPtr pScreen, int depth, CARD32 format);
456
457extern _X_EXPORT Bool
458PictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats);
459
460extern _X_EXPORT int
461PictureGetFilterId (char *filter, int len, Bool makeit);
462
463extern _X_EXPORT char *
464PictureGetFilterName (int id);
465
466extern _X_EXPORT int
467PictureAddFilter (ScreenPtr			    pScreen,
468		  char				    *filter,
469		  PictFilterValidateParamsProcPtr   ValidateParams,
470		  int				    width,
471		  int				    height);
472
473extern _X_EXPORT Bool
474PictureSetFilterAlias (ScreenPtr pScreen, char *filter, char *alias);
475
476extern _X_EXPORT Bool
477PictureSetDefaultFilters (ScreenPtr pScreen);
478
479extern _X_EXPORT void
480PictureResetFilters (ScreenPtr pScreen);
481
482extern _X_EXPORT PictFilterPtr
483PictureFindFilter (ScreenPtr pScreen, char *name, int len);
484
485extern _X_EXPORT int
486SetPicturePictFilter (PicturePtr pPicture, PictFilterPtr pFilter,
487		      xFixed *params, int nparams);
488
489extern _X_EXPORT int
490SetPictureFilter (PicturePtr pPicture, char *name, int len,
491		  xFixed *params, int nparams);
492
493extern _X_EXPORT Bool
494PictureFinishInit (void);
495
496extern _X_EXPORT void
497SetPictureToDefaults (PicturePtr pPicture);
498
499extern _X_EXPORT PicturePtr
500CreatePicture (Picture		pid,
501	       DrawablePtr	pDrawable,
502	       PictFormatPtr	pFormat,
503	       Mask		mask,
504	       XID		*list,
505	       ClientPtr	client,
506	       int		*error);
507
508extern _X_EXPORT int
509ChangePicture (PicturePtr	pPicture,
510	       Mask		vmask,
511	       XID		*vlist,
512	       DevUnion		*ulist,
513	       ClientPtr	client);
514
515extern _X_EXPORT int
516SetPictureClipRects (PicturePtr	pPicture,
517		     int	xOrigin,
518		     int	yOrigin,
519		     int	nRect,
520		     xRectangle	*rects);
521
522extern _X_EXPORT int
523SetPictureClipRegion (PicturePtr    pPicture,
524		      int	    xOrigin,
525		      int	    yOrigin,
526		      RegionPtr	    pRegion);
527
528extern _X_EXPORT int
529SetPictureTransform (PicturePtr	    pPicture,
530		     PictTransform  *transform);
531
532extern _X_EXPORT void
533CopyPicture (PicturePtr	pSrc,
534	     Mask	mask,
535	     PicturePtr	pDst);
536
537extern _X_EXPORT void
538ValidatePicture(PicturePtr pPicture);
539
540extern _X_EXPORT int
541FreePicture (pointer	pPicture,
542	     XID	pid);
543
544extern _X_EXPORT int
545FreePictFormat (pointer	pPictFormat,
546		XID     pid);
547
548extern _X_EXPORT void
549CompositePicture (CARD8		op,
550		  PicturePtr	pSrc,
551		  PicturePtr	pMask,
552		  PicturePtr	pDst,
553		  INT16		xSrc,
554		  INT16		ySrc,
555		  INT16		xMask,
556		  INT16		yMask,
557		  INT16		xDst,
558		  INT16		yDst,
559		  CARD16	width,
560		  CARD16	height);
561
562extern _X_EXPORT void
563CompositeGlyphs (CARD8		op,
564		 PicturePtr	pSrc,
565		 PicturePtr	pDst,
566		 PictFormatPtr	maskFormat,
567		 INT16		xSrc,
568		 INT16		ySrc,
569		 int		nlist,
570		 GlyphListPtr	lists,
571		 GlyphPtr	*glyphs);
572
573extern _X_EXPORT void
574CompositeRects (CARD8		op,
575		PicturePtr	pDst,
576		xRenderColor	*color,
577		int		nRect,
578		xRectangle      *rects);
579
580extern _X_EXPORT void
581CompositeTrapezoids (CARD8	    op,
582		     PicturePtr	    pSrc,
583		     PicturePtr	    pDst,
584		     PictFormatPtr  maskFormat,
585		     INT16	    xSrc,
586		     INT16	    ySrc,
587		     int	    ntrap,
588		     xTrapezoid	    *traps);
589
590extern _X_EXPORT void
591CompositeTriangles (CARD8	    op,
592		    PicturePtr	    pSrc,
593		    PicturePtr	    pDst,
594		    PictFormatPtr   maskFormat,
595		    INT16	    xSrc,
596		    INT16	    ySrc,
597		    int		    ntriangles,
598		    xTriangle	    *triangles);
599
600extern _X_EXPORT void
601CompositeTriStrip (CARD8	    op,
602		   PicturePtr	    pSrc,
603		   PicturePtr	    pDst,
604		   PictFormatPtr    maskFormat,
605		   INT16	    xSrc,
606		   INT16	    ySrc,
607		   int		    npoints,
608		   xPointFixed	    *points);
609
610extern _X_EXPORT void
611CompositeTriFan (CARD8		op,
612		 PicturePtr	pSrc,
613		 PicturePtr	pDst,
614		 PictFormatPtr	maskFormat,
615		 INT16		xSrc,
616		 INT16		ySrc,
617		 int		npoints,
618		 xPointFixed	*points);
619
620extern _X_EXPORT CARD32
621PictureGradientColor (PictGradientStopPtr stop1,
622		      PictGradientStopPtr stop2,
623		      CARD32	          x);
624
625extern _X_EXPORT void RenderExtensionInit (void);
626
627Bool
628AnimCurInit (ScreenPtr pScreen);
629
630int
631AnimCursorCreate (CursorPtr *cursors, CARD32 *deltas, int ncursor, CursorPtr *ppCursor, ClientPtr client, XID cid);
632
633extern _X_EXPORT void
634AddTraps (PicturePtr	pPicture,
635	  INT16		xOff,
636	  INT16		yOff,
637	  int		ntraps,
638	  xTrap		*traps);
639
640extern _X_EXPORT PicturePtr
641CreateSolidPicture (Picture pid,
642                    xRenderColor *color,
643                    int *error);
644
645extern _X_EXPORT PicturePtr
646CreateLinearGradientPicture (Picture pid,
647                             xPointFixed *p1,
648                             xPointFixed *p2,
649                             int nStops,
650                             xFixed *stops,
651                             xRenderColor *colors,
652                             int *error);
653
654extern _X_EXPORT PicturePtr
655CreateRadialGradientPicture (Picture pid,
656                             xPointFixed *inner,
657                             xPointFixed *outer,
658                             xFixed innerRadius,
659                             xFixed outerRadius,
660                             int nStops,
661                             xFixed *stops,
662                             xRenderColor *colors,
663                             int *error);
664
665extern _X_EXPORT PicturePtr
666CreateConicalGradientPicture (Picture pid,
667                              xPointFixed *center,
668                              xFixed angle,
669                              int nStops,
670                              xFixed *stops,
671                              xRenderColor *colors,
672                              int *error);
673
674#ifdef PANORAMIX
675extern _X_EXPORT void PanoramiXRenderInit (void);
676extern _X_EXPORT void PanoramiXRenderReset (void);
677#endif
678
679/*
680 * matrix.c
681 */
682
683extern _X_EXPORT void
684PictTransform_from_xRenderTransform (PictTransformPtr pict,
685				     xRenderTransform *render);
686
687extern _X_EXPORT void
688xRenderTransform_from_PictTransform (xRenderTransform *render,
689				     PictTransformPtr pict);
690
691extern _X_EXPORT Bool
692PictureTransformPoint (PictTransformPtr transform,
693		       PictVectorPtr	vector);
694
695extern _X_EXPORT Bool
696PictureTransformPoint3d (PictTransformPtr transform,
697                         PictVectorPtr	vector);
698
699#endif /* _PICTURESTR_H_ */
700