渋谷ほととぎす通信

完全趣味でやってるUnityメモ。説明できないところを説明できるようにするための個人ブログ。昨日の自分より少しでも大きくなれるように。。。 ※所属団体とは一切関係がありません

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


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

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

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

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


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

ウィンドウの表示

f:id:esakun:20181031020929p:plain:w320

とりあえず表示する場所を作らないといけないためウィンドウを表示させてみます。
※ちなみに僕はWindows環境ならではのプログラムは初めてです

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

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

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

環境

  • Windows8.1
  • SlimDX 2.0.13.43

参考