IDirect3DRMDevice3

アプリケーションは、IDirect3DRMDevice3IDirect3DRMDevice2およびIDirect3DRMDeviceインターフェイスを使用して出力デバイスと会話する。概要については、「出力デバイス」を参照すること。

IDirect3DRMDevice3は、旧のIDirect3DRMDevice2IDirect3DRMDeviceインターフェイス中のすべてのメソッドを含むが、ある基準に基づいてテクスチャフォーマットを選択するFindPreferredTextureFormatメソッドを追加し、冗長な状態変更 (状態に現在の値と等しい値の設定) を排除する、次の4つのメソッドも追加する。GetStateChangeOptionsLightStateChangeRenderStateChangeおよびSetStateChangeOptionsである。

IDirect3DRMDevice2は、IDirect3DRMDeviceのすべてのメソッドに加えて、透明性の制御を可能にする2つのメソッド、GetRenderModeSetRenderMode、1つの初期化メソッドInitFromSurface、さらにIDirect3DRMDeviceオブジェクトではなくIDirect3DRMDevice2オブジェクトを取り出したり初期化する2つの変更メソッドGetDirect3DDevice2InitFromD3D2を含む。

IDirect3DRMDevice3またはIDirect3DRMDevice2インターフェイスを、それぞれIDirect3DRM3またはIDirect3DRM2インターフェイスから作成するか、あるいは対応するIDirect3DRMDevice3メソッド、InitFromClipperInitFromD3D2、またはInitFromSurfaceを使用してどちらかのインターフェイスを初期化する場合、そのインターフェイスはIDirect3DDevice3またはIDirect3DDevice2直接モードデバイスとともにそれぞれ機能する。IDirect3DDevice3IDirect3DDevice2デバイスは、DrawPrimitiveインターフェイスとともに実行バッファもサポートし、プログレッシブメッシュ、アルファブレンディング、透明オブジェクトのソートに必要となる。IDirect3DRMインターフェイスから旧のIDirect3DRMDeviceインターフェイスを作成する場合、IDirect3DRMDevice保持モードインターフェイスはIDirect3DDevice直接モードデバイスとともに機能する。

InitFromClipperInitFromSurfaceメソッドは、IDirect3DRM3::CreateDeviceを使用してDirect3DRMDevice3オブジェクトを生成する。

InitFromD3D2メソッドは、IDirect3D2直接モードオブジェクトとIDirect3DDevice2直接モードデバイスを使用してIDirect3DDevice2 Direct3D保持モードデバイスを初期化する。

ユーザは、引き続きIDirect3DRMDevice3IDirect3DRMDevice2IDirect3DRMDeviceインターフェイスの間を照会することができる。主な相違点は、基底の直接モードデバイスの生成方法にある。

IDirect3DRMDevice3インターフェイスのメソッドは、以下のグループにまとめることができる。
バッファカウント GetBufferCount
SetBufferCount
カラーモデル GetColorModel
ディザリング GetDither
SetDither
冗長な状態変更の削除 GetStateChangeOptions
LightStateChange
RenderStateChange
SetStateChangeOptions
初期化 Init
InitFromClipper
InitFromD3D2
InitFromSurface
その他 GetDirect3DDevice2
GetHeight
GetTrianglesDrawn
GetViewports
GetWidth
GetWireframeOptions
Update
通知 AddUpdateCallback
DeleteUpdateCallback
レンダリングクオリティ GetQuality
SetQuality
シェーディング GetShades
SetShades
テクスチャ FindPreferredTextureFormat
GetTextureQuality
SetTextureQuality
透明性 GetRenderMode
SetRenderMode

すべてのCOMインターフェイスと同様、IDirect3DRMDevice3インターフェイスはIUnknownインターフェイスメソッドを継承する。IUnknownインターフェイスは、以下の3つのメソッドをサポートする。
AddRef
QueryInterface
Release

さらに、IDirect3DRMDevice3インターフェイスは、IDirect3DRMObjectインターフェイスから以下のメソッドを継承する。
AddDestroyCallback
Clone
DeleteDestroyCallback
GetAppData
GetClassName
GetName
SetAppData
SetName

Direct3DRMDevice3オブジェクトは、IDirect3DRM3::CreateDeviceメソッドを呼び出すことによって取得される。

IDirect3DRMDevice3::AddUpdateCallback

IDirect3DRMDevice3

