2002-11-04 Carl Worth * xrsurface.c (_XrSurfaceDereference): (_XrSurfaceDereferenceDestroy): Fixed bug in reference counting logic. (_XrSurfaceSetDrawableWH): XrSurface now keeps track of its width/height. (_XrSurfaceGetDrawable): (_XrSurfaceGetWidth): (_XrSurfaceGetHeight): (_XrSurfaceGetDepth): New accessor functions. * xrgstate.c (_XrGStateBeginGroup): (_XrGStateEndGroup): Preliminary group support. Not too efficient since it always composite's a full-size picture from child group to parent picture, (even if only a small portion has non-transparent pixels). (_XrGStateShowImageTransform): Fixed show image to use current alpha value. * xrfont.c (_XrFontResolveXftFont): Fixed memory leak (FcPatternDestroy). There's still some meory leaking/left-reachable in Xft/fontconfig that I need to track down. * xr.c (XrPushGroup): (XrPopGroup): Added preliminary group support. I think I like having this in the API as it takes several burdens away from the user, (plus it matches the PDF model). Things to do still: think about the names of these functions. Re-read the PDF semantics to see if we're missing anything. 2002-11-02 Carl Worth * xrsurface.c (_XrSurfaceSetImage): Fixed leak of the image pixmap. 2002-11-01 Carl Worth * xrsurface.c (_XrSurfaceSetImage): Prelimary image support. Really only works with ARGB32. I still need to think about what formats will be supported. (_XrSurfaceSetTransform): Partial support for transformed surfaces. (_XrSurfaceGetXcSurface): Moved all creation/destruction of the XcSurface into this function so that it is only lazily created when needed. * xrgstate.c (_XrGStateSetCurrentPt): gstate now can throw errors when an operation needs current point, but it doesn't exist yet. (_XrGStateShowImage, _XrGStateShowImageTransform): Preliminary image support, (currently it only scales according to the CTM. The matrix passed with the image doesn't do anything yet.) * xrfont.c (_XrFontInitCopy): Removed bogus out of memory errors. * xr.c (XrShowImage, XrShowImageTransform): Added very preliminary image support. Things don't work completely yet and all the interfaces are likely to change. (XrGetStatusString): Added function to map status values to strings. 2002-10-31 Carl Worth * xrfont.c (_XrFontInit): (_XrFontInitCopy): (_XrFontDeinit): (_XrFontSelect): (_XrFontResolveXftFont): Updated by ripping all font support from Xc and just putting a couple of calls to Xft and fontconfig right here in xrfont. * xr.c (XrTextExtents): Added XrTextExtents. 2002-10-29 Carl Worth * xrgstate.c (_XrGStateSelectFont, _XrGStateScaleFont) (_XrGStateTransformFont, _XrGStateShowText): Added basic font support. * xr.c (XrSelectFont, XrScaleFont, XrTransformFont): Added basic font support. 2002-10-28 Carl Worth * xrstate.c (_XrStatePop): Added error case for XrRestore without matching XrSave. * xrsurface.c (_XrSurfaceInit, _XrSurfaceReference) (_XrSurfaceDereference): Added reference counting to XrSurface to patch a memory leak. 2002-10-26 Carl Worth * xrtransform.c (_XrTransformDistance): (_XrTransformPoint): changed to use individual X/Y arguments rather tha an XPointDouble. This improves readability since _XrTransformDistance is now always called with arguments of dx/dy rather than pt.x/pt.y. * xrpath.c (_XrPathMoveTo): (_XrPathLineTo): (_XrPathCurveTo): (_XrPathClosePath): replaced public _XrPathAdd with explicit named functions. This cleans up the implementation since _XrPathAdd, which is unsafe with respect to argument consistency, is now private. Also, since the _XrGState now maintains the current point, I dropped all relative path operators from the XrPath data structures. * xrgstate.c (_XrGStateMoveTo): (_XrGStateLineTo): (_XrGStateCurveTo): (_XrGStateRelMoveTo): (_XrGStateRelLineTo): (_XrGStateRelCurveTo): Replaces _XrGStateAddPathOp and _XrGStateAddUnaryPathOp with explicit named functions for each operator type. This change introduces the current point state into the XrGState structure rather than postponing its calculation until path interpretation. * xrgstate.c (_XrGStateSetDrawable): (_XrGStateSetVisual): (_XrGStateSetFormat): (_XrGStateSetOperator): (_XrGStateSetRGBColor): (_XrGStateSetTolerance): (_XrGStateSetAlpha): (_XrGStateSetFillRule): (_XrGStateSetLineWidth): (_XrGStateSetLineCap): (_XrGStateSetLineJoin): (_XrGStateSetMiterLimit): (_XrGStateTranslate): (_XrGStateScale): (_XrGStateRotate): (_XrGStateConcatMatrix): (_XrGStateNewPath): : Added XrStatus return values to many functions -- just for consistency, these functions can not return errors in any case. * xr.c (XrShowText): Started to ass XrShowText, (still not functional) 2002-10-24 Carl Worth * xr.c (XrSetFillRule): Added support to set fill rule. 2002-10-23 Carl Worth * xrtraps.c (_XrTrapsTessellatePolygon): Fix for polygon with multiple sub-polygons that are disjoint in Y. 2002-07-16 Carl Worth * Xr.h: Renamed xrpicture.c to xrsurface.c as part of the move. Added XrSetFormat, XrSetOperator, XrSetLineCap, XrSetLineJoin, and XrSetMiterLimit, (although the line style drawing code is not all in place yet). * xrpath.c (XrPathLineTo): Changed LineTo semantics to be the same as MoveTo if there was no previous MoveTo. * xrtraps.c: Added tessellation code, (lifted from XRenderCompositeDoublePoly which can now disappear). * xrgstate.c: Changed stroke code to incrementally build a list of trapezoids rather than forming one giant polygonal outline and rendering that. This should be more efficient. (_XrGStateFillPath): Now uses Xr's own tessellation along with XcCompositeTrapezoids. * Xr.h: Moved all of Xr away from Xrender to the new Xc library. * xrsurface.c: Renamed from xrpicture.c, (part of the move from XRender to Xc). * Started keeping a ChangeLog ;-)