This commit is contained in:
Nick Fisher
2024-06-17 12:03:54 +08:00
1563 changed files with 174330 additions and 54662 deletions

407
.gitattributes vendored
View File

@@ -1,12 +1,395 @@
*.a filter=lfs diff=lfs merge=lfs -text
*.lib filter=lfs diff=lfs merge=lfs -text
*.dll filter=lfs diff=lfs merge=lfs -text
*.pdb filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.uberz filter=lfs diff=lfs merge=lfs -text
*.bin filter=lfs diff=lfs merge=lfs -text
*.ktx filter=lfs diff=lfs merge=lfs -text
*.blend filter=lfs diff=lfs merge=lfs -text
*.gltf filter=lfs diff=lfs merge=lfs -text
*.glb filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libbackendtest_combined.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libfilabridge.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libgltfio_core.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libibl-lite.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libcamutils.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libgeometry_combined.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libbackend.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libuberarchive.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libbasis_transcoder.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libgeometry.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libmikktspace.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libzstd.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libcivetweb.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libsdl2.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libmeshoptimizer.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libmathio.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libbasis_transcoder.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libfilament-iblprefilter.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libmatdbg_combined.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libspirv-cross-msl.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libtinyexr.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libzstd.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libshaders.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libSPIRV-Tools.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libgeometry.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libimageio.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libOGLCompiler.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libSPIRV-Tools-diff.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libfilamat_combined.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libfilameshio.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libmathio.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libshaders.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libassimp.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libmatlang.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libibl.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libmikktspace.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libmatdbg_combined.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/swift/ThermionDartTexture.h filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libfilamat_combined.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libfilament.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libibl.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libstb.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libuberzlib.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libbasis_encoder.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libimgui.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libdracodec.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libimageio.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libfilament.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libstb.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libbackend_test.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libgetopt.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libgtest.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libfilabridge.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libmatdbg_resources.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libuberarchive.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libfilaflat.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libSPIRV.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libpng.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libvkshaders.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libutils.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libimage.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libmatdbg_resources.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libsuzanne-resources.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libfilamat_lite.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libgeometry_combined.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libshaders.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libsmol-v.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libmath.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libgeometry.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libmeshoptimizer.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libpng16.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libbenchmark_main.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libbluegl.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libuberzlib.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/swift/build.sh filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libdracodec.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libibl.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libktxreader.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libbluegl.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libfilaflat.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libpng.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libbluevk.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libfilaflat.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libfilamat.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libglslang.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libcivetweb.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libktxreader.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libbenchmark.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libgltf-demo-resources.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libgltfio_core.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libSPIRV-Tools-lint.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libdracodec.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libfilagui.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libmikktspace.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libsample-resources.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libOSDependent.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libspirv-cross-glsl.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libgltfio.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libimage.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libpng.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libgltfio.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libmatdbg.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libspirv-cross-core.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libstb.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libfilamat.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libfilamat_lite.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libfilamat.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libviewer.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libutils.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libvkshaders.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libcamutils.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libbackend.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libfilagui.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libmath.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libviewer.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/swift/libdartfilamenttexture.dylib filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libfilament-iblprefilter.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libuberzlib.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libutils.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libviewer.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libfilamat_lite.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libfilameshio.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libcivetweb.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libbasis_transcoder.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libSPIRV-Tools-link.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libvkshaders.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libz.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libbluevk.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libtinyexr.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libzstd.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libcamutils.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libfilabridge.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libmatdbg.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libimage.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libsmol-v.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libgltfio_core.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libsmol-v.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libfilament-iblprefilter.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libfilament.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libmeshoptimizer.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libbackend.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libibl-lite.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/libktxreader.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libfilameshio.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/swift filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libtinyexr.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libSPIRV-Tools-reduce.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/debug/libuberarchive.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libibl-lite.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/ios/libimageio.a filter=lfs diff=lfs merge=lfs -text
materials/Makefile filter=lfs diff=lfs merge=lfs -text
materials/gizmo.filamat filter=lfs diff=lfs merge=lfs -text
materials/gizmo.mat filter=lfs diff=lfs merge=lfs -text
materials/image.filamat filter=lfs diff=lfs merge=lfs -text
materials/image.mat filter=lfs diff=lfs merge=lfs -text
materials/unlit_fade.mat filter=lfs diff=lfs merge=lfs -text
materials/unlit_opaque.mat filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libktxreader.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libcamutils.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libuberzlib.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libutils.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libdracodec.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libbackend.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libibl.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libmikktspace.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libzstd.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libzstd.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libfilament.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libmeshoptimizer.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libutils.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libvkshaders.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libbluevk.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libgeometry.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libgltfio_core.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libstb.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libgltfio_core.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libimage.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libvkshaders.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64 filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libfilameshio.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libcivetweb.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libfilabridge.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libuberzlib.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libfilamat.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libuberarchive.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libbackend.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libimage.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libsmol-v.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libutils.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libbasis_transcoder.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libdracodec.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libfilament.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libfilament-iblprefilter.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libfilamat.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libibl.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libvkshaders.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libfilaflat.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libibl-lite.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libmeshoptimizer.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libsmol-v.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libfilaflat.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libfilaflat.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libzstd.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libbackend.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libdracodec.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libcamutils.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libfilament.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libshaders.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libuberzlib.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libbluevk.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libcamutils.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libsmol-v.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libcivetweb.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libshaders.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libktxreader.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libbasis_transcoder.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libgltfio_core.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libfilaflat.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libuberarchive.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libfilameshio.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libbluevk.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libfilabridge.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libgltfio_core.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libibl.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libmikktspace.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libzstd.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libfilameshio.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libfilament-iblprefilter.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libshaders.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libstb.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libfilament-iblprefilter.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libimage.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libfilament.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libgeometry.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libdracodec.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libbasis_transcoder.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libgeometry.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libuberarchive.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libbluevk.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libfilabridge.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libuberzlib.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libimage.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libviewer.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libibl-lite.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86 filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libibl-lite.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libuberarchive.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libktxreader.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libfilament-iblprefilter.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libfilameshio.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libstb.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/arm64-v8a/libgeometry.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libviewer.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libktxreader.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libmeshoptimizer.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libibl.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libmeshoptimizer.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libfilamat.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libibl-lite.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libvkshaders.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libcamutils.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libcivetweb.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libsmol-v.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libutils.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libfilabridge.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libmikktspace.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libmikktspace.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libbackend.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libfilamat.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libviewer.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/armeabi-v7a/libviewer.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libcivetweb.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86_64/libshaders.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libbasis_transcoder.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/android/x86/libstb.a filter=lfs diff=lfs merge=lfs -text
thermion_flutter_federated/thermion_flutter/example/web/thermion_dart.wasm filter=lfs diff=lfs merge=lfs -text
thermion_flutter_federated/thermion_flutter/example/web/main.unopt.wasm filter=lfs diff=lfs merge=lfs -text
thermion_flutter_federated/thermion_flutter/example/web/main.wasm filter=lfs diff=lfs merge=lfs -text
thermion_flutter_federated/thermion_flutter/example/web/thermion_dart.js filter=lfs diff=lfs merge=lfs -text
thermion_flutter_federated/thermion_flutter/example/web/thermion_dart.worker.js filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libmatdbg_resources.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libuberarchive.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libbasis_transcoder.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libcivetweb.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libgltfio_core.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libimage.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libviewer.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libvkshaders.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libfilagui.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libfilamat_combined.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libshaders.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libtinyexr.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libmeshoptimizer.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libcamutils.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libfilamat.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libibl.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libmikktspace.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libuberzlib.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libutils.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libzstd.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libfilaflat.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libfilamat_lite.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libgltfio.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libimageio.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libgeometry_combined.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libbluevk.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libdracodec.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libfilabridge.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libfilameshio.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libktxreader.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libmatdbg.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libmathio.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libsmol-v.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libbackend.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libbluegl.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libfilament.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libgeometry.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libstb.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libpng.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libfilament-iblprefilter.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libibl-lite.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libmatdbg_combined.a filter=lfs diff=lfs merge=lfs -text
thermion_dart/native/lib/macos/release/libmath.a filter=lfs diff=lfs merge=lfs -text
examples/assets/default_env/default_env_skybox.ktx filter=lfs diff=lfs merge=lfs -text
examples/assets/shapes/shapes.gltf filter=lfs diff=lfs merge=lfs -text
examples/assets/3.glb filter=lfs diff=lfs merge=lfs -text
examples/assets/BusterDrone/textures/Boden_baseColor.jpg filter=lfs diff=lfs merge=lfs -text
examples/assets/FlightHelmet/FlightHelmet.bin filter=lfs diff=lfs merge=lfs -text
examples/assets/FlightHelmet/FlightHelmet.gltf filter=lfs diff=lfs merge=lfs -text
examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic1.png filter=lfs diff=lfs merge=lfs -text
examples/assets/default_env filter=lfs diff=lfs merge=lfs -text
examples/assets/BusterDrone/textures/Boden_metallicRoughness.jpg filter=lfs diff=lfs merge=lfs -text
examples/assets/FlightHelmet/FlightHelmet_baseColor3.png filter=lfs diff=lfs merge=lfs -text
examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic4.png filter=lfs diff=lfs merge=lfs -text
examples/assets/FlightHelmet/README.md filter=lfs diff=lfs merge=lfs -text
examples/assets/default_env/default_env_ibl.ktx filter=lfs diff=lfs merge=lfs -text
examples/assets/shapes/shapes.blend filter=lfs diff=lfs merge=lfs -text
examples/assets/shapes/shapes.glb filter=lfs diff=lfs merge=lfs -text
examples/assets/2.glb filter=lfs diff=lfs merge=lfs -text
examples/assets/FlightHelmet filter=lfs diff=lfs merge=lfs -text
examples/assets/FlightHelmet/FlightHelmet_normal.png filter=lfs diff=lfs merge=lfs -text
examples/assets/FlightHelmet/FlightHelmet_normal1.png filter=lfs diff=lfs merge=lfs -text
examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic3.png filter=lfs diff=lfs merge=lfs -text
examples/assets/background.ktx filter=lfs diff=lfs merge=lfs -text
examples/assets/BusterDrone/scene.bin filter=lfs diff=lfs merge=lfs -text
examples/assets/FlightHelmet/FlightHelmet_baseColor4.png filter=lfs diff=lfs merge=lfs -text
examples/assets/FlightHelmet/FlightHelmet_normal4.png filter=lfs diff=lfs merge=lfs -text
examples/assets/shapes/shapes.blend1 filter=lfs diff=lfs merge=lfs -text
examples/assets/solidcolor.mat filter=lfs diff=lfs merge=lfs -text
examples/assets/BusterDrone/textures/body_baseColor.jpg filter=lfs diff=lfs merge=lfs -text
examples/assets/BusterDrone/textures/body_emissive.jpg filter=lfs diff=lfs merge=lfs -text
examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic.png filter=lfs diff=lfs merge=lfs -text
examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic2.png filter=lfs diff=lfs merge=lfs -text
examples/assets/solidcolor.filamat filter=lfs diff=lfs merge=lfs -text
examples/assets/1.glb filter=lfs diff=lfs merge=lfs -text
examples/assets/BusterDrone/scene.gltf filter=lfs diff=lfs merge=lfs -text
examples/assets/FlightHelmet/FlightHelmet_normal2.png filter=lfs diff=lfs merge=lfs -text
examples/assets/shapes/texture_test.png filter=lfs diff=lfs merge=lfs -text
examples/assets/FlightHelmet/FlightHelmet_normal3.png filter=lfs diff=lfs merge=lfs -text
examples/assets/BusterDrone/textures filter=lfs diff=lfs merge=lfs -text
examples/assets/BusterDrone/textures/Boden_normal.jpg filter=lfs diff=lfs merge=lfs -text
examples/assets/BusterDrone/textures/body_normal.jpg filter=lfs diff=lfs merge=lfs -text
examples/assets/BusterDrone/textures/material_metallicRoughness.jpg filter=lfs diff=lfs merge=lfs -text
examples/assets/FlightHelmet/FlightHelmet_baseColor.png filter=lfs diff=lfs merge=lfs -text
examples/assets/FlightHelmet/FlightHelmet_baseColor2.png filter=lfs diff=lfs merge=lfs -text
examples/assets/shapes filter=lfs diff=lfs merge=lfs -text
examples/assets/shapes/shapes.bin filter=lfs diff=lfs merge=lfs -text
examples/assets/BusterDrone filter=lfs diff=lfs merge=lfs -text
examples/assets/BusterDrone/textures/body_metallicRoughness.jpg filter=lfs diff=lfs merge=lfs -text
examples/assets/BusterDrone/textures/material_baseColor.jpg filter=lfs diff=lfs merge=lfs -text
examples/assets/BusterDrone/textures/material_normal.jpg filter=lfs diff=lfs merge=lfs -text
examples/assets/FlightHelmet/FlightHelmet_baseColor1.png filter=lfs diff=lfs merge=lfs -text
examples/assets/background.png filter=lfs diff=lfs merge=lfs -text
examples/flutter/example/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/assets/shapes/shapes.glb filter=lfs diff=lfs merge=lfs -text
examples/flutter/example/build/app/intermediates/assets/debug/flutter_assets/assets/2.glb filter=lfs diff=lfs merge=lfs -text
examples/flutter/example/build/app/intermediates/assets/debug/flutter_assets/assets/3.glb filter=lfs diff=lfs merge=lfs -text
examples/flutter/example/build/macos/Build/Products/Debug/example.app/Contents/Frameworks/App.framework/Versions/A/Resources/flutter_assets/assets/shapes/shapes.glb filter=lfs diff=lfs merge=lfs -text
examples/flutter/example/build/app/intermediates/assets/debug/flutter_assets/assets/1.glb filter=lfs diff=lfs merge=lfs -text
examples/flutter/example/build/app/intermediates/flutter/debug/flutter_assets/assets/shapes/shapes.glb filter=lfs diff=lfs merge=lfs -text
examples/flutter/example/build/macos/Build/Products/Debug/example.app/Contents/Frameworks/App.framework/Versions/A/Resources/flutter_assets/assets/1.glb filter=lfs diff=lfs merge=lfs -text
examples/flutter/example/build/macos/Build/Products/Debug/example.app/Contents/Frameworks/App.framework/Versions/A/Resources/flutter_assets/assets/3.glb filter=lfs diff=lfs merge=lfs -text
thermion_dart/test/assets/shapes.glb filter=lfs diff=lfs merge=lfs -text
examples/flutter/example/build/app/intermediates/flutter/debug/flutter_assets/assets/1.glb filter=lfs diff=lfs merge=lfs -text
examples/flutter/example/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/assets/1.glb filter=lfs diff=lfs merge=lfs -text
examples/flutter/example/build/app/intermediates/flutter/debug/flutter_assets/assets/3.glb filter=lfs diff=lfs merge=lfs -text
examples/flutter/example/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/assets/2.glb filter=lfs diff=lfs merge=lfs -text
examples/flutter/example/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/assets/3.glb filter=lfs diff=lfs merge=lfs -text
examples/flutter/example/build/macos/Build/Products/Debug/example.app/Contents/Frameworks/App.framework/Versions/A/Resources/flutter_assets/assets/2.glb filter=lfs diff=lfs merge=lfs -text
examples/flutter/example/build/app/intermediates/assets/debug/flutter_assets/assets/shapes/shapes.glb filter=lfs diff=lfs merge=lfs -text
examples/flutter/example/build/app/intermediates/flutter/debug/flutter_assets/assets/2.glb filter=lfs diff=lfs merge=lfs -text