デバイスに変化が発生したとき、アプリケーションに警告を与えるコールバック関数を追加する。システムは、アプリケーションがIDirect3DRMDevice3::Updateメソッドを使ったときにはいつも、必ずこのコールバック関数を呼び出す。

構文

HRESULT AddUpdateCallback(
  D3DRMDEVICE3UPDATECALLBACK d3drmUpdateProc,
  LPVOID arg
  );

パラメータ

d3drmUpdateProc
アプリケーション定義コールバック関数D3DRMDEVICE3UPDATECALLBACKへのポインタ。
arg
更新コールバック関数に渡すプライベートデータへのポインタ。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。可能な戻り値のリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

IDirect3DRMDevice2::AddUpdateCallbackIDirect3DRMDevice::AddUpdateCallbackは、d3drmUpdateProcパラメータに対してD3DRMUPDATECALLBACKタイプのコールバックをとる。DirectX version 6.0については、IDirect3DRMDevice3は、より新しいD3DRMDEVICE3UPDATECALLBACKコールバックを導入している。

参照

IDirect3DRMDevice3::DeleteUpdateCallback, IDirect3DRMDevice3::Update, D3DRMDEVICE3UPDATECALLBACK

IDirect3DRMDevice3::DeleteUpdateCallback

IDirect3DRMDevice3

IDirect3DRMDevice3::AddUpdateCallbackメソッドを使って追加された更新コールバック関数を削除する。

構文

HRESULT DeleteUpdateCallback(
  D3DRMDEVICE3UPDATECALLBACK d3drmUpdateProc,
  LPVOID arg
  );

パラメータ

d3drmUpdateProc
アプリケーション定義のD3DRMDEVICE3UPDATECALLBACKコールバック関数のアドレス。
arg
更新コールバック関数に渡されるプライベートなデータへのポインタ。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。可能な戻り値のリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

IDirect3DRMDevice2::DeleteUpdateCallbackIDirect3DRMDevice::DeleteUpdateCallbackは、d3drmUpdateProcパラメータに対してD3DRMUPDATECALLBACKタイプのコールバックをとる。DirectX version 6.0については、IDirect3DRMDevice3は、より新しいD3DRMDEVICE3UPDATECALLBACKコールバックを導入している。

参照

IDirect3DRMDevice3::AddUpdateCallback, IDirect3DRMDevice3::Update, D3DRMDEVICE3UPDATECALLBACK

IDirect3DRMDevice3::FindPreferredTextureFormat

IDirect3DRMDevice3

ユーザの基準を満たし、下層の直接モードデバイスがサポートするテクスチャフォーマットを検索する。テクスチャキャッシュの最適なパフォーマンスを得るためには、この関数を使用してテクスチャサーフェスのピクセルフォーマットを選択する。

構文

HRESULT FindPreferredTextureFormat(
  DWORD dwBitDepths,
  DWORD dwFlags,
  LPDDPIXELFORMAT  lpDDPF);

パラメータ

dwBitDepths
要求されたテクスチャフォーマットビット深度。ビット深度が一切受容できないことを示すには、0を指定する。次のDirectDraw ビット深度フラグの1つ以上の論理的な組み合わせを使用して、その他の値を指定する。
DDBD_4
DDBD_8
DDBD_16
DDBD_24
DDBD_32
dwFlags
追加の要件を指定するフラグ。デフォルトの設定を使用するには、0を指定する。その他の有効値は、次の値の1つ以上の論理的な組み合わせでなければならない。
D3DRMFPTF_ALPHA
返されるテクスチャフォーマットには、アルファチャネルがなければならない。
D3DRMFPTF_NOALPHA
返されるテクスチャフォーマットには、アルファチャネルがあってはならない。アルファチャネルの欠落を希望するが、欠落を必須としないことを示すには、D3DRMFPTF_ALPHAD3DRMFPTF_NOALPHAの両フラグを省略する。
D3DRMFPTF_PALETTIZED
D3DRMFPTF_PALETTIZED
返されるテクスチャフォーマットは、パレット化しなければならない。
D3DRMFPTF_NOTPALETTIZED
返されるテクスチャフォーマットは、パレット化してはならない。パレットの欠落を希望するが、欠落を必須としないことを示すには、D3DRMFPTF_PALETTIZEDD3DRMFPTF_NOTPALETTIZEDの両フラグを省略する。
lpDDPF
テクスチャフォーマットを受け取るポインタ。

戻り値

次の値のうち1つを返す。
 
D3DRMERR_TEXTUREFORMATNOTFOUND
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DD_OK

