Nick Fisher
6b36d67ed7
feat: add gizmo.glb to assets/resources
2025-01-07 08:25:48 +08:00
Nick Fisher
5564be9ce9
feat: add TRACE macro
2025-01-07 08:25:48 +08:00
Nick Fisher
9f676f42b9
remove old HighlightOverlay class
2025-01-07 08:25:48 +08:00
Nick Fisher
981fd63963
update overlay tests
2025-01-07 08:25:48 +08:00
Nick Fisher
cb9320f3a1
remove pragma from Geometry builder cpp
2025-01-07 08:25:48 +08:00
Nick Fisher
6d5bc305dc
fix SceneManager_createCameraRenderThread
2025-01-07 08:25:48 +08:00
Nick Fisher
1c5b5c890b
reimplement grid as SceneAsset
2025-01-07 08:25:48 +08:00
Nick Fisher
e43e1c9cbd
flip camera wireframe direction
2025-01-07 08:25:48 +08:00
Nick Fisher
5fe985d2c7
add create/set camera render thread functions
2025-01-07 08:25:48 +08:00
Nick Fisher
80ca4b97a9
add create/set camera render thread functions
2025-01-07 08:25:48 +08:00
Nick Fisher
d3b4bed654
move grid clipspace.z closer to camera to allow for skybox
2025-01-07 08:25:48 +08:00
Nick Fisher
c117555b2c
gizmo improvements, use render thread methods for createCamera, allow setParent null to unparent transform
2025-01-07 08:25:48 +08:00
Nick Fisher
abbf2d5391
update bindings
2025-01-07 08:25:48 +08:00
Nick Fisher
a31c800204
add wireframe camera to geometry
2025-01-07 08:25:48 +08:00
Nick Fisher
877e8def80
add dithering to view
2025-01-07 08:25:48 +08:00
Nick Fisher
fb650dbd52
allow null parent to setParent
2025-01-07 08:25:48 +08:00
Nick Fisher
c34c7d5545
change grid priority
2025-01-07 08:25:48 +08:00
Nick Fisher
fe37d45e1a
return null entity for grid overlay
2025-01-07 08:25:48 +08:00
Nick Fisher
bf3d4f7c0e
add dithering to view
2025-01-07 08:25:48 +08:00
Nick Fisher
69643e26f6
whitespace
2025-01-07 08:25:48 +08:00
Nick Fisher
44b502a1e4
add dithering to view
2025-01-07 08:25:48 +08:00
Nick Fisher
6d36dc7923
add dithering to view
2025-01-07 08:25:48 +08:00
Nick Fisher
151935913f
allow null parent to setParent
2025-01-07 08:25:48 +08:00
Nick Fisher
d72ed58436
in createGeometry, all geometry entities to scene
2025-01-07 08:25:48 +08:00
Nick Fisher
d53a8b20b8
move Geometry asset builder from header to own implementation
2025-01-07 08:25:48 +08:00
Nick Fisher
600ab1ad28
update tests
2025-01-07 08:25:48 +08:00
Nick Fisher
aa7350c419
gizmo & picking improvements
2025-01-07 08:25:48 +08:00
Nick Fisher
c2077cb6b1
fix: store reference to material instances in ThermionViewer so they can be cleaned up on dispose
2025-01-07 08:25:48 +08:00
Nick Fisher
bedd50ec38
chore: update pubspec.yaml with new package name
2025-01-07 08:25:48 +08:00
Nick Fisher
8a3525d879
chore: temporarily disable ThermionWidgetWebImpl
2025-01-07 08:25:48 +08:00
Nick Fisher
853f1d1a68
feat!: remove superseded ThermionWindows widget
2025-01-07 08:25:48 +08:00
Nick Fisher
7e50f0317e
feat: use new createTextureAndBindToView in ThermionTextureWidget
2025-01-07 08:25:48 +08:00
Nick Fisher
724d7532e2
chore: docstring fixes
2025-01-07 08:25:48 +08:00
Nick Fisher
45a548afd2
feat!: rename thermion_flutter_ffi package to thermion_flutter_method_channel
2025-01-07 08:25:48 +08:00
Nick Fisher
e8b4b7806b
feat!: rename thermion_flutter_ffi package to thermion_flutter_method_channel
2025-01-07 08:25:48 +08:00
Nick Fisher
133367669d
feat: create separate createTexture and createTextureAndBindToView interface methods
2025-01-07 08:25:48 +08:00
Nick Fisher
60a09a1cd9
chore: rename thermion_flutter_ffi in example projects
2025-01-07 08:25:48 +08:00
Nick Fisher
9128fbbd61
chore: rename local variable in ThermionTexture.swift to avoid compiler warning
2025-01-07 08:25:48 +08:00
Nick Fisher
c3c6465908
documentation
2025-01-07 08:25:48 +08:00
Nick Fisher
ed444b0615
feature!:
...
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.
2024-11-27 15:02:37 +11:00
Nick Fisher
9ada6aae64
chore: rename to Viewer_destroy
2024-11-21 12:32:52 +08:00
Nick Fisher
0ef0f37bbf
chore: update stubs
2024-11-21 12:32:34 +08:00
Nick Fisher
df37f5e95f
test cleanup
2024-11-21 12:32:17 +08:00
Nick Fisher
468cada6c6
update bindings
2024-11-21 12:31:58 +08:00
Nick Fisher
e60ab51b79
fix: remove MaterialInstance from SceneManager storage when destroyed
2024-11-21 12:31:36 +08:00
Nick Fisher
d58a48061c
fix: remove MaterialInstance from SceneManager storage when destroyed
2024-11-21 12:31:04 +08:00
Nick Fisher
cabb62043d
feat: re-add uvScale, vertexScale to unlit material
2024-11-21 12:30:51 +08:00
Nick Fisher
b7bc46b94a
feat: re-add uvScale, vertexScale to unlit material
2024-11-21 12:30:20 +08:00
Nick Fisher
bc8edb7eb4
fix: remove MaterialInstance from SceneManager storage when destroyed
2024-11-21 12:29:54 +08:00
Nick Fisher
5deb2ad7cf
chore: factor out SceneManager_ methods
2024-11-21 11:16:54 +08:00
Nick Fisher
dcc523edff
chore(release): publish packages
...
- thermion_dart@0.2.1-dev.19.0
- thermion_flutter@0.2.1-dev.19.0
- thermion_flutter_web@0.2.0+10
- thermion_flutter_platform_interface@0.2.1-dev.19.0
- thermion_flutter_ffi@0.2.1-dev.19.0
2024-11-21 10:08:10 +08:00
Nick Fisher
26eba7ae09
fix!: update Makefile & rebuild materials for Vulkan
2024-11-21 10:07:08 +08:00
Nick Fisher
9692c07da9
chore: free flight handler cleanup
2024-11-21 10:03:48 +08:00
Nick Fisher
2860db3fbd
feat: use InputAction.ZOOM for scroll wheel in free flight handler
2024-11-21 08:44:36 +08:00
Nick Fisher
1ce5bd3bcf
feat: free flight camera improvements
2024-11-19 16:30:35 +08:00
Nick Fisher
9d3f87218e
chore(release): publish packages
...
- thermion_dart@0.2.1-dev.18.0
- thermion_flutter@0.2.1-dev.18.0
- thermion_flutter_web@0.2.0+9
- thermion_flutter_platform_interface@0.2.1-dev.18.0
- thermion_flutter_ffi@0.2.1-dev.18.0
2024-11-18 22:56:40 +08:00
Nick Fisher
505b4bb156
fix: fix windows import header
2024-11-18 22:55:25 +08:00
Nick Fisher
25320f45af
chore: fix spelling
2024-11-15 22:58:04 +08:00
Nick Fisher
0b9f3160d9
feat: add MaterialInstance.setDepthFunc
2024-11-15 22:56:40 +08:00
Nick Fisher
bb27f40cb2
chore: add TMaterialInstance to ffigen.yaml
2024-11-15 22:55:16 +08:00
Nick Fisher
9853d6b721
chore: remove uvScale parameter from SceneManager and add some explicit logging
2024-11-15 22:24:30 +08:00
Nick Fisher
52f041afba
chore: move TMaterialInstance FFI methods to own file/header
2024-11-15 22:24:07 +08:00
Nick Fisher
646814126f
chore: test cleanup
2024-11-15 22:23:28 +08:00
Nick Fisher
05cb4325da
chore: rebuild materials
2024-11-15 22:23:07 +08:00
Nick Fisher
e8b3468a3a
chore: remove uvScale from unlit.mat
2024-11-15 22:22:49 +08:00
Nick Fisher
741607b78b
chore: add checks to Makefile for FILAMENT_PATH
2024-11-15 22:22:31 +08:00
Nick Fisher
70414bb83c
chore(release): publish packages
...
- thermion_dart@0.2.1-dev.0.0.17
- thermion_flutter@0.2.1-dev.17
- thermion_flutter_web@0.2.0+8
- thermion_flutter_platform_interface@0.2.1-dev.17
- thermion_flutter_ffi@0.2.1-dev.17
2024-11-15 17:59:12 +08:00
Nick Fisher
436873a455
successfully creating D3D texture with D3D11_RESOURCE_MISC_SHARED_NTHANDLE;
...
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
2024-11-11 12:49:40 +08:00
Nick Fisher
b59cadc061
add first pass vulkan implementation
2024-11-11 12:49:40 +08:00
Nick Fisher
bdcbd90ec6
split D3D/GLES texture creation
2024-11-11 12:49:40 +08:00
Nick Fisher
f3e96fe94a
remove external/internal D3D textures
2024-11-11 12:49:40 +08:00
Nick Fisher
ef97f0e6c2
refactor Windows rendering into standalone DLL
2024-11-11 12:49:40 +08:00
Nick Fisher
8976eb9621
update extras/Windows include path
2024-11-11 12:49:40 +08:00
Nick Fisher
e2cfe9247e
improvements to BackingWindow (?)
2024-11-11 12:49:40 +08:00
Nick Fisher
6472670ec3
add createRenderTargetRenderThread
2024-11-11 12:49:40 +08:00
Nick Fisher
0eb81114dd
expose GetSharedContext method on FlutterRenderContext
2024-11-11 12:49:40 +08:00
Nick Fisher
31c5ef41eb
use texture backed platform on Windows
2024-11-11 12:49:40 +08:00
Nick Fisher
73470fa504
refactor WGLContext for easier legibility
2024-11-11 12:49:40 +08:00
Nick Fisher
14b815e009
remove unnecessary _context property from FilamentViewer
2024-11-11 12:49:40 +08:00
Nick Fisher
5ae028f1e9
print default gpu in cli_windows thermion_window
2024-11-11 12:49:40 +08:00
Nick Fisher
859a514bc5
chore: remove DLL from cli_windows project
2024-11-11 12:49:40 +08:00
Nick Fisher
4d97126ef6
chore: update cli_windows project
2024-11-11 12:49:40 +08:00
Nick Fisher
cc34cb20bd
Merge branch 'develop' of https://github.com/nmfisher/thermion into develop
2024-11-02 16:32:06 +08:00
Nick Fisher
9c555c9ec0
chore: update cli_windows project
2024-11-02 16:29:36 +08:00
Nick Fisher
9537f75bc2
Update dart.yml
2024-11-02 16:41:14 +11:00
Nick Fisher
30e0012da6
Update dart.yml
2024-11-02 16:31:38 +11:00
Nick Fisher
1892235d5c
Update dart.yml
2024-11-02 16:11:51 +11:00
Nick Fisher
82bd84b60d
Update dart.yml
2024-11-02 16:07:04 +11:00
Nick Fisher
814adf8567
Update dart.yml
2024-11-02 16:01:09 +11:00
Nick Fisher
671880b405
chore: move windows extras to standalone cli_windows example
2024-11-02 12:55:56 +08:00
Nick Fisher
6ce2e22fac
Update dart.yml
2024-11-02 15:54:05 +11:00
Nick Fisher
51d3dae1db
Update dart.yml
2024-11-02 15:49:39 +11:00
Nick Fisher
a33a18da42
Merge branch 'develop' of https://github.com/nmfisher/thermion into develop
2024-11-02 13:24:18 +11:00
Nick Fisher
6ff04fb76a
feat: add Dart methods for getRenderableBoundingBox, setParameterInt and setParameterFloat4
2024-11-02 10:23:36 +08:00
Nick Fisher
124938dbc2
temporarily disable UnprojectTexture
2024-11-02 10:23:36 +08:00
Nick Fisher
902f67e97d
expose setParameterInt/setParameterFloat4, rename to getScreenSpaceBoundingBox, and expose method for getting renderable bounding box
2024-11-02 10:23:36 +08:00
Nick Fisher
08c02c1590
chore(release): publish packages
...
- thermion_dart@0.2.1-dev.0.0.16
- thermion_flutter@0.2.1-dev.16
- thermion_flutter_web@0.2.0+7
- thermion_flutter_platform_interface@0.2.1-dev.16
- thermion_flutter_ffi@0.2.1-dev.16
2024-11-02 10:23:36 +08:00
Nick Fisher
4650ae1295
feat: Rename Gizmo material to UnlitFixedSize, and expose methods for using this material on other entities. Also exposes new methods for setting single float parameters.
2024-11-02 10:23:36 +08:00
Nick Fisher
c77ede9109
doc: fix links in README
2024-11-02 10:23:36 +08:00
Nick Fisher
0f56cbe7e7
doc: README
2024-11-02 10:23:36 +08:00