C++/COMプログラマのための追加情報

この項には、Microsoft® Direct3D® 保持モードのC++/COMリファレンスに関する次のトピックが含まれる。

カラーキーイング
カラーキーは、一般にはアーティストが透明性のためにしか使用しない単一で共通性のない色であるが、これを指定した色範囲にすることもできる。IDirectDrawSurface3::SetColorKeyメソッドを使用して、サーフェスのカラーキーをセットすることができる。カラーキーをセットすると、IDirectDrawSurface3::BltFastに対する後続の呼び出しはそのカラーキーを活用し、一致するピクセルを無視する。このタイプのカラーキーは、ソースカラーキーと呼ばれる。ソースカラーキーは「透明」なピクセルが出力先に書き込まれないようにするため、オリジナルの背景ピクセルはこれらの場所に保存され、非方形オブジェクトであるスプライトが背景を横切っているかのように見える。出力先サーフェスに効果を与えるカラーキー (出力先カラーキー) を使用することもできる。

出力先カラーキーは、スプライトで上書き可能なピクセルに使用されるサーフェス上の色である。再度、アーティストは、イメージ中の他の場所で使用されていない任意の色を選択し、ブロック転送可能なイメージの一部としてそれを予約する。指定された出力先カラーキーによってスプライトを出力先サーフェスにブロック転送すると、スプライトのピクセルは、出力先カラーキーを使用中の出力先上のピクセルにのみブロック転送される。法線の出力先ピクセルは保存されているので、スプライトが出力先サーフェス上のイメージの背後を横切っているかのように見える。詳細については、 DirectX Foundation SDKの「DirectDrawの要点」セクションの「サーフェス」の項内の「透過型ブロック転送」を参照すること。

D3DCOLOR_MONO
モノクロモデル (ランプモデル) の使用をシステムに指示するD3DRMCOLORMODEL定数の値。このモデルでは、頂点の色の青要素を使用して、照らされる頂点の輝度を定義する。
D3DCOLOR_RGB
フルRGBモデルの使用をシステムに指示するD3DRMCOLORMODEL定数の値。
D3DCOLORMODEL
システムが実行するカラーモデルを定義する定数。
typedef enum _D3DCOLORMODEL {
    D3DCOLOR_MONO = 1,
    D3DCOLOR_RGB  = 2,
} D3DCOLORMODEL;
D3DCOLORVALUE
色の値を記述する構造体。dvR、dvG、dvB、dvAは、色の赤、緑、青、アルファ要素を指定するD3DVALUE型の値である。これらの値は、一般には0.0から1.0の範囲にあり、0.0は黒を指定する。
typedef struct _D3DCOLORVALUE {
    union {
        D3DVALUE r;
        D3DVALUE dvR;
    };
    union {
        D3DVALUE g;
        D3DVALUE dvG;
    };
    union {
        D3DVALUE b;
        D3DVALUE dvB;
    };
    union {
        D3DVALUE a;
        D3DVALUE dvA;
    };
} D3DCOLORVALUE;
D3DDEVICEDESC
現在のデバイスの記述を含む構造体。詳細については、「Direct3D直接モードリファレンス」の「構造体」の項のD3DDEVICEDESCを参照すること。
D3DENUMDEVICESCALLBACK
導入済みのDirect3D デバイスを列挙するコールバック関数のプロトタイプ定義。詳細については、「Direct3D直接モードリファレンス」の「コールバック関数」を参照すること。
typedef HRESULT (FAR PASCAL * LPD3DENUMDEVICESCALLBACK)
  (LPGUID lpGuid,
  LPSTR lpDeviceDescription,
  LPSTR lpDeviceName,
  LPD3DDEVICEDESC lpD3DHWDeviceDesc,
  LPD3DDEVICEDESC lpD3DHELD9eviceDesc,
  LPVOID lpUserArg
);
D3DMATRIX
行列を記述する構造体。
typedef struct _D3DMATRIX {
    D3DVALUE _11, _12, _13, _14;
    D3DVALUE _21, _22, _23, _24;
    D3DVALUE _31, _32, _33, _34;
    D3DVALUE _41, _42, _43, _44;
} D3DMATRIX, *LPD3DMATRIX;
D3DPRIMCAPS
各プリミティブタイプの機能を定義する構造体。IDirect3DRM3::CreateDeviceFromClipperを使用して、これらのデフォルト機能をセットする。

