C++構造体

Microsoft® Direct3D®保持モードのC++構造体は、次の通りである。

D3DRMANIMATIONKEY

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つ。
dvTime
D3DVALUE型の任意の単位とメンバの時間値。
dwId
キー識別子。
dqRotateKey
回転を定義するD3DRMQUATERNION構造体タイプの値。
dvScaleKey
スケールを定義するD3DVECTOR構造体タイプの値。
dvPositionKey
位置を定義するD3DVECTOR構造体タイプの値。

D3DRMBOX

IDirect3DRMMesh::GetBoxIDirect3DRMMeshBuilder3::GetBoxメソッドで取得する矩形範囲を定義する。

構文

typedef struct _D3DRMBOX {
    D3DVECTOR min, max;
}D3DRMBOX;
typedef D3DRMBOX *LPD3DRMBOX;

メンバ

min, max
矩形範囲を定義する値。これらの値はD3DVECTOR構造体である。

参照

D3DVECTOR, IDirect3DRMMesh::GetBox, IDirect3DRMMeshBuilder3::GetBox

D3DRMIMAGE

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構造体のポインタ。この構造体は、D3DRMIMAGErgbメンバがFALSEの場合にだけ使用される。

参照

IDirect3DRM3::CreateTexture, IDirect3DRMTexture3::GetImage

D3DRMLOADMEMORY

アプリケーションがD3DRMLOAD_FROMMEMORYを指定してIDirect3DRM3::Loadメソッド(または他のLoadメソッド)を使用したときにロードされるリソースを示す。

構文

typedef struct _D3DRMLOADMEMORY {
    LPVOID lpMemory;
    DWORD  dSize;
} D3DRMLOADMEMORY, *LPD3DRMLOADMEMORY;

メンバ

lpMemory
ロードされるメモリブロック。
dSize
ロードされるメモリブロックのサイズをバイト単位で示す。

参照

IDirect3DRM3::Load, IDirect3DRMAnimationSet2::Load, IDirect3DRMFrame3::Load, IDirect3DRMMeshBuilder3::Load, D3DRMLOADOPTIONS, D3DRMLOADRESOURCE

D3DRMLOADRESOURCE

アプリケーションがD3DRMLOAD_FROMRESOURCEを指定してIDirect3DRM3::Loadメソッド(または他のLoadメソッドの1つ)を使ったときにロードされるリソースを示す。

構文

typedef struct _D3DRMLOADRESOURCE {
    HMODULE hModule;
    LPCTSTR lpName;
    LPCTSTR lpType;
} D3DRMLOADRESOURCE, *LPD3DRMLOADRESOURCE;

メンバ

hModule
ロードされるリソースを含むモジュールのハンドル。リソースが、呼び出し元の実行可能ファイル、またはリソースを使用しているダイナミックリンクライブラリ(DLL)にアタッチされているときは、このメンバにNULLを指定する。

lpName
ロードされるリソースの名前。たとえば、リソースがメッシュであれば、このメンバにメッシュファイルの名前を指定する。
lpType
リソースを識別するユーザ定義のタイプ。

注意