FindPreferredTextureFormatは、受入可能なフォーマットを検索できない場合D3DRMERR_TEXTUREFORMATNOTFOUNDを返す。

注意

このメソッドは、DirectX version 6.0とともに導入された。

IDirect3DRMDevice3::GetBufferCount

IDirect3DRMDevice3

IDirect3DRMDevice3::SetBufferCountメソッドに対する呼び出しでセットされた値を取得する。

構文

DWORD GetBufferCount( ); 

戻り値

バッファの数であり、シングルバッファリングに対しては1、ダブルバッファリングに対しては2、などを返す。

IDirect3DRMDevice3::GetColorModel

IDirect3DRMDevice3

デバイスのカラーモデルを取得する。

構文

D3DCOLORMODEL GetColorModel( );

戻り値

Direct3Dカラーモデル(RGBまたはモノクロ)を記述するD3DCOLORMODEL列挙型から値を返す。

参照

カラーモデル

IDirect3DRMDevice3::GetDirect3DDevice2

IDirect3DRMDevice3

IDirect3DDevice2直接モードデバイスへのポインタを取得する。

構文

HRESULT GetDirect3DDevice2(
  LPDIRECT3DDEVICE2 *lplpD3DDevice
  );

パラメータ

lplpD3DDevice
IDirect3DDevice2直接モードデバイスオブジェクトへのポインタを使用して初期化されるポインタのアドレス。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。可能な戻り値のリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

IDirect3DDevice2デバイスは、DrawPrimitiveインターフェイスとともに実行バッファもサポートし、プログレッシブメッシュ、アルファブレンディング、および透明オブジェクトのソートに必要となる。

IDirect3DRMDevice3::GetDither

IDirect3DRMDevice3

デバイスのディザリングフラグを取得する。

構文

BOOL GetDither( );

戻り値

ディザリングフラグがセットされていればTRUE、そうでなければFALSEを返す。

参照

IDirect3DRMDevice3::SetDither

IDirect3DRMDevice3::GetHeight

IDirect3DRMDevice3

デバイスの高さをピクセル単位で取得する。このメソッドは、便利な関数である。

構文

DWORD GetHeight( );

戻り値

高さを返す。

IDirect3DRMDevice3::GetQuality

IDirect3DRMDevice3

デバイスのレンダリングクオリティを取得する。

構文

D3DRMRENDERQUALITY GetQuality( );

戻り値

D3DRMRENDERQUALITY列挙型で表された列挙型の1つまたは複数のメンバを返す。

参照

IDirect3DRMDevice3::SetQuality

IDirect3DRMDevice3::GetRenderMode

IDirect3DRMDevice3

現在の透明性フラグを取得する。

構文

DWORD GetRenderMode( );

戻り値

現在の透明性フラグの値を返す。

注意

透明性フラグは、以下の値を持つ。
フラグ
フラグのセットなし(デフォルト) 0
D3DRMRENDERMODE_BLENDEDTRANSPARENCY 1
D3DRMRENDERMODE_DISABLESORTEDALPHAZWRITE 32
D3DRMRENDERMODE_LIGHTINMODELSPACE 8
D3DRMRENDERMODE_SORTEDTRANSPARENCY 2
D3DRMRENDERMODE_VIEWDEPENDENTSPECULAR 16

参照

IDirect3DRMDevice3::SetRenderMode

IDirect3DRMDevice3::GetShades

IDirect3DRMDevice3

シェーディングに使用される色のランプでのシェード数を取得する。

構文

DWORD GetShades( );

戻り値

シェード数を返す。

参照

IDirect3DRMDevice3::SetShades

IDirect3DRMDevice3::GetStateChangeOptions

IDirect3DRMDevice3

レンダリングまたは照明状態に関連付けられた状態変更オプションフラグを取得する。詳細については、「冗長な状態変更の削除」を参照すること。

構文

HRESULT GetStateChangeOptions(
  DWORD dwStateClass,
  DWORD dwStateNum,
  LPDWORD pdwFlags
  );

パラメータ

該当する状態が属する状態のクラス。この値には、D3DRMSTATECHANGE_LIGHTまたはD3DRMSTATECHANGE_RENDERをセットできる。
dwStateNum
該当するD3DRENDERSTATEまたはD3DLIGHTSTATEの番号。値0は、所定のクラスのすべての状態が影響を受けることを示す。
pdwFlags
オプションフラグへのポインタ。次の値のどれか1つを含む。
D3DRMSTATECHANGE_NONVOLATILE
D3DRMSTATECHANGE_VOLATILE

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。可能な戻り値のリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