D3DPCMPCAPS_LESSEQUAL − 新しいz値が現在のz値以下の場合、zバッファ比較を渡す。

D3DPMISCCAPS_CULLCCW − このドライバは、D3DRENDERSTATE_CULLMODE状態を介して、時計と逆回りのカリングをサポートする (これは三角形プリミティブにのみ適用される)。

D3DPRASTERCAPS_FOGVERTEX − このデバイスは、ライティング操作中にフォグ値を計算し、D3DTLVERTEX構造体の反射メンバに与えられた D3DCOLOR値のアルファ要素にその値を配置し、ラスター化の際にフォグ値を補間する。

D3DPSHADECAPS_ALPHAFLATSTIPPLED − このデバイスは、フラット透明ブレンディングと透明点描 (D3DSHADEMODE列挙型のD3DSHADE_FLAT 状態) のアルファ要素をそれぞれサポートすることができる。これらのモードでは、プリミティブのアルファ色要素は、プリミティブの最初の頂点の色の一部として提供される。

D3DPTADDRESSCAPS_WRAP − このデバイスは、アドレスに対してテクスチャをラップすることができる。

D3DPTBLENDCAPS_COPY | D3DPTBLENDCAPS_MODULATE − コピーテクスチャブレンディングモード (D3DTEXTUREBLEND列挙型からのD3DTBLEND_COPY) と変調テクスチャブレンディングモード (D3DTEXTUREBLEND列挙型からのD3DTBLEND_MODULATE) がサポートされる。

D3DPTEXTURECAPS_PERSPECTIVE | D3DPTEXTURECAPS_TRANSPARENCY − パースペクティブ補正とテクスチャ透明性がサポートされる。

D3DPTFILTERCAPS_NEAREST − 希望するピクセル値に最も近い座標を持つテクセル (テクスチャの単一要素) が使用される。これは、ズームインとズームアウトの両方に適用される。ズームインとズームアウトのどちらかをサポートしている場合、両方をサポートしなければならない。

D3DRECT
方形を定義する構造体。
typedef struct _D3DRECT {
    union {
        LONG x1;
        LONG lX1;  //左上 x
    };
    union {
        LONG y1;
        LONG lY1;  //左上 y
    };
    union {
        LONG x2;
        LONG lX2; //右下 x
    };
    union {
        LONG y2;
        LONG lY2;  //右下 y
    };
} D3DRECT, *LPD3DRECT;
D3DTRIANGLE
すべての三角形のベースタイプを記述する構造体。三角形は主要なレンダリングプリミティブである。
D3DVALUE
基本的な Direct3D fractionalデータ型。
typedef float D3DVALUE, *LPD3DVALUE;
D3DVECTOR
Direct3DとDirect3D保持モードの多くのメソッドと構造体のベクトルを定義する構造体。
typedef struct _D3DVECTOR {
    union {
        D3DVALUE x;
        D3DVALUE dvX;
    };
    union {
        D3DVALUE y;
        D3DVALUE dvY;
    };
    union {
        D3DVALUE z;
        D3DVALUE dvZ;
    };
} D3DVECTOR, *LPD3DVECTOR;
DirectDrawCreate
DirectDrawオブジェクトのインスタンスを作成する関数。詳細については、「DirectDrawリファレンス」のDirectDrawCreate関数を参照すること。
DirectDrawCreateClipper
DirectDrawオブジェクトと関連付けられていない DirectDrawClipperオブジェクトのインスタンスを作成する関数。詳細については、「DirectDrawリファレンス」のDirectDrawCreateClipper関数を参照すること。
DrawPrimitive
IDirect3DDevice3::DrawPrimitiveメソッドは、指定された頂点配列を特定のタイプの幾何プリミティブのシーケンスとして描画する。幾何プリミティブのタイプには、点、線、三角形、三角形の扇形、三角形の展開などがある。
IDirect3D3
アプリケーションは、IDirect3D3インターフェイスのメソッドを使用してDirect3Dオブジェクトを作成し、環境をセットする。詳細については、「Direct3D直接モードリファレンス」の「IDirect3D3インターフェイス」を参照すること。
IDirect3D3::EnumDevices − このメソッドは、システムに導入済みのすべてのDirect3Dデバイスドライバを列挙する。
IDirect3D3::FindDevice − このメソッドは、指定した特性を持つデバイスを見つけ、その記述を取得する。
IDirectDrawClipper
アプリケーションは、IDirectDrawClipperインターフェイスのメソッドを使用して、クリップリストを管理する。詳細については、「DirectDrawリファレンス」の「IDirectDrawClipperインターフェイス」を参照すること。
IDirectDrawClipper::SetHWnd − このメソッドは、クリッピング情報を取得するウィンドウハンドルをセットする。
IUnknownインターフェイス
すべてのCOM (Component Object Model) インターフェイスは、IUnknownインターフェイスから引き出される。このインターフェイスは、オブジェクトの存続期間の制御と複数のインターフェイスを移動する機能を提供する。IUnknownには次の3つのメソッドがある。AddRef。これは、インターフェイスまたは別のアプリケーションが自分自身をオブジェクトにバインドしたときに、オブジェクトの参照カウントを1だけインクリメントする。QueryInterface。これは、固有のインターフェイスに対してポインタを要求することで、それがサポートする機能についてオブジェクトの照会を行う。Release。これは、オブジェクトの参照カウントを1だけデクリメントする。カウントが0になると、オブジェクトの割り当ては解除される。

