No edit summary |
No edit summary |
||
(7 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 == | ||
{{function signature | |||
|signature=unsigned CAGetDebugFlags(); | |||
|firmware=2.0 – | |||
}} | |||
{{function signature | |||
|signature=void CASetDebugFlags(unsigned flags); | |||
|firmware=2.0 – | |||
}} | |||
Applications linked with QuartzCore will recognize the following debugging (boolean) environment variables: | Applications linked with QuartzCore will recognize the following debugging (boolean) environment variables: | ||
{| class="wikitable" | |||
|- | |||
! Flag | |||
! Environment variable | |||
! Meaning | |||
|- | |||
| 1 || CA_COLOR_FLUSH<ref name="qdl">http://lists.apple.com/archives/Quartz-dev/2008/Oct/msg00048.html</ref> | |||
|- | |||
| 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> || Color Blended Layers: Shows opaque vs non-opaque regions in green and red | ||
* | |- | ||
* | | 8 || CA_COLOR_NO_WAIT<ref name="qdl"/> || Color Immediately: Like the "no delay after flash" option in Quartz Debug | ||
* | |- | ||
* | | 16 || CA_AUTO_FLUSH | ||
* | |- | ||
* | | 32 || CA_PRINT_TREE<ref name="qdl"/> | ||
* | |- | ||
* | | 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 <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
|