マルチプラットフォームのための工夫
本エンジンは、マルチプラットフォーム対応を目的としています。
そのために取り組んでいる工夫について紹介します。
DirectXTKやDirectXTex等を使わない
現在、本エンジンはDirectX11のみ対応しています。
DirectXには、公式でDirectXTK(算術ライブラリなど)やDirectXTex(テクスチャ読み込み)などの便利なライブラリ群が存在します。
しかし、WindowsやDirectXに依存する部分があり、マルチプラットフォーム対応を阻害します。
そこで、算術ライブラリは自作、テクスチャ読み込みにはstb_imageという外部ライブラリを使っています。
CMake
プラットフォームごとに、使用するIDEやコンパイラ、ビルド対象とするソースなどが異なります。
それぞれ個別に対応することは多大な労力を要します。
そこで、CMakeでプロジェクトを定義、ビルドをするようにしました。
OS機能やレンダラなどのインターフェイス化
プラットフォーム間の違いが最も大きい部分です。
インターフェイス化は欠かせません。
OS機能は、Platformクラスとしてインターフェイス化しました。
グラフィックスAPIは、RHI(Render Hardware Interface)というインターフェイス層を用意しました。