Microsoft DirectX SDK ダウンロード | MSDN
※バージョン2.0は途上で開発が停止しているので、バージョン1.0の最終版を入手します。
Direct3Dで描画を行うには、次の手順を踏みます。
using System; using Microsoft.DirectX; using Microsoft.DirectX.Direct3D; /// <summary> /// デバイスの作成 /// </summary> public class CreateDevice : System.Windows.Forms.Form { Device device = null; // Direct3Dデバイス /// <summary> /// Direct3Dを初期化する /// </summary> /// <returns></returns> public bool InitializeDirect3D() { PresentParameters presentParameters = new PresentParameters(); presentParameters.Windowed = true; presentParameters.SwapEffect = SwapEffect.Discard; try { // Direct3Dデバイスを作成する this.device = new Device( 0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, presentParameters ); } catch( DirectXException ) { // @note // 指定の機能をビデオカードがサポートしていない場合などに // デバイスの作成に失敗する。 return false; } return true; } /// <summary> /// レンダリングする /// </summary> private void Render() { if( this.device != null ) { // ビューポートをクリアする this.device.Clear( ClearFlags.Target, System.Drawing.Color.DarkBlue, 1.0f, 0 ); // レンダリングを開始する this.device.BeginScene(); // @note // ここで3Dオブジェクトの描画を行う。 // レンダリングを終了する this.device.EndScene(); // 表示する this.device.Present(); } } /// <summary> /// フォームを再描画する /// </summary> /// <param name="e"></param> protected override void OnPaint( System.Windows.Forms.PaintEventArgs e ) { this.Render(); } /// <summary> /// アプリケーションのエントリポイント /// </summary> static void Main() { using( CreateDevice form = new CreateDevice() ) { // Direct3Dの初期化を行う if( form.InitializeDirect3D() ) { form.Show(); while( form.Created ) { System.Windows.Forms.Application.DoEvents(); } } } } }
public void Present();
public void Present(
Control overrideWindow // 描画対象のウィンドウ
);
Device.Present | MSDN