Device クラス

Device クラス

使用例

  • Direct3D デバイスの作成
  • シーンの生成

DrawPrimitive ベースのレンダリング、リソースの作成、システムレベル変数の処理、ガンマ ランプ レベルの調整、パレットの処理、シェーダの作成を行うには、Device クラスのメソッドとプロパティを使う。

定義

Visual Basic Public Class Device
   Inherits MarshalByRefObject 
   Implements IDisposable
C# public class Device : MarshalByRefObject,
    IDisposable
Managed C++ public __gc class Device  : public MarshalByRefObject,
    IDisposable
JScript public class Device extends MarshalByRefObject
   implements IDisposable

メンバ テーブル

次のテーブルは、Device オブジェクトによって公開されているメンバの一覧である。左側のタブをクリックし、表示したいメンバの種類を選ぶこと。

イベント

イベント 説明
DeviceCreated デバイスが作成された時点で発生する。
DeviceLost デバイスが失われる時点 (たとえば、リセットの直前) に発生する。
DeviceReset デバイスがリセットされた後に発生する。アプリケーションで、すべての Pool.Default リソースを再作成できるようになる。
DeviceResizing デバイスのサイズ変更時に発生する。アプリケーションで、サイズ変更のデフォルトの処理を取り消せるようになる。
Disposing オブジェクトで Disposing イベントを検出するイベント ハンドラを追加する。

メソッド