このメソッドは、DirectX version 6.0とともに導入された。

次のコード例は、テクスチャハンドルレンダリング状態に関するオプションを取得する。

lpDirect3DRMDev3->GetStateChangeOptions(D3DRMSTATECHANGE_RENDER,
                          D3DRENDERSTATE_TEXTUREHANDLE, &dwFlags);

参照

IDirect3DRMDevice3::SetStateChangeOptions

IDirect3DRMDevice3::GetTextureQuality

IDirect3DRMDevice3

デバイスの現在のテクスチャクオリティパラメータを取得する。テクスチャクオリティは、RGBデバイスだけに関係する。

構文

D3DRMTEXTUREQUALITY GetTextureQuality( );

戻り値

D3DRMTEXTUREQUALITY列挙型のメンバの1つを返す。

参照

IDirect3DRMDevice3::SetTextureQuality

IDirect3DRMDevice3::GetTrianglesDrawn

IDirect3DRMDevice3

デバイスが作成されて以降、そのデバイスに描画された三角形の数を取得する。このメソッドは、便利な関数である。

構文

DWORD GetTrianglesDrawn( );

戻り値

三角形の数を返す。

注意

三角形の数は、レンダラに渡されたが、裏(カメラの向きと逆の面)に隠されたために描画されなかったものを含む。視錐台の外側にあって拒絶された三角形は含まれない。

IDirect3DRMDevice3::GetViewports

IDirect3DRMDevice3

デバイスから現在構築されているビューポートを表すDirect3DRMViewportArrayオブジェクトを構築する。

構文

HRESULT GetViewports(
  LPDIRECT3DRMVIEWPORTARRAY *lplpViewports
  );

パラメータ

lplpViewports
呼び出しが成功した場合に、有効なDirect3DRMViewportArrayオブジェクトで初期化されるポインタのアドレス。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。可能な戻り値のリストについては、「Direct3D保持モードの戻り値」を参照すること。

IDirect3DRMDevice3::GetWidth

IDirect3DRMDevice3

デバイスのピクセル単位の幅を取得する。このメソッドは、便利な関数である。

構文

DWORD GetWidth( );

戻り値

ピクセル単位で、デバイスの幅を返す。

IDirect3DRMDevice3::GetWireframeOptions

IDirect3DRMDevice3

指定のデバイスのワイヤフレームオプションを取得する。

構文

DWORD GetWireframeOptions( );

戻り値

以下の値のビットごとのOR演算の結果を返す。

D3DRMWIREFRAME_CULL
裏に隠された面は、描画されない。
D3DRMWIREFRAME_HIDDENLINE
ワイヤフレームレンダリングされた線は、隣接のオブジェクトで隠される。

IDirect3DRMDevice3::Init

IDirect3DRMDevice3

Microsoft® Windows®プラットフォームでは未実装である。

構文

HRESULT Init(
  ULONG width,
  ULONG height
  );

IDirect3DRMDevice3::InitFromClipper

IDirect3DRMDevice3

IDirect3DRM3::CreateDeviceを使用して、指定のDirectDrawClipperオブジェクトのIDirect3DDevice2デバイスを初期化する。

構文

HRESULT InitFromClipper(
  LPDIRECTDRAWCLIPPER lpDDClipper,
  LPGUID lpGUID,
  int width,
  int height
  );

パラメータ

lpDDClipper
初期化手段として使用するDirectDrawClipperオブジェクトへのポインタ。
lpGUID
使用するDirect3Dデバイスドライバ。
width, height
ピクセル単位でのデバイスの幅と高さ。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。可能な戻り値のリストについては、「Direct3D保持モードの戻り値」を参照すること。

IDirect3DRMDevice3::InitFromD3D2

IDirect3DRMDevice3

IDirect3D2直接モードオブジェクトとIDirect3DDevice2直接モードデバイスから、IDirect3DRMDevice2保持モードデバイスを初期化する。

構文

HRESULT InitFromD3D2(
  LPDIRECT3D2 lpD3D,
  LPDIRECT3DDEVICE2 lpD3DIMDev
  );

パラメータ

lpD3D
保持モードデバイスを初期化するのに使用するIDirect3D2直接モードオブジェクトへのポインタ。
lpD3DIMDev
保持モードデバイスを初期化するのに使用する IDirect3DDevice2直接モードデバイスへのポインタ。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。可能な戻り値のリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

