ソースコードは以下の場所に置いておきます。各自のバージョンに合わせたプロパティ設定をしてから自由にご利用ください。
github: VulknAppAdocal2018
#クロスプラットフォーム化
####クロスプラットフォーム
あるコンピュータプログラム(ソフトウェア)を、複数の異なる仕様の機種やOSで同じように動作させられること。また、入出力装置などコンピュータの周辺機器を、複数の異なる機種に繋いで使用できること。
もっとわかりやすくまとめると一つのプログラムを作ったら、そのプログラムをAndroid,windows,Mac...etcと様々な環境でも使えるようにすることです。
クロスプラットフォームは、vulkanに限らずどんなプログラムでも活用できるものすごく重要なことです。
##条件付きコンパイル
条件付きコンパイルを使うことによってコンパイル時にプラットフォームに応じて異なったソースコードを使うことができます。
もしOSがWindowsならばAという処理をコンパイル、もしOSがMacならばbの処理をコンパイルといった、感じにコンパイルするプログラムを変えることができます。
このソースコードを新しくplatform.hに作成していきます。
#if defined(_WIN32)
//windowsで動くプログラム ...linuxで動かない
#elif defined (__linux)
// linuxで動くプログラム ...windowsで動かない
#endif
//終了
##Windowクラスの作成
どのOSでもWindowを生成して使える環境を作るために、抽象クラスWindowを作成します。
##Windowの作成
抽象化クラスWindowを継承し、新しくWindowを作るプログラムを作ります。
自分のプログラムでは、前回のGLFWサンプルを少し改良した、Window_GLFWです。
gitHubには、前回のGLEWサンプルと、プラットフォーム化が終了したバージョンが(2019/1/19)現在あげていますのでよかったら活用してください。
##最後に
自分のvulkanプログラムは、一応マルチプラットフォームに対応させて作っていきますので、多くの人の参考になればいいと思います。