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 | <nil> |
1 | DODFunction |
2 | ROIFunction |
3 | actions |
4 | additive |
5 | alignedCube |
6 | alignedFlip |
7 | alignmentMode |
8 | alphaRange |
9 | alphaSpeed |
10 | anchorPoint |
11 | anchorPointZ |
12 | angularDrag |
13 | animationDelegate |
14 | animationDuration |
15 | animationTimingFunction |
16 | animations |
17 | appliesX |
18 | appliesY |
19 | appliesScale |
20 | appliesRotation |
21 | array |
22 | attachmentPointA |
23 | attachmentPointB |
24 | autoresizingMask |
25 | autoreverses |
26 | backToFront |
27 | backgroundColor |
28 | backgroundFilters |
29 | beginTime |
30 | behaviors |
31 | birthRate |
32 | blueRange |
33 | blueSpeed |
34 | borderColor |
35 | borderWidth |
36 | both |
37 | bottom |
38 | bottomLeft |
39 | bottomRight |
40 | bounds |
41 | byValue |
42 | cachesInputImage |
43 | calculationMode |
44 | canDrawConcurrently |
45 | center |
46 | cheapAdditive |
47 | circle |
48 | clear |
49 | clearsContext |
50 | coefficientOfRestitution |
51 | collisionInterval |
52 | color |
53 | colors |
54 | commitTime |
55 | completionBlock |
56 | compositingFilter |
57 | constraints |
58 | contents |
59 | contentsCenter |
60 | contentsGravity |
61 | contentsRect |
62 | contentsTransform |
63 | contextId |
64 | copy |
65 | cornerRadius |
66 | cube |
67 | cuboid |
68 | cumulative |
69 | damping |
70 | delegate |
71 | destAtop |
72 | destIn |
73 | destOut |
74 | destOver |
75 | disableActions |
76 | discrete |
77 | displayList |
78 | distortion |
79 | doubleSided |
80 | down |
81 | drag |
82 | drawableProperties |
83 | duration |
84 | edgeAntialiasingMask |
85 | emissionLatitude |
86 | emissionLongitude |
87 | emissionRange |
88 | emitterCells |
89 | emitterDepth |
90 | emitterMode |
91 | emitterPosition |
92 | emitterShape |
93 | emitterSize |
94 | emitterZPosition |
95 | enabled |
96 | end |
97 | endAngle |
98 | endPoint |
99 | endProgress |
100 | fade |
101 | fillColor |
102 | fillMode |
103 | fillRule |
104 | filter |
105 | filters |
106 | flattened |
107 | flip |
108 | floating |
109 | fog |
110 | font |
111 | fontSize |
112 | forceFields |
113 | foregroundColor |
114 | frameInterval |
115 | fromBottom |
116 | fromLeft |
117 | fromRight |
118 | fromTop |
119 | fromValue |
120 | function |
121 | gaussianBlur |
122 | geometryFlipped |
123 | greenRange |
124 | greenSpeed |
125 | height |
126 | hidden |
127 | horizontal |
128 | horizontally |
129 | instanceAlphaOffset |
130 | instanceBlueOffset |
131 | instanceColor |
132 | instanceCount |
133 | instanceDelay |
134 | instanceGreenOffset |
135 | instanceRedOffset |
136 | instanceTransform |
137 | inputAmount |
138 | inputAngle |
139 | inputBias |
140 | inputClip |
141 | inputColor |
142 | inputColor0 |
143 | inputColor1 |
144 | inputDensity |
145 | inputPoint0 |
146 | inputPoint1 |
147 | inputPosition |
148 | inputRadius |
149 | inputScale |
150 | inputSize |
151 | inputTime |
152 | justification |
153 | justified |
154 | key |
155 | keyPath |
156 | keyTimes |
157 | lanczos |
158 | layoutFlags |
159 | layoutManager |
160 | left |
161 | levelsOfDetail |
162 | levelsOfDetailBias |
163 | lifetime |
164 | lifetimeRange |
165 | lighting |
166 | line |
167 | lineCap |
168 | lineDashPattern |
169 | lineDashPhase |
170 | lineJoin |
171 | lineWidth |
172 | linear |
173 | locations |
174 | magnificationFilter |
175 | margin |
176 | mask |
177 | masksToBounds |
178 | mass |
179 | middle |
180 | minificationFilter |
181 | minificationFilterBias |
182 | minimumTimeStep |
183 | miterLimit |
184 | momentOfInertia |
185 | moveIn |
186 | multiply |
187 | multiplyColor |
188 | multiplyGradient |
189 | name |
190 | nearest |
191 | needsDisplayOnBoundsChange |
192 | needsLayoutOnGeometryChange |
193 | none |
194 | oldestFirst |
195 | oldestLast |
196 | onOrderIn |
197 | onOrderOut |
198 | opacity |
199 | opaque |
200 | origin |
201 | outline |
202 | paced |
203 | pageCurl |
204 | path |
205 | plusL |
206 | point |
207 | points |
208 | position |
209 | preservesDepth |
210 | push |
211 | rasterizationEnabled |
212 | rasterizationScale |
213 | reactsToCollisions |
214 | rectangle |
215 | redRange |
216 | redSpeed |
217 | reflection |
218 | removedOnCompletion |
219 | renderMode |
220 | repeatCount |
221 | repeatDuration |
222 | resize |
223 | resizeAspect |
224 | resizeAspectFill |
225 | restLength |
226 | reveal |
227 | right |
228 | rotation |
229 | rotationMode |
230 | roundsToInteger |
231 | scale |
232 | scaleRange |
233 | scaleSpeed |
234 | scrollMode |
235 | seed |
236 | shadowColor |
237 | shadowOffset |
238 | shadowOpacity |
239 | shadowRadius |
240 | shapeTransform |
241 | size |
242 | sizeRequisition |
243 | sortsSublayers |
244 | sourceAtop |
245 | sourceIn |
246 | sourceLayer |
247 | sourcePoints |
248 | sourceOut |
249 | sourceOver |
250 | spacing |
251 | speed |
252 | sphere |
253 | spin |
254 | spinRange |
255 | springs |
256 | springScale |
257 | start |
258 | startAngle |
259 | startPoint |
260 | startProgress |
261 | stiffness |
262 | string |
263 | strokeColor |
264 | style |
265 | sublayerTransform |
266 | sublayers |
267 | subtype |
268 | superlayer |
269 | surface |
270 | tableColumn |
271 | tableColumns |
272 | tableRow |
273 | tableRows |
274 | targetsSuperlayer |
275 | tileSize |
276 | timeOffset |
277 | timeStep |
278 | timingFunction |
279 | timingFunctions |
280 | toValue |
281 | top |
282 | topLeft |
283 | topRight |
284 | trackingMode |
285 | transform |
286 | transition |
287 | transitionFlags |
288 | translation |
289 | trilinear |
290 | truncationMode |
291 | truncationString |
292 | type |
293 | unordered |
294 | value |
295 | valueFunction |
296 | values |
297 | velocity |
298 | velocityRange |
299 | velocityStretch |
300 | vertical |
301 | vertically |
302 | volume |
303 | width |
304 | wrapped |
305 | wrappedDirection |
306 | wrappedOrigin |
307 | x |
308 | xAcceleration |
309 | xor |
310 | xy |
311 | y |
312 | yAcceleration |
313 | z |
314 | zAcceleration |
315 | zPosition |
316 | (null) |
Values larger than 316 are custom atoms.
|