IDirect3DRMDevice2から初期化されたIDirect3DDevice2デバイスは、DrawPrimitiveインターフェイスとともに実行バッファもサポートし、プログレッシブメッシュ、アルファブレンディング、および透明オブジェクトのソートに必要になる。

IDirect3DRMDevice3::InitFromSurface

IDirect3DRMDevice3

IDirect3DRM3::CreateDeviceを使用して、指定したDirectDrawサーフェスからIDirect3DDevice2デバイスを初期化する。

構文

HRESULT InitFromSurface(
  LPGUID lpGUID,
  LPDIRECTDRAW lpDD,
  LPDIRECTDRAWSURFACE lpDDSBack
  );

パラメータ

lpGUID
使用するDirect3Dデバイスを識別するグローバルユニーク識別子(GUID)へのポインタ。
lpDD
DirectDrawSurfaceを生成したDirectDrawオブジェクトのインターフェイスへのポインタ。
lpDDSBack
DirectDrawSurfaceバックバッファのインターフェイスへのポインタ。そのバックバッファ上でデバイスがレンダリングを行う。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。可能な戻り値のリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

初期化されたIDirect3DRMDevice2デバイスは、DrawPrimitiveインターフェイスとともに実行バッファをサポートし、プログレッシブメッシュ、アルファブレンディング、および透明オブジェクトのソートに必要となる。

IDirect3DRMDevice3::LightStateChange

IDirect3DRMDevice3

照明状態を変更するか、またはDirect3D保持モードにレンダリング状態への変更を通知する。D3DRMSTATECHANGE_NONVOLATILEフラグがレンダリング状態に関連付けられている場合、保持モードはIDirect3DRMDevice3を使用して行った冗長な状態変更を排除する(状態を現在の値に等しい値にセットすることをしない)。詳細については、「冗長な状態変更の削除」を参照すること。

構文

HRESULT LightStateChange(
  DWORD dwStateNum,
  DWORD dwVal,
  DWORD dwFlags
  );

パラメータ

dwStateNum
該当するD3DLIGHTSTATE番号。
dwVal
状態の新しい値。
dwFlags
保持モードがキャッシュのみを更新するかどうかを示すフラグ。このフラグがD3DRMSTATECHANGE_UPDATEONLYにセットされている場合、内部キャッシュに保持されている値のみ更新される。D3DRMSTATECHANGE_UPDATEONLYを使用して、状態変更を示すことができる。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。可能な戻り値のリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

このメソッドは、DirectX version 6.0とともに導入された。

次のコードはマテリアルハンドル照明状態をセットし、D3DRMSTATECHANGE_NONVOLATILEフラグがその状態に関連付けられている場合には冗長な変更を排除する。

lpDirect3DRMDev3->LightStateChange(D3DLIGHTSTATE_MATERIAL, hMat, 0);

次にフォグモードへの変更を示す。

lpDirect3DRMDev3->LightStateChange(D3DLIGHTSTATE_FOGMODE, D3DFOG_NONE,
                                   D3DRMSTATECHANGE_UPDATEONLY);

参照

IDirect3DRMDevice3::SetStateChangeOptions

IDirect3DRMDevice3::RenderStateChange

IDirect3DRMDevice3

レンダリング状態を変更するか、またはレンダリング状態への変更を示す。D3DRMSTATECHANGE_NONVOLATILEフラグがレンダリング状態に関連付けられている場合、保持モードはIDirect3DRMDevice3を使用して行った冗長な状態変更を排除する(状態を現在の値に等しい値にセットすることをしない)。詳細については、「冗長な状態変更の削除」を参照すること。

構文

HRESULT RenderStateChange(
  DWORD dwStateNum,
  DWORD dwVal,
  DWORD dwFlags
  );

パラメータ

dwStateNum
該当するD3DRENDERSTATE番号。
dwVal
状態の新しい値。
dwFlags
キャッシュのみ更新するかどうかを示すフラグ。このフラグがD3DRMSTATECHANGE_UPDATEONLYにセットされている場合、内部キャッシュに保持されている値のみ更新される。D3DRMSTATECHANGE_UPDATEONLYを使用して、状態の変更を示すことができる。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。可能な戻り値のリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

このメソッドは、DirectX version 6.0とともに導入された。

次のコードは塗りつぶしモードレンダリング状態をセットし、D3DRMSTATECHANGE_NONVOLATILEフラグがその状態に関連付けられている場合には冗長な変更を排除する。

