Difference between revisions of "CAAtom"

From iPhone Development Wiki
Jump to: navigation, search
m (List of Predefined Atoms: hex values)
(Removed the list of atoms, which is version specific. Instead, instruction was given to how to get the atoms.)
Line 25: Line 25:
 
</source>
 
</source>
  
== List of Predefined Atoms ==
+
You may find the list of predefined atoms as an array of strings at the (private) symbol <tt>_stringpool_contents</tt>. Values larger than the pool's size are custom atoms.
{| class="wikitable collapsible collapsed"
 
|-
 
! colspan="2" | Atom !! String
 
|-
 
| 0 || 0x00 || &lt;nil&gt;
 
|-
 
| 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.
 
  
 
{{occlass|library=QuartzCore.framework|navbox=1}}
 
{{occlass|library=QuartzCore.framework|navbox=1}}

Revision as of 20:57, 21 January 2011

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"

You may find the list of predefined atoms as an array of strings at the (private) symbol _stringpool_contents. Values larger than the pool's size are custom atoms.