デバイス (Device)

Deviceクラスは実際のグラフィックデバイスに類似したものであり、描画はすべてこのDeviceを介して行います。

Deviceの作成

public Device(
    int adapter,                // ディスプレイ アダプタ (グラフィックス・カード)
    DeviceType deviceType,      // デバイス タイプ
    Control renderWindow,       // レンダリング対象のウィンドウ
    CreateFlags behaviorFlags,  // 動作モード
    params PresentParameters[] presentationParameters // プレゼンテーション パラメータ
);

デバイス タイプ

DeviceType 列挙型
列挙子 説明
Hardware ハードウェア デバイス (HALデバイス)
Reference

リファレンス ラスタライザ (reference rasterizer) を使用する。

極度に低速。デバッグ用

Software ソフトウェア デバイス
デバイスの種類 | MSDN

リファレンス ラスタライザ (reference rasterizer)

ソフトウェア デバイスとは異なり、リファレンス ラスタライザはあらゆるDirect3D機能をサポートしている。これらの機能は処理速度よりも精度を重視してソフトウェアで実装されているため、結果が得られるまでには時間がかかる。リファレンス ラスタライザは、利用可能な場合は特別なCPU命令を十分に利用するが、市販アプリケーションを対象とはしていない。リファレンス ラスタライザは、機能テストやデモンストレーションにのみ使用すること。

リファレンス デバイス - 1. デバイスの種類 | MSDN

動作モード

CreateFlags 列挙型
定数 説明
頂点処理※1 HardwareVertexProcessing ハードウェアによる頂点処理
SoftwareVertexProcessing ソフトウェアによる頂点処理
MixedVertexProcessing ハードウェアとソフトウェアによる頂点処理
AdapterGroupDevice マスタ アダプタが所有するすべてのヘッドを駆動
DisableDriverManagement ドライバの代わりにDirectXがリソースを管理
PureDevice 内部状態を追跡せずに、ドライバへの最適なパスを利用 [パフォーマンスを向上]※2
MultiThreaded マルチスレッドでの安全性を要求 [パフォーマンスは低下]
FpuPreserve 倍精度浮動小数の使用を指示 [パフォーマンスは低下]
※1 複数のフラグを組み合わせて指定できますが、HardwareVertexProcessing、SoftwareVertexProcessing、MixedVertexProcessingの3つは互いに排他です。またこれらのいずれか1つは、必ず指定します。
※2 パフォーマンスは向上しますが、頂点情報を取得できなくなります。

Microsoft DirectX 9 開発者向け FAQ (D3DCREATE_PUREDEVICEの項目) | MSDN

Deviceのメソッド

Deviceのプロパティ

プロパティ 内容
AvailableTextureMemory int 使用可能なテクスチャ メモリの量の推定値
ClipPlanes ClipPlanes デバイスのクリップ面
ClipStatus ClipStatus クリップ ステータス
CreationParameters DeviceCreationParameters デバイスの作成パラメータ
CurrentTexturePalette int 現在のテクスチャ パレット
DepthStencilSurface Surface Direct3DDevice オブジェクトが所有する深度ステンシル サーフェイス
DeviceCaps Caps レンダリング デバイスの能力
DisplayMode DisplayMode ディスプレイ モードの空間解像度、色解像度、リフレッシュ周波数
Disposed bool オブジェクトが解放されているかどうか
Indices IndexBuffer インデックス データ
IsUsingEventHandlers    
Lights Lights デバイスのライト
Material Material デバイスのマテリアル
NPatchMode float N パッチ モードのセグメント
NumberOfSwapChains int 非明示的なスワップ チェーンの数
PixelShader PixelShader 現在設定されているピクセル シェーダ
PresentationParameters PresentParameters プレゼンテーション パラメータ
RasterStatus RasterStatus スワップ チェーンが表示されているモニタのラスタを記述する情報
RenderState RenderStates デバイスに対するレンダリング ステートの値
SamplerState SamplerStates サンプラ ステート値
ScissorRectangle System.Drawing.Rectangle シザー矩形 (scissor rectangle)
SoftwareVertexProcessing bool 頂点処理 (ハードウェアまたはソフトウェア) モード
TextureState TextureStates 割り当てられているテクスチャのステート
Transform Transforms トランスフォーム ステートを記述する行列
UnmanagedComPointer    
VertexDeclaration VertexDeclaration 頂点シェーダ宣言
VertexFormat VertexFormats サポートされる柔軟な頂点フォーマット
VertexShader VertexShader 現在設定されている頂点シェーダ
Viewport Viewport デバイスに現在設定されているビューポート パラメータ
Device プロパティ | MSDN Device Properties | MSDN

Deviceのイベント

イベント 説明
DeviceCreated デバイスが作成されたときに発生する。
DeviceLost デバイスが消失しようとしているときに発生する。
DeviceReset デバイスがリセットした後に発生する。
DeviceResizing デバイスがリサイズしているときに発生する。
Device イベント | MSDN Device Events | MSDN

参考

参考書