lpNamelpTypeメンバの上位ワードが0の場合、下位ワードは、その名前の整数識別子または指定されたリソースのタイプを示す。そうでなければ、これらのパラメータはNULLで終わる文字列へのロングポインタである。文字列の先頭文字がシャープ記号(#)のときは、残りの文字はリソースの名前やタイプの整数識別子を示す10進数を表す。たとえば、文字列"#258"は整数識別子258を表す。名前の代わりに整数識別子を参照すれば、リソースが必要とするメモリの量を減らすことができる。

D3DRMLOAD_FROMRESOURCEを指定してLoadメソッドを使えば、アプリケーションでリソースを探したりアンロックする必要はない。この場合、システムが自動的にその処理を行う。

参照

IDirect3DRM3::Load, IDirect3DRMAnimationSet2::Load, IDirect3DRMFrame3::Load, IDirect3DRMMeshBuilder3::Load, D3DRMLOADMEMORY, D3DRMLOADOPTIONS

D3DRMMATERIALOVERRIDE

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
テクスチャインターフェイスへのポインタ。

D3DRMPALETTEENTRY

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つである。

参照

D3DRMIMAGE, D3DRMPALETTEFLAGS

D3DRMPICKDESC

IDirect3DRMPickedArray::GetPickメソッドによって取得された、ピックの位置、面、グループ識別子を格納する。

構文

typedef struct _D3DRMPICKDESC {
    ULONG       ulFaceIdx;
    LONG        lGroupIdx;
    D3DVECTOR   vPosition;
} D3DRMPICKDESC, *LPD3DRMPICKDESC;

メンバ

ulFaceIdx
取得されたオブジェクトの面のインデックス。
lGroupIdx
取得されたオブジェクトのグループ識別子。
vPosition
取得されたオブジェクトの位置を示す値。この値はD3DVECTOR構造体である。

参照

D3DVECTOR, IDirect3DRMPickedArray::GetPick

D3DRMPICKDESC2

IDirect3DRMPicked2Array::GetPickメソッドによって取り出された面やグループの識別子、ピックの位置、頂点の水平および垂直テクスチャ座標、頂点の法線およびオブジェクトの色を格納する。

構文

typedef struct _D3DRMPICKDESC2
{
    ULONG	ulFaceIdx;
    LONG	lGroupIdx;
    D3DVECTOR	dvPosition;
    D3DVALUE	tu;
    D3DVALUE	tv;
    D3DVECTOR	dvNormal;
    D3DCOLOR	dcColor;

} D3DRMPICKDESC2, *LPD3DRMPICKDESC2;

メンバ

ulFaceIdx
取得されたオブジェクトの面のインデックス。
lGroupIdx
取得されたオブジェクトのグループ識別子。
vPosition
取得されたオブジェクトの位置を示す値。この値はD3DVECTOR構造体である。
tu, tv
頂点の水平および垂直テクスチャ座標。
dvNormal
頂点の法線ベクトル
dcColor
頂点の色。

D3DRMPMESHLOADSTATUS

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

D3DRMQUATERNION

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

D3DRMRAY

光線の方向と開始位置をIDirect3DRMFrame3::RayPickに定義する。

構文

typedef struct _D3DRMRAY
{   D3DVECTOR dvDir;
    D3DVECTOR dvPos;
} D3DRMRAY, *LPD3DRMRAY;

メンバ

dvDir
光線ピックで用いられる光線の方向。
dvPos
光線ピックで用いられる光線の開始位置。

D3DRMVECTOR4D

スクリーン座標を記述する。この構造体は、IDirect3DRMViewport2::TransformおよびIDirect3DRMViewport2::TransformVectorsメソッドによる変換の出力先として、およびIDirect3DRMViewport2::InverseTransformおよびIDirect3DRMViewport2::InverseTransformVectorsメソッドによる変換のソースとして使用される。

構文

typedef struct _D3DRMVECTOR4D {
    D3DVALUE x;
    D3DVALUE y;
    D3DVALUE z;
    D3DVALUE w;
}D3DRMVECTOR4D;
typedef D3DRMVECTOR4D, *LPD3DRMVECTOR4D;

メンバ

x, y, z, w
D3DVALUE型の値。変換結果が入る。

参照

IDirect3DRMViewport2::Transform, IDirect3DRMViewport2::TransformVectors, IDirect3DRMViewport2::InverseTransform, IDirect3DRMViewport2::InverseTransformVectors

D3DRMVERTEX

Direct3DRMMeshオブジェクト中の頂点を記述する。

構文

typedef struct _D3DRMVERTEX{
    D3DVECTOR position;
    D3DVECTOR normal;
    D3DVALUE  tu, tv;
    D3DCOLOR  color;
} D3DRMVERTEX;

メンバ

position
頂点の位置。
normal
頂点の法線ベクトル。
tu, tv
頂点の水平および垂直テクスチャ座標。
color
頂点の色。

参照

IDirect3DRMMesh::GetVertices, IDirect3DRMMesh::SetVertices


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