View File

@@ -1,29 +0,0 @@
name: Dart Analyzer
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
with:
java-version: '12.x'
- name: Install Flutter
uses: subosito/flutter-action@v1
with:
flutter-version: '2.x'
- name: Get dependencies
run: flutter pub get
- name: Analyze
run: flutter analyze

View File

@@ -1,35 +0,0 @@
name: PubDev Score
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
package-analysis:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: axel-op/dart-package-analyzer@v3
id: analysis
with:
githubToken: ${{ secrets.GITHUB_TOKEN }}
# use this id to retrieve the outputs in the next steps
# exit dirty when the package doesn't reach 100%
- name: Check scores
env:
# "analysis" is the id set above
# PERCENTAGE=$(( $TOTAL * 100 / $TOTAL_MAX ))
TOTAL: ${{ steps.analysis.outputs.total }}
TOTAL_MAX: ${{ steps.analysis.outputs.total_max }}
JSON_OUT: ${{ steps.analysis.outputs.json_output }}
run: |
if (( $TOTAL != $TOTAL_MAX ))
then
echo There are missing points in the project!
echo $TOTAL from $TOTAL_MAX Points reached
echo $JSON_OUT | jq
exit 1
fi

11
.gitignore vendored
View File

@@ -1,4 +1,9 @@
**/*/.cxx
**/.github
**/.idea
.dart_tool
**/.dart_tool
.vscode
macos/src
macos/include
.DS_Store
.DS_Store
**/*/build
**/*/pubspec.lock

