誰かがこれらを正確に区別できるのだろうか?私の理解では、Core GraphicsはQuartz CoreとQuartz 2Dを含む単なる「フレームワークパッケージ」です。しかし、Quartz 2Dが実際にQuartz Coreであるかどうかはわかりませんか?誰かがそこに線を引くことができますか?これらの違いは何ですか?
ドキュメントを見ると、Quartz CoreがすべてのCore Animationのもののみをリストアップしているのがわかります。 Quartz Core == Core Animation?
Quartz 2D Programming Guide から:
Quartz 2D APIはCore Graphicsフレームワークの一部であるため、QuartzはCore Graphicsまたは単にCGと呼ばれることがあります。
Mac/iPhoneで2-D描画を参照する場合、たとえ技術的に正しくなくても、QuartzとCore Graphicsを交互に使用する傾向があります。
iPhoneのQuartz Coreフレームワーク には、Core Animationのクラスとサポート要素が含まれ、Core Imageに使用されるアイテムも含まれています。
Quartz 2Dは、描画を実装するCore GraphicsフレームワークのAPIです。
Quartz Coreは、アニメーションおよび画像処理用のAPIを含むフレームワークです。
CoreGraphics.framework
QuartzCore.framework
Quartz.framework
OS Xのみ
IOSまたはOS Xでのすべての描画はある時点でOpenGLを通過するため、3つのフレームワークはすべてOpenGLを使用します。詳細については、Mac OS X Technology Overviewのセクション Media Layer Frameworks を参照してください。
あなたが聞いたことがあるかもしれない他の「水晶」技術:
これらはGPUレンダリングの内部実装であり、APIではありません。 CPUにウィンドウバッファーを作成し、テクスチャとしてアップロードするためにOpenGLのみを使用するか(デフォルト)、OpenGLを使用してレンダリング全体を実行するかを決定します。 常にパフォーマンスが向上するわけではありません 。 QuartzGLEnable Info.plist設定を使用して、2つを交互に切り替えることができます。説明については、Mac OS X 10.4 TigerのJohn Siracusaのレビュー、ページ 13 および 14 を参照してください。
「クォーツ」と「コア」は、フレームワークとAPIにランダムに散らばったマーケティング名です。混乱を招くネーミング混乱を作成したい場合、成功しました。
ただし、新しいシングルビューアプリケーションは、デフォルトでCoreGraphicsフレームワークをリンクしますが、QuartzCoreはリンクしません。したがって、たとえばCAEAGLLayer
で何かをしていると、「不明なオブジェクト」エラーがすぐに発生する可能性があります。