スクリーンショット_2018-10-30_21

ローグライク(仮)macOS の Metal 対応について

今日はあまり時間を使っていないが、macOS が今後 OpenGL を廃止し Metal に以降することを考慮し、使用している SDL というライブラリの Metal の対応状況について調べた。

SDL は Metal に対応しているが、次のようなコードで調べるとぼくの実行ファイルでは OpenGL が使用されていることがわかった。

 SDL_RendererInfo info;
 SDL_GetRenderDriverInfo(0, &info);
 std::cout << info.name << std::endl;

そのため、今後のことを考え Metal を使用するように SDL を設定しようとしたのだが、最新版のドキュメントではそのことに触れられておらず SDL 自体のソースコードを読む羽目になってしまった。これは非常に時間が掛かるため今日は答えを出すことを諦めた。なお、SDL のライブラリのコンパイル時点で使用する描画ドライバが決定されるようだ。SDL_VIDEODRIVER という環境変数を metal で設定してビルドすると良いようだが、まだうまく行っていない。

こういったプラットフォームごとの処理の書き分けができるような仕組みが必要になったので、その対応も行った。例えば Windows と Mac ではビルドされるソースコードが一部違っていることに対応したり、Metal API を使うなら Objective-C++ を使うことになるので言語が違っていても問題がないようなビルドシステムの修正も行った。

今日のところはこんな感じ。

応援してくださると嬉しいです。よろしくお願いいたします!