View File

@@ -1,19 +0,0 @@
<component name="libraryTable">
<library name="Dart SDK">
<CLASSES>
<root url="file:///Users/admin/Downloads/flutter/bin/cache/dart-sdk/lib/async" />
<root url="file:///Users/admin/Downloads/flutter/bin/cache/dart-sdk/lib/collection" />
<root url="file:///Users/admin/Downloads/flutter/bin/cache/dart-sdk/lib/convert" />
<root url="file:///Users/admin/Downloads/flutter/bin/cache/dart-sdk/lib/core" />
<root url="file:///Users/admin/Downloads/flutter/bin/cache/dart-sdk/lib/developer" />
<root url="file:///Users/admin/Downloads/flutter/bin/cache/dart-sdk/lib/html" />
<root url="file:///Users/admin/Downloads/flutter/bin/cache/dart-sdk/lib/io" />
<root url="file:///Users/admin/Downloads/flutter/bin/cache/dart-sdk/lib/isolate" />
<root url="file:///Users/admin/Downloads/flutter/bin/cache/dart-sdk/lib/math" />
<root url="file:///Users/admin/Downloads/flutter/bin/cache/dart-sdk/lib/mirrors" />
<root url="file:///Users/admin/Downloads/flutter/bin/cache/dart-sdk/lib/typed_data" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

10
.idea/modules.xml generated
View File

@@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/holovox_filament.iml" filepath="$PROJECT_DIR$/holovox_filament.iml" />
<module fileurl="file://$PROJECT_DIR$/android/holovox_filament_android.iml" filepath="$PROJECT_DIR$/android/holovox_filament_android.iml" />
<module fileurl="file://$PROJECT_DIR$/example/android/holovox_filament_example_android.iml" filepath="$PROJECT_DIR$/example/android/holovox_filament_example_android.iml" />
</modules>
</component>
</project>

View File

@@ -1,6 +0,0 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="example/lib/main.dart" type="FlutterRunConfigurationType" factoryName="Flutter">
<option name="filePath" value="$PROJECT_DIR$/example/lib/main.dart" />
<method />
</configuration>
</component>

45
.idea/workspace.xml generated
View File

@@ -1,45 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="FileEditorManager">
<leaf>
<file leaf-file-name="holovox_filament.dart" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/lib/holovox_filament.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="main.dart" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/example/lib/main.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="ToolWindowManager">
<editor active="true" />
<layout>
<window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
</layout>
</component>
<component name="ProjectView">
<navigator currentView="ProjectPane" proportions="" version="1">
</navigator>
<panes>
<pane id="ProjectPane">
<option name="show-excluded-files" value="false" />
</pane>
</panes>
</component>
<component name="PropertiesComponent">
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="dart.analysis.tool.window.force.activate" value="true" />
<property name="show.migrate.to.gradle.popup" value="false" />
</component>
</project>

View File

@@ -1,9 +0,0 @@
## 0.6.0
* `createViewer` is no longer called by `FilamentWidget` and must be called manually at least one frame after a FilamentWidget has been inserted into the widget hierarchy.
## 0.5.0
* Replaced `isReadyForScene` Future in `FilamentController` with the `Stream<bool>` `hasViewer`.
* Rendering is set to false when the app is hidden, inactive or paused; on resume, this will be set to the value it held prior to being hidden/inactive/paused.

38
GETTING_STARTED.md Normal file
View File

@@ -0,0 +1,38 @@
# Thermion
Thermion is a package for creating 3D applications with Dart and/or Flutter.
## Overview
### Packages 
The two most relevant Thermion packages are:- [thermion_dart], which contains all the code needed to create a viewer, - [thermion_flutter], which is a Flutter-only package that contains all the logic necessary to create/embed a rendering surface inside a Flutter app. 
By decoupling the Flutter-specific components from the Dart-only components, Thermion can be used for rendering in both Flutter and non-Flutter applications. As far as the latter is concerned, Thermion ships with examples for  Javascript/WASM/HTML, and for CLI/headless mode on MacOS. 
### pubspec.yaml
If you are creating a Flutter application, add [thermion_flutter] as a dependency to your `pubspec.yaml`.
```$ cd /path/to/your/flutter/project$ flutter pub add thermion_flutter```
### ThermionFlutterPlugin
Create an instance of `ThermionFlutterPlugin` in your app.
```dart
class _MyAppState extends State<MyApp> {
  late ThermionFlutterPlugin _thermionFlutterPlugin;  late Future<ThermionViewer> _thermionViewer;
  void initState() {    _thermionFlutterPlugin = ThermionFlutterPlugin();    _thermionViewer = _thermionFlutterPlugin.createViewer();  }}```
