Open6
yuniframeメンテナンスまつり(SDL2, SPIRV, ANGLE)
とりあえずWindows上で移行できてからmac/iOSに挑戦する作戦で行く。残念ながらANGLEとSPIRVは同時に更新する必要があるようだ。
SDL2のためにinstall prefixを定義する
適当でも良いので CMAKE_INSTALL_PREFIX
が絶対パスで定義されていないとビルドに失敗するようだ。ドキュメント的には絶対パスでなければならないという風にはなっていないが、まぁ普通は絶対パスだろうということで適当に定義。。CMake側の install
コマンドは一切使わない予定なので適当でOK。
-- Looking for shellscalingapi.h - found
CMake Error at yfrm/ext/platform/SDL/CMakeLists.txt:3041 (file):
file RELATIVE_PATH must be passed a full path to the directory: install/bin
glslangのデフォルトリソースにAPIができた
従来は内部の定数 glslang::DefaultTBuiltInResource
に直接アクセスしていたが、これが廃止され専用のAPI GetDefaultResources
が用意された。
shxm_glslang.obj : error LNK2001: unresolved external symbol "struct TBuiltInResource const glslang::DefaultTBuiltInResource" (?DefaultTBuiltInResource@glslang@@3UTBuiltInResource@@B) [F:\yfrm22\em2c-win64-tracker-vulkan\em2app.vcxproj]
F:\yfrm22\em2c-win64-tracker-vulkan\Debug\em2app.exe : fatal error LNK1120: 1 unresolved externals [F:\yfrm22\em2c-win64-tracker-vulkan\em2app.vcxproj]
というわけでそれを使う。
VulkanMemoryAllocatorのメジャーバージョンアップ
ディレクトリ配置が変わった
まぁ以前のディレクトリ配置では Tests.h
とかが同じディレクトリにあったからなぁ。。というわけで本体が include
に移動された。
API変更
ANGLE内で ANGLE_VMA_VERSION
があるようなので適当に設定する。Buddyアロケータが廃止され、デフォルトはTLSFになった。
ANGLEはC++17 / C++20になった
C:\cygwin64\home\oku\repos\em2c\yfrm\ext\cwgl\angle\src\compiler/translator/Common.h(268,31): error C2039: 'string_view': is not a member of 'std' (compiling source file C:\cygwin64\home\oku\repos\em2c\yfrm\ext\cwgl\angle\src\compiler\translator\Symbol.cpp) [F:\yfrm22\em2c-win64-angle-dx11\yfrm\angle\angle_static.vcxproj]
... C++20の指定はどこでしてるんだ。。?とりあえず C++17 にしておく。Xcodeでどうなるかだな。。
ここまでで、VS2022では正常にビルド & 動作するようになった。
mac/iOSでも動いた
面倒なだけでそれほどテクニカルな問題は無かったな。。