C-WebGL: nanovgの移植を目指す
emscripten2nativeは拡張として非同期アセットローダーを搭載したいと考えている。で、この場合シェーダーとかテクスチャ、バッファ類のロードは適当なAPIで抽象化する必要があるので、その研究のためにもうちょっと複雑なアプリを移植してみることにした。
... いやまぁimguiは既に移植してあるんだけど、ちょっとあれは移植性が高すぎて評価に不適なので。。
今回は複雑なシェーダーや描画パスを持つnanovgを移植してみることにした。
UWP のビルドが通らない
E:\yuniframe\native\nanovg\nanovg\example\stb_image_write.h(156,8): error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [E:\yuniframe_build\pkg-WindowsMSVCUWPx64@SDL2-ANGLE-DirectX11\test-nanovg\test-nanovg.vcxproj]
E:\yuniframe\native\nanovg\nanovg\src\fontstash.h(955,2): error C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [E:\yuniframe_build\pkg-WindowsMSVCUWPx64@SDL2-ANGLE-DirectX11\test-nanovg\test-nanovg.vcxproj]
strncpy
すらダメなのかよ!
E:\yuniframe\native\nanovg\example.c(107,1): error C4700: uninitialized local variable 'winWidth' used [E:\yuniframe_build\pkg-WindowsMSVCUWPx64@SDL2-ANGLE-DirectX11\test-nanovg\test-nanovg.vcxproj]
E:\yuniframe\native\nanovg\example.c(122,1): error C4700: uninitialized local variable 'winHeight' used [E:\yuniframe_build\pkg-WindowsMSVCUWPx64@SDL2-ANGLE-DirectX11\test-nanovg\test-nanovg.vcxproj]
でもとんでもねぇバカが見つかった。。
EGL対応時のリファクタのせいだった
これはポカミスすぎる。。
これで絵が出るようになった。
... 何か違うくない。。?これはアニメーション都合で、ちゃんとアニメーションを動かすと多少正常に見える。