`ThermionFlutterPlugin` is a singleton, and mostly just handles creating a 3D rendering surface that can be embedded in a Flutter widget hierarchy.  [ThermionViewer] is the interface for actually interacting with the scene (loading assets, manipulating the camera, and so on). Call `createViewer` on `ThermionFlutterPlugin` to obtain a reference to `ThermionViewer` (which is also a singleton).
Note: `ThermionFlutterPlugin` and `ThermionViewer` were designed as separate classes so we can use `ThermionViewer` in non-Flutter apps.
### ThermionWidget
On most platforms[0], [ThermionWidget] is the widget where your rendered content (i.e. your viewport) will appear. This can be any size; the 3D viewport will be scaled to fit the dimensions on this widget. On most platforms, a [ThermionWidget] can be positioned above or below any other widget in the hierarchy and the Z-order will be preserved.
```class _MyAppState extends State<MyApp> {
  late ThermionFlutterPlugin _thermionFlutterPlugin;  late Future<ThermionViewer> _thermionViewer;
  void initState() {    _thermionFlutterPlugin = ThermionFlutterPlugin();    _thermionViewer = _thermionFlutterPlugin.createViewer();  }    Widget build(BuildContext context) {       return Stack(children:[      Positioned.fill(        child:ThermionWidget(          plugin:_thermionFlutterPlugin        )      )    ]);  }}```
[0] Currently, the rendering surface on Windows and Web will always appear at the bottom of the application. You still need a ThermionWidget, but this only keeps track of the dimensions of your viewport and punches a transparent hole in the hierarchy; the actual rendering surface is attached beneath the Flutter window.
`ThermionWidget` will not display the rendering surface (even an empty one) until the call to `createViewer` has been completed.
- by default a Container will be rendered with solid red. If you want to change this, pass a widget as the initial paramer to the ThermionWidget constructor.on the second frame, ThermionWidget will pass its dimensions/pixel ratio to the FilamentController
 You can then call createViewer to create:the rendering surface (on most platforms, a backing texture that will be registered with Flutter for use in a Texture widget)a rendering threada ThermionViewerFFI and an AssetManager, which will allow you to load assets/cameras/lighting/etc via the FilamentControllerafter an indeterminate number of frames, FilamentController will notify ThermionWidget when a rendering surface is available the viewportThermionWidget will replace the default initial Widget with the viewport (which will initially be solid black or white, depending on your platform).IMPORTANT: there will be a delay between adding a ThermionWidget, calling createViewer and the actual rendering viewport becoming available. This is why we fill ThermionWidget with red - to make it abundantly clear that you need to handle this asynchronous delay appropriately. Once createViewer has completed, the viewport is available for rendering.
Currently, the initial widget will also be displayed whenever the viewport is resized (including changing orientation on mobile and drag-to-resize on desktop). You probably want to change this from the default red.
Congratulations! You now have a scene. It's completely empty, so you probably want to add something visible.

View File

@@ -1 +0,0 @@
TODO: Add your license here.

View File

@@ -1,27 +1,32 @@
mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST)))
current_dir := $(dir $(mkfile_path))
parent_dir := $(abspath $(dir $(lastword $(MAKEFILE_LIST)))/..)
dart-web:
cd thermion_dart/native/web; mkdir -p build && cd build && emcmake cmake .. && emmake make
dart-web-clean:
cd thermion_dart/native/web && rm -rf build
dart-wasm-cli-example: dart-web-clean dart-web
cd thermion_dart/examples/cli_wasm/bin && dart compile wasm example_cli.dart && node main.js
dart-web-example: dart-web
cp thermion_dart/native/web/build/build/out/thermion_dart* examples/web_wasm/bin
cd thermion_dart/examples/web_wasm/bin && dart compile wasm example_web.dart
flutter-example-web: dart-web-clean dart-web
cd thermion_flutter_federated/thermion_flutter/example/web && dart compile wasm main.dart && cd .. && flutter build web --wasm --profile
flutter-example-macos:
cd thermion_flutter_federated/thermion_flutter/example/web && flutter run -d macos
swift-bindings:
cd thermion_dart/ && dart --enable-experiment=native-assets run ffigen --config ffigen/swift.yaml
bindings:
cd thermion_dart/ && dart --enable-experiment=native-assets run ffigen --config ffigen/native.yaml
filament_build_out := $(parent_dir)/filament/out/cmake-release
# building on MacOS, we currently just delete the macos/include
# and macos/src directories and copy from iOS
sync-macos: FORCE
rm -rf ${current_dir}macos/include ${current_dir}macos/src
cp -R ${current_dir}ios/include ${current_dir}macos
cp -R ${current_dir}ios/src ${current_dir}macos
# We compile a small set of custom materials for various helpers (background image, gizmo, etc)
# You must specify the `FILAMENT_PATH` environment variable, either the path /out/release
# eg: FILAMENT_PATH=/path/to/filament/out/release/bin make materials
#
materials: FORCE
@echo "Using Filament build from ${FILAMENT_PATH}"
${FILAMENT_PATH}/matc -a opengl -a metal -o materials/image.filamat materials/image.mat
$(FILAMENT_PATH)/resgen -c -p image -x ios/include/material/ materials/image.filamat
$(FILAMENT_PATH)/matc -a opengl -a metal -o materials/gizmo.filamat materials/gizmo.mat
$(FILAMENT_PATH)/resgen -c -p gizmo -x ios/include/material/ materials/gizmo.filamat
#rm materials/*.filamat
FORCE: ;
# We use a single material (no lighting and no transparency) for background images
#
# by default this assumes you have built filament in a sibling folder
# you may customize the out folder by speicifying `filament_build_out`
#
# eg: make generate-background-material filament_build_out=/filament/out/release
#
generate-background-material:
${filament_build_out}/tools/matc/matc -a opengl -a metal -o materials/image.filamat materials/image.mat
${filament_build_out}/tools/resgen/resgen -c -p image -x ios/include/material/ materials/image.filamat
rm materials/image.filamat

449
README.md
View File

