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

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

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

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
QuartzCore.framework: Difference between revisions - iPhone Development Wiki

QuartzCore.framework: Difference between revisions

From iPhone Development Wiki
mNo edit summary
No edit summary
 
(5 intermediate revisions by 3 users not shown)
Line 4: Line 4:
| classID = CA
| classID = CA
}}
}}
'''QuartzCore''', also known as '''Core Animation''', is an Objective-C framework that creates simple animations on UI elements.  
[[QuartzCore.framework|QuartzCore]], also known as '''Core Animation''', is an Objective-C framework that to declaratively build an animatable scene graph. CoreAnimation uses a unique rendering model where the graphics operations are run in a separate process.
 
For an example of using it, see [[Page Flip]].


== Debugging ==
== Debugging ==
Line 21: Line 23:
! Flag
! Flag
! Environment variable
! Environment variable
! Meaning
|-
|-
| 1 || CA_COLOR_FLUSH<ref name="qdl">http://lists.apple.com/archives/Quartz-dev/2008/Oct/msg00048.html</ref>
| 1 || CA_COLOR_FLUSH<ref name="qdl">http://lists.apple.com/archives/Quartz-dev/2008/Oct/msg00048.html</ref>
|-
|-
| 2 || CA_COLOR_COPY
| 2 || CA_COLOR_COPY || Color Copied Images
|-
|-
| 4 || CA_COLOR_OPAQUE<ref name="qdl"/><ref name="darknoon">Darknoon Blog » Core Animation debug mode: http://darknoon.com/blog/2009/06/29/core-animation-debug-mode/</ref>
| 4 || CA_COLOR_OPAQUE<ref name="qdl"/><ref name="darknoon">Darknoon Blog » Core Animation debug mode: http://darknoon.com/blog/2009/06/29/core-animation-debug-mode/</ref> || Color Blended Layers: Shows opaque vs non-opaque regions in green and red
|-
|-
| 8 || CA_COLOR_NO_WAIT<ref name="qdl"/>
| 8 || CA_COLOR_NO_WAIT<ref name="qdl"/> || Color Immediately: Like the "no delay after flash" option in Quartz Debug
|-
|-
| 16 || CA_AUTO_FLUSH
| 16 || CA_AUTO_FLUSH
Line 36: Line 39:
| 64 || CA_PRINT_OBJECTS
| 64 || CA_PRINT_OBJECTS
|-
|-
| 128 || CA_LOG_IMPLICIT_TRANSACTIONS
| 128 || CA_LOG_IMPLICIT_TRANSACTIONS || Logs all implicitly created transactions: "Started implicit transaction for thread 0x7fff7be65300"
|-
|-
| 256 || CA_LOG_MEMORY_USAGE
| 256 || CA_LOG_MEMORY_USAGE || When there's some CA activity, periodically prints lines like these: "CoreAnimation buffers: currently 0.0522MB; maximum 0.1MB"
|-
|-
| 512 || CA_LOG_IMAGE_COPIES
| 512 || CA_LOG_IMAGE_COPIES || "CoreAnimation: copied CGImageRef 0x6200001a0380 - RGB mask (bug!)"
|-
|-
| 1024 || CA_PRINT_PERF
| 1024 || CA_PRINT_PERF || When there's some CA activity, periodically prints number of transactions since last time
|-
|-
| 2048 || CA_DISABLE_OCCLUSION_CULLING
| 2048 || CA_DISABLE_OCCLUSION_CULLING
Line 59: Line 62:
|-
|-
| 262144 || CA_COLOR_DETACHED
| 262144 || CA_COLOR_DETACHED
|-
| 524288 || CA_COLOR_CACHED
|-
| 1048576 || CA_DISABLE_DETACHED
|}
|}
Alternatively, you can use the <tt>CASetDebugFlags()</tt> to update the flags in runtime.
Alternatively, you can use the <tt>CASetDebugFlags()</tt> to update the flags in runtime.
=== Other environment variables ===
Additionally, the following environment variables not governed by <tt>CASetDebugFlags()</tt> also exist:
{| class="wikitable"
|-
! Environment variable !! Default !! Meaning
|-
| CA_BENCHMARK<br />LK_BENCHMARK || false || -
|-
| CA_LOG_IMAGE_QUEUE_FRAMES || false || -
|-
| CA_PRINT_SHADERS || false || Log the vertex and fragment shader codes when creating them.
|-
| CA_DISABLED_EXTENSIONS || NULL
| A space-delimited list of the following OpenGL extensions that should be disabled:
* [http://www.opengl.org/registry/specs/APPLE/client_storage.txt GL_APPLE_client_storage]
* [http://www.opengl.org/registry/specs/APPLE/fence.txt GL_APPLE_fence]
* GL_APPLE_tile_order_rot
* [http://www.opengl.org/registry/specs/EXT/texture_filter_anisotropic.txt GL_EXT_texture_filter_anisotropic]
* [http://www.opengl.org/registry/specs/EXT/texture_lod_bias.txt GL_EXT_texture_lod_bias]
* [http://www.khronos.org/registry/gles/extensions/OES/OES_framebuffer_object.txt GL_OES_framebuffer_object]
* [http://www.khronos.org/registry/gles/extensions/OES/OES_mapbuffer.txt GL_OES_mapbuffer]
* [http://www.khronos.org/registry/gles/extensions/OES/OES_standard_derivatives.txt GL_OES_standard_derivatives]
* [http://www.khronos.org/registry/gles/extensions/OES/OES_texture_npot.txt GL_OES_texture_npot]
|-
| CA_DISABLE_WORKAROUNDS || false || -
|-
| CA_MAX_TEXTURE_UNITS || ? ||-
|-
| CA_MAX_TEXTURE_SIZE || ? ||-
|-
| CA_ENABLE_OGL || true || -
|-
| CA_ENABLE_TILING || true || -
|-
| CA_RESIZE_YUV_SCALE || 0.8 || -
|-
| MBX2D_OFFSCREEN<br />MBX2D_PAGE_FLIP || true || -
|-
| CA_CLONE_OVERSCAN_AMOUNT || 0.0? || -
|-
| CA_CLONE_DISPLAY || false || -
|-
|}


== Versions ==
== Versions ==
Line 68: Line 120:
| 2.0    || 2.1    || 2.2    || 3.0    || 3.1    || 3.2
| 2.0    || 2.1    || 2.2    || 3.0    || 3.1    || 3.2
|-
|-
! Version
! SourceCache version
| colspan="6" | 1.6?
| colspan="6" | N/A
|-
! dylib version
| colspan="6" | 1.6
|}
|}



Latest revision as of 14:53, 15 March 2015

QuartzCore.framework
Public Framework
Availabile 2.0 – present
Class Prefix CA
Headers [headers.cynder.me]

QuartzCore, also known as Core Animation, is an Objective-C framework that to declaratively build an animatable scene graph. CoreAnimation uses a unique rendering model where the graphics operations are run in a separate process.

For an example of using it, see Page Flip.

Debugging

Signature unsigned CAGetDebugFlags();
Available in 2.0 –
Signature void CASetDebugFlags(unsigned flags);
Available in 2.0 –

Applications linked with QuartzCore will recognize the following debugging (boolean) environment variables:

Flag Environment variable Meaning
1 CA_COLOR_FLUSH[1]
2 CA_COLOR_COPY Color Copied Images
4 CA_COLOR_OPAQUE[1][2] Color Blended Layers: Shows opaque vs non-opaque regions in green and red
8 CA_COLOR_NO_WAIT[1] Color Immediately: Like the "no delay after flash" option in Quartz Debug
16 CA_AUTO_FLUSH
32 CA_PRINT_TREE[1]
64 CA_PRINT_OBJECTS
128 CA_LOG_IMPLICIT_TRANSACTIONS Logs all implicitly created transactions: "Started implicit transaction for thread 0x7fff7be65300"
256 CA_LOG_MEMORY_USAGE When there's some CA activity, periodically prints lines like these: "CoreAnimation buffers: currently 0.0522MB; maximum 0.1MB"
512 CA_LOG_IMAGE_COPIES "CoreAnimation: copied CGImageRef 0x6200001a0380 - RGB mask (bug!)"
1024 CA_PRINT_PERF When there's some CA activity, periodically prints number of transactions since last time
2048 CA_DISABLE_OCCLUSION_CULLING
4096 CA_DISABLE_DIRTY_REGIONS
8192 CA_LOG_TRIPLE_BUFFERING
16384 CA_COLOR_SUBPIXEL
32768 CA_DISABLE_RENDER
65536 CA_ALWAYS_RENDER
131072 CA_COLOR_OFFSCREEN
262144 CA_COLOR_DETACHED
524288 CA_COLOR_CACHED
1048576 CA_DISABLE_DETACHED

Alternatively, you can use the CASetDebugFlags() to update the flags in runtime.

Other environment variables

Additionally, the following environment variables not governed by CASetDebugFlags() also exist:

Environment variable Default Meaning
CA_BENCHMARK
LK_BENCHMARK
false -
CA_LOG_IMAGE_QUEUE_FRAMES false -
CA_PRINT_SHADERS false Log the vertex and fragment shader codes when creating them.
CA_DISABLED_EXTENSIONS NULL A space-delimited list of the following OpenGL extensions that should be disabled:
CA_DISABLE_WORKAROUNDS false -
CA_MAX_TEXTURE_UNITS ? -
CA_MAX_TEXTURE_SIZE ? -
CA_ENABLE_OGL true -
CA_ENABLE_TILING true -
CA_RESIZE_YUV_SCALE 0.8 -
MBX2D_OFFSCREEN
MBX2D_PAGE_FLIP
true -
CA_CLONE_OVERSCAN_AMOUNT 0.0? -
CA_CLONE_DISPLAY false -

Versions

Firmware 2.0 2.1 2.2 3.0 3.1 3.2
SourceCache version N/A
dylib version 1.6

References