diff options
Diffstat (limited to 'common/quicktime_win32/CGContext.h')
| -rw-r--r-- | common/quicktime_win32/CGContext.h | 1460 |
1 files changed, 1460 insertions, 0 deletions
diff --git a/common/quicktime_win32/CGContext.h b/common/quicktime_win32/CGContext.h new file mode 100644 index 0000000..52950cf --- /dev/null +++ b/common/quicktime_win32/CGContext.h @@ -0,0 +1,1460 @@ +/* + File: CGContext.h + + Contains: CoreGraphics context + + Version: QuickTime 7.3 + + Copyright: (c) 2007 (c) 2000-2001 by Apple Computer, Inc., all rights reserved. + + Bugs?: For bug reports, consult the following page on + the World Wide Web: + + http://developer.apple.com/bugreporter/ + +*/ +#ifndef CGCONTEXT_H_ +#define CGCONTEXT_H_ + +#ifndef __CGBASE__ +#include <CGBase.h> +#endif + +#ifndef __CGAFFINETRANSFORM__ +#include <CGAffineTransform.h> +#endif + +#ifndef __CGCOLORSPACE__ +#include <CGColorSpace.h> +#endif + +#ifndef __CGFONT__ +#include <CGFont.h> +#endif + +#ifndef __CGIMAGE__ +#include <CGImage.h> +#endif + +#ifndef __CGPDFDOCUMENT__ +#include <CGPDFDocument.h> +#endif + + + + +#if PRAGMA_ONCE +#pragma once +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#if PRAGMA_IMPORT +#pragma import on +#endif + +#if PRAGMA_ENUM_ALWAYSINT + #if defined(__fourbyteints__) && !__fourbyteints__ + #define __CGCONTEXT__RESTORE_TWOBYTEINTS + #pragma fourbyteints on + #endif + #pragma enumsalwaysint on +#elif PRAGMA_ENUM_OPTIONS + #pragma option enum=int +#elif PRAGMA_ENUM_PACK + #if __option(pack_enums) + #define __CGCONTEXT__RESTORE_PACKED_ENUMS + #pragma options(!pack_enums) + #endif +#endif + +typedef struct CGContext* CGContextRef; +typedef struct CGPattern* CGPatternRef; +/* Line join styles. */ +enum CGLineJoin { + kCGLineJoinMiter = 0, + kCGLineJoinRound = 1, + kCGLineJoinBevel = 2 +}; +typedef enum CGLineJoin CGLineJoin; + +/* Line cap styles. */ +enum CGLineCap { + kCGLineCapButt = 0, + kCGLineCapRound = 1, + kCGLineCapSquare = 2 +}; +typedef enum CGLineCap CGLineCap; + +/* Drawing modes for paths. */ +enum CGPathDrawingMode { + kCGPathFill = 0, + kCGPathEOFill = 1, + kCGPathStroke = 2, + kCGPathFillStroke = 3, + kCGPathEOFillStroke = 4 +}; +typedef enum CGPathDrawingMode CGPathDrawingMode; + +/* Drawing modes for text. */ +enum CGTextDrawingMode { + kCGTextFill = 0, + kCGTextStroke = 1, + kCGTextFillStroke = 2, + kCGTextInvisible = 3, + kCGTextFillClip = 4, + kCGTextStrokeClip = 5, + kCGTextFillStrokeClip = 6, + kCGTextClip = 7 +}; +typedef enum CGTextDrawingMode CGTextDrawingMode; + +/* Text encodings. */ +enum CGTextEncoding { + kCGEncodingFontSpecific = 0, + kCGEncodingMacRoman = 1 +}; +typedef enum CGTextEncoding CGTextEncoding; + +enum CGInterpolationQuality { + kCGInterpolationDefault = 0, /* Let the context decide. */ + kCGInterpolationNone = 1, /* Never interpolate. */ + kCGInterpolationLow = 2, /* Fast, low quality. */ + kCGInterpolationHigh = 3 /* Slow, high quality. */ +}; +typedef enum CGInterpolationQuality CGInterpolationQuality; + + +/** Graphics state functions. **/ +/* Push a copy of the current graphics state onto the graphics state + * stack. Note that the path is not considered part of the gstate, and is + * not saved. */ +/* + * CGContextSaveGState() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSaveGState(CGContextRef ctx); + + +/* Restore the current graphics state from the one on the top of the + * graphics state stack, popping the graphics state stack in the + * process. */ +/* + * CGContextRestoreGState() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextRestoreGState(CGContextRef ctx); + + +/** Coordinate space transformations. **/ +/* Scale the current graphics state's transformation matrix (the CTM) by + * `(sx, sy)'. */ +/* + * CGContextScaleCTM() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextScaleCTM( + CGContextRef ctx, + float sx, + float sy); + + +/* Translate the current graphics state's transformation matrix (the CTM) + * by `(tx, ty)'. */ +/* + * CGContextTranslateCTM() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextTranslateCTM( + CGContextRef ctx, + float tx, + float ty); + + +/* Rotate the current graphics state's transformation matrix (the CTM) by + * `angle' radians. */ +/* + * CGContextRotateCTM() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextRotateCTM( + CGContextRef ctx, + float angle); + + +/* Concatenate the current graphics state's transformation matrix (the CTM) + * with the affine transform `transform'. */ +/* + * CGContextConcatCTM() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextConcatCTM( + CGContextRef ctx, + CGAffineTransform transform); + + +/* Return the current graphics state's transformation matrix. */ +/* + * CGContextGetCTM() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGAffineTransform ) +CGContextGetCTM(CGContextRef ctx); + + +/** Drawing attribute functions. **/ +/* Set the line width in the current graphics state to `width'. */ +/* + * CGContextSetLineWidth() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetLineWidth( + CGContextRef ctx, + float width); + + +/* Set the line cap in the current graphics state to `cap'. */ +/* + * CGContextSetLineCap() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetLineCap( + CGContextRef ctx, + CGLineCap cap); + + +/* Set the line join in the current graphics state to `join'. */ +/* + * CGContextSetLineJoin() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetLineJoin( + CGContextRef ctx, + CGLineJoin join); + + +/* Set the miter limit in the current graphics state to `limit'. */ +/* + * CGContextSetMiterLimit() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetMiterLimit( + CGContextRef ctx, + float limit); + + +/* Set the line dash patttern in the current graphics state. */ +/* + * CGContextSetLineDash() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetLineDash( + CGContextRef ctx, + float phase, + const float lengths[], + size_t count); + + +/* Set the path flatness parameter in the current graphics state to + * `flatness'. */ +/* + * CGContextSetFlatness() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetFlatness( + CGContextRef ctx, + float flatness); + + +/* Set the alpha value in the current graphics state to `alpha'. */ +/* + * CGContextSetAlpha() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetAlpha( + CGContextRef ctx, + float alpha); + + +/** Path construction functions. **/ +/* Note that a context has a single path in use at any time: a path is not + * part of the graphics state. */ +/* Begin a new path. The old path is discarded. */ +/* + * CGContextBeginPath() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextBeginPath(CGContextRef ctx); + + +/* Start a new subpath at point `(x, y)' in the context's path. */ +/* + * CGContextMoveToPoint() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextMoveToPoint( + CGContextRef ctx, + float x, + float y); + + +/* Append a straight line segment from the current point to `(x, y)'. */ +/* + * CGContextAddLineToPoint() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextAddLineToPoint( + CGContextRef ctx, + float x, + float y); + + +/* Append a cubic Bezier curve from the current point to `(x,y)', with + * control points `(cp1x, cp1y)' and `(cp2x, cp2y)'. */ +/* + * CGContextAddCurveToPoint() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextAddCurveToPoint( + CGContextRef ctx, + float cp1x, + float cp1y, + float cp2x, + float cp2y, + float x, + float y); + + +/* Append a quadratic curve from the current point to `(x, y)', with + * control point `(cpx, cpy)'. */ +/* + * CGContextAddQuadCurveToPoint() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextAddQuadCurveToPoint( + CGContextRef ctx, + float cpx, + float cpy, + float x, + float y); + + +/* Close the current subpath of the context's path. */ +/* + * CGContextClosePath() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextClosePath(CGContextRef ctx); + + +/** Path construction convenience functions. **/ +/* Add a single rect to the context's path. */ +/* + * CGContextAddRect() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextAddRect( + CGContextRef ctx, + CGRect rect); + + +/* Add a set of rects to the context's path. */ +/* + * CGContextAddRects() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextAddRects( + CGContextRef ctx, + const CGRect rects[], + size_t count); + + +/* Add a set of lines to the context's path. */ +/* + * CGContextAddLines() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextAddLines( + CGContextRef ctx, + const CGPoint points[], + size_t count); + + +/* Add an arc of a circle to the context's path, possibly preceded by a + * straight line segment. `(x, y)' is the center of the arc; `radius' is + * its radius; `startAngle' is the angle to the first endpoint of the arc; + * `endAngle' is the angle to the second endpoint of the arc; and + * `clockwise' is 1 if the arc is to be drawn clockwise, 0 otherwise. + * `startAngle' and `endAngle' are measured in radians. */ +/* + * CGContextAddArc() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextAddArc( + CGContextRef ctx, + float x, + float y, + float radius, + float startAngle, + float endAngle, + int clockwise); + + +/* Add an arc of a circle to the context's path, possibly preceded by a + * straight line segment. `radius' is the radius of the arc. The arc is + * tangent to the line from the current point to `(x1, y1)', and the line + * from `(x1, y1)' to `(x2, y2)'. */ +/* + * CGContextAddArcToPoint() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextAddArcToPoint( + CGContextRef ctx, + float x1, + float y1, + float x2, + float y2, + float radius); + + +/** Path information functions. **/ +/* Return 1 if the context's path contains no elements, 0 otherwise. */ +/* + * CGContextIsPathEmpty() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( int ) +CGContextIsPathEmpty(CGContextRef ctx); + + +/* Return the current point of the current subpath of the context's + * path. */ +/* + * CGContextGetPathCurrentPoint() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGPoint ) +CGContextGetPathCurrentPoint(CGContextRef ctx); + + +/* Return the bounding box of the context's path. The bounding box is the + * smallest rectangle completely enclosing all points in the path, + * including control points for Bezier and quadratic curves. */ +/* + * CGContextGetPathBoundingBox() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGRect ) +CGContextGetPathBoundingBox(CGContextRef ctx); + + +/** Path drawing functions. **/ +/* Draw the context's path using drawing mode `mode'. */ +/* + * CGContextDrawPath() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextDrawPath( + CGContextRef ctx, + CGPathDrawingMode mode); + + +/** Path drawing convenience functions. **/ +/* Fill the context's path using the winding-number fill rule. Any open + * subpath of the path is implicitly closed. */ +/* + * CGContextFillPath() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextFillPath(CGContextRef ctx); + + +/* Fill the context's path using the even-odd fill rule. Any open subpath + * of the path is implicitly closed. */ +/* + * CGContextEOFillPath() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextEOFillPath(CGContextRef ctx); + + +/* Stroke the context's path. */ +/* + * CGContextStrokePath() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextStrokePath(CGContextRef ctx); + + +/* Fill `rect' with the current fill color. */ +/* + * CGContextFillRect() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextFillRect( + CGContextRef ctx, + CGRect rect); + + +/* Fill `rects', an array of `count' CGRects, with the current fill + * color. */ +/* + * CGContextFillRects() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextFillRects( + CGContextRef ctx, + const CGRect rects[], + size_t count); + + +/* Stroke `rect' with the current stroke color and the current linewidth. */ +/* + * CGContextStrokeRect() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextStrokeRect( + CGContextRef ctx, + CGRect rect); + + +/* Stroke `rect' with the current stroke color, using `width' as the the + * line width. */ +/* + * CGContextStrokeRectWithWidth() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextStrokeRectWithWidth( + CGContextRef ctx, + CGRect rect, + float width); + + +/* Clear `rect' (that is, set the region within the rect to + * transparent). */ +/* + * CGContextClearRect() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextClearRect( + CGContextRef c, + CGRect rect); + + +/** Clipping functions. **/ +/* Intersect the context's path with the current clip path and use the + * resulting path as the clip path for subsequent rendering operations. + * Use the winding-number fill rule for deciding what's inside the path. */ +/* + * CGContextClip() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextClip(CGContextRef ctx); + + +/* Intersect the context's path with the current clip path and use the + * resulting path as the clip path for subsequent rendering operations. + * Use the even-odd fill rule for deciding what's inside the path. */ +/* + * CGContextEOClip() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextEOClip(CGContextRef ctx); + + +/** Clipping convenience functions. **/ +/* Intersect the current clipping path with `rect'. Note that this + * function resets the context's path to the empty path. */ +/* + * CGContextClipToRect() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextClipToRect( + CGContextRef ctx, + CGRect rect); + + +/* Intersect the current clipping path with the clipping region formed by + * creating a path consisting of all rects in `rects'. Note that this + * function resets the context's path to the empty path. */ +/* + * CGContextClipToRects() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextClipToRects( + CGContextRef ctx, + const CGRect rects[], + size_t count); + + +/** Colorspace functions. **/ +/* Set the components of the current fill color in the context `ctx' to the + * values specifed by `components'. The number of elements in `components' + * must be one greater than the number of components in the current fill + * colorspace (N color components + 1 alpha component). The current fill + * colorspace must not be a pattern colorspace. */ +/* + * CGContextSetFillColorSpace() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetFillColorSpace( + CGContextRef ctx, + CGColorSpaceRef colorspace); + + +/* Set the components of the current fill color in the context `ctx' to the + * values specifed by `components'. The number of elements in `components' + * must be one greater than the number of components in the current fill + * colorspace (N color components + 1 alpha component). The current fill + * colorspace must not be a pattern colorspace. */ +/* + * CGContextSetStrokeColorSpace() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetStrokeColorSpace( + CGContextRef ctx, + CGColorSpaceRef colorspace); + + +/** Color functions. **/ +/* Set the components of the current fill color in the context `c' to the + * values specifed by `components'. The number of elements in `components' + * must be one greater than the number of components in the current fill + * colorspace (N color components + 1 alpha component). The current fill + * colorspace must not be a pattern colorspace. */ +/* + * CGContextSetFillColor() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetFillColor( + CGContextRef c, + const float components[]); + + +/* Set the components of the current stroke color in the context `c' to the + * values specifed by `components'. The number of elements in `components' + * must be one greater than the number of components in the current stroke + * colorspace (N color components + 1 alpha component). The current stroke + * colorspace must not be a pattern colorspace. */ +/* + * CGContextSetStrokeColor() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetStrokeColor( + CGContextRef c, + const float components[]); + + +/** Pattern functions. **/ +/* Set the components of the current fill color in the context `c' to the + * values specifed by `components', and set the current fill pattern to + * `pattern'. The number of elements in `components' must be one greater + * than the number of components in the current fill colorspace (N color + * components + 1 alpha component). The current fill colorspace must be a + * pattern colorspace. */ +/* + * CGContextSetFillPattern() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.1 and later + */ +EXTERN_API_C( void ) +CGContextSetFillPattern( + CGContextRef c, + CGPatternRef pattern, + const float components[]); + + +/* Set the components of the current stroke color in the context `c' to the + * values specifed by `components', and set the current stroke pattern to + * `pattern'. The number of elements in `components' must be one greater + * than the number of components in the current stroke colorspace (N color + * components + 1 alpha component). The current stroke colorspace must be + * a pattern colorspace. */ +/* + * CGContextSetStrokePattern() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.1 and later + */ +EXTERN_API_C( void ) +CGContextSetStrokePattern( + CGContextRef c, + CGPatternRef pattern, + const float components[]); + + + +/** Color convenience functions. **/ +/* Set the current fill colorspace in the context `c' to `DeviceGray' and + * set the components of the current fill color to `(gray, alpha)'. */ +/* + * CGContextSetGrayFillColor() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetGrayFillColor( + CGContextRef ctx, + float gray, + float alpha); + + +/* Set the current stroke colorspace in the context `c' to `DeviceGray' and + * set the components of the current stroke color to `(gray, alpha)'. */ +/* + * CGContextSetGrayStrokeColor() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetGrayStrokeColor( + CGContextRef ctx, + float gray, + float alpha); + + +/* Set the current fill colorspace in the context `c' to `DeviceRGB' and + * set the components of the current fill color to `(red, green, blue, + * alpha)'. */ +/* + * CGContextSetRGBFillColor() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetRGBFillColor( + CGContextRef ctx, + float red, + float green, + float blue, + float alpha); + + +/* Set the current stroke colorspace in the context `c' to `DeviceRGB' and + * set the components of the current stroke color to `(red, green, blue, + * alpha)'. */ +/* + * CGContextSetRGBStrokeColor() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetRGBStrokeColor( + CGContextRef ctx, + float red, + float green, + float blue, + float alpha); + + +/* Set the current fill colorspace in the context `c' to `DeviceCMYK' and + * set the components of the current fill color to `(cyan, magenta, yellow, + * black, alpha)'. */ +/* + * CGContextSetCMYKFillColor() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetCMYKFillColor( + CGContextRef ctx, + float cyan, + float magenta, + float yellow, + float black, + float alpha); + + +/* Set the current stroke colorspace in the context `c' to `DeviceCMYK' and + * set the components of the current stroke color to `(cyan, magenta, + * yellow, black, alpha)'. */ +/* + * CGContextSetCMYKStrokeColor() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetCMYKStrokeColor( + CGContextRef ctx, + float cyan, + float magenta, + float yellow, + float black, + float alpha); + + +/** Rendering intent. **/ +/* Set the rendering intent in the graphics state to `intent'. */ +/* + * CGContextSetRenderingIntent() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetRenderingIntent( + CGContextRef c, + CGColorRenderingIntent intent); + + +/** Image functions. **/ +/* Draw `image' in the rectangular area specified by `rect'. The image is + * scaled, if necessary, to fit into `rect'. */ +/* + * CGContextDrawImage() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextDrawImage( + CGContextRef ctx, + CGRect rect, + CGImageRef image); + + +/* Return the interpolation quality for image rendering of the context `c'. + * The interpolation quality is a gstate-parameter which controls the level + * of interpolation performed when an image is interpolated (for example, + * when scaling the image). Note that it is merely a hint to the context: + * not all contexts support all interpolation quality levels. */ +/* + * CGContextGetInterpolationQuality() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.1 and later + */ +EXTERN_API_C( CGInterpolationQuality ) +CGContextGetInterpolationQuality(CGContextRef c); + + +/* Set the interpolation quality of the context `c' to `quality'. */ +/* + * CGContextSetInterpolationQuality() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.1 and later + */ +EXTERN_API_C( void ) +CGContextSetInterpolationQuality( + CGContextRef c, + CGInterpolationQuality quality); + + + +/** Text functions. **/ +/* Set the current character spacing in the context `ctx' to `spacing'. The + * character spacing is added to the displacement between the origin of one + * character and the origin of the next. */ +/* + * CGContextSetCharacterSpacing() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetCharacterSpacing( + CGContextRef ctx, + float spacing); + + +/* Set the user-space point at which text will be drawn to (x,y). */ +/* + * CGContextSetTextPosition() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetTextPosition( + CGContextRef ctx, + float x, + float y); + + +/* Return the current user-space point at which text will be drawn to (x,y). */ +/* + * CGContextGetTextPosition() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGPoint ) +CGContextGetTextPosition(CGContextRef ctx); + + +/* Set the text matrix to `transform'. */ +/* + * CGContextSetTextMatrix() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetTextMatrix( + CGContextRef ctx, + CGAffineTransform transform); + + +/* Return the text matrix. */ +/* + * CGContextGetTextMatrix() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGAffineTransform ) +CGContextGetTextMatrix(CGContextRef ctx); + + +/* Set the text drawing mode to `mode'. */ +/* + * CGContextSetTextDrawingMode() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetTextDrawingMode( + CGContextRef ctx, + CGTextDrawingMode mode); + + +/* Set the current font to `font'. */ +/* + * CGContextSetFont() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetFont( + CGContextRef ctx, + CGFontRef font); + + +/* Set the current font size to `size'. */ +/* + * CGContextSetFontSize() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetFontSize( + CGContextRef ctx, + float size); + + + +/* Attempts to find the font named `name'. If successful, scales it to + * `size' units in user space. `textEncoding' specifies how to translate + * from bytes to glyphs. */ +/* + * CGContextSelectFont() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSelectFont( + CGContextRef ctx, + const char * name, + float size, + CGTextEncoding textEncoding); + + +/* Draw `string', a string of `length' bytes, at the point specified by the + * current text matrix. Each byte of the string is mapped through the + * encoding vector of the current font to obtain the glyph to display. */ +/* + * CGContextShowText() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextShowText( + CGContextRef ctx, + const char * cstring, + size_t length); + + +/* Draw the glyphs pointed to by `g', an array of `count' glyphs, at the + * point specified by the current text matrix. */ +/* + * CGContextShowGlyphs() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextShowGlyphs( + CGContextRef ctx, + const CGGlyph g[], + size_t count); + + + +/** Text convenience functions. **/ +/* Draw `string', a string of `length' bytes, at the point `(x, y)', + * specified in user space. Each byte of the string is mapped through the + * encoding vector of the current font to obtain the glyph to display. */ +/* + * CGContextShowTextAtPoint() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextShowTextAtPoint( + CGContextRef ctx, + float x, + float y, + const char * cstring, + size_t length); + + +/* Display the glyphs pointed to by `g', an array of `count' glyph ids, at + * the point `(x, y)', specified in user space. */ +/* + * CGContextShowGlyphsAtPoint() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextShowGlyphsAtPoint( + CGContextRef ctx, + float x, + float y, + const CGGlyph g[], + size_t count); + + + +/** PDF document functions. **/ +/* Draw `page' in `document' in the rectangular area specified by `rect'. + * The media box of the page is scaled, if necessary, to fit into + * `rect'. */ +/* + * CGContextDrawPDFDocument() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextDrawPDFDocument( + CGContextRef ctx, + CGRect rect, + CGPDFDocumentRef document, + int page); + + +/** Page functions. **/ +/* Begin a new page. */ +/* + * CGContextBeginPage() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextBeginPage( + CGContextRef ctx, + const CGRect * mediaBox); + + +/* End the current page. */ +/* + * CGContextEndPage() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextEndPage(CGContextRef ctx); + + +/** Context functions. **/ +/* Increment the retain count of `ctx' and return it. All contexts are + * created with an initial retain count of 1. */ +/* + * CGContextRetain() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( CGContextRef ) +CGContextRetain(CGContextRef ctx); + + +/* Decrement the retain count of `ctx'. If the retain count reaches 0, + * then free `ctx' and any associated resources. */ +/* + * CGContextRelease() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextRelease(CGContextRef ctx); + + +/* Flush all drawing to the destination. */ +/* + * CGContextFlush() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextFlush(CGContextRef ctx); + + +/* Synchronized drawing. */ +/* + * CGContextSynchronize() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSynchronize(CGContextRef ctx); + + +/** Antialiasing functions. **/ +/* Turn off antialiasing if `shouldAntialias' is zero; turn it on + * otherwise. This parameter is part of the graphics state. */ +/* + * CGContextSetShouldAntialias() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +CGContextSetShouldAntialias( + CGContextRef ctx, + int shouldAntialias); + + + +#if PRAGMA_ENUM_ALWAYSINT + #pragma enumsalwaysint reset + #ifdef __CGCONTEXT__RESTORE_TWOBYTEINTS + #pragma fourbyteints off + #endif +#elif PRAGMA_ENUM_OPTIONS + #pragma option enum=reset +#elif defined(__CGCONTEXT__RESTORE_PACKED_ENUMS) + #pragma options(pack_enums) +#endif + +#ifdef PRAGMA_IMPORT_OFF +#pragma import off +#elif PRAGMA_IMPORT +#pragma import reset +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* CGCONTEXT_H_ */ + |