@@ -1,436 +1,37 @@
# Flutter Filament
![Thermion Logo](docs/logo.png)
Cross-platform, 3D PBR rendering and animation for [Flutter](https://github.com/google/filament).
<p align="center">
<a href="https://docs.page/nmfisher/flutter_filament/quickstart">Quickstart (Flutter)</a> •
<a href="https://docs.page/nmfisher/flutter_filament">Documentation</a> •
<a href="https://github.com/nmfisher/thermion/docs/examples/">Showcase</a> •
<a href="https://discord.gg/h2VdDK3EAQ">Discord</a>
</p>
Wraps the [the Filament rendering library](https://github.com/google/filament).
## Cross-platform 3D engine for Dart and Flutter.
Powers the [Polyvox](https://polyvox.app) and [odd-io](https://github.com/odd-io/) engines.
<a href="https://pub.dev/packages/thermion_dart"><img src="https://img.shields.io/pub/v/thermion_dart?label=pub.dev&labelColor=333940&logo=dart&color=00589B" alt="pub"></a>
<a href="https://github.com/nmfisher/thermion"><img src="https://img.shields.io/github/stars/nmfisher/flutter_filament?style=flat&label=stars&labelColor=333940&color=8957e5&logo=github" alt="github"></a>
<a href="https://discord.gg/h2VdDK3EAQ"><img src="https://img.shields.io/discord/993167615587520602?logo=discord&logoColor=fff&labelColor=333940" alt="discord"></a>
<a href="https://github.com/nmfisher/thermion"><img src="https://img.shields.io/github/contributors/nmfisher/flutter_filament?logo=github&labelColor=333940" alt="contributors"></a>
This is still in beta: bugs/missing features are to be expected.
### Features
- Supports iOS (arm64), MacOS (arm64/x64), Android (arm64), Windows (x64) (>= 10), Web/WASM
- glTF, KTX, PNG & JPEG texture support
- camera/entity manipulation with mouse (desktop) and gestures (mobile)
- skinning + morph animations
### Sponsors, Contributors & Acknowledgments
https://github.com/nmfisher/flutter_filament/assets/7238578/42cd9641-e100-4a1d-8423-810d53559c71
|Feature|Supported|
|---|---|
|Platforms|✅ iOS (arm64)<br/>✅ MacOS (arm64)<br/>✅ Android (arm64) <br/>✅ Windows (x64) (>= 10)<br/>⚠️ Linux (x64 - broken)<br/>⚠️ Web (planned)|
|Formats|✅ glb <br/>⚠️ glTF (partial - see Known Issues)|
|Texture support|✅ PNG <br/>✅ JPEG <br/>✅ KTX <br/>⚠️ KTX2 (planned)|
|Camera movement|✅ Desktop (mouse)<br/>✅ Mobile (swipe/pinch)|
|Animation|✅ Embedded glTF skinning animations<br/>✅ Embedded glTF morph animations<br/> ✅ Runtime/dynamic morph animations<br/> ⚠️ Runtime/dynamic skinning animations <br/>
|Entity manipulation|✅ Viewport selection<br/>⚠️ Entity/transform parenting (planned)<br/> ⚠️ Transform manipulation (mouse/gesture to rotate/translate/scale object) (partial)<br/>⚠️ Runtime material changes (planned)|
Thermion uses the [Filament](https://github.com/google/filament) physically based rendering package under the hood.
Special thanks to [odd-io](https://github.com/odd-io/) for sponsoring work on supporting Windows, raycasting, testing and documentation.
PRs are welcome but please create a placeholder PR to discuss before writing any code. This will help with feature planning, avoid clashes with existing work and keep the project structure consistent.
Thank you to the following people:
## Getting Started
- @Hannnes1 for help migrating to `native-assets`
- @jarrodcolburn for documentation contributions
- @daverin for MacOS library contributions
- @LukasPoque for CI/refactoring work
- @alexmercerind for his work on integrating ANGLE textures on Flutter Windows
This package requires Flutter >= `3.16.0`.
```bash
flutter channel beta
flutter upgrade
```
There are specific issues with earlier versions on Windows/MacOS (mobile should actually be fine, so if you want to experiment on your own you're free to remove the minimum version from `pubspec.yaml`).
Next, clone this repository and pull the latest binaries from Git LFS:
```bash
cd $HOME
git clone <repo> && cd flutter_filament
git lfs pull
```
(this step won't be needed after the plugin is published to pub.dev).
> You *do not need to build Filament yourself*. The repository is bundled with all necessary headers/static libraries (`windows/lib`, `ios/lib`, `macos/lib` and `linux/lib`) and the Flutter plugin has been configured to link at build time.
Run the example project to check:
```bash
cd example && flutter run -d <macos/windows/Your_iPhone/etc>
```
To use the plugin in your own project, add the plugin to your pubspec.yaml:
```yaml
name: your_project
description: Your project
#...
dependencies:
flutter:
sdk: flutter
flutter_filament:
path: <path where you cloned the repository>
```
## Basic Usage
See the `example` project for a complete sample that incorporates many of the below steps, and more.
### Creating the viewport widget and controller
Create an instance of `FilamentControllerFFI` somewhere in your app where it will not be garbage collected until you no longer need a rendering canvas:
```dart
class MyApp extends StatelessWidget {
final _filamentController = FilamentControllerFFI();
//...
}
```
This is a relatively lightweight object, however its constructor will load/bind symbols from the native library. This may momentarily block the UI, so you may wish to structure your app so that this is hidden behind a static widget until it is available.
Next, create an instance of `FilamentWidget` in the widget hierarchy where you want the rendering canvas to appear. This can be sized as large or as small as you want. On most platforms, Flutter widgets can be positioned above or below the `FilamentWidget`.
```dart
class MyApp extends StatelessWidget {
final _filamentController = FilamentControllerFFI();
@override
Widget build(BuildContext context) {
return MaterialApp(
color: Colors.white,
home: Scaffold(backgroundColor: Colors.white, body: Stack(children:[
Container(color:Colors.green, height:100, width:100),
Positioned.fill(top:100, left:100child:FilamentWidget(controller:_filamentController)),
Positioned(right:0, bottom:0, child:Container(color:Colors.purple, height:100, width:100))
])));
}
}
```
When a `FilamentWidget` is added to the widget hierarchy:
1) by default a Container will be rendered with solid red. If you want to change this, pass a widget as the `initial` paramer to the `FilamentWidget` constructor.
2) on the second frame, `FilamentWidget` will pass its dimensions/pixel ratio to the `FilamentController`
3) You can then call `createViewer` to create:
* the rendering surface (on most platforms, a backing texture that will be registered with Flutter for use in a `Texture` widget)
* a rendering thread
* a `FilamentViewer` and an `AssetManager`, which will allow you to load assets/cameras/lighting/etc via the `FilamentController`
4) after an indeterminate number of frames, `FilamentController` will notify `FilamentWidget` when a rendering surface is available the viewport
5) `FilamentWidget` will replace the default `initial` Widget with the viewport (which will initially be solid black or white, depending on your platform).
IMPORTANT: there *will* be a delay between adding a `FilamentWidget`, calling `createViewer` and the actual rendering viewport becoming available. This is why we fill `FilamentWidget` with red - to make it abundantly clear that you need to handle this asynchronous delay appropriately. Once `createViewer` has completed, the viewport is available for rendering.
> Currently, the `initial` widget will also be displayed whenever the viewport is resized (including changing orientation on mobile and drag-to-resize on desktop). You probably want to change this from the default red.
Congratulations! You now have a scene. It's completely empty, so you probably want to add something visible.
### Load a background
You probably want to set a background for your scene. You can load a skybox:
```dart
await _filamentController.loadSkybox("assets/default_env/default_env_skybox.ktx)
```
or a static background image:
```dart
await _filamentController.setBackgroundImage("assets/background.ktx)
```
or a solid background color:
```dart
await _filamentController.setBackgroundColor(0.0, 1.0, 0.0, 1.0); // solid green
```
At this point, you might not see any change in the viewport. This is because the FilamentController will only actually render into the viewport once `render` has been called.
By default, the FilamentController will only render into the viewport by manually calling `render()` on the FilamentController. This is to avoid needlessly running a render loop when there is nothing to display.
```dart
await _filamentController.render()
```
You should now see your background displayed in the scene. To automatically render at 60fps, call `setRendering`:
```dart
await _filamentController.setRendering(true);
```
### Load an asset
To add a glTF asset to the scene, call `loadGlb()` on `FilamentController` with the Flutter asset path to your .glb file.
For example, if your `pubspec.yaml` looks like this:
```yaml
flutter:
assets:
- assets/models/bob.glb
```
Then you would call the following
```dart
var entity = await _filamentController.loadGlb("assets/models/bob.glb");
```
You can also pass a URI to indicate that the glTF file should be loaded from the filesystem:
```dart
var entity = await _filamentController.loadGlb("file:///tmp/bob.glb");
```
The return type `FilamentEntity` is simply an integer handle that be used to manipulate the entity in the scene. For example, to remove the asset:
```dart
await _filamentController.removeAsset(entity);
entity = null;
```
> Removing an entity from the scene will invalidate the corresponding `FilamentEntity` handle, so ensure you don't retain any references to it after calling `removeAsset` or `clearAssets`. Removing one `FilamentEntity` does not invalidate/change any other `FilamentEntity` handles; you can continue to safely manipulate these via the `FilamentController`.
### Lighting
You should now see your object in the viewport, but since we haven't added a light, this will be solid black.
Add an image-based light from a KTX file:
```dart
await _filamentController.loadIbl("assets/default_env/default_env_ibl.ktx");
```
You can also add dynamic lights:
```dart
var sun = await _filamentController.addLight(
```
### Manipulating entity transforms
To set the world space position of the asset:
```dart
_filamentController.setPositon(entity, 1.0, 1.0, 1.0);
```
On desktop, you can also click any renderable object in the viewport to retrieve its associated FilamentEntity (see below).
### Camera movement
To enable mouse/swipe navigation through the scene, wrap the `FilamentWidget` inside a `FilamentGestureDetector`:
```dart
class MyApp extends StatelessWidget {
final _filamentController = FilamentControllerFFI();
@override
Widget build(BuildContext context) {
return MaterialApp(
color: Colors.white,
home: Scaffold(backgroundColor: Colors.white, body: Stack(children:[
Positioned.fill(child:FilamentGestureDetector(
controller: _filamentController,
child:FilamentWidget(
controller:_filamentController
))),
Positioned(right:0, bottom:0, child:Container(color:Colors.purple, height:100, width:100))
])));
}
}
```
On desktop:
1) hold the middle mouse button and move the mouse to rotate the camera
2) hold the left mouse button and move the mouse to pan the camera
3) scroll up/down with the scrollwheel to zoom in/out.
On mobile:
1) swipe with your finger to pan the camera
2) double tap the viewport, then swipe with your finger to rotate the camera (double-tap again to return to pan)
3) pinch with two fingers in/out to zoom in/out.
### Changing the active camera
Every scene has a default camera. Whenever you rotate/pan/zoom the viewport, you are moving the default camera.
If you have added an entity to the scene that contains one or more camera nodes, you can change the active scene camera to one of those camera nodes.
```dart
var asset = await _filamentController.loadGlb("assets/some_asset_with_camera.glb");
await _filamentController.setCamera(asset, "Camera.002"); // pass the node name to load a specific camera under that entity node
await _filamentController.setCamera(asset, null); // pass null to load the first camera found under that entity
```
### Picking entities
On desktop, left-clicking an object in the viewport will retrieve the FilamentEntity for the top-most renderable instance at that cursor position (if any).
Note this is an asynchronous operation, so you will need to subscribe to the [pickResult] stream on your [FilamentController] to do something with the result.
```dart
class MyApp extends StatefulWidget {
//...
}
class _MyAppState extends State<MyApp> {
final _filamentController = FilamentControllerFFI();
@override
void initState() {
_filamentController.pickResult.listen((FilamentEntity filamentEntity) async {
var entityName = _filamentController.getNameForEntity(filamentEntity);
await showDialog(builder:(ctx) {
return Container(child:Text("You clicked $entityName"));
});
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
color: Colors.white,
home: Scaffold(backgroundColor: Colors.white, body: Stack(children:[
Positioned.fill(child:FilamentGestureDetector(
controller: _filamentController,
child:FilamentWidget(
controller:_filamentController
))),
])));
}
}
```
## Advanced Usage
If you want to work with custom materials, you will need some (basic knowledge of the underlying Filament library)[https://google.github.io/filament/Materials.html#compilingmaterials].
Things to keep in mind:
- You must compile materials with the correct version of Filament (see the table above). Keep in mind that versions may not be identical across platforms so you may need multiple uberz files for multiple platforms.
e.g. the lit_opaque.uberz file has been created from a Filament build:
```bash
cd out/cmake-android-release-aarch64/libs/gltfio
uberz -TSHADINGMODEL=lit -TBLENDING=opaque -o lit_opaque_43.uberz lit_opaque
```
(note that the number in the filename corresponds to the Material version, not the Filament version. Not every Filament version requires a new Material version).
## Footguns
### Stripping in release mode
If you build your app in release mode, you will need to ensure that "Dead Strip" is set to false.
This is because we only invoke the library at runtime via FFI, so at link time these symbols are otherwise treated as redundant.
### Animations when backgrounded
Don't call playAnimation when the app is in the background (i.e inactive/hidden). This will queue, but not start, an animation, and eventually this will overflow the command buffer when the app is foregrounded/resumed.
If you have some kind of looping animation in your app code, make sure it pauses while the app is backgrounded.
## Versioning
||Android|iOS|MacOS|Windows|Linux|WebGL|
|---|---|---|---|---|---|---|
|Filament|v1.43.1 (arm64/armeabi-v7a/x86/x86_64)|v1.43.1* (arm64)|v1.43.1 (arm64)|v1.32.4 (x86_64)|TODO**|TODO***|
|Flutter||3.15.0-15.2.pre|3.15.0-15.2.pre|3.15.0-15.2.pre
* iOS release build has a skybox bug so the debug versions are currently shipped on iOS
** (Waiting for https://github.com/google/filament/issues/7078 to be resolved before upgrading, not sure exactly when the bug was introduced but it was somewhere between v1.32.4 and v1.40.0)
*** Texture widget not currently supported on web in Flutter.
## Testing
We automate testing by running the example project on actual iOS/Android/MacOS/Windows devices and executing various operations.
Eventually we want to compare screenshots after each operation to a set of goldens for every platform.
Currently this is only possible on iOS (see https://github.com/flutter/flutter/issues/123063 and https://github.com/flutter/flutter/issues/127306).
To re-generate the golden screenshots for a given device:
```bash
./regenerate_goldens.sh <your_device_id>
```
To run the tests and compare against those goldens:
```
./compare_goldens.sh <your_device_id>
```
The results will depend on the actual device used to generate the golden, therefore if you are using a different device (which is likely), your results may not be the same. This is expected.
# Building Filament from source
```bash
git clone git@github.com:nmfisher/filament.git && cd filament
```
## Android/iOS/MacOS
```bash
git checkout flutter-filament-ios-android-macos
./build.sh -p <platform> release
```
## Windows
To support embedding GPU textures in Flutter (rather than copying to a CPU pixel buffer on every frame), we need to build a slightly customized version of Filament that uses GLES on Windows (rather than the default, which uses OpenGL).
Separately, we also force the Filament gltfio library to load assets via in-memory buffers, rather than the filesystem. This is simply a convenience so we don't have to use different logic for gltf resource loading across platforms.
```bash
git checkout flutter-filament-windows
mkdir out && cd out
"C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" --build . --target gltf_viewer --config Debug
```
Building notes:
On Android/iOS, we remove -fno-exceptions from CMakeLists.txt
Project structure:
- most shared code/headers under ios/src (because I still can't get podspec to build a target with symlinks or relative paths)
- building on MacOS, we currently just delete the macos/include and macos/src directories and copy from iOS (for same reason),
e.g.
```bash
make sync-macos
```
- Note also need to specifically build imageio/png/tinyexr
- if release build, then need to comment out -fno-exceptions
# Linux specific
(Fedora 34)
Building Filament:
env LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/11/ CC=clang CXX=clang++ CXX_FLAGS="-v" LD_FLAGS="-v" FILAMENT_REQUIRES_CXXABI=true ./build.sh -c release
Running example project:
export PKG_CONFIG_PATH=/usr/lib/pkgconfig/:/usr/lib64/pkgconfig/ CPLUS_INCLUDE_PATH=/usr/include/gtk-3.0/:/usr/include/pango-1.0/:/usr/include/harfbuzz:/usr/include/cairo/:/usr/include/gdk-pixbuf-2.0/:/usr/include/atk-1.0/
Web:
EMCC_CFLAGS="-Wno-missing-field-initializers -Wno-deprecated-literal-operator -fPIC" ./build.sh -c -p webgl -i debug
EMCC_CFLAGS="-I/Users/nickfisher/Documents/filament/libs/utils/include -I/Users/nickfisher/Documents/filament/libs/image/include -I/Users/nickfisher/Documents/filament/libs/math/include -I../../..//third_party/basisu/encoder/ -I../../..//third_party/libpng/ -I../../..//third_party/tinyexr/ -fPIC" emmake make
## Materials
We use a single material (no lighting and no transparency) for background images:
```bash
make generate-background-material
```
# Known issues
On Windows, loading a glTF (but NOT a glb) may crash due to a race condition between uploading resource data to GPU memory and being freed on the host side.
This has been fixed in recent versions of Filament, but other bugs on Windows prevent upgrading.
Only workaround is to load a .glb file.
# Thanks
- https://github.com/alexmercerind/flutter-windows-ANGLE-OpenGL-ES

View File

@@ -1,8 +0,0 @@
{
"allAbis": [
"arm64-v8a"
],
"validAbis": [
"ARM64_V8A"
]
}

View File

@@ -1 +0,0 @@
[]

View File

@@ -1,20 +0,0 @@
{
"ndkHandlerSupportedAbis": [
"ARMEABI_V7A",
"ARM64_V8A",
"X86",
"X86_64"
],
"ndkHandlerDefaultAbis": [
"ARMEABI_V7A",
"ARM64_V8A",
"X86",
"X86_64"
],
"externalNativeBuildAbiFilters": [],
"ndkConfigAbiFilters": [
"arm64-v8a"
],
"splitsFilterAbis": [],
"ideBuildOnlyTargetAbi": true
}

View File

@@ -1,11 +0,0 @@
{
"ndk": "C:\\Users\\Nick\\AppData\\Local\\Android\\Sdk\\ndk\\25.2.9519653",
"revision": {
"mMajor": 25,
"mMinor": 2,
"mMicro": 9519653,
"mPreview": 0,
"mPrecision": "MICRO",
"mPreviewSeparator": " "
}
}

View File

@@ -1,22 +0,0 @@
[
{
"level": "INFO",
"message": "android.ndkVersion from module build.gradle is [25.2.9519653]"
},
{
"level": "INFO",
"message": "android.ndkPath from module build.gradle is not set"
},
{
"level": "INFO",
"message": "ndk.dir in local.properties is not set"
},
{
"level": "INFO",
"message": "Not considering ANDROID_NDK_HOME because support was removed after deprecation period."
},
{
"level": "INFO",
"message": "sdkFolder is C:\\Users\\Nick\\AppData\\Local\\Android\\Sdk"
}
]

View File

@@ -1,17 +0,0 @@
{
"ndkVersionFromDsl": "25.2.9519653",
"sdkFolder": "C:\\Users\\Nick\\AppData\\Local\\Android\\Sdk",
"sideBySideNdkFolderNames": [
"19.2.5345600",
"21.1.6352462",
"21.4.7075529",
"22.0.7026061",
"22.1.7171670",
"23.0.7599858",
"23.1.7779620",
"23.2.8568313",
"24.0.8215888",
"25.1.8937393",
"25.2.9519653"
]
}

View File

@@ -1,61 +0,0 @@
cmake_minimum_required(VERSION 3.10)
include_directories(../ios/src)
include_directories(../ios/include)
include_directories(../ios/include/filament)
include_directories(src/main/cpp)
link_directories(src/main/jniLibs/${ANDROID_ABI})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
add_library(flutter_filament_android SHARED
"${CMAKE_CURRENT_SOURCE_DIR}/../ios/src/FlutterFilamentApi.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/../ios/src/FlutterFilamentFFIApi.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp/FilamentAndroid.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/../ios/src/AssetManager.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/../ios/src/FilamentViewer.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/../ios/src/StreamBufferAdapter.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/../ios/src/TimeIt.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/../ios/src/camutils/Manipulator.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/../ios/src/camutils/Bookmark.cpp"
)
add_library(FILAMENT_SHADERS SHARED
"${CMAKE_CURRENT_SOURCE_DIR}/../ios/include/material/image.c"
)
target_link_libraries(
flutter_filament_android
FILAMENT_SHADERS
-landroid
-llog
-lgltfio_core
-lfilament
-lbackend
-lgeometry
-lfilameshio
-lfilamat
-lfilabridge
-lcamutils
-lfilaflat
-ldracodec
-libl
-lktxreader
-limageio
-limage
-lutils
-ltinyexr
-lstb
-lbluevk
-lvkshaders
-luberzlib
-lsmol-v
-luberarchive
-lmeshoptimizer
-lgeometry
-lbasis_transcoder
-lGLESv3
-lEGL
-lpng
-lz
-lzstd
)

View File

@@ -1 +0,0 @@
rootProject.name = 'flutter_filament'

View File

@@ -1,21 +0,0 @@
#include <android/native_window_jni.h>
#include <android/native_activity.h>
extern "C" {
#include "FlutterFilamentFFIApi.h"
void* get_native_window_from_surface(
jobject surface,
JNIEnv* env
) {
void* window = ANativeWindow_fromSurface(env, surface);
return window;
}
// this does nothing, but we need it for JNA to return the correct pointer
FilamentRenderCallback make_render_callback_fn_pointer(FilamentRenderCallback callback) {
return callback;
}
}

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:577996c240a574c291848329ddc2823ed9432a3bb0eba4322bc8724f616b46dc
size 2186272

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:76eaee1bddc9c4fa2a5da5fece5bc33178092a24843250ad02623031fc6271b5
size 387274

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:11b0fc712800467f6f9eae1022a9b6a868c37040b8d27aab3b141f47684ee0f0
size 200504

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f56a73aa32f19c681cd140a83e64273b6bf550770cbc1ba0c39f8e8135d992ac
size 49004

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c3d89171648cd80b9457cc1d06e50f44cf816b37932dfb05d1d192743a75f3f6
size 283364

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5e9862f1e4694a57fafd1140d8749dabbb50c580673a5eefbd4f184a799b09a1
size 2537500

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b920ca16cc9542ddfb5d1710ccaafe6d6302c957c46583cd378eecb4855749d3
size 67032

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ee941c4e8d442ce441720653bacf58dca3811d957522364cc0df7c1323e9b0b8
size 49830

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f7cb50b8b077a1f5a3bc2f9ed0c77b45be68eae6090b2835ffd085bf2cdcc43d
size 28876048

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:014d1015b292c6a49e4bdbf86e1eea9000bc91497dcb072dd7c3c771de07a33e
size 650872

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e27d41d11d24399af9a06b3c320de343b4b035299c4372a035cf16f74d3a94e6
size 72470

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f9b76ab599e907ef8bc2c1372d01a8c1697b700fd231c523fc4d2d316d6c4e79
size 2730404

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d49cef08fadf1ce1853d683005b6e93d15364e40ec94913b9f4e33aa7bd1b1ed
size 42044

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fd3c186447e4e40f44b0fd37a6255add16c0b055cddcb73e9e570ea624d2b56e
size 99010

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3768e9aaa45b74679c7470730422f33b5bef68821a42e9fa176e5d2dc60c0f7f
size 1189476

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b826b2c7c829153b1d27706cb5db97cc69ef2f61f4736f020e17c30395651459
size 360156

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4853a94c43601aa7b5c072b4d789d435c5f2ddf4b9bdda96e44d363dbb7d1495
size 440976

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:19ccbbc7b5fb6f65c95c531f7562ee60882ebe755599787e050a6573e509f029
size 104924

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2affa1a46f0509e26741e613278ba7742e73d5665b201d9819c9357b3824c9ff
size 212054

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f7d7948a522c57f3b6bf0e3f1570c7ba5b90499006c79660d8d2bd157d280fad
size 51514

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d0089029b919d128e1520250925d23b304566c5a831eb7be4c156d61a11b37b6
size 143536

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:68f40361280bc8fde1350a00d8e3ce4129b69385bac3d9eda37c0b392f9a167e
size 20686

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:dde94c36b283091a5a3211e8a336f3f50dd1664db09929e5f2a654adaf0db6b3
size 355194

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:eca6cad667424fa5cb4808a009cf8b72b240bb3b4e5bcf14155d3b625eba7e28
size 127430

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:08bb916351f38d144803944cc2b9d6659a297dab73d99394d66237b3073177ee
size 39734

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:99fdf005160d4f1be0b72a24a3abafa7f11ba47950125a664a535637071dafc5
size 130006

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f27ccb09daed406bd49c8d47b1738815d8daf0336a3fea6fdb059876e2416493
size 226376

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cdb8a9ed3a9ba3cdbbeef8065358a92b6654363e7f4e1b57d0522abc063d27e6
size 1831436

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b3bf56398e2410c37613d7ab6f43bdd65eaec1d70e2a315db08f2c6e836cb0d6
size 32970

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0ffbd71464e87f505601a1bf2e6ca8f1ff14a541d878811d9a7c460cf52d3d28
size 360534

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:89928210c8470639f8db62fbcc74c31b72f79411db3454040d77c749a9047b6b
size 534600

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9040bd03b7b1021be16908c4e398c55e67283f4e471dd4ffbc407828147e380d
size 2446

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:aa6d6caaa63f5b406bce82001fa415d2dfe199c6e443514552655d9f2bed4bc4
size 124934

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9884cc62093cae12ef44610b0bbf5ab9a3940772646377644f11677f5ec2a6a4
size 693850

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b0e90af7a4eeddda57a6d2e908e17d5f811acf05e85f0bb02db9330e84baea14
size 1921834

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ac08b9235e1f64644cd63900be5eb89d41669e644fb9f9682f2a983cabb8af47
size 334968

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e2dc261eb31198f16f611ca7f7c20acfec21e24b486ed5dea10ed64effad5bbf
size 97648

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6a58756b0425352edf2c02df034177fb0b0bf885bdb70850c5e3ec8091ca1308
size 49696

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:41041d6ee1b1ecb9fbeac961170b493b6f923f0cb0fadb450c30022132973f5f
size 192156

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f8e9f2005ad07aacb49c5b02c55f2b418879bd409f09619b8d6ccff427971310
size 2163328

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:46bc4c3723ce398239975826895515ce0bff3c58b6f2e7875be819bb748b2800
size 58366

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:19627f494f67d03a428b786095cd9720f12137b3f0ca10518424d012e76d7e0a
size 44928

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:094642603b72a40f73a46596a9a30ff4b0076bb074c746ff2bf324cc5bb3d92a
size 25254932

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f65567b38b146e39092ce9f9eef8ff588dbd97531202aa847916ad98b91e90b7
size 538770

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c22085b3bd21823ee8b28e3b9a43fe61c71e26c0ffd84447d505d307a98ec4e4
size 61498

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:87e140c8a18facb798d66432d5c6e148e1d85a7f9e3a8b0cbd6b8ca727a470fa
size 2627016

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bb836a5781758df35cb3101fbdf85450ab125dc6a8f86b9c10f69212111e6740
size 36352

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e96465ea3fa2e75a9b138985cf090068febaeab3821c9f63515ae4ec10b511a8
size 87278

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:99012d0b89fd8c149a5d68576f54de962bad345b5a89f6bd4078994583111303
size 1022636

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1637be0db30afc4d5291ad78bd2e4e661ff4168ab1d0e67182b5e32039fec901
size 349604

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:baff9505cb2c26505b549f613a99a2b790426edfb25aefd76d3fd0dd7b8090ec
size 431960

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:111c0e0c798c56f82df3f6d9c54f8034bcd8d501f4032ad20fe5dc3d6fe85dcd
size 80256

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9c413e680c5df5f8ca0600df1938c0c94e52ba15f733fb86dac6259efe8becd1
size 161038

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:76e98365dcfffa1af20248f6183d04876c7801aeaf3b9baf1921eb8bc9c05092
size 41644

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a9c8bc64684f16214fa741edefaa467c3d3987d45ef7bc5f3a9339b309b3dd7e
size 111704

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c531d71de69f8734b1946d8f18b18d7217f5f133bf10f7e120ca40f36b5f028b
size 15326

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fd5bf07a67fbb6096da10f6ffc3a60aaf720662370c6ccbbf3582999d0833c28
size 243322

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:97f602f703a739609f874fb07e5f3116520dc4085ccc634c8f00cc1fa6551fd0
size 126666

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:375bc70b9a5e0a9143373d4ed579227d665e232889bd8963f55b5dab0c8ebb87
size 27622

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:23f077c0379cbca2bad3b342cc0db2bb0bf1747dc95e884afd709143b2702dbf
size 88774

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:09ee485f222900bc3f67d9daec7711d7ca1c57abcacc7f4df5e5f76f2534ea47
size 152200

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f2e2eabf92a463967157fc0cf5319e4b59c1e9afe7d98bcd8667b89a5e3dffb9
size 1831260

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ac61dec39919f1c19a9601b073020593e6cc9d0cbe27fe3e2104d904bd345196
size 27354

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3d314214a0a09fe047080b54cd8684a0322c192a45d1f859914677ec84c8711e
size 299782

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6865d378b0e97f1f829221c45e4b74091953d3ce66222c2534be6c5f470e13d8
size 392688

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c2bdeeafe7933584916aa8d8e07856b8660025eae13a602a090c884dd009776b
size 2254

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fcf5034e7d1fb324feebe63497b151b0ce2acaaae2cd2a13ad18d24eba8d5fff
size 91942

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:da1ea9abc45796696b36a30aa451978a646b43d85ebec43c157efff4501a7f87
size 563610

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d7d7fd061ad93dd9ac21c5b0620c3a7b38b54375d518bfb3f31dcb51f1b3d1f5
size 1791656

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:84273290e6b3ebd92a97d9904005eb031a4e2c40e236b572ede6f20aa8f6b5c2
size 392140

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ae215d1057b2df182a15cef28c3dbcfadbd7e919cd658f79d48cc679dcc981fb
size 131020

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:eb4db56341d4c880a3a7304e9788d9279890b30315c3d8cf4ded49b60e202e22
size 46776

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1d07d91f9ce5a99c910a5c767710305db09af0940a8b0e8fe44bd07d0098c0f2
size 239568

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fd82549b6db29c158d096340f72dddadf31cc757d7fd02496eeefbcaaa89c69b
size 2175384

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:54953690caae540cb34c61f18b50161b4f83cc98a5e52c0498024bcd66deb4d5
size 53346

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:12b12cdf3017cce821c86e612ceeb26e227a32ae42d46822ffc9149e1382c337
size 41466

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e0f1500570bb005e14cb490331980b2eed7d74b28500c6363947d833c97ae963
size 23301288

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f7831363303801ef3e83ee9d31f65c386f310e174a921d921ca17afe216b7115
size 521960

Some files were not shown because too many files have changed in this diff Show More