You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1460 lines
36 KiB
1460 lines
36 KiB
/* |
|
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_ */ |
|
|
|
|