コンテンツにスキップ

マルチプラットフォームのための工夫

本エンジンは、マルチプラットフォーム対応を目的としています。
そのために取り組んでいる工夫について紹介します。

DirectXTKやDirectXTex等を使わない

現在、本エンジンはDirectX11のみ対応しています。
DirectXには、公式でDirectXTK(算術ライブラリなど)やDirectXTex(テクスチャ読み込み)などの便利なライブラリ群が存在します。
しかし、WindowsやDirectXに依存する部分があり、マルチプラットフォーム対応を阻害します。

そこで、算術ライブラリは自作、テクスチャ読み込みにはstb_imageという外部ライブラリを使っています。

CMake

プラットフォームごとに、使用するIDEやコンパイラ、ビルド対象とするソースなどが異なります。
それぞれ個別に対応することは多大な労力を要します。
そこで、CMakeでプロジェクトを定義、ビルドをするようにしました。

OS機能やレンダラなどのインターフェイス化

プラットフォーム間の違いが最も大きい部分です。 インターフェイス化は欠かせません。
OS機能は、Platformクラスとしてインターフェイス化しました。
グラフィックスAPIは、RHI(Render Hardware Interface)というインターフェイス層を用意しました。