Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/extensions/Variables/includes/ExtVariables.php on line 198
CAAtom: Difference between revisions - iPhone Development Wiki

CAAtom: Difference between revisions

From iPhone Development Wiki
(Created page with 'CAAtom refers to a string for identification in {{fwlink|QuartzCore}}. As of 3.1, there are over 300 internal atoms. == CAAtomGetString == {{function signature | signature=N…')
 
mNo edit summary
Line 1: Line 1:
[[CAAtom]] refers to a string for identification in {{fwlink|QuartzCore}}. As of 3.1, there are over 300 internal atoms.
[[CAAtom]] refers to a string for identification in {{fwlink|QuartzCore}}. As of 3.1, there are over 300 internal atoms.


== CAAtomGetString ==
== Converting atoms to and from strings ==
{{function signature
{{function signature
| signature=NSString* CAAtomGetString(unsigned atomicValue);
| signature=NSString* CAAtomGetString(uint32_t atomicValue);
| firmware=2.0 –
| firmware=2.0 –
}}
}}
{{function signature
|signature=uint32_t CAInternAtom(NSString* atommicString);
|firmware=2.0 –
}}


There is only 1 exported C function for CAAtom, <tt>CAAtomGetString()</tt>, which converts an integer to its corresponding string value. Most internal code in QuartzCore are identified using atoms. For example, a portion of disassembled code may read:
There is only 2 exported C function for CAAtom, <tt>CAAtomGetString()</tt> and <tt>CAInternAtom()</tt>, 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:]:
  -[CAGradientLayer setLocations:]:
  ;
  ;
Line 21: Line 25:
</source>
</source>


== List of Predefined Atoms ==
{| class="wikitable collapsible collapsed"
|-
! Atom
! String
|-
| 0 || &lt;nil&gt;
|-
| 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.


{{occlass|library=QuartzCore.framework|navbox=1}}
{{occlass|library=QuartzCore.framework|navbox=1}}

Revision as of 19:12, 15 November 2009

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

Values larger than 316 are custom atoms.