lpDirect3DRMDev3->RenderStateChange(D3DRENDERSTATE_FILLMODE,
                          D3DFILL_SOLID, 0);

次のコードは、テクスチャハンドルレンダリング状態への変更を示す。

lpDirect3DRMDev3->RenderStateChange(D3DRENDERSTATE_TEXTUREHANDLE, hTex,
                                    D3DRMSTATECHANGE_UPDATEONLY);

参照

IDirect3DRMDevice3::SetStateChangeOptions

IDirect3DRMDevice3::SetBufferCount

IDirect3DRMDevice3

現在アプリケーションで使用されているバッファの数を設定する。

構文

HRESULT SetBufferCount(
  DWORD dwCount
  );

パラメータ

dwCount
バッファの数を、シングルバッファリングに対しては1、ダブルバッファリングに対しては2などと指定する。デフォルト値は1であり、シングルバッファリングウィンドウ操作に対してのみ有効である。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。可能な戻り値のリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

アプリケーションが、ダブルバッファリングやトリプルバッファリングを行うときは、このメソッドで、使用するバッファ数をシステムに通知し、システムが各フレームに対して、ウィンドウのどの部分をクリアおよび更新するかを計算できるようにしなければならない。

参照

IDirect3DRMDevice3::GetBufferCount

IDirect3DRMDevice3::SetDither

IDirect3DRMDevice3

デバイスのディザリングフラグを設定する。

構文

HRESULT SetDither(
  BOOL bDither
  );

パラメータ

bDither
デバイスの新しいディザリングモード。デフォルトはTRUEである。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。可能な戻り値のリストについては、「Direct3D保持モードの戻り値」を参照すること。

参照

IDirect3DRMDevice3::GetDither

IDirect3DRMDevice3::SetQuality

IDirect3DRMDevice3

デバイスのレンダリングクオリティを設定する。

構文

HRESULT SetQuality (
  D3DRMRENDERQUALITY rqQuality
  );

パラメータ

rqQuality
D3DRMRENDERQUALITY列挙型で表された列挙型の1つまたは複数のメンバ。デフォルト設定値は、D3DRMRENDER_FLATである。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。可能な戻り値のリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

レンダリングクオリティは、デバイスのレンダリング面上で実行されるレンダリングのクオリティの最大値である。

オブジェクトクオリティには、3つのコンポーネントがある。すなわち、シェーディングモード (フラットまたはグーローで、フォンは実装されていない。デフォルトはグーローシェーディング)、照明タイプ (オンまたはオフ) および塗りつぶしモード (ポイント、ワイヤフレームまたはソリッド) である。

デバイスのクオリティを設定するには、SetQualityを用いる。デフォルトでは、デバイスクオリティはD3DRMRENDER_FLAT (フラットシェーディング、照明オンおよびソリッド塗りつぶし) である。

Direct3DRMProgressiveMesh 、またはDirect3DRMMeshBuilder3オブジェクトのクオリティは、それぞれのSetQualityメソッドを用いて設定することができる。デフォルトでは、これらのオブジェクトのクオリティは、D3DRMRENDER_GOURAUD(グーローシェーディング、照明オンおよびソリッド塗りつぶし)である。

ヒント: グーローシェーディングは、詳細レベルを頻繁にまたは素早く変更するプログレッシブメッシュオブジェクトについて、よりよいパフォーマンスを得られる。

Direct3D保持モードは、デバイスやオブジェクトの個々のコンポーネントに対する現在の設定の中で、最も低位のクオリティで、オブジェクトにレンダリングを行う。たとえば、オブジェクトの現在のクオリティ設定がD3DRMRENDER_GOURAUDで、デバイスがD3DRMRENDER_FLATであると、オブジェクトはフラットシェーディング、ソリッド塗りつぶし、および照明オンでレンダリングされる。

オブジェクトの現在のクオリティ設定がD3DRMSHADE_GOURAUD|D3DRMLIGHT_OFF|D3DRMFILL_WIREFRAMEで、デバイスのクオリティ設定がD3DRMSHADE_FLAT|D3DRMLIGHT_ON|D3DRMFILL_POINTであると、オブジェクトはフラットシェーディング、照明オフ、およびポイント塗りつぶしモードでレンダリングされる。

これらのルールは、Direct3DRMMeshBuilder3オブジェクトおよびDirect3DRMProgressiveMeshオブジェクトに適用される。しかし、Direct3DRMMeshオブジェクトはこれらのルールに従わない。メッシュオブジェクトはデバイスのクオリティ設定を無視し、グループクオリティ設定を用いる(デフォルトでD3DRMRENDER_GOURAUD)。

