ゲームエンジニアの雑記ブログ

ゲームエンジニアの雑記ブログ。テーマ自由、技術について解説します

C#でDirectX11 SlimDXでウィンドウを表示させる

C#でDirectX11 SlimDXでウィンドウを表示させる

こんにちは、エンジニアのオオバです。

まず最初にコチラのサイトをほぼ写経させていただいております。
本当にありがとうございます。とても勉強になっております。

DirectXを始める経緯は割愛しますが、目指すレベルは「業務では一切使わないが、何となくコードが分かって全体感が理解できている程度」です。

そもそもタイトルのSlimDXとは何かを一言で表すと「C#でDirectXを書く」ためのライブラリで、普通はC++で記述するところをC#で書けるため、Unityエンジニアのぼくとしてはありがたい代物です。

ちなみにDirectXの9〜11をサポートしているが、11.1以降は未対応とのことで、DirectXの基礎や練習レベルでは問題ないのではないかと思います。

とりあえず始めてみます。

ウィンドウの表示

C#でDirectX11 SlimDXでウィンドウを表示させる_0

とりあえず表示する場所を作らないといけないためウィンドウを表示させてみます。

SlimeDX付属のMessagePumpクラスを使用します。

// formは描画をウィンドウ  
// 描画関数(何度も呼ばれます)  
MessagePump.Run(form, Draw)  

SlimDX_0.cs · GitHub

C#でDirectX11 SlimDXでウィンドウを表示させる_1

するとこのように、同じ時間が複数出力されることから、MessagePump.Runによるループ処理は、フレームレートは考慮されないということが分かりました。

参考

オススメ記事
検証環境
  • Windows8.1
  • SlimDX 2.0.13.43