メソッド 説明
BeginScene シーンを開始する。
BeginStateBlock デバイス ステート ブロックの記録を開始するように知らせる。
CheckCooperativeLevel ウィンドウ アプリケーションまたはフルスクリーン アプリケーションに対するデバイスの現在の協調レベル ステータスを報告する。
Clear ビューポートまたはビューポート内の矩形セットを指定した RGBA 色にクリアし、深度バッファをクリアし、ステンシル バッファを削除する。
ColorFill アプリケーションは D3DPOOL_DEFAULT サーフェイスの矩形領域を指定した色で塗りつぶすことができる。
CreateDepthStencilSurface 深度ステンシル リソースを作成する。
CreateOffscreenPlainSurface オフスクリーン サーフェイスを作成する。
CreateRenderTarget レンダリング ターゲット サーフェイスを作成する。
DeletePatch キャッシュされていた高次パッチを解放する。
Device オブジェクトの新しいインスタンスを初期化する。
Dispose オブジェクトが使ったアンマネージのリソースを直ちに解放する。
DrawIndexedPrimitives 頂点の配列へのインデックスに基づいて、指定されたジオメトリ プリミティブをレンダリングする。
DrawIndexedUserPrimitives ユーザー メモリ リファレンスで指定されているデータで、指定されているジオメトリ プリミティブをレンダリングする。
DrawPrimitives 現在のデータ入力ストリーム セットから、指定したタイプの非インデックス付きジオメトリ プリミティブのシーケンスをレンダリングする。
DrawRectanglePatch 現在設定されているストリームを使って、矩形のパッチを描画する。
DrawTrianglePatch 現在設定されているストリームを使って、三角形のパッチを描画する。
DrawUserPrimitives ユーザー メモリ リファレンスで指定されたデータを、指定されたタイプのジオメトリ プリミティブのシーケンスとしてレンダリングする。
EndScene メソッドの呼び出しによって開始されたシーンを終了する。
EndStateBlock デバイス ステート ブロックの記録を停止して、ステート ブロックのハンドルを取得するように指示する。
Equals このインスタンスが、指定したオブジェクトに等しいかどうかを示す値を返す。
EvictManagedResources ドライバのマネージ リソースを含む、すべてのマネージ リソースを除外する。
Finalize Garbage Collector がオブジェクトを破棄する前に、オブジェクトが使ったリソースを強制的に解放する。
GetBackBuffer デバイスのスワップ チェーンからバック バッファを取得する。
GetFrontBufferData デバイスのフロント バッファのコピーを生成し、アプリケーションが提供するシステム メモリ バッファにそのコピーを格納する。
GetGammaRamp スワップ チェーンのガンマ補正曲線を取得する。
GetHashCode このインスタンスのハッシュ コードを返す。
GetObjectByValue このメンバは Managed DirectX インフラストラクチャをサポートするが、作成したコードから直接使うことを念頭に置いたものではない。
GetPaletteEntries パレット エントリを取得する。
GetPixelShaderBooleanConstant ブール型のシェーダ定数を取得する。
GetPixelShaderInt32Constant 整数型のシェーダ定数を取得する。
GetPixelShaderSingleConstant 浮動小数点型のシェーダ定数を取得する。
GetRasterStatus スワップ チェーンが表示されているモニタのラスタを記述する情報を返す。
GetRenderTarget レンダリング ターゲット サーフェイスを取得する。
GetRenderTargetData デバイス メモリからシステム メモリにレンダリング ターゲット データをコピーする。
GetStreamSource 指定されたデータ ストリームにバインドされている頂点バッファを取得する。
GetStreamSourceFrequency ストリーム ソースの周波数ディバイダ値を取得する。
GetSwapChain スワップ チェーンへの参照を取得する。
GetTexture デバイスのステージに割り当てられているテクスチャを取得する。
GetTransform トランスフォーム ステートを記述する行列を取得する。
GetVertexShaderBooleanConstant ブール型の頂点シェーダ定数を取得する。
GetVertexShaderInt32Constant 整数型の頂点シェーダ定数を取得する。
GetVertexShaderSingleConstant 浮動小数点型の頂点シェーダ定数を取得する。
MultiplyTransform デバイスのワールド行列、ビュー行列、射影行列のいずれかに、指定された行列を乗算する。
op_Equality
op_Inequality
Present デバイスが所有する一連のバック バッファの中で次のバッファのコンテンツを表示する。
ProcessVertices 頂点シェーダで定義されている頂点処理を一連の入力データ ストリームに適用し、インターリーブされた頂点データの単一ストリームを生成して転送先頂点バッファに格納する。
raise_DeviceCreated
raise_DeviceLost
raise_DeviceReset
raise_DeviceResizing
raise_Disposing
Reset このデバイスのプレゼンテーション引数をリセットする。
SetCursor オフスクリーン サーフェイスを作成する。
SetCursorPosition カーソルの位置と更新オプションを設定する。
SetCursorProperties カーソルのプロパティを設定する。
SetDialogBoxesEnabled フルスクリーン モード アプリケーションでのダイアログ ボックスの使用を許可する。
SetGammaRamp 非明示的なスワップ チェーンのガンマ補正曲線を設定する。
SetPaletteEntries パレット エントリを設定する。
SetPixelShaderConstant 浮動小数点型のシェーダ定数を設定する。
SetRenderTarget デバイスに新しいカラー バッファを設定する。
SetStreamSource 頂点バッファをデバイスのデータ ストリームにバインドする。
SetStreamSourceFrequency ストリーム ソースの周波数ディバイダ値を設定する。
SetTexture テクスチャをデバイス ステージに割り当てる。
SetTransform 単一デバイスのトランスフォーム関連ステートを設定する。
SetVertexShaderConstant 浮動小数点型の頂点シェーダ定数を設定する。
ShowCursor カーソルを表示または隠蔽する。
StretchRectangle 転送元矩形の内容を転送先矩形にコピーする。コピーにより、転送元矩形を拡大およびフィルタリングできる。この関数は、ビデオ ストリームのアスペクト比の変更によく使われる。
TestCooperativeLevel ウィンドウ アプリケーションまたはフルスクリーン アプリケーションに対するデバイスの現在の協調レベル ステータスを報告する。
UpdateSurface あるサーフェイスから別のサーフェイスに、ピクセルの矩形サブセットをコピーする。
UpdateTexture テクスチャのダーティー部分を更新する。
ValidateDevice 現在のテクスチャのブレンディング処理と引数をデバイスが 1 回の処理でレンダリングできる能力を報告する。

プロパティ