参照

IDirect3DRMDevice3::GetQuality

IDirect3DRMDevice3::SetRenderMode

IDirect3DRMDevice3

透明モードを設定する。モードタイプは、オブジェクトをどの程度透明にレンダリングするかを決定する。デフォルトモードでは、透明点描で透明オブジェクトをレンダリングする。

構文

HRESULT SetRenderMode(
  DWORD dwFlags
  );

パラメータ

dwFlags
1つまたは複数の透明モードフラグ。デフォルト (dwFlags = 0)では、透明モードを透明点描に設定する。点描 (または「スクリーンドア」) による透明モードは、あるイメージ中のいくつかのピクセルをその他のイメージのピクセルで置換 (あたかも、あるイメージを2番目のイメージで塗られたスクリーンドアを通して見るかのように) することにより達成される。

さらに、フラグは1つ以上の、以下の値を持つことができる。

D3DRMRENDERMODE_BLENDEDTRANSPARENCY (dwFlags = 1) は、透明モードをアルファブレンディングに設定する。ブレンディングによる透明モードは、各ピクセルでカラー値を追加し2つのイメージを組み合わせることにより達成される。
D3DRMRENDERMODE_DISABLESORTEDALPHAZWRITE (dwFlags = 32) は、ソートされた透明オブジェクトを描画する際、zバッファに深度情報を書き込まないことを指定する。
D3DRMRENDERMODE_LIGHTINMODELSPACE (dwFlags = 8) は、予約済み。使用しないこと。
D3DRMRENDERMODE_SORTEDTRANSPARENCY (dwFlags = 2) は、シーン中の透明ポリゴンが第2パスでバッファリング、ソート、およびレンダリングされるように透明モードを設定する。このフラグは、D3DRMRENDERMODE_BLENDEDTRANSPARENCYフラグも同時にセットされていない場合には、何の効果もない。外部ビジュアルまたはユーザビジュアル中の透明ポリゴンはソートされない。ネイティブ D3DRM ビジュアル (D3DRMMeshオブジェクトとD3DRMMeshBuilderオブジェクトなど) のみソートされる。
D3DRMRENDERMODE_VIEWDEPENDENTSPECULAR (dwFlags = 16) は、光源方向とビューアの位置の両方に依存する、より現実的な反射光を可能にする。DirectX Foundationの以前のバージョンのみ、ビューアの位置を考慮しないフラットな反射光をサポートする。このフラグがセットされていると、Direct3D直接モードはD3DLIGHT2構造体を使用して、Direct3D直接モードのIDirect3DLight::SetLight呼び出し時に照明タイプを定義する。このフラグがセットされていない場合、D3DRMはD3DLIGHT構造体を使用し、DirectXの以前のバージョンのライティング動作を得ることになる。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。可能な戻り値のリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

D3DRMRENDERMODE_BLENDEDTRANSPARENCYおよびD3DRMRENDERMODE_SORTEDTRANSPARENCYの両フラグが、同時にセットされていれば、2つの透明オブジェクトが、一方を他方でレンダリングするように保証し、イメージは、期待通りのビジュアル効果を作り出すように正しい順で混合される。

D3DRMRENDERMODE_SORTEDTRANSPARENCYは、アルファポリゴンの三角形ごとの、後ろから前へのソートをオンにする。ネイティブ D3DRM ビジュアル (D3DRMMeshオブジェクトとD3DRMMeshBuilderオブジェクトなど) のみソートされる。外部ビジュアルの三角形をソートリストに追加することはできない。

D3DRMRENDERMODE_BLENDEDTRANSPARENCYフラグは、点描アルファに対抗して真のアルファブレンディングをオンにする。真のアルファブレンディングでは、重複する三角形のピクセルはまとめて混合される。点描アルファでは、前面にある三角形のピクセルのいくつかは、下にある三角形を表示するような描画が行われない (これは、スクリーンドアの透明とも呼ばれる)。点描アルファを実行する場合、三角形をどのような順序でレンダリングするかにかかわらず、結果が同じであるため、三角形をソートする必要はない。

SetSortModeに対する有効なパラメータは、0 (ソートなしの点描アルファ)、BLENDEDTRANSPARENCY (ソートなしの真のアルファ)、およびBLENDEDTRANSPARENCYとSORTEDTRANSPARENCY (三角形ごとにソートされた真のアルファ) の両方だけである。

参照

