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 | デバイスに現在設定されているビューポート引数を取得または設定する。 |
継承の階層構造
Device
使用例
Direct3D デバイスの作成
この例では、レンダリングに使う Microsoft® Direct3D® Device およびデータ格納に使う VertexBuffer を作成する方法を示す。
- Device オブジェクトを作成し、メソッド、プロパティ、イベントの大規模なセットを使って、3D ポリゴン モデルのライティング、テクスチャ、シェーディング、レンダリングを制御できる。
- 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.