This is a breaking change needed to fully implement instancing and stencil highlighting.
Previously, users would work directly with entities (on the Dart side, ThermionEntity), e.g.
final entity = await viewer.loadGlb("some.glb");
However, Filament "entities" are a lower-level abstraction.
Loading a glTF file, for example, inserts multiple entities into the scene.
For example, each mesh, light, and camera within a glTF asset will be assigned an entity. A top-level (non-renderable) entity will also be created for the glTF asset, which can be used to transform the entire hierarchy.
"Asset" is a better representation for loading/inserting objects into the scene; think of this as a bundle of entities.
Unless you need to work directly with transforms, instancing, materials and renderables, you can work directly with ThermionAsset.
successfully allocating with VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
working copying vulkan texture
successfully passing D3D texture back to Flutter
chore: Dart/Windows sample project: remove unnnecessary InvalidateRect from update()
chore: Dart/Windows sample project: add generated bindings
successfully blitting from Vulkan swapchain to D3D texture
working Vulkan texture integration with Flutter
refactor to allow disposal of resources in destructors
handle destroyTexture correctly
correctly implement surface resizing/destruction
move Windows engine to Vulkan backend and flush after creating swapchain
add vulkan + vkshaders to Windows libs
update materials with Vulkan
move Vulkan implementation to thermion_Dart
remove extras folder
thermion_flutter plugin updates
update build hook to copy .lib file to output directory and use -vulkan lib zip file
thermion_flutter cleanup
reinstate stereoscopic on Windows
add dxgi and d3d11.lib to windows header pragma
update cli_windows sample project
copy filament/vulkan headers to output directory. This was originally added to facilitate linking on Windows (where thermion_flutter_plugin.cpp needs the Vulkan-related headers), but this doesn't actually solve the problem because there's no way that I've found to get the directory structure correct in the Dart native_assets build directory unless you explicitly address each inidivual file. The current approach is therefore to just keep a permanent copy of the headers in the thermion_filament directory (meaning these will need to be updated manually if the Filament version changes). However, I decided to keep the changes to build.dart because it doesn't have much negative impact and may be helpful in future.
disable stereoscopic on Windows and disable handle use after free checks
use filament headers for thermion_flutter
throw Exception for MSAA on Windows (note that passing msaa:true for setAntiAliasing doesn't actually set MSAA on other platforms, but at least it won't cause the engine to crash)
change header include path for Windows/Vulkan
change header include path for Windows/Vulkan
add filament/vulkan headers for flutter (Windows)
ensure destroyTexture platform methods accept an integer rather than a list
handle Android/Windows swapchain creation separately