IUnknown::AddRefおよびIUnknown::Release − これらのIUnknownメソッドは、オブジェクトの参照カウントを保守する。たとえば、DirectPlayオブジェクトを (たとえば、CoCreateInstanceによって) 作成する場合、オブジェクトの参照カウントは1にセットされる。関数がポインタをそのオブジェクトのインターフェイスに返すたびに、関数はそのポインタを介してAddRefを呼び出し、参照カウントをインクリメントしなければならない。また、各々のAddRef呼び出しとReleaseの呼び出しを照合しなければならない。ポインタを破棄する前に、そのポインタを介してReleaseを呼び出さなければならない。オブジェクトの参照カウントが0になると、オブジェクトは破棄され、それに対するすべてのインターフェイスが無効になる。
IUnknown::QueryInterface − このIUnknownメソッドは、オブジェクトが固有のインターフェイスをサポートするかどうかを決める。オブジェクトがインターフェイスをサポートする場合、QueryInterfaceはポインタをそのインターフェイスに返す。これで、そのインターフェイスに含まれるメソッドを使用して、オブジェクトと会話することができる。QueryInterfaceがポインタをインターフェイスに返すことに成功した場合、それは暗黙にAddRefを呼び出し、参照カウントをインクリメントする。このため、アプリケーションは、インターフェイスへのポインタを破棄する前に、Releaseを呼び出し、参照カウントをデクリメントしなければならない。
ミップマップ
ミップマップは、それぞれのテクスチャは解像度が漸次低くなる、同じイメージを事前にフィルタリングした表現である。ミップマップ中の各フィルタリングイメージまたはレベルは、以前のレベルより2の累乗ずつ小さくなっている。高解像度レベルは、ビューアに近いオブジェクトに使用される。オブジェクトが遠くに移動するにつれ、より低解像度のレベルが使用される。ミップマッピングは、テクスチャのレンダリングクオリティを向上する、計算上費用のかからない方法である。詳細については、「Direct3D直接モード」の「テクスチャ」の「ミップマップ」を参照すること。
テクスチャマップフォーマット
広範なテクスチャピクセルフォーマットが、Microsoft® DirectX® ハードウェアエミュレーションレイヤでサポートされている。これらのフォーマットについては、「DirectDrawリファレンス」の「テクスチャマップフォーマット」の表を参照すること。

トップに戻る トップに戻る
© 1999 Microsoft and/or its suppliers. All rights reserved. Terms of Use.