プロパティ 説明
AvailableTextureMemory 使用可能なテクスチャ メモリの量の推定値を取得する。
ClipPlanes デバイスのクリップ面を取得する。
ClipStatus クリップ ステータスを取得または設定する。
CreationParameters デバイスの作成引数を取得する。
CurrentTexturePalette 現在のテクスチャ パレットを取得または設定する。
DepthStencilSurface Direct3DDevice オブジェクトが所有する深度ステンシル サーフェイスを取得または設定する。
DeviceCaps レンダリング デバイスの能力を取得する。
DisplayMode ディスプレイ モードの空間解像度、色解像度、リフレッシュ周波数を取得する。
Disposed オブジェクトが解放されている場合は TRUE、それ以外の場合は FALSE に設定される値を取得する。
Indices インデックス データを取得または設定する。
Lights このデバイスのライトを取得する。
Material デバイスに対する現在のマテリアルのプロパティを取得または設定する。
NPatchMode N パッチ モードのセグメントを取得または設定する。
NumberOfSwapChains 非明示的なスワップ チェーンの数を取得する。
PixelShader 現在設定されているピクセル シェーダを取得または設定する。
PresentationParameters プレゼンテーション引数を取得する。
RasterStatus スワップ チェーンが表示されているモニタのラスタを記述する情報を取得する。
RenderState デバイスに対するレンダリング ステートの値を取得する。
SamplerState サンプラ ステート値を取得する。
ScissorRectangle シザー矩形を取得または設定する。
SoftwareVertexProcessing 頂点処理 (ハードウェアまたはソフトウェア) モードを取得または設定する。
TextureState 割り当てられているテクスチャのステート値を取得する。
Transform トランスフォーム ステートを記述する行列を取得する。
VertexDeclaration 頂点シェーダ宣言を取得または設定する。
VertexFormat サポートされる柔軟な頂点フォーマットを取得または設定する。
VertexShader 現在設定されている頂点シェーダを取得または設定する。
Viewport デバイスに現在設定されているビューポート引数を取得または設定する。

継承の階層構造

Object

MarshalByRefObject

Device

使用例

Direct3D デバイスの作成

この例では、レンダリングに使う Microsoft® Direct3D® Device およびデータ格納に使う VertexBuffer を作成する方法を示す。

  1. Device オブジェクトを作成し、メソッド、プロパティ、イベントの大規模なセットを使って、3D ポリゴン モデルのライティング、テクスチャ、シェーディング、レンダリングを制御できる。
  2. VertexBuffer オブジェクトは、モデルの頂点データのデータ格納リソースとして利用される。

この例では、ウィンドウの作成と操作用に、Vertices クラスが Form 型で宣言されている。

using Microsoft.DirectX.Direct3D;
.
.
.
public class Vertices : System.Windows.Forms.Form
{
    // Global variables for this project
    Device device = null;              // 1. Create rendering device
    VertexBuffer vertexBuffer = null;  // 2. Create vertex buffer
    PresentParameters presentParams = new PresentParameters();
    
    public bool InitializeGraphics()
    {
        try
        {
            device = new Device(0, DeviceType.Hardware, this, 
                        CreateFlags.SoftwareVertexProcessing, presentParams);
            vertexBuffer = new VertexBuffer(
                        typeof(CustomVertex.PositionColored), 3, dev, 0,
                        CustomVertex.PositionColored.Format, Pool.Default);
            pause = false;
            return true;
        }
        catch { return false; }
    }
        
// Call InitializeGraphics from Main...
    
}

シーンの生成

この例では、シーンの生成を開始して、プリミティブを描画する方法を示す。

SetStreamSource メソッドは、頂点バッファをデバイス データ ストリームにバインドし、頂点データと、プリミティブ処理関数にデータを供給するデータ ストリーム ポートの 1 つとを関連付ける。このメソッドの引数は、データ ストリームの数、VertexBuffer オブジェクトの名前、ストリームの頂点ストライドである。

この例では、DrawPrimitives は、PrimitiveType 列挙の TriangleList 定数または TriangleStrip 定数のいずれかを使って、プリミティブをレンダリングできる。

using Microsoft.DirectX.Direct3D;

// Define custom vertex format
private struct customVertex
{
    // Define structure
}

Device device = null;        // Create rendering device
VertexBuffer vBuffer = null; // Create vertex buffer

// Begin the scene
device.BeginScene();

device.SetStreamSource( 0, vBuffer, 0);

// Assign custom vertex type, in this case a transformed, lit, and colored format
device.VertexFormat = CustomVertex.TransformedLitColored.Format;
device.DrawPrimitives(PrimitiveType.TriangleList, 0, 1);

// Alternative primitive rendering using TriangleStrip
// device.DrawPrimitives(PrimitiveType.TriangleStrip, 0, (4*25)-2);

クラスの情報

名前空間 Microsoft.DirectX.Direct3D
アセンブリ Microsoft.DirectX.Direct3D (microsoft.directx.direct3d.dll)
厳密名 Microsoft.DirectX.Direct3D,  Version=0293,  Culture=neutral,  PublicKeyToken=d3231b57b74a1492

© 2002 Microsoft Corporation. All rights reserved. Terms of use.