No edit summary |
|||
(6 intermediate revisions by 3 users not shown) | |||
Line 4: | Line 4: | ||
| classID = CA | | classID = CA | ||
}} | }} | ||
[[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 == | |||
{| class="wikitable" | |||
|- | |||
! Firmware | |||
| 2.0 || 2.1 || 2.2 || 3.0 || 3.1 || 3.2 | |||
|- | |||
! SourceCache version | |||
| colspan="6" | N/A | |||
|- | |||
! dylib version | |||
| colspan="6" | 1.6 | |||
|} | |||
== References == | == References == |
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
- ↑ 1.0 1.1 1.2 1.3 http://lists.apple.com/archives/Quartz-dev/2008/Oct/msg00048.html
- ↑ Darknoon Blog » Core Animation debug mode: http://darknoon.com/blog/2009/06/29/core-animation-debug-mode/
- Official reference: http://developer.apple.com/iPhone/library/documentation/GraphicsImaging/Reference/QuartzCoreRefCollection/index.html
|