75

誰かがこれらを正確に区別できるのだろうか?私の理解では、Core Graphics は、Quartz Core と Quartz 2D を含む単なる「フレームワーク パッケージ」です。しかし、Quartz 2D が実際に Quartz Core であるかどうかはわかりません。多分誰かがそこにいくつかの線を引くことができますか? これらの違いは何ですか?

ドキュメントを見ると、Quartz Core がすべての Core Animation のものだけをリストしていることがわかります。クォーツコア==コアアニメーション?

4

3 に答える 3

95

Quartz 2D は、描画を実装する Core Graphics フレームワークの API です。
Quartz Core は、アニメーションおよび画像処理用の API を含むフレームワークです。


Quartz フレームワークとその API

CoreGraphics.framework

  • Quartz 2D API は、グラフィック コンテキストを管理し、描画を実装します。
  • Quartz Services API は、ウィンドウ サーバーへの低レベル アクセスを提供します。これには、ディスプレイのハードウェア、解像度、リフレッシュ レートなどが含まれます。

QuartzCore.framework

  • Core Animation : 2D アニメーションを行うための Objective-C API。
  • Core Image : 画像とビデオの処理 (フィルター、ワープ、トランジション)。iOS5

Quartz.frameworkOS X のみ

  • イメージ キット: イメージの表示と編集。
  • PDF キット: PDF を表示および編集します。
  • Quartz Composer : Quartz Composer のコンポジションを表示します。
  • QuickLookUI: メディア要素をプレビューします。

iOS または OS X でのすべての描画はある時点で OpenGL を通過するため、3 つのフレームワークはすべてその下で OpenGL を使用します。詳細については、Mac OS X Technology Overview のMedia Layer Frameworksセクションを参照してください。

あなたが聞いたことがあるかもしれない他の「クォーツ」技術:

  • Quartz Extreme: Quartz Composer の GPU アクセラレーション。
  • QuartzGL (別名「Quartz 2D Extreme」): Quartz 2D の GPU アクセラレーション。

これらは、API ではなく、GPU レンダリングの内部実装です。CPU でウィンドウ バッファを作成し、OpenGL のみを使用してテクスチャとしてアップロードするか (デフォルト)、OpenGL を使用して全体のレンダリングを行うかを決定しますが、これは常にパフォーマンスを向上させるとは限りません。QuartzGLEnable Info.plist 設定を使用して、2 つを切り替えることができます。説明については、John Siracusa による Mac OS X 10.4 Tiger のレビューの13ページと14ページを参照してください。

「Quartz」と「Core」は、フレームワークと API にランダムに散りばめられたマーケティング名です。紛らわしい名前付けの混乱を作成したい場合、彼らは成功しました.

于 2012-03-26T00:58:18.900 に答える
38

Quartz 2Dプログラミングガイドから:

Quartz 2D API は Core Graphics フレームワークの一部であるため、Quartz は Core Graphics または単に CG と呼ばれることがあります。

Mac / iPhone での 2-D 描画について言及するとき、たとえそれが技術的に正しくなくても、Quartz と Core Graphics を同じ意味で使用する傾向があります。

iPhoneのQuartz Core フレームワークには、 Core Animation のクラスとサポート要素が含まれており、Core Image に使用されるアイテムも含まれています。

于 2009-12-10T19:31:14.637 に答える
6

ただし、新しいシングルビューアプリケーションはデフォルトでCoreGraphicsフレームワークをリンクしますが、QuartzCoreはリンクしないことに注意してください。CAEAGLLayerそのため、たとえば何かをしていると、すぐに「不明なオブジェクト」エラーが発生する可能性があります。

于 2012-04-04T09:15:31.683 に答える