forked from mpc-hc/mpc-hc
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCGPattern.h
More file actions
186 lines (153 loc) · 4.86 KB
/
CGPattern.h
File metadata and controls
186 lines (153 loc) · 4.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
/*
File: CGPattern.h
Contains: CoreGraphics base types
Version: QuickTime 7.3
Copyright: (c) 2007 (c) 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 CGPATTERN_H_
#define CGPATTERN_H_
#ifndef __CGBASE__
#include "CGBase.h"
#endif
#ifndef __CGCONTEXT__
#include "CGContext.h"
#endif
/* kCGPatternTilingNoDistortion: The pattern cell is not distorted when
* painted, however the spacing between pattern cells may vary by as much
* as 1 device pixel.
*
* kCGPatternTilingConstantSpacingMinimalDistortion: Pattern cells are
* spaced consistently, however the pattern cell may be distorted by as
* much as 1 device pixel when the pattern is painted.
*
* kCGPatternTilingConstantSpacing: Pattern cells are spaced consistently
* as with kCGPatternTilingConstantSpacingMinimalDistortion, however the
* pattern cell may be distorted additionally to permit a more efficient
* implementation. */
#if PRAGMA_ONCE
#pragma once
#endif
#ifdef __cplusplus
extern "C" {
#endif
#if PRAGMA_IMPORT
#pragma import on
#endif
#if PRAGMA_STRUCT_ALIGN
#pragma options align=mac68k
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(push, 2)
#elif PRAGMA_STRUCT_PACK
#pragma pack(2)
#endif
#if PRAGMA_ENUM_ALWAYSINT
#if defined(__fourbyteints__) && !__fourbyteints__
#define __CGPATTERN__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 __CGPATTERN__RESTORE_PACKED_ENUMS
#pragma options(!pack_enums)
#endif
#endif
enum CGPatternTiling {
kCGPatternTilingNoDistortion = 0,
kCGPatternTilingConstantSpacingMinimalDistortion = 1,
kCGPatternTilingConstantSpacing = 2
};
typedef enum CGPatternTiling CGPatternTiling;
/* The drawing of the pattern is delegated to the callbacks. The callbacks
* may be called one or many times to draw the pattern.
*
* `version' is the version number of the structure passed in as a
* parameter to the CGPattern creation functions. The structure defined
* below is version 0.
*
* `drawPattern' should draw the pattern in the context `c'. `info' is the
* parameter originally passed to the CGPattern creation functions.
*
* `releaseInfo' is called when the pattern is deallocated. */
typedef CALLBACK_API_C( void , CGDrawPatternProcPtr )(void *info, CGContextRef c);
typedef CALLBACK_API_C( void , CGReleaseInfoProcPtr )(void * info);
struct CGPatternCallbacks {
unsigned int version;
CGDrawPatternProcPtr drawPattern;
CGReleaseInfoProcPtr releaseInfo;
};
typedef struct CGPatternCallbacks CGPatternCallbacks;
/* Create a pattern. */
/*
* CGPatternCreate()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.1 and later
*/
EXTERN_API_C( CGPatternRef )
CGPatternCreate(
void * info,
CGRect bounds,
CGAffineTransform matrix,
float xStep,
float yStep,
CGPatternTiling tiling,
int isColored,
const CGPatternCallbacks * callbacks);
/* Increment the retain count of `pattern' and return it. All patterns are
* created with an initial retain count of 1. */
/*
* CGPatternRetain()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.1 and later
*/
EXTERN_API_C( CGPatternRef )
CGPatternRetain(CGPatternRef pattern);
/* Decrement the retain count of `pattern'. If the retain count reaches 0,
* then free it and release any associated resources. */
/*
* CGPatternRelease()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: in version 10.1 and later
*/
EXTERN_API_C( void )
CGPatternRelease(CGPatternRef pattern);
#if PRAGMA_ENUM_ALWAYSINT
#pragma enumsalwaysint reset
#ifdef __CGPATTERN__RESTORE_TWOBYTEINTS
#pragma fourbyteints off
#endif
#elif PRAGMA_ENUM_OPTIONS
#pragma option enum=reset
#elif defined(__CGPATTERN__RESTORE_PACKED_ENUMS)
#pragma options(pack_enums)
#endif
#if PRAGMA_STRUCT_ALIGN
#pragma options align=reset
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(pop)
#elif PRAGMA_STRUCT_PACK
#pragma pack()
#endif
#ifdef PRAGMA_IMPORT_OFF
#pragma import off
#elif PRAGMA_IMPORT
#pragma import reset
#endif
#ifdef __cplusplus
}
#endif
#endif /* CGPATTERN_H_ */