CAAtom refers to a string for identification in QuartzCore. As of 3.1, there are over 300 internal atoms.
Converting atoms to and from strings
Signature | NSString* CAAtomGetString(uint32_t atomicValue); |
---|---|
Available in | 2.0 – |
Signature | uint32_t CAInternAtom(NSString* atommicString); |
---|---|
Available in | 2.0 – |
There is only 2 exported C function for CAAtom, CAAtomGetString() and CAInternAtom(), which converts between an integer and its corresponding string value. Most internal code in QuartzCore are identified using atoms. For example, a portion of disassembled code may read:
-[CAGradientLayer setLocations:]: ; +00000 0008d9cc stmdb sp!,{r7,lr} +00004 0008d9d0 add r7,sp,#0x0 +00008 0008d9d4 mov r1,#0xad +0000c 0008d9d8 bl CALayer_setter_kCAValueCopiedPointer +00010 0008d9dc ldmia sp!,{r7,pc} ; return
here, the magic number 0xAD is in fact an atom, which is unsurprisingly the value "locations":
cy# CAAtomGetString(0xad)
"locations"
List of Predefined Atoms
Atom | String | |
---|---|---|
0 | 0x00 | <nil> |
1 | 0x01 | DODFunction |
2 | 0x02 | ROIFunction |
3 | 0x03 | actions |
4 | 0x04 | additive |
5 | 0x05 | alignedCube |
6 | 0x06 | alignedFlip |
7 | 0x07 | alignmentMode |
8 | 0x08 | alphaRange |
9 | 0x09 | alphaSpeed |
10 | 0x0a | anchorPoint |
11 | 0x0b | anchorPointZ |
12 | 0x0c | angularDrag |
13 | 0x0d | animationDelegate |
14 | 0x0e | animationDuration |
15 | 0x0f | animationTimingFunction |
16 | 0x10 | animations |
17 | 0x11 | appliesX |
18 | 0x12 | appliesY |
19 | 0x13 | appliesScale |
20 | 0x14 | appliesRotation |
21 | 0x15 | array |
22 | 0x16 | attachmentPointA |
23 | 0x17 | attachmentPointB |
24 | 0x18 | autoresizingMask |
25 | 0x19 | autoreverses |
26 | 0x1a | backToFront |
27 | 0x1b | backgroundColor |
28 | 0x1c | backgroundFilters |
29 | 0x1d | beginTime |
30 | 0x1e | behaviors |
31 | 0x1f | birthRate |
32 | 0x20 | blueRange |
33 | 0x21 | blueSpeed |
34 | 0x22 | borderColor |
35 | 0x23 | borderWidth |
36 | 0x24 | both |
37 | 0x25 | bottom |
38 | 0x26 | bottomLeft |
39 | 0x27 | bottomRight |
40 | 0x28 | bounds |
41 | 0x29 | byValue |
42 | 0x2a | cachesInputImage |
43 | 0x2b | calculationMode |
44 | 0x2c | canDrawConcurrently |
45 | 0x2d | center |
46 | 0x2e | cheapAdditive |
47 | 0x2f | circle |
48 | 0x30 | clear |
49 | 0x31 | clearsContext |
50 | 0x32 | coefficientOfRestitution |
51 | 0x33 | collisionInterval |
52 | 0x34 | color |
53 | 0x35 | colors |
54 | 0x36 | commitTime |
55 | 0x37 | completionBlock |
56 | 0x38 | compositingFilter |
57 | 0x39 | constraints |
58 | 0x3a | contents |
59 | 0x3b | contentsCenter |
60 | 0x3c | contentsGravity |
61 | 0x3d | contentsRect |
62 | 0x3e | contentsTransform |
63 | 0x3f | contextId |
64 | 0x40 | copy |
65 | 0x41 | cornerRadius |
66 | 0x42 | cube |
67 | 0x43 | cuboid |
68 | 0x44 | cumulative |
69 | 0x45 | damping |
70 | 0x46 | delegate |
71 | 0x47 | destAtop |
72 | 0x48 | destIn |
73 | 0x49 | destOut |
74 | 0x4a | destOver |
75 | 0x4b | disableActions |
76 | 0x4c | discrete |
77 | 0x4d | displayList |
78 | 0x4e | distortion |
79 | 0x4f | doubleSided |
80 | 0x50 | down |
81 | 0x51 | drag |
82 | 0x52 | drawableProperties |
83 | 0x53 | duration |
84 | 0x54 | edgeAntialiasingMask |
85 | 0x55 | emissionLatitude |
86 | 0x56 | emissionLongitude |
87 | 0x57 | emissionRange |
88 | 0x58 | emitterCells |
89 | 0x59 | emitterDepth |
90 | 0x5a | emitterMode |
91 | 0x5b | emitterPosition |
92 | 0x5c | emitterShape |
93 | 0x5d | emitterSize |
94 | 0x5e | emitterZPosition |
95 | 0x5f | enabled |
96 | 0x60 | end |
97 | 0x61 | endAngle |
98 | 0x62 | endPoint |
99 | 0x63 | endProgress |
100 | 0x64 | fade |
101 | 0x65 | fillColor |
102 | 0x66 | fillMode |
103 | 0x67 | fillRule |
104 | 0x68 | filter |
105 | 0x69 | filters |
106 | 0x6a | flattened |
107 | 0x6b | flip |
108 | 0x6c | floating |
109 | 0x6d | fog |
110 | 0x6e | font |
111 | 0x6f | fontSize |
112 | 0x70 | forceFields |
113 | 0x71 | foregroundColor |
114 | 0x72 | frameInterval |
115 | 0x73 | fromBottom |
116 | 0x74 | fromLeft |
117 | 0x75 | fromRight |
118 | 0x76 | fromTop |
119 | 0x77 | fromValue |
120 | 0x78 | function |
121 | 0x79 | gaussianBlur |
122 | 0x7a | geometryFlipped |
123 | 0x7b | greenRange |
124 | 0x7c | greenSpeed |
125 | 0x7d | height |
126 | 0x7e | hidden |
127 | 0x7f | horizontal |
128 | 0x80 | horizontally |
129 | 0x81 | instanceAlphaOffset |
130 | 0x82 | instanceBlueOffset |
131 | 0x83 | instanceColor |
132 | 0x84 | instanceCount |
133 | 0x85 | instanceDelay |
134 | 0x86 | instanceGreenOffset |
135 | 0x87 | instanceRedOffset |
136 | 0x88 | instanceTransform |
137 | 0x89 | inputAmount |
138 | 0x8a | inputAngle |
139 | 0x8b | inputBias |
140 | 0x8c | inputClip |
141 | 0x8d | inputColor |
142 | 0x8e | inputColor0 |
143 | 0x8f | inputColor1 |
144 | 0x90 | inputDensity |
145 | 0x91 | inputPoint0 |
146 | 0x92 | inputPoint1 |
147 | 0x93 | inputPosition |
148 | 0x94 | inputRadius |
149 | 0x95 | inputScale |
150 | 0x96 | inputSize |
151 | 0x97 | inputTime |
152 | 0x98 | justification |
153 | 0x99 | justified |
154 | 0x9a | key |
155 | 0x9b | keyPath |
156 | 0x9c | keyTimes |
157 | 0x9d | lanczos |
158 | 0x9e | layoutFlags |
159 | 0x9f | layoutManager |
160 | 0xa0 | left |
161 | 0xa1 | levelsOfDetail |
162 | 0xa2 | levelsOfDetailBias |
163 | 0xa3 | lifetime |
164 | 0xa4 | lifetimeRange |
165 | 0xa5 | lighting |
166 | 0xa6 | line |
167 | 0xa7 | lineCap |
168 | 0xa8 | lineDashPattern |
169 | 0xa9 | lineDashPhase |
170 | 0xaa | lineJoin |
171 | 0xab | lineWidth |
172 | 0xac | linear |
173 | 0xad | locations |
174 | 0xae | magnificationFilter |
175 | 0xaf | margin |
176 | 0xb0 | mask |
177 | 0xb1 | masksToBounds |
178 | 0xb2 | mass |
179 | 0xb3 | middle |
180 | 0xb4 | minificationFilter |
181 | 0xb5 | minificationFilterBias |
182 | 0xb6 | minimumTimeStep |
183 | 0xb7 | miterLimit |
184 | 0xb8 | momentOfInertia |
185 | 0xb9 | moveIn |
186 | 0xba | multiply |
187 | 0xbb | multiplyColor |
188 | 0xbc | multiplyGradient |
189 | 0xbd | name |
190 | 0xbe | nearest |
191 | 0xbf | needsDisplayOnBoundsChange |
192 | 0xc0 | needsLayoutOnGeometryChange |
193 | 0xc1 | none |
194 | 0xc2 | oldestFirst |
195 | 0xc3 | oldestLast |
196 | 0xc4 | onOrderIn |
197 | 0xc5 | onOrderOut |
198 | 0xc6 | opacity |
199 | 0xc7 | opaque |
200 | 0xc8 | origin |
201 | 0xc9 | outline |
202 | 0xca | paced |
203 | 0xcb | pageCurl |
204 | 0xcc | path |
205 | 0xcd | plusL |
206 | 0xce | point |
207 | 0xcf | points |
208 | 0xd0 | position |
209 | 0xd1 | preservesDepth |
210 | 0xd2 | push |
211 | 0xd3 | rasterizationEnabled |
212 | 0xd4 | rasterizationScale |
213 | 0xd5 | reactsToCollisions |
214 | 0xd6 | rectangle |
215 | 0xd7 | redRange |
216 | 0xd8 | redSpeed |
217 | 0xd9 | reflection |
218 | 0xda | removedOnCompletion |
219 | 0xdb | renderMode |
220 | 0xdc | repeatCount |
221 | 0xdd | repeatDuration |
222 | 0xde | resize |
223 | 0xdf | resizeAspect |
224 | 0xe0 | resizeAspectFill |
225 | 0xe1 | restLength |
226 | 0xe2 | reveal |
227 | 0xe3 | right |
228 | 0xe4 | rotation |
229 | 0xe5 | rotationMode |
230 | 0xe6 | roundsToInteger |
231 | 0xe7 | scale |
232 | 0xe8 | scaleRange |
233 | 0xe9 | scaleSpeed |
234 | 0xea | scrollMode |
235 | 0xeb | seed |
236 | 0xec | shadowColor |
237 | 0xed | shadowOffset |
238 | 0xee | shadowOpacity |
239 | 0xef | shadowRadius |
240 | 0xf0 | shapeTransform |
241 | 0xf1 | size |
242 | 0xf2 | sizeRequisition |
243 | 0xf3 | sortsSublayers |
244 | 0xf4 | sourceAtop |
245 | 0xf5 | sourceIn |
246 | 0xf6 | sourceLayer |
247 | 0xf7 | sourcePoints |
248 | 0xf8 | sourceOut |
249 | 0xf9 | sourceOver |
250 | 0xfa | spacing |
251 | 0xfb | speed |
252 | 0xfc | sphere |
253 | 0xfd | spin |
254 | 0xfe | spinRange |
255 | 0xff | springs |
256 | 0x100 | springScale |
257 | 0x101 | start |
258 | 0x102 | startAngle |
259 | 0x103 | startPoint |
260 | 0x104 | startProgress |
261 | 0x105 | stiffness |
262 | 0x106 | string |
263 | 0x107 | strokeColor |
264 | 0x108 | style |
265 | 0x109 | sublayerTransform |
266 | 0x10a | sublayers |
267 | 0x10b | subtype |
268 | 0x10c | superlayer |
269 | 0x10d | surface |
270 | 0x10e | tableColumn |
271 | 0x10f | tableColumns |
272 | 0x110 | tableRow |
273 | 0x111 | tableRows |
274 | 0x112 | targetsSuperlayer |
275 | 0x113 | tileSize |
276 | 0x114 | timeOffset |
277 | 0x115 | timeStep |
278 | 0x116 | timingFunction |
279 | 0x117 | timingFunctions |
280 | 0x118 | toValue |
281 | 0x119 | top |
282 | 0x11a | topLeft |
283 | 0x11b | topRight |
284 | 0x11c | trackingMode |
285 | 0x11d | transform |
286 | 0x11e | transition |
287 | 0x11f | transitionFlags |
288 | 0x120 | translation |
289 | 0x121 | trilinear |
290 | 0x122 | truncationMode |
291 | 0x123 | truncationString |
292 | 0x124 | type |
293 | 0x125 | unordered |
294 | 0x126 | value |
295 | 0x127 | valueFunction |
296 | 0x128 | values |
297 | 0x129 | velocity |
298 | 0x12a | velocityRange |
299 | 0x12b | velocityStretch |
300 | 0x12c | vertical |
301 | 0x12d | vertically |
302 | 0x12e | volume |
303 | 0x12f | width |
304 | 0x130 | wrapped |
305 | 0x131 | wrappedDirection |
306 | 0x132 | wrappedOrigin |
307 | 0x133 | x |
308 | 0x134 | xAcceleration |
309 | 0x135 | xor |
310 | 0x136 | xy |
311 | 0x137 | y |
312 | 0x138 | yAcceleration |
313 | 0x139 | z |
314 | 0x13a | zAcceleration |
315 | 0x13b | zPosition |
316 | 0x13c | (null) |
Values larger than 316 are custom atoms.
|