diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 11340e45..00000000 --- a/.gitattributes +++ /dev/null @@ -1,392 +0,0 @@ -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/ThermionTexture.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/image.filamat 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 diff --git a/.github/workflows/dart.yml b/.github/workflows/dart.yml new file mode 100644 index 00000000..0c1079aa --- /dev/null +++ b/.github/workflows/dart.yml @@ -0,0 +1,42 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +name: Dart + +on: + push: + branches: [ "develop" ] + pull_request: + branches: [ "develop" ] + +jobs: + build: + runs-on: macos-13 + + steps: + - uses: actions/checkout@v4 + + # Note: This workflow uses the latest stable version of the Dart SDK. + # You can specify other versions if desired, see documentation here: + # https://github.com/dart-lang/setup-dart/blob/main/README.md + # - uses: dart-lang/setup-dart@v1 + - uses: dart-lang/setup-dart@9a04e6d73cca37bd455e0608d7e5092f881fd603 + + - name: Install dependencies + run: dart pub get + + # Uncomment this step to verify the use of 'dart format' on each commit. + # - name: Verify formatting + # run: dart format --output=none --set-exit-if-changed . + + # Consider passing '--fatal-infos' for slightly stricter analysis. + - name: Analyze project source + run: dart analyze + + # Your project will need to have tests in test/ and a dependency on + # package:test for this step to succeed. Note that Flutter projects will + # want to change this to 'flutter test'. + - name: Run tests + run: dart --enable-experiment=native-assets test diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a8077fd..801e5292 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,329 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## 2024-10-23 + +### Changes + +--- + +Packages with breaking changes: + + - [`thermion_dart` - `v0.2.1-dev.0.0.10`](#thermion_dart---v021-dev0010) + - [`thermion_flutter` - `v0.2.1-dev.9`](#thermion_flutter---v021-dev9) + - [`thermion_flutter_ffi` - `v0.2.1-dev.9`](#thermion_flutter_ffi---v021-dev9) + - [`thermion_flutter_platform_interface` - `v0.2.1-dev.9`](#thermion_flutter_platform_interface---v021-dev9) + - [`thermion_flutter_web` - `v0.2.0`](#thermion_flutter_web---v020) + +Packages with other changes: + + - There are no other changes in this release. + +--- + +#### `thermion_dart` - `v0.2.1-dev.0.0.10` + + - Change defaults for DelegateInputHandler + + - **REFACTOR**: move native types to own header, add methods for create/destroy material instance, add priority/layer to load_glb_from_buffer. + - **REFACTOR**: native types. + - **REFACTOR**: continual refactor to support multiple render targets. + - **REFACTOR**: native types. + - **REFACTOR**: move native types to own header, add methods for create/destroy material instance, add priority/layer to load_glb_from_buffer. + - **REFACTOR**: Dart types. + - **REFACTOR**: Dart types. + - **REFACTOR**: continual refactor to support multiple render targets. + - **REFACTOR**: native types. + - **REFACTOR**: native types. + - **FIX**: set render target to null for each view and then destroy render targets when viewer disposed. + - **FIX**: add check for nan NDC coordinates for viewport translation. + - **FIX**: move createUnlitMaterialInstance and createGeometry to render thread. + - **FIX**: properly destroy entities/material/etc in Gizmo on destruction, remove custom scene creation logic. + - **FIX**: dont calculate surface orientation for non-triangle geometry. + - **FIX**: set View render target to nullptr if Dart renderTarget is null. + - **FIX**: properly destroy entities/material/etc in Gizmo on destruction, remove custom scene creation logic. + - **FIX**: add Fence to capture() and set stencil buffer by default. + - **FIX**: emscripten export visibility for add_light. + - **FIX**: (wasm) use correct coords for pick, free memory correctly, keep pixelratio copy. + - **FIX**: add more nan checks for gizmo manipulation. + - **FIX**: add check for nan NDC coordinates for viewport translation. + - **FIX**: (web) add emscripten guards for flushAndWait call when swapchain destroyed. + - **FIX**: move createUnlitMaterialInstance and createGeometry to render thread. + - **FIX**: move createUnlitMaterialInstance and createGeometry to render thread. + - **FIX**: move createUnlitMaterialInstance and createGeometry to render thread. + - **FIX**: dont calculate surface orientation for non-triangle geometry. + - **FIX**: add more nan checks for gizmo manipulation. + - **FIX**: set View render target to nullptr if Dart renderTarget is null. + - **FIX**: set render target to null for each view and then destroy render targets when viewer disposed. + - **FIX**: move ThermionWin32.h to include. + - **FIX**: move ThermionWin32.h to include. + - **FIX**: (wasm) use correct coords for pick, free memory correctly, keep pixelratio copy. + - **FIX**: emscripten export visibility for add_light. + - **FIX**: ignore pick results directly on axis. + - **FIX**: add Fence to capture() and set stencil buffer by default. + - **FIX**: move createUnlitMaterialInstance and createGeometry to render thread. + - **FIX**: (web) add emscripten guards for flushAndWait call when swapchain destroyed. + - **FIX**: ignore pick results directly on axis. + - **FIX**: move createUnlitMaterialInstance and createGeometry to render thread. + - **FEAT**: download WASM module directly on web (no need to embed in index.html any more) and expose updateViewportAndCameraProjection. + - **FEAT**: layers, grid. + - **FEAT**: simplify FixedOrbitCameraRotationDelegate. + - **FEAT**: produce debug symbols on Windows. + - **FEAT**: move HighlightOverlay to nested class, move createGeometry to SceneManager, add queueRelativePositionUpdateFromViewportVector. + - **FEAT**: set InputType.SCALE1 to ROTATE by default for DelegateInputHandler.fixedOrbit. + - **FEAT**: parent the cloned entity instance when setting stencil highlight. + - **FEAT**: add getAncestor method. + - **FEAT**: add getAncestor method. + - **FEAT**: set stencil highlight on gizmo attach. + - **FEAT**: move createGeometry to SceneManager, add queueRelativePositionUpdateFromViewportVector and removeStencilHighlight. + - **FEAT**: download WASM module directly on web (no need to embed in index.html any more) and expose updateViewportAndCameraProjection. + - **FEAT**: move HighlightOverlay to nested class, move createGeometry to SceneManager, add queueRelativePositionUpdateFromViewportVector. + - **FEAT**: add removeStencilHighlight, accept color param for setStencilHighlight, queuePositionUpdateFromViewportCoords to ThermionDartApi. + - **FEAT**: add removeStencilHighlight, queuePositionUpdateFromViewportCoords to ThermionViewer. + - **FEAT**: camera and resizing improvements. + - **FEAT**: add flag for keepData for gltf instancing, add highlightScene, add stencilHighlight method. + - **FEAT**: grid uses own material. + - **FEAT**: set SCALE2:InputAction.ZOOM by default. + - **FEAT**: add grid material. + - **FEAT**: expose setLightDirection and setLightPosition. + - **FEAT**: support multiple ThermionWidget on Android. + - **FEAT**: use imported texture on iOS. + - **FEAT**: add setGizmoVisibility/pickGizmo methods to ThermionViewer. + - **FEAT**: remove gizmo view references, exclude gizmo entities from picking, add createIbl. + - **FEAT**: createIbl. + - **FEAT**: working implementation of multiple widgets on macos. + - **FEAT**: expose API methods for create_ibl, pick/set gizmo visibility. + - **FEAT**: create transparent overlay for gizmo for easier picking. + - **FEAT**: rescale gizmo based on distance from camera. + - **FEAT**: rescale gizmo based on distance from camera. + - **FEAT**: track zoom delta for DelegateInputHandler. + - **FEAT**: expose setLayerEnabled, viewportDimensions and getCameraFov on ThermionView. + - **FEAT**: layers, grid. + - **FEAT**: add capture() function and expose viewportDimensions on ThermionViewer (allows easier saving of captured images to PNG). + - **FEAT**: ignore grid overlay and gizmo center when picking, implement highlighting. + - **FEAT**: SceneManager updates (setLayer, add grid, queueRelativePositionUpdateWorld. + - **FEAT**: expose set_layer_enabled, get_camera_fov and queue_relative_position_updateg_world_axis to ThermionDartApi.h. + - **FEAT**: add getCameraFov to FilamentViewer. + - **FEAT**: add new grid overlay files to web CmakeLists. + - **FEAT**: re-implement (native) Gizmo class, expose preserveScaling parameter for setParent, add methods for getting viewport bounding box from renderable entity. + - **FEAT**: more work on multiple views/swapchains. + - **FEAT**: rescale gizmo based on distance from camera. + - **FEAT**: add capture() function and expose viewportDimensions on ThermionViewer (allows easier saving of captured images to PNG). + - **FEAT**: (web) allow table growth in emscripten module for passing C-style callback function pointers. + - **FEAT**: (web) add capture() method and missing camera navigation controls. + - **FEAT**: rescale gizmo based on distance from camera. + - **FEAT**: add grid material. + - **FEAT**: add startOffset parameter to gltf playAnimation. + - **FEAT**: create transparent overlay for gizmo for easier picking. + - **FEAT**: working implementation of multiple widgets on macos. + - **FEAT**: produce debug symbols on Windows. + - **FEAT**: (web) add capture() method and missing camera navigation controls. + - **FEAT**: re-implement (native) Gizmo class, expose preserveScaling parameter for setParent, add methods for getting viewport bounding box from renderable entity. + - **FEAT**: add new grid overlay files to web CmakeLists. + - **FEAT**: expose API methods for create_ibl, pick/set gizmo visibility. + - **FEAT**: add setParameterFloat2 method. + - **FEAT**: createIbl. + - **FEAT**: simplify FixedOrbitCameraRotationDelegate. + - **FEAT**: add setParameterFloat2 method. + - **FEAT**: expose setLayerEnabled, viewportDimensions and getCameraFov on ThermionView. + - **FEAT**: (web) allow table growth in emscripten module for passing C-style callback function pointers. + - **FEAT**: add getCameraFov to FilamentViewer. + - **FEAT**: camera and resizing improvements. + - **FEAT**: support multiple ThermionWidget on Android. + - **FEAT**: use imported texture on iOS. + - **FEAT**: add removeStencilHighlight, accept color param for setStencilHighlight, queuePositionUpdateFromViewportCoords to ThermionDartApi. + - **FEAT**: expose set_layer_enabled, get_camera_fov and queue_relative_position_updateg_world_axis to ThermionDartApi.h. + - **FEAT**: more work on multiple views/swapchains. + - **FEAT**: move createGeometry to SceneManager, add queueRelativePositionUpdateFromViewportVector and removeStencilHighlight. + - **FEAT**: remove gizmo view references, exclude gizmo entities from picking, add createIbl. + - **FEAT**: add setGizmoVisibility/pickGizmo methods to ThermionViewer. + - **FEAT**: add uvScale to unlit material. + - **FEAT**: add setParameterFloat2 method. + - **FEAT**: add setParameterFloat2 method. + - **FEAT**: set stencil highlight on gizmo attach. + - **FEAT**: add startOffset parameter to gltf playAnimation. + - **FEAT**: add ThirdPersonCameraDelegate. + - **FEAT**: add uvScale to unlit material. + - **FEAT**: add ThirdPersonCameraDelegate. + - **FEAT**: expose setLightDirection and setLightPosition. + - **FEAT**: set camera model matrix directly. + - **FEAT**: expose more camera methods. + - **FEAT**: add getAncestor method. + - **FEAT**: grid uses own material. + - **FEAT**: add flag for keepData for gltf instancing, add highlightScene, add stencilHighlight method. + - **FEAT**: set camera model matrix directly. + - **FEAT**: add removeStencilHighlight, queuePositionUpdateFromViewportCoords to ThermionViewer. + - **FEAT**: expose more camera methods. + - **FEAT**: ignore grid overlay and gizmo center when picking, implement highlighting. + - **FEAT**: layers, grid. + - **FEAT**: layers, grid. + - **FEAT**: parent the cloned entity instance when setting stencil highlight. + - **FEAT**: add getAncestor method. + - **FEAT**: SceneManager updates (setLayer, add grid, queueRelativePositionUpdateWorld. + - **DOCS**: add quickstart to README. + - **DOCS**: add quickstart to README. + - **BREAKING** **REFACTOR**: remove RenderThread methods no longer needed. + - **BREAKING** **REFACTOR**: refactor to support multiple Views/Render Targets. + - **BREAKING** **REFACTOR**: refactor to support multiple Views/Render Targets. + - **BREAKING** **REFACTOR**: remove RenderThread methods no longer needed. + - **BREAKING** **FIX**: Dart-only release mode builds on Window. + - **BREAKING** **FIX**: (windows) add flushAndWait call to capture() to prevent stalling on Windows; use provided buffer as pixelBuffer rather than duplicate allocation. + - **BREAKING** **FIX**: fix min SDK for thermion_dart. + - **BREAKING** **FIX**: replace queuePosition/Rotation with queueTransforms. + - **BREAKING** **FIX**: add meshoptimizer lib on Windows. + - **BREAKING** **FIX**: replace queuePosition/Rotation with queueTransforms. + - **BREAKING** **FIX**: replace queuePosition/Rotation with queueTransforms. + - **BREAKING** **FIX**: replace queuePosition/Rotation with queueTransforms. + - **BREAKING** **FIX**: Dart-only release mode builds on Window. + - **BREAKING** **FIX**: (web/wasm) free pick callbacks on dispose. + - **BREAKING** **FIX**: (windows) add flushAndWait call to capture() to prevent stalling on Windows; use provided buffer as pixelBuffer rather than duplicate allocation. + - **BREAKING** **FIX**: add meshoptimizer lib on Windows. + - **BREAKING** **FIX**: (web/wasm) free pick callbacks on dispose. + - **BREAKING** **FIX**: fix min SDK for thermion_dart. + - **BREAKING** **FIX**: replace queuePosition/Rotation with queueTransforms. + - **BREAKING** **FIX**: replace queuePosition/Rotation with queueTransforms. + - **BREAKING** **FIX**: replace queuePosition/Rotation with queueTransforms. + - **BREAKING** **FIX**: replace queuePosition/Rotation with queueTransforms. + - **BREAKING** **FEAT**: update web/http dependencies. + - **BREAKING** **FEAT**: big refactor to support multiple swapchains. + - **BREAKING** **FEAT**: update web/http dependencies. + - **BREAKING** **FEAT**: (web) (flutter) create canvas when createViewer is called (no longer need to manually add canvas element to web HTML). + - **BREAKING** **FEAT**: set baseColorIndex to -1 by default in unlit materialss. + - **BREAKING** **FEAT**: (web) (flutter) create canvas when createViewer is called (no longer need to manually add canvas element to web HTML). + - **BREAKING** **FEAT**: big refactor to support multiple swapchains. + - **BREAKING** **FEAT**: set baseColorIndex to -1 by default in unlit materialss. + - **BREAKING** **CHORE**: cleanup deleted export. + - **BREAKING** **CHORE**: remove EntityTransformController (requires replacement). + - **BREAKING** **CHORE**: restructure viewer folders as libraries to only export the public interface. + - **BREAKING** **CHORE**: View.getCamera returns Future. + - **BREAKING** **CHORE**: cleanup deleted export. + - **BREAKING** **CHORE**: remove EntityTransformController (requires replacement). + - **BREAKING** **CHORE**: View.getCamera returns Future. + - **BREAKING** **CHORE**: restructure viewer folders as libraries to only export the public interface. + +#### `thermion_flutter` - `v0.2.1-dev.9` + + - **REFACTOR**: continual refactor to support multiple render targets. + - **REFACTOR**: continual refactor to support multiple render targets. + - **FIX**: (flutter) pass ThermionFlutterOptions to ThermionWidget, use dpr for resizeTexture, delete unnecessary TransparencyPainter class. + - **FIX**: (flutter/web) use window.devicePixelRatio for viewport. + - **FIX**: use internal Set for determining first ThermionTextureWidget to call requestFrame and cleanup destruction logic. + - **FIX**: (flutter) pass ThermionFlutterOptions to ThermionWidget, use dpr for resizeTexture, delete unnecessary TransparencyPainter class. + - **FIX**: fix all Windows warnings so apps will compile with /WX. + - **FIX**: (flutter) desktop gesture detector changes for new Gizmo methods. + - **FIX**: (flutter/web) use window.devicePixelRatio for viewport. + - **FIX**: use internal Set for determining first ThermionTextureWidget to call requestFrame and cleanup destruction logic. + - **FIX**: fix all Windows warnings so apps will compile with /WX. + - **FIX**: (flutter) desktop gesture detector changes for new Gizmo methods. + - **FEAT**: highlight gizmo on hover. + - **FEAT**: add rendering check to ThermionWidget ticker. + - **FEAT**: (flutter) (windows) add DestroyRenderingSurface method. + - **FEAT**: add createViewerWithOptions to ThermionFlutterPlugin and mark createViewer as deprecated. + - **FEAT**: add createViewerWithOptions to ThermionFlutterPlugin and mark createViewer as deprecated. + - **FEAT**: allow passing null options to ThermionWidget. + - **FEAT**: (flutter) (web) if importCanvasAsWidget is false, render transparency. + - **FEAT**: (flutter) (windows) add DestroyRenderingSurface method. + - **FEAT**: add createViewerWithOptions to ThermionFlutterPlugin and mark createViewer as deprecated. + - **FEAT**: add createViewerWithOptions to ThermionFlutterPlugin and mark createViewer as deprecated. + - **FEAT**: use imported texture on iOS. + - **FEAT**: support multiple ThermionWidget on Android. + - **FEAT**: highlight gizmo on hover. + - **FEAT**: (flutter) (web) if importCanvasAsWidget is false, render transparency. + - **FEAT**: working implementation of multiple widgets on macos. + - **FEAT**: add rendering check to ThermionWidget ticker. + - **FEAT**: working implementation of multiple widgets on macos. + - **FEAT**: camera and resizing improvements. + - **FEAT**: (flutter) (windows) add DestroyRenderingSurface method. + - **FEAT**: (flutter) (windows) add DestroyRenderingSurface method. + - **FEAT**: (flutter) (windows) add DestroyRenderingSurface method. + - **FEAT**: (flutter) (windows) add Destroy() to BackingWindow. + - **FEAT**: (flutter) (windows) add Destroy() to BackingWindow. + - **FEAT**: camera and resizing improvements. + - **FEAT**: support multiple ThermionWidget on Android. + - **FEAT**: (flutter) (windows) add DestroyRenderingSurface method. + - **FEAT**: allow passing null options to ThermionWidget. + - **FEAT**: use imported texture on iOS. + - **BREAKING** **FIX**: remove EntityControllerMouseWidget (replace with GestureHandler). + - **BREAKING** **FIX**: (flutter) pass pixelRatio to createTexture. + - **BREAKING** **FIX**: (flutter) pass pixelRatio to createTexture. + - **BREAKING** **FIX**: remove EntityControllerMouseWidget (replace with GestureHandler). + - **BREAKING** **FIX**: (flutter) pass pixelRatio to createTexture. + - **BREAKING** **FIX**: (flutter) pass pixelRatio to createTexture. + - **BREAKING** **FEAT**: (web) (flutter) create canvas when createViewer is called (no longer need to manually add canvas element to web HTML). + - **BREAKING** **FEAT**: resize canvas on web. + - **BREAKING** **FEAT**: (web) (flutter) create canvas when createViewer is called (no longer need to manually add canvas element to web HTML). + - **BREAKING** **FEAT**: resize canvas on web. + - **BREAKING** **CHORE**: remove superseded HardwareKeyboard* classes. + - **BREAKING** **CHORE**: (flutter) cleanup for pub.dev publishing. + - **BREAKING** **CHORE**: remove EntityListWidget - will replace with new Scene. + - **BREAKING** **CHORE**: rename controller to viewer in gesture detector widgets. + - **BREAKING** **CHORE**: rename controller to viewer in gesture detector widgets. + - **BREAKING** **CHORE**: remove EntityListWidget - will replace with new Scene. + - **BREAKING** **CHORE**: (flutter) cleanup for pub.dev publishing. + - **BREAKING** **CHORE**: remove superseded HardwareKeyboard* classes. + +#### `thermion_flutter_ffi` - `v0.2.1-dev.9` + + - **REFACTOR**: continual refactor to support multiple render targets. + - **REFACTOR**: continual refactor to support multiple render targets. + - **FIX**: on resize, destroy swapchain if destroySwapChainOnResize is true. + - **FIX**: add listener in ThermionFlutterTextureBackedPlatform to unset viewer on dispose. + - **FIX**: add listener in ThermionFlutterMethodChannelInterface to unset viewer on dispose. + - **FIX**: clean up destruction logic for FlutterPlatformTexture. + - **FIX**: on resize, destroy swapchain if destroySwapChainOnResize is true. + - **FIX**: add listener in ThermionFlutterTextureBackedPlatform to unset viewer on dispose. + - **FIX**: add listener in ThermionFlutterMethodChannelInterface to unset viewer on dispose. + - **FIX**: clean up destruction logic for FlutterPlatformTexture. + - **FIX**: web/JS bool checks need to compare to int. + - **FEAT**: support multiple ThermionWidget on Android. + - **FEAT**: use imported texture on iOS. + - **FEAT**: working implementation of multiple widgets on macos. + - **FEAT**: (flutter) move DPR calculation to resizeTexture and add createViewerWithOptions method to ThermionFlutterFFI. + - **FEAT**: support multiple ThermionWidget on Android. + - **FEAT**: use imported texture on iOS. + - **FEAT**: working implementation of multiple widgets on macos. + - **FEAT**: (flutter) move DPR calculation to resizeTexture and add createViewerWithOptions method to ThermionFlutterFFI. + - **BREAKING** **REFACTOR**: refactor to support multiple Views/Render Targets. + - **BREAKING** **REFACTOR**: refactor to support multiple Views/Render Targets. + - **BREAKING** **FIX**: (flutter) pass pixelRatio to createTexture. + - **BREAKING** **FIX**: (flutter) pass pixelRatio to createTexture. + - **BREAKING** **FEAT**: big refactor to support multiple swapchains. + - **BREAKING** **FEAT**: big refactor to support multiple swapchains. + +#### `thermion_flutter_platform_interface` - `v0.2.1-dev.9` + + - **REFACTOR**: continual refactor to support multiple render targets. + - **REFACTOR**: continual refactor to support multiple render targets. + - **FEAT**: support multiple ThermionWidget on Android. + - **FEAT**: working implementation of multiple widgets on macos. + - **FEAT**: add createViewerWithOptions to ThermionFlutterPlugin and mark createViewer as deprecated. + - **FEAT**: add ThermionFlutterOptions classes, rename interface parameter for offsetTop and ensure pixelRatio is passed to resizeTexture. + - **FEAT**: support multiple ThermionWidget on Android. + - **FEAT**: working implementation of multiple widgets on macos. + - **FEAT**: add createViewerWithOptions to ThermionFlutterPlugin and mark createViewer as deprecated. + - **FEAT**: add ThermionFlutterOptions classes, rename interface parameter for offsetTop and ensure pixelRatio is passed to resizeTexture. + - **BREAKING** **FIX**: (flutter) pass pixelRatio to createTexture. + - **BREAKING** **FIX**: (flutter) pass pixelRatio to createTexture. + +#### `thermion_flutter_web` - `v0.2.0` + + - **FIX**: (flutter/web) use window.devicePixelRatio for viewport. + - **FIX**: (flutter/web) use window.devicePixelRatio for viewport. + - **FEAT**: (flutter) (web) use options to determine whether to create canvas, and set fixed position + offset. + - **FEAT**: add ThermionFlutterOptions classes, rename interface parameter for offsetTop and ensure pixelRatio is passed to resizeTexture. + - **FEAT**: (flutter) (web) use options to determine whether to create canvas, and set fixed position + offset. + - **FEAT**: add ThermionFlutterOptions classes, rename interface parameter for offsetTop and ensure pixelRatio is passed to resizeTexture. + - **FEAT**: allow passing assetPathPrefix to ThermionViewerWasm to account for Flutter build asset paths. + - **BREAKING** **FEAT**: (flutter) (web) upgrade package:web dep to 1.0.0. + - **BREAKING** **FEAT**: (web) (flutter) create canvas when createViewer is called (no longer need to manually add canvas element to web HTML). + - **BREAKING** **FEAT**: resize canvas on web. + - **BREAKING** **FEAT**: (flutter) (web) upgrade package:web dep to 1.0.0. + - **BREAKING** **FEAT**: (web) (flutter) create canvas when createViewer is called (no longer need to manually add canvas element to web HTML). + - **BREAKING** **FEAT**: resize canvas on web. + - **BREAKING** **CHORE**: restructure viewer folders as libraries to only export the public interface. + - **BREAKING** **CHORE**: restructure viewer folders as libraries to only export the public interface. + + ## 2024-10-23 ### Changes diff --git a/docs.json b/docs.json index a25b3003..e70086c3 100644 --- a/docs.json +++ b/docs.json @@ -7,7 +7,8 @@ "Getting Started", [ ["Overview", "/"], - ["Quick Start", "/quickstart"] + ["Quick Start", "/quickstart"], + ["Camera Manipulation", "/camera_manipulation"] ] ], ["Misc.", [ diff --git a/examples/flutter/camera_manipulation/pubspec.yaml b/examples/flutter/camera_manipulation/pubspec.yaml index 075138f7..4a41e1bc 100644 --- a/examples/flutter/camera_manipulation/pubspec.yaml +++ b/examples/flutter/camera_manipulation/pubspec.yaml @@ -15,7 +15,7 @@ dependencies: win32: 5.5.1 web: 1.0.0 - thermion_flutter: ^0.2.1-dev.8 + thermion_flutter: ^0.2.1-dev.9 dev_dependencies: flutter_test: diff --git a/thermion_dart/CHANGELOG.md b/thermion_dart/CHANGELOG.md index cd773efe..6f3bd8c3 100644 --- a/thermion_dart/CHANGELOG.md +++ b/thermion_dart/CHANGELOG.md @@ -1,3 +1,185 @@ +## 0.2.1-dev.0.0.10 + +> Note: This release has breaking changes. + + - Change defaults for DelegateInputHandler + + - **REFACTOR**: move native types to own header, add methods for create/destroy material instance, add priority/layer to load_glb_from_buffer. + - **REFACTOR**: native types. + - **REFACTOR**: continual refactor to support multiple render targets. + - **REFACTOR**: native types. + - **REFACTOR**: move native types to own header, add methods for create/destroy material instance, add priority/layer to load_glb_from_buffer. + - **REFACTOR**: Dart types. + - **REFACTOR**: Dart types. + - **REFACTOR**: continual refactor to support multiple render targets. + - **REFACTOR**: native types. + - **REFACTOR**: native types. + - **FIX**: set render target to null for each view and then destroy render targets when viewer disposed. + - **FIX**: add check for nan NDC coordinates for viewport translation. + - **FIX**: move createUnlitMaterialInstance and createGeometry to render thread. + - **FIX**: properly destroy entities/material/etc in Gizmo on destruction, remove custom scene creation logic. + - **FIX**: dont calculate surface orientation for non-triangle geometry. + - **FIX**: set View render target to nullptr if Dart renderTarget is null. + - **FIX**: properly destroy entities/material/etc in Gizmo on destruction, remove custom scene creation logic. + - **FIX**: add Fence to capture() and set stencil buffer by default. + - **FIX**: emscripten export visibility for add_light. + - **FIX**: (wasm) use correct coords for pick, free memory correctly, keep pixelratio copy. + - **FIX**: add more nan checks for gizmo manipulation. + - **FIX**: add check for nan NDC coordinates for viewport translation. + - **FIX**: (web) add emscripten guards for flushAndWait call when swapchain destroyed. + - **FIX**: move createUnlitMaterialInstance and createGeometry to render thread. + - **FIX**: move createUnlitMaterialInstance and createGeometry to render thread. + - **FIX**: move createUnlitMaterialInstance and createGeometry to render thread. + - **FIX**: dont calculate surface orientation for non-triangle geometry. + - **FIX**: add more nan checks for gizmo manipulation. + - **FIX**: set View render target to nullptr if Dart renderTarget is null. + - **FIX**: set render target to null for each view and then destroy render targets when viewer disposed. + - **FIX**: move ThermionWin32.h to include. + - **FIX**: move ThermionWin32.h to include. + - **FIX**: (wasm) use correct coords for pick, free memory correctly, keep pixelratio copy. + - **FIX**: emscripten export visibility for add_light. + - **FIX**: ignore pick results directly on axis. + - **FIX**: add Fence to capture() and set stencil buffer by default. + - **FIX**: move createUnlitMaterialInstance and createGeometry to render thread. + - **FIX**: (web) add emscripten guards for flushAndWait call when swapchain destroyed. + - **FIX**: ignore pick results directly on axis. + - **FIX**: move createUnlitMaterialInstance and createGeometry to render thread. + - **FEAT**: download WASM module directly on web (no need to embed in index.html any more) and expose updateViewportAndCameraProjection. + - **FEAT**: layers, grid. + - **FEAT**: simplify FixedOrbitCameraRotationDelegate. + - **FEAT**: produce debug symbols on Windows. + - **FEAT**: move HighlightOverlay to nested class, move createGeometry to SceneManager, add queueRelativePositionUpdateFromViewportVector. + - **FEAT**: set InputType.SCALE1 to ROTATE by default for DelegateInputHandler.fixedOrbit. + - **FEAT**: parent the cloned entity instance when setting stencil highlight. + - **FEAT**: add getAncestor method. + - **FEAT**: add getAncestor method. + - **FEAT**: set stencil highlight on gizmo attach. + - **FEAT**: move createGeometry to SceneManager, add queueRelativePositionUpdateFromViewportVector and removeStencilHighlight. + - **FEAT**: download WASM module directly on web (no need to embed in index.html any more) and expose updateViewportAndCameraProjection. + - **FEAT**: move HighlightOverlay to nested class, move createGeometry to SceneManager, add queueRelativePositionUpdateFromViewportVector. + - **FEAT**: add removeStencilHighlight, accept color param for setStencilHighlight, queuePositionUpdateFromViewportCoords to ThermionDartApi. + - **FEAT**: add removeStencilHighlight, queuePositionUpdateFromViewportCoords to ThermionViewer. + - **FEAT**: camera and resizing improvements. + - **FEAT**: add flag for keepData for gltf instancing, add highlightScene, add stencilHighlight method. + - **FEAT**: grid uses own material. + - **FEAT**: set SCALE2:InputAction.ZOOM by default. + - **FEAT**: add grid material. + - **FEAT**: expose setLightDirection and setLightPosition. + - **FEAT**: support multiple ThermionWidget on Android. + - **FEAT**: use imported texture on iOS. + - **FEAT**: add setGizmoVisibility/pickGizmo methods to ThermionViewer. + - **FEAT**: remove gizmo view references, exclude gizmo entities from picking, add createIbl. + - **FEAT**: createIbl. + - **FEAT**: working implementation of multiple widgets on macos. + - **FEAT**: expose API methods for create_ibl, pick/set gizmo visibility. + - **FEAT**: create transparent overlay for gizmo for easier picking. + - **FEAT**: rescale gizmo based on distance from camera. + - **FEAT**: rescale gizmo based on distance from camera. + - **FEAT**: track zoom delta for DelegateInputHandler. + - **FEAT**: expose setLayerEnabled, viewportDimensions and getCameraFov on ThermionView. + - **FEAT**: layers, grid. + - **FEAT**: add capture() function and expose viewportDimensions on ThermionViewer (allows easier saving of captured images to PNG). + - **FEAT**: ignore grid overlay and gizmo center when picking, implement highlighting. + - **FEAT**: SceneManager updates (setLayer, add grid, queueRelativePositionUpdateWorld. + - **FEAT**: expose set_layer_enabled, get_camera_fov and queue_relative_position_updateg_world_axis to ThermionDartApi.h. + - **FEAT**: add getCameraFov to FilamentViewer. + - **FEAT**: add new grid overlay files to web CmakeLists. + - **FEAT**: re-implement (native) Gizmo class, expose preserveScaling parameter for setParent, add methods for getting viewport bounding box from renderable entity. + - **FEAT**: more work on multiple views/swapchains. + - **FEAT**: rescale gizmo based on distance from camera. + - **FEAT**: add capture() function and expose viewportDimensions on ThermionViewer (allows easier saving of captured images to PNG). + - **FEAT**: (web) allow table growth in emscripten module for passing C-style callback function pointers. + - **FEAT**: (web) add capture() method and missing camera navigation controls. + - **FEAT**: rescale gizmo based on distance from camera. + - **FEAT**: add grid material. + - **FEAT**: add startOffset parameter to gltf playAnimation. + - **FEAT**: create transparent overlay for gizmo for easier picking. + - **FEAT**: working implementation of multiple widgets on macos. + - **FEAT**: produce debug symbols on Windows. + - **FEAT**: (web) add capture() method and missing camera navigation controls. + - **FEAT**: re-implement (native) Gizmo class, expose preserveScaling parameter for setParent, add methods for getting viewport bounding box from renderable entity. + - **FEAT**: add new grid overlay files to web CmakeLists. + - **FEAT**: expose API methods for create_ibl, pick/set gizmo visibility. + - **FEAT**: add setParameterFloat2 method. + - **FEAT**: createIbl. + - **FEAT**: simplify FixedOrbitCameraRotationDelegate. + - **FEAT**: add setParameterFloat2 method. + - **FEAT**: expose setLayerEnabled, viewportDimensions and getCameraFov on ThermionView. + - **FEAT**: (web) allow table growth in emscripten module for passing C-style callback function pointers. + - **FEAT**: add getCameraFov to FilamentViewer. + - **FEAT**: camera and resizing improvements. + - **FEAT**: support multiple ThermionWidget on Android. + - **FEAT**: use imported texture on iOS. + - **FEAT**: add removeStencilHighlight, accept color param for setStencilHighlight, queuePositionUpdateFromViewportCoords to ThermionDartApi. + - **FEAT**: expose set_layer_enabled, get_camera_fov and queue_relative_position_updateg_world_axis to ThermionDartApi.h. + - **FEAT**: more work on multiple views/swapchains. + - **FEAT**: move createGeometry to SceneManager, add queueRelativePositionUpdateFromViewportVector and removeStencilHighlight. + - **FEAT**: remove gizmo view references, exclude gizmo entities from picking, add createIbl. + - **FEAT**: add setGizmoVisibility/pickGizmo methods to ThermionViewer. + - **FEAT**: add uvScale to unlit material. + - **FEAT**: add setParameterFloat2 method. + - **FEAT**: add setParameterFloat2 method. + - **FEAT**: set stencil highlight on gizmo attach. + - **FEAT**: add startOffset parameter to gltf playAnimation. + - **FEAT**: add ThirdPersonCameraDelegate. + - **FEAT**: add uvScale to unlit material. + - **FEAT**: add ThirdPersonCameraDelegate. + - **FEAT**: expose setLightDirection and setLightPosition. + - **FEAT**: set camera model matrix directly. + - **FEAT**: expose more camera methods. + - **FEAT**: add getAncestor method. + - **FEAT**: grid uses own material. + - **FEAT**: add flag for keepData for gltf instancing, add highlightScene, add stencilHighlight method. + - **FEAT**: set camera model matrix directly. + - **FEAT**: add removeStencilHighlight, queuePositionUpdateFromViewportCoords to ThermionViewer. + - **FEAT**: expose more camera methods. + - **FEAT**: ignore grid overlay and gizmo center when picking, implement highlighting. + - **FEAT**: layers, grid. + - **FEAT**: layers, grid. + - **FEAT**: parent the cloned entity instance when setting stencil highlight. + - **FEAT**: add getAncestor method. + - **FEAT**: SceneManager updates (setLayer, add grid, queueRelativePositionUpdateWorld. + - **DOCS**: add quickstart to README. + - **DOCS**: add quickstart to README. + - **BREAKING** **REFACTOR**: remove RenderThread methods no longer needed. + - **BREAKING** **REFACTOR**: refactor to support multiple Views/Render Targets. + - **BREAKING** **REFACTOR**: refactor to support multiple Views/Render Targets. + - **BREAKING** **REFACTOR**: remove RenderThread methods no longer needed. + - **BREAKING** **FIX**: Dart-only release mode builds on Window. + - **BREAKING** **FIX**: (windows) add flushAndWait call to capture() to prevent stalling on Windows; use provided buffer as pixelBuffer rather than duplicate allocation. + - **BREAKING** **FIX**: fix min SDK for thermion_dart. + - **BREAKING** **FIX**: replace queuePosition/Rotation with queueTransforms. + - **BREAKING** **FIX**: add meshoptimizer lib on Windows. + - **BREAKING** **FIX**: replace queuePosition/Rotation with queueTransforms. + - **BREAKING** **FIX**: replace queuePosition/Rotation with queueTransforms. + - **BREAKING** **FIX**: replace queuePosition/Rotation with queueTransforms. + - **BREAKING** **FIX**: Dart-only release mode builds on Window. + - **BREAKING** **FIX**: (web/wasm) free pick callbacks on dispose. + - **BREAKING** **FIX**: (windows) add flushAndWait call to capture() to prevent stalling on Windows; use provided buffer as pixelBuffer rather than duplicate allocation. + - **BREAKING** **FIX**: add meshoptimizer lib on Windows. + - **BREAKING** **FIX**: (web/wasm) free pick callbacks on dispose. + - **BREAKING** **FIX**: fix min SDK for thermion_dart. + - **BREAKING** **FIX**: replace queuePosition/Rotation with queueTransforms. + - **BREAKING** **FIX**: replace queuePosition/Rotation with queueTransforms. + - **BREAKING** **FIX**: replace queuePosition/Rotation with queueTransforms. + - **BREAKING** **FIX**: replace queuePosition/Rotation with queueTransforms. + - **BREAKING** **FEAT**: update web/http dependencies. + - **BREAKING** **FEAT**: big refactor to support multiple swapchains. + - **BREAKING** **FEAT**: update web/http dependencies. + - **BREAKING** **FEAT**: (web) (flutter) create canvas when createViewer is called (no longer need to manually add canvas element to web HTML). + - **BREAKING** **FEAT**: set baseColorIndex to -1 by default in unlit materialss. + - **BREAKING** **FEAT**: (web) (flutter) create canvas when createViewer is called (no longer need to manually add canvas element to web HTML). + - **BREAKING** **FEAT**: big refactor to support multiple swapchains. + - **BREAKING** **FEAT**: set baseColorIndex to -1 by default in unlit materialss. + - **BREAKING** **CHORE**: cleanup deleted export. + - **BREAKING** **CHORE**: remove EntityTransformController (requires replacement). + - **BREAKING** **CHORE**: restructure viewer folders as libraries to only export the public interface. + - **BREAKING** **CHORE**: View.getCamera returns Future. + - **BREAKING** **CHORE**: cleanup deleted export. + - **BREAKING** **CHORE**: remove EntityTransformController (requires replacement). + - **BREAKING** **CHORE**: View.getCamera returns Future. + - **BREAKING** **CHORE**: restructure viewer folders as libraries to only export the public interface. + ## 0.2.1-dev.0.0.9 > Note: This release has breaking changes. diff --git a/thermion_dart/pubspec.yaml b/thermion_dart/pubspec.yaml index 5b661a89..f08d046e 100644 --- a/thermion_dart/pubspec.yaml +++ b/thermion_dart/pubspec.yaml @@ -1,6 +1,6 @@ name: thermion_dart description: 3D rendering toolkit for Dart. -version: 0.2.1-dev.0.0.9 +version: 0.2.1-dev.0.0.10 homepage: https://thermion.dev repository: https://github.com/nmfisher/thermion diff --git a/thermion_flutter/thermion_flutter/CHANGELOG.md b/thermion_flutter/thermion_flutter/CHANGELOG.md index 3ebda737..0f3241ce 100644 --- a/thermion_flutter/thermion_flutter/CHANGELOG.md +++ b/thermion_flutter/thermion_flutter/CHANGELOG.md @@ -1,3 +1,66 @@ +## 0.2.1-dev.9 + +> Note: This release has breaking changes. + + - **REFACTOR**: continual refactor to support multiple render targets. + - **REFACTOR**: continual refactor to support multiple render targets. + - **FIX**: (flutter) pass ThermionFlutterOptions to ThermionWidget, use dpr for resizeTexture, delete unnecessary TransparencyPainter class. + - **FIX**: (flutter/web) use window.devicePixelRatio for viewport. + - **FIX**: use internal Set for determining first ThermionTextureWidget to call requestFrame and cleanup destruction logic. + - **FIX**: (flutter) pass ThermionFlutterOptions to ThermionWidget, use dpr for resizeTexture, delete unnecessary TransparencyPainter class. + - **FIX**: fix all Windows warnings so apps will compile with /WX. + - **FIX**: (flutter) desktop gesture detector changes for new Gizmo methods. + - **FIX**: (flutter/web) use window.devicePixelRatio for viewport. + - **FIX**: use internal Set for determining first ThermionTextureWidget to call requestFrame and cleanup destruction logic. + - **FIX**: fix all Windows warnings so apps will compile with /WX. + - **FIX**: (flutter) desktop gesture detector changes for new Gizmo methods. + - **FEAT**: highlight gizmo on hover. + - **FEAT**: add rendering check to ThermionWidget ticker. + - **FEAT**: (flutter) (windows) add DestroyRenderingSurface method. + - **FEAT**: add createViewerWithOptions to ThermionFlutterPlugin and mark createViewer as deprecated. + - **FEAT**: add createViewerWithOptions to ThermionFlutterPlugin and mark createViewer as deprecated. + - **FEAT**: allow passing null options to ThermionWidget. + - **FEAT**: (flutter) (web) if importCanvasAsWidget is false, render transparency. + - **FEAT**: (flutter) (windows) add DestroyRenderingSurface method. + - **FEAT**: add createViewerWithOptions to ThermionFlutterPlugin and mark createViewer as deprecated. + - **FEAT**: add createViewerWithOptions to ThermionFlutterPlugin and mark createViewer as deprecated. + - **FEAT**: use imported texture on iOS. + - **FEAT**: support multiple ThermionWidget on Android. + - **FEAT**: highlight gizmo on hover. + - **FEAT**: (flutter) (web) if importCanvasAsWidget is false, render transparency. + - **FEAT**: working implementation of multiple widgets on macos. + - **FEAT**: add rendering check to ThermionWidget ticker. + - **FEAT**: working implementation of multiple widgets on macos. + - **FEAT**: camera and resizing improvements. + - **FEAT**: (flutter) (windows) add DestroyRenderingSurface method. + - **FEAT**: (flutter) (windows) add DestroyRenderingSurface method. + - **FEAT**: (flutter) (windows) add DestroyRenderingSurface method. + - **FEAT**: (flutter) (windows) add Destroy() to BackingWindow. + - **FEAT**: (flutter) (windows) add Destroy() to BackingWindow. + - **FEAT**: camera and resizing improvements. + - **FEAT**: support multiple ThermionWidget on Android. + - **FEAT**: (flutter) (windows) add DestroyRenderingSurface method. + - **FEAT**: allow passing null options to ThermionWidget. + - **FEAT**: use imported texture on iOS. + - **BREAKING** **FIX**: remove EntityControllerMouseWidget (replace with GestureHandler). + - **BREAKING** **FIX**: (flutter) pass pixelRatio to createTexture. + - **BREAKING** **FIX**: (flutter) pass pixelRatio to createTexture. + - **BREAKING** **FIX**: remove EntityControllerMouseWidget (replace with GestureHandler). + - **BREAKING** **FIX**: (flutter) pass pixelRatio to createTexture. + - **BREAKING** **FIX**: (flutter) pass pixelRatio to createTexture. + - **BREAKING** **FEAT**: (web) (flutter) create canvas when createViewer is called (no longer need to manually add canvas element to web HTML). + - **BREAKING** **FEAT**: resize canvas on web. + - **BREAKING** **FEAT**: (web) (flutter) create canvas when createViewer is called (no longer need to manually add canvas element to web HTML). + - **BREAKING** **FEAT**: resize canvas on web. + - **BREAKING** **CHORE**: remove superseded HardwareKeyboard* classes. + - **BREAKING** **CHORE**: (flutter) cleanup for pub.dev publishing. + - **BREAKING** **CHORE**: remove EntityListWidget - will replace with new Scene. + - **BREAKING** **CHORE**: rename controller to viewer in gesture detector widgets. + - **BREAKING** **CHORE**: rename controller to viewer in gesture detector widgets. + - **BREAKING** **CHORE**: remove EntityListWidget - will replace with new Scene. + - **BREAKING** **CHORE**: (flutter) cleanup for pub.dev publishing. + - **BREAKING** **CHORE**: remove superseded HardwareKeyboard* classes. + ## 0.2.1-dev.8 - **FIX**: fix all Windows warnings so apps will compile with /WX. diff --git a/thermion_flutter/thermion_flutter/pubspec.yaml b/thermion_flutter/thermion_flutter/pubspec.yaml index 00e62e4b..26d30433 100644 --- a/thermion_flutter/thermion_flutter/pubspec.yaml +++ b/thermion_flutter/thermion_flutter/pubspec.yaml @@ -1,6 +1,6 @@ name: thermion_flutter description: Flutter plugin for 3D rendering with the Thermion toolkit. -version: 0.2.1-dev.8 +version: 0.2.1-dev.9 homepage: https://thermion.dev repository: https://github.com/nmfisher/thermion @@ -17,10 +17,10 @@ dependencies: plugin_platform_interface: ^2.0.0 ffi: ^2.1.2 animation_tools_dart: ^0.1.0 - thermion_dart: ^0.2.1-dev.0.0.9 - thermion_flutter_platform_interface: ^0.2.1-dev.8 - thermion_flutter_ffi: ^0.2.1-dev.8 - thermion_flutter_web: ^0.1.1 + thermion_dart: ^0.2.1-dev.0.0.10 + thermion_flutter_platform_interface: ^0.2.1-dev.9 + thermion_flutter_ffi: ^0.2.1-dev.9 + thermion_flutter_web: ^0.2.0 logging: ^1.2.0 web: ^1.0.0 diff --git a/thermion_flutter/thermion_flutter_ffi/CHANGELOG.md b/thermion_flutter/thermion_flutter_ffi/CHANGELOG.md index 56873f1c..e547ab50 100644 --- a/thermion_flutter/thermion_flutter_ffi/CHANGELOG.md +++ b/thermion_flutter/thermion_flutter_ffi/CHANGELOG.md @@ -1,3 +1,33 @@ +## 0.2.1-dev.9 + +> Note: This release has breaking changes. + + - **REFACTOR**: continual refactor to support multiple render targets. + - **REFACTOR**: continual refactor to support multiple render targets. + - **FIX**: on resize, destroy swapchain if destroySwapChainOnResize is true. + - **FIX**: add listener in ThermionFlutterTextureBackedPlatform to unset viewer on dispose. + - **FIX**: add listener in ThermionFlutterMethodChannelInterface to unset viewer on dispose. + - **FIX**: clean up destruction logic for FlutterPlatformTexture. + - **FIX**: on resize, destroy swapchain if destroySwapChainOnResize is true. + - **FIX**: add listener in ThermionFlutterTextureBackedPlatform to unset viewer on dispose. + - **FIX**: add listener in ThermionFlutterMethodChannelInterface to unset viewer on dispose. + - **FIX**: clean up destruction logic for FlutterPlatformTexture. + - **FIX**: web/JS bool checks need to compare to int. + - **FEAT**: support multiple ThermionWidget on Android. + - **FEAT**: use imported texture on iOS. + - **FEAT**: working implementation of multiple widgets on macos. + - **FEAT**: (flutter) move DPR calculation to resizeTexture and add createViewerWithOptions method to ThermionFlutterFFI. + - **FEAT**: support multiple ThermionWidget on Android. + - **FEAT**: use imported texture on iOS. + - **FEAT**: working implementation of multiple widgets on macos. + - **FEAT**: (flutter) move DPR calculation to resizeTexture and add createViewerWithOptions method to ThermionFlutterFFI. + - **BREAKING** **REFACTOR**: refactor to support multiple Views/Render Targets. + - **BREAKING** **REFACTOR**: refactor to support multiple Views/Render Targets. + - **BREAKING** **FIX**: (flutter) pass pixelRatio to createTexture. + - **BREAKING** **FIX**: (flutter) pass pixelRatio to createTexture. + - **BREAKING** **FEAT**: big refactor to support multiple swapchains. + - **BREAKING** **FEAT**: big refactor to support multiple swapchains. + ## 0.2.1-dev.8 - **FIX**: on resize, destroy swapchain if destroySwapChainOnResize is true. diff --git a/thermion_flutter/thermion_flutter_ffi/lib/thermion_flutter_ffi.dart b/thermion_flutter/thermion_flutter_ffi/lib/thermion_flutter_ffi.dart index 77e19f33..6771a5e7 100644 --- a/thermion_flutter/thermion_flutter_ffi/lib/thermion_flutter_ffi.dart +++ b/thermion_flutter/thermion_flutter_ffi/lib/thermion_flutter_ffi.dart @@ -1,3 +1,3 @@ library; export 'src/thermion_flutter_windows.dart'; -export 'src/thermion_flutter_texture_backed_platform.dart'; \ No newline at end of file +export 'src/thermion_flutter_texture_backed_platform.dart'; diff --git a/thermion_flutter/thermion_flutter_ffi/pubspec.yaml b/thermion_flutter/thermion_flutter_ffi/pubspec.yaml index 3bf903e4..cf5e9bc0 100644 --- a/thermion_flutter/thermion_flutter_ffi/pubspec.yaml +++ b/thermion_flutter/thermion_flutter_ffi/pubspec.yaml @@ -1,7 +1,7 @@ name: thermion_flutter_ffi description: An FFI implementation for thermion_flutter (i.e. all platforms except web). repository: https://github.com/nmfisher/thermion_flutter/thermion_flutter -version: 0.2.1-dev.8 +version: 0.2.1-dev.9 environment: sdk: ">=3.3.0 <4.0.0" @@ -23,8 +23,8 @@ dependencies: flutter: sdk: flutter plugin_platform_interface: ^2.1.0 - thermion_flutter_platform_interface: ^0.2.1-dev.8 - thermion_dart: ^0.2.1-dev.0.0.9 + thermion_flutter_platform_interface: ^0.2.1-dev.9 + thermion_dart: ^0.2.1-dev.0.0.10 logging: ^1.2.0 dev_dependencies: diff --git a/thermion_flutter/thermion_flutter_platform_interface/CHANGELOG.md b/thermion_flutter/thermion_flutter_platform_interface/CHANGELOG.md index 247dc11b..7a110c9a 100644 --- a/thermion_flutter/thermion_flutter_platform_interface/CHANGELOG.md +++ b/thermion_flutter/thermion_flutter_platform_interface/CHANGELOG.md @@ -1,3 +1,20 @@ +## 0.2.1-dev.9 + +> Note: This release has breaking changes. + + - **REFACTOR**: continual refactor to support multiple render targets. + - **REFACTOR**: continual refactor to support multiple render targets. + - **FEAT**: support multiple ThermionWidget on Android. + - **FEAT**: working implementation of multiple widgets on macos. + - **FEAT**: add createViewerWithOptions to ThermionFlutterPlugin and mark createViewer as deprecated. + - **FEAT**: add ThermionFlutterOptions classes, rename interface parameter for offsetTop and ensure pixelRatio is passed to resizeTexture. + - **FEAT**: support multiple ThermionWidget on Android. + - **FEAT**: working implementation of multiple widgets on macos. + - **FEAT**: add createViewerWithOptions to ThermionFlutterPlugin and mark createViewer as deprecated. + - **FEAT**: add ThermionFlutterOptions classes, rename interface parameter for offsetTop and ensure pixelRatio is passed to resizeTexture. + - **BREAKING** **FIX**: (flutter) pass pixelRatio to createTexture. + - **BREAKING** **FIX**: (flutter) pass pixelRatio to createTexture. + ## 0.2.1-dev.8 - Update a dependency to the latest release. diff --git a/thermion_flutter/thermion_flutter_platform_interface/pubspec.yaml b/thermion_flutter/thermion_flutter_platform_interface/pubspec.yaml index ca2a66fd..864fe674 100644 --- a/thermion_flutter/thermion_flutter_platform_interface/pubspec.yaml +++ b/thermion_flutter/thermion_flutter_platform_interface/pubspec.yaml @@ -1,7 +1,7 @@ name: thermion_flutter_platform_interface description: A common platform interface for the thermion_flutter plugin. repository: https://github.com/nmfisher/thermion_flutter/thermion_flutter -version: 0.2.1-dev.8 +version: 0.2.1-dev.9 environment: sdk: ">=3.3.0 <4.0.0" @@ -11,7 +11,7 @@ dependencies: flutter: sdk: flutter plugin_platform_interface: ^2.1.0 - thermion_dart: ^0.2.1-dev.0.0.9 + thermion_dart: ^0.2.1-dev.0.0.10 dev_dependencies: flutter_test: diff --git a/thermion_flutter/thermion_flutter_web/CHANGELOG.md b/thermion_flutter/thermion_flutter_web/CHANGELOG.md index 3d71de1e..113f5fc4 100644 --- a/thermion_flutter/thermion_flutter_web/CHANGELOG.md +++ b/thermion_flutter/thermion_flutter_web/CHANGELOG.md @@ -1,3 +1,23 @@ +## 0.2.0 + +> Note: This release has breaking changes. + + - **FIX**: (flutter/web) use window.devicePixelRatio for viewport. + - **FIX**: (flutter/web) use window.devicePixelRatio for viewport. + - **FEAT**: (flutter) (web) use options to determine whether to create canvas, and set fixed position + offset. + - **FEAT**: add ThermionFlutterOptions classes, rename interface parameter for offsetTop and ensure pixelRatio is passed to resizeTexture. + - **FEAT**: (flutter) (web) use options to determine whether to create canvas, and set fixed position + offset. + - **FEAT**: add ThermionFlutterOptions classes, rename interface parameter for offsetTop and ensure pixelRatio is passed to resizeTexture. + - **FEAT**: allow passing assetPathPrefix to ThermionViewerWasm to account for Flutter build asset paths. + - **BREAKING** **FEAT**: (flutter) (web) upgrade package:web dep to 1.0.0. + - **BREAKING** **FEAT**: (web) (flutter) create canvas when createViewer is called (no longer need to manually add canvas element to web HTML). + - **BREAKING** **FEAT**: resize canvas on web. + - **BREAKING** **FEAT**: (flutter) (web) upgrade package:web dep to 1.0.0. + - **BREAKING** **FEAT**: (web) (flutter) create canvas when createViewer is called (no longer need to manually add canvas element to web HTML). + - **BREAKING** **FEAT**: resize canvas on web. + - **BREAKING** **CHORE**: restructure viewer folders as libraries to only export the public interface. + - **BREAKING** **CHORE**: restructure viewer folders as libraries to only export the public interface. + ## 0.1.1 - **FEAT**: allow passing assetPathPrefix to ThermionViewerWasm to account for Flutter build asset paths. diff --git a/thermion_flutter/thermion_flutter_web/lib/thermion_flutter_web.dart b/thermion_flutter/thermion_flutter_web/lib/thermion_flutter_web.dart new file mode 100644 index 00000000..db762d80 --- /dev/null +++ b/thermion_flutter/thermion_flutter_web/lib/thermion_flutter_web.dart @@ -0,0 +1,84 @@ +import 'package:thermion_dart/thermion_dart.dart'; +import 'package:thermion_flutter_platform_interface/thermion_flutter_platform_interface.dart'; +import 'package:thermion_flutter_platform_interface/thermion_flutter_texture.dart'; +import 'package:flutter_web_plugins/flutter_web_plugins.dart'; +import 'package:thermion_flutter_web/thermion_flutter_web_options.dart'; +import 'package:web/web.dart'; + +class ThermionFlutterWebPlugin extends ThermionFlutterPlatform { + + ThermionViewerWasm? _viewer; + + static void registerWith(Registrar registrar) { + ThermionFlutterPlatform.instance = ThermionFlutterWebPlugin(); + } + + @override + Future createTexture(double width, double height, + double offsetLeft, double offsetTop, double pixelRatio) async { + await _viewer!.destroySwapChain(); + await _viewer!.createSwapChain(width.ceil(), height.ceil()); + + final canvas = document.getElementById("canvas") as HTMLCanvasElement; + canvas.width = (width * pixelRatio).ceil(); + canvas.height = (height * pixelRatio).ceil(); + + (canvas as HTMLElement).style.position = "fixed"; + (canvas as HTMLElement).style.zIndex = "-1"; + (canvas as HTMLElement).style.left = + (offsetLeft * pixelRatio).ceil().toString(); + (canvas as HTMLElement).style.top = + (offsetTop * pixelRatio).ceil().toString(); + + _viewer! + .updateViewportAndCameraProjection(width.ceil(), height.ceil(), 1.0); + + return ThermionFlutterTexture(null, null, 0, 0, null); + } + + @override + Future destroyTexture(ThermionFlutterTexture texture) async { + // noop + } + + @override + Future resizeTexture(ThermionFlutterTexture texture, + int width, int height, int offsetLeft, int offsetTop, double pixelRatio) async { + final canvas = document.getElementById("canvas") as HTMLCanvasElement; + canvas.width = width; + canvas.height = height; + (canvas as HTMLElement).style.position = "fixed"; + (canvas as HTMLElement).style.zIndex = "-1"; + (canvas as HTMLElement).style.left = + (offsetLeft * pixelRatio).ceil().toString(); + (canvas as HTMLElement).style.top = + (offsetTop * pixelRatio).ceil().toString(); + _viewer!.updateViewportAndCameraProjection(width, height, 1.0); + return ThermionFlutterTexture(null, null, 0, 0, null); + } + + Future createViewerWithOptions( + ThermionFlutterWebOptions options) async { + _viewer = ThermionViewerWasm(assetPathPrefix: "/assets/"); + + final canvas = options.createCanvas + ? document.createElement("canvas") as HTMLCanvasElement? + : document.getElementById("canvas") as HTMLCanvasElement?; + if (canvas == null) { + throw Exception("Could not locate or create canvas"); + } + canvas.id = "canvas"; + document.body!.appendChild(canvas); + canvas.style.display = 'none'; + final pixelRatio = window.devicePixelRatio; + + await _viewer! + .initialize(1, 1, pixelRatio, uberArchivePath: options.uberarchivePath); + return _viewer!; + } + + @override + Future createViewer({String? uberarchivePath}) { + throw Exception("Use createViewerWithOptions instead"); + } +} diff --git a/thermion_flutter/thermion_flutter_web/pubspec.yaml b/thermion_flutter/thermion_flutter_web/pubspec.yaml index 1ec075b8..d2c51b46 100644 --- a/thermion_flutter/thermion_flutter_web/pubspec.yaml +++ b/thermion_flutter/thermion_flutter_web/pubspec.yaml @@ -1,7 +1,7 @@ name: thermion_flutter_web description: A web platform interface for the thermion_flutter plugin. repository: https://github.com/nmfisher/thermion_flutter/thermion_flutter -version: 0.1.1 +version: 0.2.0 environment: sdk: ">=3.3.0 <4.0.0" @@ -20,8 +20,8 @@ dependencies: sdk: flutter plugin_platform_interface: ^2.1.0 web: ^1.0.0 - thermion_dart: ^0.2.1-dev.0.0.9 - thermion_flutter_platform_interface: ^0.2.1-dev.8 + thermion_dart: ^0.2.1-dev.0.0.10 + thermion_flutter_platform_interface: ^0.2.1-dev.9 flutter_web_plugins: sdk: flutter