Microsoft® Direct3D®保持モードのC++構造体は、次の通りである。
IDirect3DRMAnimation2::AddKeyメソッド、GetKeysメソッド、ModifyKeyメソッドが使用するキーを定義する。
構文
typedef struct _D3DRMANIMATIONKEY { DWORD dwSize; DWORD dwKeyType; D3DVALUE dvTime; DWORD dwId ; union { D3DRMQUATERNION dqRotateKey; D3DVECTOR dvScaleKey; D3DVECTOR dvPositionKey; }; } D3DRMANIMATIONKEY; typedef D3DRMANIMATIONKEY *LPD3DRMANIMATIONKEY;
メンバ
- dwSize
- アニメーションのサイズ。
- dwKeyType
- キーのタイプ。アニメーションの再生方法を定義するD3DRMANIMATIONOPTIONS定数の1つ。
- dwId
- キー識別子。
- dqRotateKey
- 回転を定義するD3DRMQUATERNION構造体タイプの値。
- dvScaleKey
- スケールを定義するD3DVECTOR構造体タイプの値。
- dvPositionKey
- 位置を定義するD3DVECTOR構造体タイプの値。
IDirect3DRMMesh::GetBoxやIDirect3DRMMeshBuilder3::GetBoxメソッドで取得する矩形範囲を定義する。
構文
typedef struct _D3DRMBOX { D3DVECTOR min, max; }D3DRMBOX; typedef D3DRMBOX *LPD3DRMBOX;
メンバ
参照
D3DVECTOR, IDirect3DRMMesh::GetBox, IDirect3DRMMeshBuilder3::GetBox
IDirect3DRM3::CreateTextureメソッドによってテクスチャにアタッチされるイメージを記述する。IDirect3DRMTexture3::GetImageは、このイメージのアドレスを返す。
構文
typedef struct _D3DRMIMAGE { int width, height; int aspectx, aspecty; int depth; int rgb; int bytes_per_line; void *buffer1; void *buffer2; unsigned long red_mask; unsigned long green_mask; unsigned long blue_mask; unsigned long alpha_mask; int palette_size; D3DRMPALETTEENTRY *palette; }D3DRMIMAGE; typedef D3DRMIMAGE, *LPD3DRMIMAGE;
メンバ
- width, height
- ピクセル単位でのイメージの幅と高さ。
- aspectx, aspecty
- 非正方形ピクセルのアスペクト比。
- depth
- ピクセル当たりのビット数。
- rgb
- ピクセルがRGB値であるかパレットインデックスであるかを示すフラグ。このメンバがFALSEの場合、ピクセルはパレットのインデックスを示す。このメンバがTRUEのときは、ピクセルはコード化されたRGB値である。
- bytes_per_line
- 1ライン当たりのバイト数。この値は4の倍数である。
- buffer1
- レンダリングが行われるメモリ(最初のバッファ)のアドレス。
- buffer2
- ダブルバッファリングの2番目のレンダリングバッファ。シングルバッファリングのときはNULLを設定する。
- red_mask, green_mask, blue_mask, alpha_mask
- RGBピクセルまたはピクセルパレットインデックスのマスク。rgbがTRUEのとき、これらのメンバはピクセルの赤、緑、青部分のマスクである。rgbがFALSEのときは、パレット中で重要な赤、緑、青の各要素ビットのマスクである。たとえば多くのスーパーVGA(SVGA)ディスプレイでは、使用する赤、緑、青の度合は64であるため、すべてのマスクは0xfcにセットされる。
- palette_size
- パレットエントリの数。
- palette
- 使用されるカラーパレットを示すD3DRMPALETTEENTRY構造体のポインタ。この構造体は、D3DRMIMAGEのrgbメンバがFALSEの場合にだけ使用される。
参照
アプリケーションがD3DRMLOAD_FROMMEMORYを指定してIDirect3DRM3::Loadメソッド(または他のLoadメソッド)を使用したときにロードされるリソースを示す。
構文
typedef struct _D3DRMLOADMEMORY { LPVOID lpMemory; DWORD dSize; } D3DRMLOADMEMORY, *LPD3DRMLOADMEMORY;
メンバ
参照
IDirect3DRM3::Load, IDirect3DRMAnimationSet2::Load, IDirect3DRMFrame3::Load, IDirect3DRMMeshBuilder3::Load, D3DRMLOADOPTIONS, D3DRMLOADRESOURCE
アプリケーションがD3DRMLOAD_FROMRESOURCEを指定してIDirect3DRM3::Loadメソッド(または他のLoadメソッドの1つ)を使ったときにロードされるリソースを示す。
構文
typedef struct _D3DRMLOADRESOURCE { HMODULE hModule; LPCTSTR lpName; LPCTSTR lpType; } D3DRMLOADRESOURCE, *LPD3DRMLOADRESOURCE;
メンバ
注意
lpNameやlpTypeメンバの上位ワードが0の場合、下位ワードは、その名前の整数識別子または指定されたリソースのタイプを示す。そうでなければ、これらのパラメータはNULLで終わる文字列へのロングポインタである。文字列の先頭文字がシャープ記号(#)のときは、残りの文字はリソースの名前やタイプの整数識別子を示す10進数を表す。たとえば、文字列"#258"は整数識別子258を表す。名前の代わりに整数識別子を参照すれば、リソースが必要とするメモリの量を減らすことができる。
D3DRMLOAD_FROMRESOURCEを指定してLoadメソッドを使えば、アプリケーションでリソースを探したりアンロックする必要はない。この場合、システムが自動的にその処理を行う。
参照
IDirect3DRM3::Load, IDirect3DRMAnimationSet2::Load, IDirect3DRMFrame3::Load, IDirect3DRMMeshBuilder3::Load, D3DRMLOADMEMORY, D3DRMLOADOPTIONS
IDirect3DRMFrame3::SetMaterialOverrideメソッドとIDirect3DRMFrame3::GetMaterialOverrideメソッドのオーバーライドを記述する。
構文
typedef struct _D3DRMMATERIALOVERRIDE { DWORD dwSize; DWORD dwFlags; D3DCOLORVALUE dcDiffuse; D3DCOLORVALUE dcAmbient; D3DCOLORVALUE dcEmissive; D3DCOLORVALUE dcSpecular; D3DVALUE dvPower; LPUNKNOWN lpD3DRMTex; } D3DRMMATERIALOVERRIDE, *LPD3DRMMATERIALOVERRIDE;
メンバ
- dwSize
- この構造体のバイトサイズ。
- dwFlags
- この構造体のどのフィールドが有効かを示す、フラグの論理的組み合わせ。可能な値は次の通りである。
- D3DRMMATERIALOVERRIDE_DIFFUSE_ALPHAONLY
- D3DRMMATERIALOVERRIDE_DIFFUSE_RGBONLY
- D3DRMMATERIALOVERRIDE_DIFFUSE
- D3DRMMATERIALOVERRIDE_AMBIENT
- D3DRMMATERIALOVERRIDE_EMISSIVE
- D3DRMMATERIALOVERRIDE_SPECULAR
- D3DRMMATERIALOVERRIDE_POWER
- D3DRMMATERIALOVERRIDE_TEXTURE
- D3DRMMATERIALOVERRIDE_ALL
- dcDiffuse
- D3DCOLORVALUE型の拡散RGBAカラー設定。
- dcAmbient
- D3DCOLORVALUE型のアンビエントRGBカラー設定。
- dcEmissive
- D3DCOLORVALUE型の放射RGBカラー設定。
- dcSpecular
- D3DCOLORVALUE型の反射RGBカラー設定。
- dvPower
- D3DVALUE型の強度設定。
- lpD3DRMTex
- テクスチャインターフェイスへのポインタ。
D3DRMIMAGE構造体で使用されるカラーパレットを記述する。この構造体は、D3DRMIMAGE構造体のrgbメンバにFALSEが指定されているときのみ利用される(TRUEが指定されているときは、RGB値が用いられる)。
構文
typedef struct _D3DRMPALETTEENTRY { unsigned char red; unsigned char green; unsigned char blue; unsigned char flags; }D3DRMPALETTEENTRY; typedef D3DRMPALETTEENTRY, *LPD3DRMPALETTEENTRY;
メンバ
- red, green, blue
- パレットを定義する原色要素を定義する値。0から255の範囲の値を指定することができる。
- flags
- レンダリング時にパレットがどのように使用されるかを定義する値。この値はD3DRMPALETTEFLAGS列挙型のメンバの1つである。
参照
IDirect3DRMPickedArray::GetPickメソッドによって取得された、ピックの位置、面、グループ識別子を格納する。
構文
typedef struct _D3DRMPICKDESC { ULONG ulFaceIdx; LONG lGroupIdx; D3DVECTOR vPosition; } D3DRMPICKDESC, *LPD3DRMPICKDESC;
メンバ
参照
IDirect3DRMPicked2Array::GetPickメソッドによって取り出された面やグループの識別子、ピックの位置、頂点の水平および垂直テクスチャ座標、頂点の法線およびオブジェクトの色を格納する。
構文
typedef struct _D3DRMPICKDESC2 { ULONG ulFaceIdx; LONG lGroupIdx; D3DVECTOR dvPosition; D3DVALUE tu; D3DVALUE tv; D3DVECTOR dvNormal; D3DCOLOR dcColor; } D3DRMPICKDESC2, *LPD3DRMPICKDESC2;
メンバ
IDirect3DRMProgressiveMesh::Loadメソッドを使用してロードされたプログレッシブメッシュのロード状態を格納する。この構造体は、IDirect3DRMProgressiveMesh::GetLoadStatusメソッドを使用して取得できる。
構文
typedef struct _D3DRMPMESHLOADSTATUS { DWORD dwSize; DWORD dwPMeshSize; DWORD dwBaseMeshSize; DWORD dwBytesLoaded; DWORD dwVerticesLoaded; DWORD dwFacesLoaded; DWORD dwFlags; } D3DRMPMESHLOADSTATUS; typedef D3DRMPMESHLOADSTATUS *LPD3DRMPMESHLOADSTATUS;
メンバ
- dwSize
- 構造体のサイズ。
- dwPMeshSize
- プログレッシブメッシュのバイト単位の全体サイズ。
- dwBaseMeshSize
- ベースメッシュのバイト単位のサイズ。
- dwBytesLoaded
- ロードされた合計バイト数。
- dwVerticesLoaded
- ロードされた頂点の数。
- dwFacesLoaded
- ロードされた面の数。
- dwFlags
- プログレッシブメッシュロードの状態を示すフラグ。以下の値の1つを取ることができる。
- D3DRMPMESHSTATUS_VALID − プログレッシブメッシュオブジェクトは、有効なデータを含む。
- D3DRMPMESHSTATUS_INTERRUPTED − ダウンロードは、アプリケーションがIDirect3DRMProgressiveMesh::Abortを使ったか、または接続が失われたかのいずれかの理由で割り込みを受けた。
- D3DRMPMESHSTATUS_BASEMESHCOMPLETE − ベースメッシュのダウンロードが完了した。
- D3DRMPMESHSTATUS_COMPLETE − すべてのデータのダウンロードが完了した。
- D3DRMPMESHSTATUS_RENDERABLE − メッシュのレンダリングは、現在可能である。
参照
IDirect3DRMProgressiveMesh::GetLoadStatus, IDirect3DRMProgressiveMesh::Load
IDirect3DRMAnimation2::AddRotateKeyメソッドで用いられる回転と、IDirect3DRMFrame3::SetQuaternionで用いられる4元数を記述する。また、Direct3Dの数学関数のいくつかでも使用される。
構文
typedef struct _D3DRMQUATERNION { D3DVALUE s; D3DVECTOR v; }D3DRMQUATERNION; typedef D3DRMQUATERNION, *LPD3DRMQUATERNION;
参照
IDirect3DRMAnimation2::AddRotateKey, IDirect3DRMFrame3::SetQuaternion, D3DRMQuaternionFromRotation, D3DRMQuaternionMultiply, D3DRMQuaternionSlerp, D3DRMMatrixFromQuaternion
光線の方向と開始位置をIDirect3DRMFrame3::RayPickに定義する。
構文
typedef struct _D3DRMRAY { D3DVECTOR dvDir; D3DVECTOR dvPos; } D3DRMRAY, *LPD3DRMRAY;
メンバ
スクリーン座標を記述する。この構造体は、IDirect3DRMViewport2::TransformおよびIDirect3DRMViewport2::TransformVectorsメソッドによる変換の出力先として、およびIDirect3DRMViewport2::InverseTransformおよびIDirect3DRMViewport2::InverseTransformVectorsメソッドによる変換のソースとして使用される。
構文
typedef struct _D3DRMVECTOR4D { D3DVALUE x; D3DVALUE y; D3DVALUE z; D3DVALUE w; }D3DRMVECTOR4D; typedef D3DRMVECTOR4D, *LPD3DRMVECTOR4D;
メンバ
参照
IDirect3DRMViewport2::Transform, IDirect3DRMViewport2::TransformVectors, IDirect3DRMViewport2::InverseTransform, IDirect3DRMViewport2::InverseTransformVectors
Direct3DRMMeshオブジェクト中の頂点を記述する。
構文
typedef struct _D3DRMVERTEX{ D3DVECTOR position; D3DVECTOR normal; D3DVALUE tu, tv; D3DCOLOR color; } D3DRMVERTEX;
メンバ
参照
IDirect3DRMMesh::GetVertices, IDirect3DRMMesh::SetVertices
トップに戻る
© 1999 Microsoft and/or its suppliers. All rights reserved. Terms of Use.