API ガイド > ビューポート 2.0 API (Viewport 2.0 API) >

# フレームワーク クラス(Framework Classes)

フレームワーク クラスにより、プラグインは、状態およびリソース管理、レンダリング コンテキストおよびオーバーライド管理を含む、Maya の内部レンダリング フレームワーク オブジェクトにアクセスすることができます。

MDrawRegistry

ここでは、プロキシ オーバーライド クラスの実装を Maya の特定のノード タイプに対して登録しなければなりません。 同じプロキシを複数のノード タイプに対して登録することができますが、各ノード タイプに関連付けることのできるプロキシ クラスは 1 つだけです。 追加登録を実行すると、既存の登録がオーバーライドされます。

MDrawContext

MDrawContext は、実際の描画をオーバーライドするクラス(MPxDrawOverride および MPxShaderOverride)によって使用されるすべての描画コンテキスト情報を格納します。 このクラスは、描画状態の取得および設定に使用できます。

MStateManager

GPU へのアクセスおよびその状態の修正を効率的で制御された方法で行うため、状態マネージャを描画コンテキストのインスタンスから取得することができます。 ユーザ自身が状態を直接修正することはもちろん可能ですが、すべての状態管理はこのインタフェースを介して行うことを推奨します。 Maya では、時間のかかる読み戻しや、重複する状態変更を避けるために、デバイス状態へのアクセスを最適化しようと試みます。さらに、このインタフェースを使用することによって、Maya は現在の状態を追跡し、破壊を防ぐことができます。

MRenderer

これはビューポート 2.0 レンダラのメイン インタフェースです。 これは、リソース管理およびレンダー ロジック制御のためのインタフェースを提供します。 レンダラはシングルトン オブジェクトで、MRenderer::theRenderer() を介してアクセスすることができます。

テクスチャ管理

テクスチャは、レンダラから取得または解放できるリソースです。 メイン インタフェースにより、ディスクからファイル テクスチャを取得したり、システム メモリのブロックからテクスチャを作成することができます。 テクスチャはすべてレンダラによって管理されます。 テクスチャは MTextureDescription によって記述され、利用可能なラスタ フォーマットのリストは MRasterFormat によって記述されます。 サポートされるテクスチャ タイプは MTextureType によって記述され、環境マッピング タイプは MEnvironmentMapType によって記述されます。 また、テクスチャのデバイス レベル ハンドルにアクセスして、ユーザは直接リソースを使用することができます。

シェーダ管理

いくつかの単純なストック シェーダ、およびファイルに格納された状態でディスクにロードされる CgFX シェーダは、シェーダ マネージャを介してレンダラから取得することができます。 レンダラから MShaderManager クラスにアクセスして、MShaderInstance オブジェクトへのアクセスを取得します。このオブジェクトは、MPxGeometryOverride によって、またはレンダー上の完全なシェーダ オーバーライドとして使用することができます。

ターゲット管理

MRenderTargetManager を使用して、レンダー操作上のオーバーライドとして使用するためのレンダー ターゲットをレンダラから取得することができます。