Apple Developer Connection
Member Login Log In | Not a Member? Contact ADC

< 前ページ次ページ > 目次を隠す

Core Animation描画アーキテクチャ

Core AnimationのレイヤとCocoaのビューには明白な共通点がいくつかありますが、概念上の大きな違いがあり、レイヤは画面に直接的には描画しません。

NSViewがModel-View-Controllerデザインパターンにおいて明白なビューオブジェクトであるのに対し、Core Animationレイヤは実際にはモデルオブジェクトです。Core Animationレイヤは、ジオメトリ、タイミング、および視覚プロパティをカプセル化し、表示するコンテンツを提供しますが、実際の表示はレイヤの役割ではありません。

可視のレイヤツリーはそれぞれ対応する2つのツリーによって支えられています。すなわち、図 1に示すプレゼンテーションツリーと描画ツリーです。


図 1  Core Animation描画アーキテクチャ

Core Animation Rendering Architecture

レイヤツリーには、各レイヤのオブジェクトモデルの値が含まれています。これらは、レイヤプロパティに値を代入するときに設定する値です。

プレゼンテーションツリーには、アニメーションを実行するたびに、ユーザに現在提示されている値が含まれます。たとえば、あるレイヤのbackgroundColorに新しい値を設定すると、レイヤツリーの値が即座に変わります。しかしプレゼンテーションツリーの対応するレイヤのbackgroundColor値は、ユーザに対して表示されるときに補間された色で更新されます。

描画ツリーは、レイヤを描画するときにはプレゼンテーションツリーの値を使用します。描画ツリーは、アプリケーションの動作とは独立して合成操作を実行します。つまり描画は別々のプロセスやスレッドで行われるため、アプリケーションの実行ループへの影響は最小限に抑えられます。

アニメーショントランザクションの処理中に、CALayerのインスタンスに、そのプレゼンテーションレイヤを問い合わせることができます。これは、現在のアニメーションを変更しようとしており、現在表示されている状態から新しいアニメーションを開始したい場合に非常に役立ちます。



< 前ページ次ページ > 目次を隠す


Last updated: 2007-12-06




Did this document help you?
Yes: Tell us what works for you.

It’s good, but: Report typos, inaccuracies, and so forth.

It wasn’t helpful: Tell us what would have helped.
Get information on Apple products.
Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Copyright © 2007 Apple Inc.
All rights reserved. | Terms of use | Privacy Notice