IDirect3DRMDevice3::GetRenderMode

IDirect3DRMDevice3::SetShades

IDirect3DRMDevice3

モノクロ (ランプ) モデルシェーディングに使用される色のランプでのシェード数を設定する。

構文

HRESULT SetShades(
  DWORD ulShades
  );

パラメータ

ulShades
新しいシェード数。このパラメータは、2の累乗でなければならない。デフォルトは、32である。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。可能な戻り値のリストについては、「Direct3D保持モードの戻り値」を参照すること。

参照

IDirect3DRMDevice3::GetShades

IDirect3DRMDevice3::SetStateChangeOptions

IDirect3DRMDevice3

1つ以上のレンダリングまたは照明状態に関連付けられたオプションフラグを変更する。すべてのレンダリングと照明状態のデフォルト値は、D3DRMSTATECHANGE_VOLATILEである。D3DRMSTATECHANGE_NONVOLATILEフラグがレンダリングまたは照明状態に関連付けられている場合、Direct3D保持モードはその値をキャッシュし、冗長な変更を排除する (状態を現在の値に等しい値にセットすることをしない)。しかし、LightStateChangeまたはRenderStateChangeメソッドのどちらかによっていつ状態を変更したかを示さなければならない。詳細については、「冗長な状態変更の削除」を参照すること。

構文

HRESULT SetStateChangeOptions(
  DWORD dwStateClass,
  DWORD dwStateNum,
  DWORD dwFlags
  );

パラメータ

dwStateClass
該当する状態が属する状態のクラス。この値には、D3DRMSTATECHANGE_LIGHTまたはD3DRMSTATECHANGE_RENDERをセットできる。
dwStateNum
該当するD3DRENDERSTATEまたはD3DLIGHTSTATEの番号。値0は、所定のクラスのすべての状態が影響を受けることを示す。
dwFlags
オプションフラグ。次の値のどれか1つである。
D3DRMSTATECHANGE_NONVOLATILE
D3DRMSTATECHANGE_VOLATILE

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。可能な戻り値のリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

このメソッドは、DirectX version 6.0とともに導入された。

次のコードは、すべてのレンダリング状態でD3DRMSTATECHANGE_NONVOLATILEフラグをオンにセットする。

lpDirect3DRMDev3->SetStateChangeOptions(D3DRMSTATECHANGE_RENDER, 0,
                                        D3DRMSTATECHANGE_NONVOLATILE);

次のコードは、テクスチャハンドルレンダリング状態でD3DRMSTATECHANGE_VOLATILEフラグをオンにセットする。

lpDirect3DRMDev3->SetStateChangeOptions(D3DRMSTATECHANGE_RENDER,
                                        D3DRENDERSTATE_TEXTUREHANDLE,
										D3DRMSTATECHANGE_VOLATILE);

参照

IDirect3DRMDevice3::GetStateChangeOptions

IDirect3DRMDevice3::SetTextureQuality

IDirect3DRMDevice3

デバイスに対するテクスチャクオリティを設定する。

構文

HRESULT SetTextureQuality(
  D3DRMTEXTUREQUALITY tqTextureQuality
  );

パラメータ

tqTextureQuality
D3DRMTEXTUREQUALITY列挙型のメンバの1つ。デフォルトは、D3DRMTEXTURE_NEARESTである。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。可能な戻り値のリストについては、「Direct3D保持モードの戻り値」を参照すること。

参照

IDirect3DRMDevice3::GetTextureQuality

IDirect3DRMDevice3::Update

IDirect3DRMDevice3

レンダリングされているイメージをディスプレイにコピーする。また、デバイスドライバにハートビート関数も与える。そして、イメージをいつ更新するかを知らせる。

構文

HRESULT Update( );

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。可能な戻り値のリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

このメソッドに対する各呼び出しは、システムにアプリケーション定義コールバック関数のD3DRMDEVICE3UPDATECALLBACKを呼び出させる。コールバック関数を追加するには、IDirect3DRMDevice3::AddUpdateCallbackメソッドを使用する。

IDirect3DRMDevice2::UpdateIDirect3DRMDevice::Updateは、システムがD3DRMUPDATECALLBACKタイプコールバックを呼び出すようにする。DirectX version 6.0については、IDirect3DRMDevice3は、より新しいD3DRMDEVICE3UPDATECALLBACKコールバックを導入する。

参照

IDirect3DRMDevice3::AddUpdateCallback, D3DRMDEVICE3UPDATECALLBACK


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