1179 Commits

Author SHA1 Message Date
7e969649ae _macdrag precleanup
Some checks are pending
Build Android / Game (Android, Release ARM64) (push) Waiting to run
Build iOS / Game (iOS, Release ARM64) (push) Waiting to run
Build Linux / Editor (Linux, Development x64) (push) Waiting to run
Build Linux / Game (Linux, Release x64) (push) Waiting to run
Build macOS / Editor (Mac, Development ARM64) (push) Waiting to run
Build macOS / Game (Mac, Release ARM64) (push) Waiting to run
Build Windows / Editor (Windows, Development x64) (push) Waiting to run
Build Windows / Game (Windows, Release x64) (push) Waiting to run
Cooker / Cook (Mac) (push) Waiting to run
Tests / Tests (Linux) (push) Waiting to run
Tests / Tests (Windows) (push) Waiting to run
2026-04-04 19:37:15 +03:00
3288fe4006 Fix mouse warping when controlling camera in Editor viewport on macOS 2026-04-04 19:17:26 +03:00
fd334769b2 Handle external application close events 2026-04-04 18:52:49 +03:00
576130f74f Fix destroyed windows removing keyboard focus on macOS 2026-04-04 18:36:51 +03:00
b99c8ddda7 Fix missing window icon on macOS 2026-04-04 16:45:19 +03:00
Wojtek Figat
2fc95bdf57 Merge remote-tracking branch 'origin/master' into 1.12
# Conflicts:
#	Content/Editor/MaterialTemplates/Deformable.shader
#	Flax.flaxproj
#	Source/Engine/Content/Content.h
#	Source/Engine/Serialization/JsonTools.cpp
2026-04-01 17:14:21 +02:00
Wojtek Figat
9a7abd751f Fix crash on invalid unpack node usage in shader graph
#4030
2026-04-01 16:55:28 +02:00
Wojtek Figat
cabae8142d Merge branch 'Zode-visject-larger-inputs' 2026-04-01 16:26:53 +02:00
Wojtek Figat
2d0da37907 Remove ComparisonNode from #3540 that is impl in #3866 2026-04-01 16:26:47 +02:00
Wojtek Figat
42ec33bd9a Fix auto-sizing nodes with hidden default value fields (eg, comparison node)
#3540
2026-04-01 16:25:33 +02:00
Wojtek Figat
806027408a Merge branch 'visject-larger-inputs' of https://github.com/Zode/FlaxEngine into Zode-visject-larger-inputs 2026-04-01 16:02:10 +02:00
Wojtek Figat
dc6d53de7c Try to fix compile error 2026-04-01 16:01:01 +02:00
Wojtek Figat
70f2eee172 Merge branch 'xxSeys1-VISjectIsNowMoreVISuallyAppealingAndLegible' 2026-04-01 15:58:41 +02:00
Wojtek Figat
7737dbc77f Various minor fixes
#3866
2026-04-01 15:58:31 +02:00
Wojtek Figat
9d9d582598 Add undo to preserve connections when changing parameter in param node 2026-04-01 09:50:02 +02:00
Wojtek Figat
f1796dc8c8 Fix and improve layout of various Visject nodes and elements
#3866
2026-04-01 09:49:29 +02:00
Wojtek Figat
ebb4ff1dc2 Move UseFixedSize property from node archetype to flags and optimize unnecessary layouts during node loading
#3866
2026-03-31 22:47:10 +02:00
Wojtek Figat
ea5e7f1416 Add hover highlight to Visject surface boxes
#3866
2026-03-31 21:46:21 +02:00
Wojtek Figat
917e62621d Restore textures background back to Visject surface
#3866
2026-03-31 21:45:29 +02:00
Wojtek Figat
a88e3265cd Merge branch 'VISjectIsNowMoreVISuallyAppealingAndLegible' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-VISjectIsNowMoreVISuallyAppealingAndLegible 2026-03-31 15:16:55 +02:00
Wojtek Figat
b2d1d0f1d9 Fix sending replication message to newly connected clients for objects that were not spawned
#4029
2026-03-31 13:13:33 +02:00
Wojtek Figat
c6204fc274 Fix binary asset dependencies tracking when dependent asset gets loaded later on
#3951

Adds additional cache for dependencies tracking to update them when other asset gets loaded later on.
Remove critical-section from `LoadAssetTask` that was causing some deadlocks (data access is already atomic there).
2026-03-31 12:03:18 +02:00
Wojtek Figat
8b383d4dbe Fix regression on Large Worlds build and bunch of warnings 2026-03-30 23:50:03 +02:00
Wojtek Figat
7b695bf6bf Fix compilation regression 2026-03-30 22:44:38 +02:00
Wojtek Figat
327547a895 Rename FlaxStorage::AllowDataModifications to IsReadOnly 2026-03-30 22:40:37 +02:00
Wojtek Figat
e2fbd83086 Optimize VariantType name allocs to use static type when possible 2026-03-30 21:56:01 +02:00
Wojtek Figat
d96e1297f7 Optimize MMethod::GetParameterIsOut to cache all parameters in a single bit-flag 2026-03-30 19:56:32 +02:00
Wojtek Figat
2748216190 Fix using Dictionary as virtual method parameter in scripting bindings 2026-03-30 19:55:44 +02:00
Wojtek Figat
b2457b6ee6 Fix Variant array element typename 2026-03-30 19:55:13 +02:00
Wojtek Figat
bf20f5d2bf Fix scripting bindings in searching virtual methods to invoke when there is a name and parameter count collision
#3649
2026-03-30 19:54:47 +02:00
Wojtek Figat
767854a2af Fix shader error when using Position Offset in deformable material
#4028
2026-03-30 10:18:15 +02:00
Wojtek Figat
243173df3c Fix pasted ghost prefab objects when paste target is not defined
#3945
2026-03-30 10:14:50 +02:00
Wojtek Figat
408c6d96b1 Minor imporvements 2026-03-30 10:14:25 +02:00
Wojtek Figat
039407b6ee Fix broken prefab linkage when duplicating nested prefab instance root
#3945
2026-03-30 10:14:07 +02:00
Wojtek Figat
71ff0c6362 Fix root linkage for prefab instances copy pasted in Editor
#3945
2026-03-30 10:13:25 +02:00
Wojtek Figat
b3aeab777f Fix invalid CanRenderer when canvas actor is gone
#3945
2026-03-30 00:13:49 +02:00
Wojtek Figat
b8110e9db3 Add = to text box separators 2026-03-30 00:13:24 +02:00
Wojtek Figat
f500fcd6fd Optimize actors copy/paste data to use a single JSON for all objects
#3945
2026-03-28 23:39:43 +01:00
Saas
bda0dee371 fix curve node 2026-03-28 22:32:55 +01:00
Saas
ec756fe626 fix custom code node size 2026-03-28 22:16:31 +01:00
Saas
b78ff57f6a fix custom code nodes 2026-03-28 22:04:41 +01:00
Saas
9fa9e75e08 fix decorator size when surface is loaded 2026-03-28 21:28:09 +01:00
Wojtek Figat
095f7277e2 Minor fixes 2026-03-28 15:13:52 +01:00
Saas
f26dbf530c fix skeleton blend mask node to resize when asset reference is (dis-) connected 2026-03-28 13:47:14 +01:00
Wojtek Figat
76378156f7 Fix crash when applying prefab changes
#3755
2026-03-28 00:31:46 +01:00
Wojtek Figat
c12948c6cc Fix crash when applying prefab changes using default instance (invalid)
#3754
2026-03-28 00:04:03 +01:00
Wojtek Figat
e99dc8dce4 Fix missing doc warning 2026-03-27 23:54:43 +01:00
Wojtek Figat
258ba233d5 Attempt to fix time precision issue in long game run
#3865
2026-03-27 23:52:11 +01:00
Wojtek Figat
2b538e4864 Fix direction gizmo size on different FOV and fix event
#4025
2026-03-27 23:19:27 +01:00
Wojtek Figat
a0dc300a7b Merge branch 'Tryibion-add-content-tree-view' 2026-03-27 22:20:19 +01:00
Wojtek Figat
9f54bca831 Fix regression in HDR screen space reflections 2026-03-27 18:23:17 +01:00
Wojtek Figat
bb2ee7260f Optimize code in draw calls batching for shadow 2026-03-27 17:59:25 +01:00
Wojtek Figat
1bef4d00ad Fix deprecated compilation errors on the latest macOS SDK 2026-03-27 17:26:05 +01:00
Wojtek Figat
81176c98a1 Rebuild tint for macOS with SPIRV reader 2026-03-27 17:25:36 +01:00
Chandler Cox
6c4fc44163 Fix arrow rect issue. 2026-03-27 10:59:06 -05:00
Chandler Cox
a41f2e9260 Merge branch 'master' into add-content-tree-view 2026-03-27 10:48:08 -05:00
Wojtek Figat
cc9e41fe44 Dont build tint by default 2026-03-27 11:29:16 +01:00
Wojtek Figat
4d77ced41d Go back with min .NET version 2026-03-27 11:24:39 +01:00
Wojtek Figat
54202eeb8a Merge remote-tracking branch 'origin/1.12' into 1.12 2026-03-27 11:22:32 +01:00
Wojtek Figat
0e1c5cd6f8 Bump up build number 2026-03-27 11:16:25 +01:00
Wojtek Figat
8f50d9faec Fix terrain collision geometry order to match heights buffer
#3844
2026-03-27 11:06:11 +01:00
Wojtek Figat
5249864af4 Merge branch 'xxSeys1-DirectionGizmoPolish' 2026-03-27 10:40:01 +01:00
Wojtek Figat
3e5ceb1e1e Merge branch 'DirectionGizmoPolish' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-DirectionGizmoPolish 2026-03-27 10:39:11 +01:00
Wojtek Figat
ed46025a11 Merge branch 'xxSeys1-112InIssueTemplate' 2026-03-27 10:35:14 +01:00
Wojtek Figat
706b24e1c8 Merge branch '112InIssueTemplate' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-112InIssueTemplate 2026-03-27 10:35:09 +01:00
Wojtek Figat
f5651de725 Add NDK 27 as minimum for Android to fix 16kb page alignment issue on libc++_shared.so 2026-03-27 10:16:32 +01:00
Wojtek Figat
51ff2969e1 Ignore signal SIG34 in Linux tests 2026-03-27 08:52:11 +01:00
Wojtek Figat
5773dc47f4 Restore no cursor clipping in Locked mode on non-SDL input to avoid issues 2026-03-26 23:52:24 +01:00
Wojtek Figat
c30c56e8eb Restore windows lock during input events processing in non-SDL verison for now 2026-03-26 23:49:30 +01:00
Wojtek Figat
eab7794e3b Merge remote-tracking branch 'origin/master' into 1.12
# Conflicts:
#	Source/Engine/Content/Storage/FlaxStorage.cpp
#	global.json
2026-03-26 23:44:33 +01:00
Wojtek Figat
b347cd2f54 Disable SDL on Mac and Windows for now 2026-03-26 23:32:51 +01:00
Wojtek Figat
78052fbaec Refactor engine configuration to support platform-specific namespaces in config files 2026-03-26 23:27:51 +01:00
Wojtek Figat
557dc9b649 Add transparency support to dragging windows without SDL 2026-03-26 22:08:41 +01:00
Wojtek Figat
9fbcce13b3 Add tint shader compiler dependency to manually build it for Mac with SPIR-V reader
Official binary doesn't include it, only WGSL reader which blocks usage in Flax.
2026-03-26 21:43:51 +01:00
Wojtek Figat
6d433d4ef7 Add normalization to Reflections debug view to be usable in HDR scenes 2026-03-26 19:16:16 +01:00
Wojtek Figat
7531b1fdbd Fix rendering crash when D24_8Stencil format is not supported (lol) 2026-03-26 19:12:58 +01:00
Wojtek Figat
58586ca4f0 Add small improvement to terrain normals 2026-03-26 17:17:13 +01:00
Wojtek Figat
09a0573932 Fix MeshAccessor.Stream count for items not aligned to buffer start 2026-03-26 17:14:14 +01:00
Wojtek Figat
b6789ee523 Add various improvements to MeshAccessor such as ComputeNormals and ComputeTangents
https://forum.flaxengine.com/t/how-to-create-procedural-generated-geometry-using-meshaccessor/2420
2026-03-26 17:13:46 +01:00
Wojtek Figat
f1b6c13ba9 Fix PixelFormatSampler.Write` in C# to actually work 2026-03-26 15:33:55 +01:00
Wojtek Figat
ccc8d209da Fix MeshAccessor to validate buffer existence in C# API 2026-03-26 15:33:14 +01:00
Wojtek Figat
e624e1ba69 Fix missing Custom Global Code code generation in Defines stage 2026-03-26 14:14:15 +01:00
Wojtek Figat
d0cc88f82a Try to fix random hdiutil failure in Continuous Delivery on Github Action 2026-03-26 14:08:03 +01:00
Wojtek Figat
a48ce78733 Fix crash when loading CollisionData before physics init
#3971
2026-03-26 12:28:31 +01:00
Wojtek Figat
d1f6440a76 Fix stack overflow on mac when cooking game with too small stack size 2026-03-26 10:55:11 +01:00
Wojtek Figat
5ccc33719e Add basis universal and Web build support for macOS 2026-03-26 10:47:52 +01:00
Wojtek Figat
0f09cad1cf Update PhysX with new slim Build
Rebuild for win64 and android only
2026-03-26 09:33:56 +01:00
Wojtek Figat
f92ec30e1b Fix crash when using convex mesh collider with negative scale
#3853
2026-03-26 09:26:42 +01:00
Wojtek Figat
a9fbbaa88e Fix spawned in Editor actor RigidBody to never be static 2026-03-26 09:21:54 +01:00
Saas
3db3eb58a3 add Flax 1.12 to bug report template and tweak wording for some things 2026-03-25 23:16:27 +01:00
Saas
e455c874c6 tweak Z axis color and add brightness option
https://discord.com/channels/437989205315158016/509056735844106251/1486480204242096369
2026-03-25 22:57:17 +01:00
Wojtek Figat
32af903a2d Fix crash when exporting terrain that has missing patch data 2026-03-25 22:31:53 +01:00
Wojtek Figat
c12553812c Update Terrain scripting API 2026-03-25 22:31:36 +01:00
Saas
c9df03d293 fix viewport orientation when clicking on axis 2026-03-25 22:15:38 +01:00
Saas
c71e1d78e0 polish direction gizmo
- slightly change appearance to be more functional and more pleasant on the eyes
- add options to customize appearance in Viewport editor options
2026-03-25 22:12:16 +01:00
Wojtek Figat
a84109df2c Add UnusedStorageLifetime for asset file TTL
#3931
2026-03-25 21:30:07 +01:00
Wojtek Figat
9d0e4e9768 Fix potential stack overflow inside CustomEditor.RebuildLayout
#3720
2026-03-25 18:51:12 +01:00
Wojtek Figat
3f2e6d82c9 Fix regression from 21e2c830e5 when reimport Animation
#3937
2026-03-25 18:44:56 +01:00
Wojtek Figat
56b208ad85 Merge branch 'Tryibion-direction-gizmo' 2026-03-25 18:11:40 +01:00
Wojtek Figat
842b25f80f Fix Direction Gizmo axes placement in ortho view
#3857
2026-03-25 18:11:31 +01:00
Wojtek Figat
27a1db617c Add hover color highlight to match transform gizmo in direction gizmo
Don't snap shapes to pixels to smooth movement during view rotation

#3857
2026-03-25 17:47:56 +01:00
Wojtek Figat
8356009526 Add button to hide direction gizmo
#3857
2026-03-25 17:41:29 +01:00
Wojtek Figat
0cbb2f0525 Add smooth viewport orientation movement to Direction Gizmo
#3857
2026-03-25 17:39:03 +01:00
Wojtek Figat
0ac5e85cd9 Code cleanup #3857 2026-03-25 17:29:25 +01:00
Wojtek Figat
9b5dbe858c Merge branch 'direction-gizmo' of https://github.com/Tryibion/FlaxEngine into Tryibion-direction-gizmo 2026-03-25 17:24:57 +01:00
Wojtek Figat
914e0869b1 Fix warning when building C# lib with newer .NET than base version used on deps 2026-03-25 17:23:11 +01:00
Wojtek Figat
2c742bee41 Fix typo from #3914 2026-03-25 17:22:38 +01:00
Wojtek Figat
a9ac4d427f Merge branch 'xxSeys1-RadialMenuImprovements' 2026-03-25 17:21:24 +01:00
Wojtek Figat
0f332e331d Merge branch 'RadialMenuImprovements' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-RadialMenuImprovements 2026-03-25 17:21:20 +01:00
Wojtek Figat
be69453bfd Merge branch 'xxSeys1-OnlyCreateMaterialSlots' 2026-03-25 17:16:06 +01:00
Wojtek Figat
5e6723aa22 Fix missing init and serialization #2977 2026-03-25 17:16:01 +01:00
Wojtek Figat
c7449c8f95 Merge branch 'OnlyCreateMaterialSlots' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-OnlyCreateMaterialSlots
# Conflicts:
#	Source/Engine/Tools/ModelTool/ModelTool.h
2026-03-25 17:15:47 +01:00
Wojtek Figat
e23cbd1de9 Merge branch 'alsed-prefab_skinned' 2026-03-25 17:12:35 +01:00
Wojtek Figat
0fe297c390 Minor fixes to #3669
Don't change imported model type, only Prefab can do it conditionally.
Add type of `PrefabObject` to extend it in future with Cameras, Lights, etc.
2026-03-25 16:57:38 +01:00
Wojtek Figat
b10303cd8d Merge branch 'prefab_skinned' of https://github.com/alsed/FlaxEngine into alsed-prefab_skinned 2026-03-25 16:22:05 +01:00
Wojtek Figat
9e9715a2ea Merge branch 'xxSeys1-RipAppartAndConnectConnectionsVisject' 2026-03-25 15:52:19 +01:00
Wojtek Figat
a04995174f Merge branch 'RipAppartAndConnectConnectionsVisject' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-RipAppartAndConnectConnectionsVisject
# Conflicts:
#	Source/Editor/Surface/VisjectSurface.Input.cs
2026-03-25 15:49:46 +01:00
Wojtek Figat
e4a97258f3 Merge branch 'xxSeys1-NoClearSearchboxesWhenStuffHappens' 2026-03-25 15:47:31 +01:00
Wojtek Figat
912f5fb4f3 Merge branch 'NoClearSearchboxesWhenStuffHappens' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-NoClearSearchboxesWhenStuffHappens 2026-03-25 15:46:26 +01:00
Wojtek Figat
4d9898770a Attempt to fix Github Action issues 2026-03-25 15:45:51 +01:00
Wojtek Figat
508ccb714c Attempt to fix Github Action issues 2026-03-25 15:18:02 +01:00
Wojtek Figat
0c1da8e13b Attempt to fix Github Action issues 2026-03-25 15:02:58 +01:00
Wojtek Figat
d40573df5b Merge branch 'xxSeys1-FocusSelectedVJControls' 2026-03-25 15:00:00 +01:00
Wojtek Figat
707d19284d Merge branch 'FocusSelectedVJControls' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-FocusSelectedVJControls 2026-03-25 14:56:27 +01:00
Wojtek Figat
5a6b07e4c5 Merge branch 'xxSeys1-PackUnpackAlternativeNodeTitles' 2026-03-25 14:47:10 +01:00
Wojtek Figat
935645d553 Merge branch 'PackUnpackAlternativeNodeTitles' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-PackUnpackAlternativeNodeTitles 2026-03-25 14:44:32 +01:00
Wojtek Figat
d9f2931b9e Merge branch 'xxSeys1-VisjectFixes' 2026-03-25 14:43:31 +01:00
Wojtek Figat
0770f4a216 Merge branch 'VisjectFixes' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-VisjectFixes 2026-03-25 14:43:27 +01:00
Wojtek Figat
ecc9406968 Attempt to fix Github Action issues 2026-03-25 13:54:14 +01:00
Wojtek Figat
d06be3d1d6 Fix crash on invalid prefab data size
#3979
2026-03-25 13:45:21 +01:00
Wojtek Figat
aeecadffb0 Attempt to fix Github Action issues 2026-03-25 13:32:21 +01:00
Wojtek Figat
f3e23b6420 Attempt to fix Github Action issues 2026-03-25 12:45:06 +01:00
Wojtek Figat
7c5b1942e6 Fix MaterialBase::GetParameterValue when parameter is not overridden
#3965
2026-03-25 12:44:42 +01:00
Wojtek Figat
9850761b5c Fix crash when cloth sim is still active 2026-03-25 12:27:50 +01:00
Wojtek Figat
1e1f7ce56d Attempt to fix Github Action issues 2026-03-25 12:16:41 +01:00
Wojtek Figat
64005c2774 Attempt to fix Github Action issues 2026-03-25 09:49:38 +01:00
Wojtek Figat
22ad2d1fab Attempt to fix Github Action issues 2026-03-25 09:34:50 +01:00
Wojtek Figat
9d478b570f Attempt to fix Github Action issues 2026-03-25 09:11:26 +01:00
Wojtek Figat
35fb320ff0 Merge remote-tracking branch 'origin/master' into 1.12 2026-03-24 23:59:41 +01:00
Wojtek Figat
e000a6727e Fix format support on Vulkan 2026-03-24 23:58:01 +01:00
Wojtek Figat
3a3b997e97 Fix compilation regression 2026-03-24 23:46:21 +01:00
Wojtek Figat
f3c957481c Merge remote-tracking branch 'origin/master' into 1.12
# Conflicts:
#	Source/Editor/GUI/Dialogs/ColorPickerDialog.cs
#	Source/Editor/GUI/Dialogs/ColorSelector.cs
2026-03-24 23:41:58 +01:00
Wojtek Figat
e8134803c4 Fix invalid index buffer format returned by MeshAccessor when model is not yet loaded
#4017
2026-03-24 23:13:50 +01:00
Wojtek Figat
7b3cfd989f Add memory profiler category for Cloth 2026-03-24 23:01:09 +01:00
Wojtek Figat
13f5222ec7 Fix MeshAccessor to properly reference model asset data during the usage 2026-03-24 23:00:51 +01:00
Wojtek Figat
29abfbcdc9 Fix Cloth with models that use compressed vertex buffer
#4017
2026-03-24 22:59:21 +01:00
Wojtek Figat
a63e05d444 Fix Cloth to snap to the parent actor on spawn in Editor 2026-03-24 20:10:20 +01:00
Wojtek Figat
f0f1c57ff1 Add scrolling scene tree hierarchy to the newly spawned actor after drag and drop 2026-03-24 19:43:37 +01:00
Wojtek Figat
d2ef0671e3 Fix incorrect terrain debug buffers disposing 2026-03-24 19:32:17 +01:00
Wojtek Figat
5383de10b8 Merge branch 'xxSeys1-NewColorPicker' 2026-03-24 18:58:34 +01:00
Wojtek Figat
1318dde3ca Add new HSV wheel material, maintain Editor icons atlas for now
#3987
2026-03-24 18:58:32 +01:00
Wojtek Figat
90e96678a6 Merge branch 'NewColorPicker' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-NewColorPicker 2026-03-24 18:50:06 +01:00
Wojtek Figat
2e13c6043d Merge branch 'xxSeys1-FixedTimlineZoomAndAutoZoom' 2026-03-24 18:40:13 +01:00
Wojtek Figat
32d0241f54 Merge branch 'FixedTimlineZoomAndAutoZoom' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-FixedTimlineZoomAndAutoZoom 2026-03-24 18:35:23 +01:00
Wojtek Figat
e8fe1cd044 Merge branch 'xxSeys1-PhysicsSphereCullFix' 2026-03-24 18:34:33 +01:00
Wojtek Figat
956a9b8fab Merge branch 'PhysicsSphereCullFix' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-PhysicsSphereCullFix 2026-03-24 18:34:30 +01:00
Wojtek Figat
5732290c29 Merge branch 'ThePhantomMask-Fix-Dropdown' 2026-03-24 18:34:05 +01:00
Wojtek Figat
601b40dd86 Merge branch 'Fix-Dropdown' of https://github.com/ThePhantomMask/FlaxEngine into ThePhantomMask-Fix-Dropdown 2026-03-24 18:33:56 +01:00
Wojtek Figat
7f1add4bdd Fix missing Length in Vector4 2026-03-24 18:26:45 +01:00
Wojtek Figat
fa17d83501 Fix showing internal surface parameters (eg. Base Model in Anim Graph)
#3936
2026-03-24 18:25:40 +01:00
Wojtek Figat
99d3da467e Fix deadlock when hot-reloading scripts in Editor while Animation asset gets auto-saved
#3942
2026-03-24 17:45:06 +01:00
Wojtek Figat
b54794255a Fix .pch files rebuilds after MSVC toolchain updates 2026-03-24 17:14:30 +01:00
Wojtek Figat
ce5dd6bc16 Fix render image output flags when UAV is not supported 2026-03-24 17:00:26 +01:00
Wojtek Figat
45feda8f07 Fix Firefox and Safari bug with missing bind group layout 2026-03-24 16:59:49 +01:00
Wojtek Figat
bd4c20d9ce Add auto-converting unsupported GPU texture format at runtime (excluding compressed textures) 2026-03-24 15:57:50 +01:00
Wojtek Figat
cc89a1e1ca Add check for minimum browser version when running on Web 2026-03-24 15:23:33 +01:00
Wojtek Figat
df6b550c3d Add Web to engine build distro 2026-03-24 01:01:46 +01:00
Wojtek Figat
0cb5e3421a Revert "Optimize Visject native graph connections loading with less loops"
This reverts commit 1e44bb1832.
2026-03-24 00:31:22 +01:00
Wojtek Figat
4d5bf4ec0c Fix SSR with HiZ on WebGPU on Android device when R32_Float cannnot be sampled 2026-03-24 00:26:47 +01:00
Wojtek Figat
88fe9ba186 Fix WebGPU crashes when resizing canvas 2026-03-23 18:37:58 +01:00
Wojtek Figat
b756c16018 Add renaming underlying GPU resource (eg. for pooled render targets) 2026-03-23 18:37:18 +01:00
Wojtek Figat
1e44bb1832 Optimize Visject native graph connections loading with less loops 2026-03-23 18:29:01 +01:00
Wojtek Figat
3baec506e2 Optimize various initial pre-allocs to happen within memory tracing 2026-03-23 18:25:05 +01:00
Wojtek Figat
90a0cc0e03 Add warning about Web platform being not finished yet 2026-03-23 18:19:53 +01:00
Saas
a346e258d3 make "Flow" group archetype color more legible 2026-03-21 12:53:10 +01:00
Saas
c673e9f52d minor fixes 2026-03-20 20:18:12 +01:00
Saas
1bd86ca28b temporary fix for "Copy Node" node size 2026-03-20 20:17:10 +01:00
Saas
4594a84753 disable vertex snapping for Blend Points of Animation Blend 1D and 2D 2026-03-20 19:07:11 +01:00
Saas
a1af870874 fix surface elements resizing the node 2026-03-20 19:01:52 +01:00
Wojtek Figat
b8d5ea595e Optimize Web app a bit more 2026-03-18 23:22:45 +01:00
Wojtek Figat
5404dff5c2 Rebuild PhysX Vehicle lib for Web without dummy symbol export 2026-03-18 23:09:44 +01:00
Wojtek Figat
a5ec8565e4 Refactor WebGPU ASYNCIFY to use JSPI
Smaller build size and better performance. Also, link time goes down a lot
2026-03-18 23:08:39 +01:00
Saas
e5d526c9af show whole timeline when animation loads 2026-03-18 16:55:45 +01:00
Saas
cb9e09c21b fix Show whole timeline button 2026-03-18 16:55:35 +01:00
Wojtek Figat
750fd1f941 Optimize Web export size 2026-03-17 23:31:34 +01:00
Saas
1308465280 fix sphere with negative radius getting culled to early in physics collider debug draw 2026-03-17 22:02:36 +01:00
Wojtek Figat
a38633c453 Add basic WebThread impl 2026-03-16 23:03:02 +01:00
Wojtek Figat
3949cba83c Add Emscripten heap memory size and max limit stats to profiler 2026-03-16 22:29:19 +01:00
Wojtek Figat
e10d784e83 Add custom HTML shell template to Web export 2026-03-16 22:09:21 +01:00
Wojtek Figat
0f5c5dcf3e Fix memory issues on Web 2026-03-16 16:42:30 +01:00
Wojtek Figat
ed3a827b5f Implement GPUDeviceWebGPU::WaitForGPU 2026-03-16 16:41:39 +01:00
Wojtek Figat
7f49cae9af Optimize LOG() macro to use stack-allocated buffer for shorter texts 2026-03-16 16:41:16 +01:00
Wojtek Figat
427f4647fc Fix various issues in WebGPU backend 2026-03-16 16:39:18 +01:00
Saas
d5d10aa329 fix handling controls during resizing 2026-03-15 19:53:09 +01:00
Saas
5b2b1930d2 fix Particle Emitter node to not auto resize 2026-03-15 17:03:01 +01:00
Saas
5655cc8f42 account for surface node elements when auto resizing 2026-03-15 16:59:09 +01:00
Saas
8bad080d59 Merge remote-tracking branch 'upstream/master' into VISjectIsNowMoreVISuallyAppealingAndLegible 2026-03-15 14:43:11 +01:00
Saas
0237235dcb draw close button using Render2D to make it look good even when zoomed in a lot 2026-03-15 14:41:50 +01:00
Wojtek Figat
a5bbf0dbde Add option for experimental use of thread in Web
Might not run well in certain browsers, requires rebuilding all dependencies for Web with `pthread` enabled.
Disabled by default (for now).
2026-03-14 22:11:36 +01:00
Saas
5ec018b904 fix particle module changing size after certain user actions 2026-03-14 19:05:35 +01:00
Saas
f2a13b64d4 fix reroute node output box moving on connection change 2026-03-14 19:00:12 +01:00
Saas
44ecac7ffc make debug text more legible 2026-03-14 16:52:56 +01:00
Saas
60076d48c7 fix box alignment for nodes with fixed size and adjust some node sizes 2026-03-14 16:38:56 +01:00
Saas
2fbeac6077 disable decorator node shadows 2026-03-14 16:29:43 +01:00
Phantom
57355a741e Merge branch 'master' into Fix-Dropdown 2026-03-14 15:31:38 +01:00
Phantom
14d6273a2f fix #2 on Dropdown 2026-03-14 15:29:31 +01:00
Saas
0cec65f35f disable vertex snapping while drawing box to fix snapping artefacts when zooming surface 2026-03-14 14:46:10 +01:00
Saas
fcdd05dede fix straight connection sprite rotation offset at some angles 2026-03-14 14:20:30 +01:00
Saas
e008c7e2b4 fix behavior tree nodes 2026-03-14 14:20:00 +01:00
Wojtek Figat
f42a9a760a Adjust new Z Axis color in Transform 2026-03-13 23:27:21 +01:00
Wojtek Figat
80767d65ae Fix camera preview placement in editor preview when resizing window 2026-03-13 23:27:03 +01:00
Wojtek Figat
21b2e59fbb Fix ValueBox regression on mouse cursor hover 2026-03-13 23:26:03 +01:00
Wojtek Figat
5fb1ad078b Change default editor windows decorations in SDL on Windows to ClientSide for all windows 2026-03-13 23:23:36 +01:00
Wojtek Figat
1fc5316d12 Adjust new Z Axis color in Transform 2026-03-13 23:21:30 +01:00
Wojtek Figat
1ceb781903 Fix camera preview placement in editor preview when resizing window 2026-03-13 23:21:08 +01:00
Saas
d3891688f0 fix boxes positioning and remove unused constants 2026-03-13 21:59:53 +01:00
Phantom
f876068086 Fix Text Color Highlighted 2026-03-13 20:09:57 +01:00
Wojtek Figat
6ae68bc6cc Add PhysX and NvCloth to Web 2026-03-13 17:49:11 +01:00
Wojtek Figat
a8e7faec3c Add default icon to Web exported files 2026-03-13 10:21:42 +01:00
Wojtek Figat
ab6e291976 Update file 2026-03-13 10:21:26 +01:00
Wojtek Figat
2cb12e3c0f Add SIMD support to Web with SSE4.2 2026-03-13 10:21:21 +01:00
Wojtek Figat
c91c209974 Build msdfgen for Web and Consoles 2026-03-13 09:55:49 +01:00
Wojtek Figat
45a8d82a83 Merge remote-tracking branch 'origin/master' into 1.12
# Conflicts:
#	Content/Shaders/GI/DDGI.flax
#	Content/Shaders/GUI.flax
#	Flax.flaxproj
#	Source/Editor/Windows/AboutDialog.cs
#	Source/Engine/Serialization/Stream.cpp
#	Source/Shaders/GUICommon.hlsl
2026-03-13 08:09:16 +01:00
Wojtek Figat
b41d25cbce Add msdfgen build for iOS and Mac 2026-03-13 00:12:07 +01:00
Wojtek Figat
3d201ec73f Add msdfgen build for Linux 2026-03-12 23:56:50 +01:00
Wojtek Figat
fa91e3e3ab Update asset 2026-03-12 23:32:37 +01:00
Wojtek Figat
38c87c158a Merge branch 'ThePhantomMask-Improve-HighlightedPopUpColor' 2026-03-12 22:54:54 +01:00
Wojtek Figat
241d37130a Merge branch 'Improve-HighlightedPopUpColor' of https://github.com/ThePhantomMask/FlaxEngine into ThePhantomMask-Improve-HighlightedPopUpColor 2026-03-12 22:54:34 +01:00
Wojtek Figat
21981f666f Merge branch 'fibref-flax-msdf-font' 2026-03-12 22:52:49 +01:00
Wojtek Figat
afe917a7f3 Improve e7016564b1 to reduce recompilation on commit changes 2026-03-12 22:51:29 +01:00
Wojtek Figat
d2a03b90ec Add another utility 2026-03-12 22:50:54 +01:00
Wojtek Figat
88587fb6a4 Add utility function to GUICommon.hlsl for MSDF fonts sampling in shaders
#3944
2026-03-12 20:24:03 +01:00
Phantom
895758d27d Merge branch 'master' into Improve-HighlightedPopUpColor 2026-03-12 17:34:46 +01:00
Wojtek Figat
48d86ac7ae Update engine assets 2026-03-12 17:23:39 +01:00
Wojtek Figat
bc3cddc774 Build msdfgen for Windows and Android with a minor cleanup for a build script
#3944
2026-03-12 17:23:29 +01:00
Wojtek Figat
d784fddf95 Code style cleanup for #3944 2026-03-12 17:22:43 +01:00
Wojtek Figat
fc7abbf541 Merge branch 'flax-msdf-font' of https://github.com/fibref/FlaxEngine into fibref-flax-msdf-font 2026-03-12 16:25:55 +01:00
Wojtek Figat
8b4f8de988 Fix Control.LocalLocation to use parent control GetDesireClientArea rather than Bounds
#3889
2026-03-12 15:27:31 +01:00
Wojtek Figat
549ed76e7c Add warning when importing texture that is non-power-of-two and cannot generate mip maps 2026-03-12 14:32:11 +01:00
Wojtek Figat
e7016564b1 Add Git repository branch name and commit hash injection into generated code module metadata 2026-03-12 14:27:34 +01:00
Wojtek Figat
8318a9c1d0 Fix crash when unloading scene during tick of that scene 2026-03-12 13:39:01 +01:00
Phantom
6b1490dac4 Merge branch 'master' into Improve-HighlightedPopUpColor 2026-03-12 12:26:26 +01:00
Wojtek Figat
5c51652e16 Merge branch 'xxSeys1-NewActorAndUiTransformEditorSkin' 2026-03-12 11:26:28 +01:00
Wojtek Figat
6736f2f77a Merge branch 'NewActorAndUiTransformEditorSkin' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-NewActorAndUiTransformEditorSkin 2026-03-12 11:07:48 +01:00
Wojtek Figat
ab685ccc8c Merge branch 'Tryibion-remove-ui-move-size' 2026-03-12 11:06:46 +01:00
Wojtek Figat
b5d841ffc9 Use total rotation from #3758 in #3760 2026-03-12 11:06:42 +01:00
Wojtek Figat
cb17bcd2ff Merge branch 'remove-ui-move-size' of https://github.com/Tryibion/FlaxEngine into Tryibion-remove-ui-move-size 2026-03-12 11:03:51 +01:00
Wojtek Figat
f17b7b3c79 Merge branch 'Tryibion-better-handle-rot' 2026-03-12 10:53:00 +01:00
Wojtek Figat
1374a0440b Merge branch 'better-handle-rot' of https://github.com/Tryibion/FlaxEngine into Tryibion-better-handle-rot 2026-03-12 10:49:52 +01:00
Wojtek Figat
7fa40eba83 Fix Render2D.DrawRectangle to avoid alpha overdraw on the corners when thickness is large 2026-03-12 10:10:47 +01:00
Wojtek Figat
62e492452d Add UI editor grid toggle 2026-03-12 09:26:23 +01:00
Wojtek Figat
30d7588d9c Fix UI panel controls missing in Editor 2026-03-12 08:53:30 +01:00
Wojtek Figat
e736048fab Ensure probe count is never out of bounds
#3963
2026-03-12 08:41:06 +01:00
Wojtek Figat
14e59281e4 Merge branch 'Tryibion-fix-inverse-squ-light' 2026-03-12 00:00:31 +01:00
Wojtek Figat
895dcf4aa6 Add auto-converting old point/spot lights brightness when using Inverse Squared Falloff to match new shader math
#3907
2026-03-12 00:00:28 +01:00
Wojtek Figat
6d9d606085 Add UNITS_TO_METERS_SCALE to shader sources for world units scale
#3907
2026-03-11 23:56:47 +01:00
Wojtek Figat
a94b9f9426 Merge branch 'fix-inverse-squ-light' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-inverse-squ-light 2026-03-11 23:35:19 +01:00
Wojtek Figat
ace84ae29f Add limit to max DDGI cascade updates per-frame to 2
#3963
2026-03-11 23:31:44 +01:00
Wojtek Figat
22c88eb59d Fix blocky terrain SDF
#3975
2026-03-11 19:25:18 +01:00
Wojtek Figat
96bbae8e28 Fix Global SDF update when changing Draw Modes of the model
Refactor `DrawModes` field in `StaticModel` and `FoliageType` into property with getter/setter

#3949
2026-03-11 16:01:56 +01:00
Wojtek Figat
479c5f896c Fix MeshAccelerationStructure to use MeshAccessor for proper mesh format access
#3984
2026-03-11 13:43:26 +01:00
Wojtek Figat
0d3642f39d Merge branch 'Tryibion-text-box-allow-char' 2026-03-11 09:39:15 +01:00
Wojtek Figat
e47e1998a1 Merge branch 'text-box-allow-char' of https://github.com/Tryibion/FlaxEngine into Tryibion-text-box-allow-char 2026-03-11 09:39:10 +01:00
Wojtek Figat
62492c7607 Fix importing file when target location already exists
#3579
2026-03-11 09:38:49 +01:00
Chandler Cox
c3aecc1a11 Add allowable characters enum to text box 2026-03-10 19:47:09 -05:00
Phantom
6629ead842 Merge branch 'master' into Improve-HighlightedPopUpColor 2026-03-11 01:22:58 +01:00
Wojtek Figat
14dd70fb3d Merge branch 'xxSeys1-SplineEditorImprovements' 2026-03-10 22:59:22 +01:00
Wojtek Figat
2000a95fa7 Merge branch 'SplineEditorImprovements' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-SplineEditorImprovements 2026-03-10 22:58:02 +01:00
Wojtek Figat
68ac2f4c79 Merge branch 'GoaLitiuM-lastproject' 2026-03-10 22:49:53 +01:00
Wojtek Figat
05aaf0dc99 Merge branch 'lastproject' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-lastproject 2026-03-10 22:49:46 +01:00
Wojtek Figat
f33db8647a Merge branch 'xxSeys1-DoubleClickSplitterToReset' 2026-03-10 22:35:03 +01:00
Wojtek Figat
0ade65036e Merge branch 'DoubleClickSplitterToReset' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-DoubleClickSplitterToReset 2026-03-10 22:29:07 +01:00
Wojtek Figat
b8bb40fcf8 Merge branch 'GoaLitiuM-codeeditor_fixes' 2026-03-10 22:22:10 +01:00
Wojtek Figat
0d133cfbdc Minor fixes to #3870 2026-03-10 22:22:02 +01:00
Wojtek Figat
337fea0f69 Merge branch 'codeeditor_fixes' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-codeeditor_fixes 2026-03-10 22:09:28 +01:00
Wojtek Figat
ee23196548 Merge branch 'GoaLitiuM-editor_load_scene_state_fix' 2026-03-10 22:03:10 +01:00
Wojtek Figat
394dc31bb0 Merge branch 'editor_load_scene_state_fix' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-editor_load_scene_state_fix 2026-03-10 22:03:07 +01:00
Wojtek Figat
deadb6f6d0 Merge branch 'Tryibion-loop-behavior' 2026-03-10 21:53:45 +01:00
Wojtek Figat
a6c6be9c2e Merge branch 'loop-behavior' of https://github.com/Tryibion/FlaxEngine into Tryibion-loop-behavior 2026-03-10 21:53:41 +01:00
Wojtek Figat
93a38566ea Merge branch 'xxSeys1-NewOrthoPerspectiveToggle' 2026-03-10 21:13:41 +01:00
Wojtek Figat
2a2f046f30 Don't snap vertices in camera projection icon for better quality #3875 2026-03-10 21:13:36 +01:00
Wojtek Figat
73b4b0dcee Merge branch 'NewOrthoPerspectiveToggle' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-NewOrthoPerspectiveToggle 2026-03-10 20:02:30 +01:00
Wojtek Figat
b930ae0ca9 Merge branch 'Tryibion-req-actor-inherited-type' 2026-03-10 20:01:41 +01:00
Wojtek Figat
8cdb6d77ab Merge branch 'req-actor-inherited-type' of https://github.com/Tryibion/FlaxEngine into Tryibion-req-actor-inherited-type 2026-03-10 20:01:37 +01:00
Wojtek Figat
afc4d0f3d3 Add Dead Zone to virtual input action for better usage with gamepad sticks/triggers
#3660
2026-03-10 19:58:50 +01:00
Wojtek Figat
3bbaa7025a Fix crash when destroying actor that was left in enabled state
#3880
2026-03-10 17:01:57 +01:00
Wojtek Figat
5509bc4989 Add option to render Canvas into GPUTexture
#3601
2026-03-10 16:29:39 +01:00
Wojtek Figat
3cfa110a48 Merge remote-tracking branch 'origin/master' into 1.12
# Conflicts:
#	Source/Editor/Options/InterfaceOptions.cs
#	Source/Engine/Audio/OpenAL/AudioBackendOAL.cpp
#	Source/Engine/Graphics/Graphics.cpp
#	Source/Engine/GraphicsDevice/Vulkan/CmdBufferVulkan.cpp
#	Source/Engine/GraphicsDevice/Vulkan/CmdBufferVulkan.h
#	Source/Engine/GraphicsDevice/Vulkan/Config.h
#	Source/Engine/GraphicsDevice/Vulkan/GPUDeviceVulkan.cpp
#	Source/Engine/GraphicsDevice/Vulkan/GPUDeviceVulkan.h
#	Source/Engine/GraphicsDevice/Vulkan/QueueVulkan.cpp
2026-03-10 15:08:43 +01:00
Wojtek Figat
1ab3917332 Merge remote-tracking branch 'origin/1.12' into 1.12 2026-03-10 14:59:33 +01:00
Wojtek Figat
2fb1e5bef7 Merge branch 'alsed-linux_dds_support' into 1.12 2026-03-10 14:44:18 +01:00
Wojtek Figat
a4cb839c6f Minor fixes to #3637 2026-03-10 14:43:57 +01:00
Wojtek Figat
3b1960b977 Merge branch 'linux_dds_support' of https://github.com/alsed/FlaxEngine into alsed-linux_dds_support 2026-03-10 14:39:54 +01:00
Wojtek Figat
116f15f4ae Merge branch 'Tryibion-script-recycle' into 1.12 2026-03-10 14:16:11 +01:00
Wojtek Figat
a0bb8efc2b Adjustment for deleteFileSafety in #3992 2026-03-10 14:16:08 +01:00
Wojtek Figat
90ffc4e5f9 Merge branch 'script-recycle' of https://github.com/Tryibion/FlaxEngine into Tryibion-script-recycle 2026-03-10 14:13:25 +01:00
Wojtek Figat
bf11575346 Merge commit 'ee38f8856229595aee6a1d79020c479605dfa66b' into 1.12 2026-03-10 13:31:20 +01:00
Wojtek Figat
8dc8371a7f Fix headless mode on Linux 2026-03-10 13:30:43 +01:00
Wojtek Figat
ee38f88562 Ensure to fail Github Action test on Linux when gdb detects the crash 2026-03-10 13:23:51 +01:00
Wojtek Figat
e90de5d815 Add gdb package 2026-03-10 13:00:03 +01:00
Wojtek Figat
7fe7a8dd0e Typo 2026-03-10 12:41:35 +01:00
Wojtek Figat
8afc25b19c Attempt to get crash info on Linux Test failure due to segmentation fault 2026-03-10 12:35:28 +01:00
Wojtek Figat
37a39e750f Attempt to fix Linux headless Test run with SDL 2026-03-10 11:25:22 +01:00
Wojtek Figat
59a9137a54 Fix Github Actions 2026-03-10 10:49:33 +01:00
Phantom
f4c1e81f64 Merge branch 'master' into Improve-HighlightedPopUpColor 2026-03-09 18:56:30 +01:00
Wojtek Figat
7391af1c37 Merge branch 'xxSeys1-ObsoleteInScriptsEditor' 2026-03-08 22:47:02 +01:00
Wojtek Figat
c376f220ca Minor adjustments to #3846 2026-03-08 22:46:53 +01:00
Wojtek Figat
5ce0a1535f Merge branch 'ObsoleteInScriptsEditor' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-ObsoleteInScriptsEditor
# Conflicts:
#	Source/Editor/CustomEditors/Dedicated/ScriptsEditor.cs
2026-03-08 22:40:35 +01:00
Wojtek Figat
06bf9def8e Merge branch 'xxSeys1-CopyParameterNames' 2026-03-08 22:37:23 +01:00
Wojtek Figat
57489abc3a Minor adjustment to #3934 2026-03-08 22:37:17 +01:00
Wojtek Figat
200aca93d3 Merge branch 'CopyParameterNames' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-CopyParameterNames 2026-03-08 22:33:19 +01:00
Wojtek Figat
f8eae517f0 Merge branch 'xxSeys1-ClearerParticleAgeNodes' 2026-03-08 22:25:24 +01:00
Wojtek Figat
3a651bc660 Merge branch 'ClearerParticleAgeNodes' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-ClearerParticleAgeNodes 2026-03-08 22:25:20 +01:00
Wojtek Figat
4b7828f686 Merge branch 'xxSeys1-CreateAssetOptions' 2026-03-08 22:21:56 +01:00
Wojtek Figat
befb74297a Merge branch 'CreateAssetOptions' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-CreateAssetOptions 2026-03-08 22:19:07 +01:00
Wojtek Figat
c0e16cd34a Merge branch 'xxSeys1-PreSkinningVertexPosMoreClear' 2026-03-08 22:13:34 +01:00
Wojtek Figat
e710a6e2d1 Adjust naming 2026-03-08 22:13:31 +01:00
Wojtek Figat
c378cd1d47 Merge branch 'PreSkinningVertexPosMoreClear' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-PreSkinningVertexPosMoreClear 2026-03-08 22:08:50 +01:00
Wojtek Figat
cd74b300f1 Merge branch 'Tryibion-textbox-max' 2026-03-08 22:07:56 +01:00
Wojtek Figat
26cd07933e Another attempt 2026-03-08 00:04:18 +01:00
Wojtek Figat
c4342b0a20 Add SPIR-V compression with LZ4 of Vulkan shaders (35% avg smaller) 2026-03-07 23:24:40 +01:00
Wojtek Figat
3038c56af4 Attempt to fix iOS cooking issue on Linux 2026-03-07 23:18:03 +01:00
Wojtek Figat
3dc3e25649 Fix deprecation warnings 2026-03-07 23:17:42 +01:00
Wojtek Figat
e7071fbe43 Dummy attempt get more info about segmentation fault 2026-03-07 23:17:21 +01:00
Wojtek Figat
01670ec6ae Attempt to fix Github Action on Linux Tests 2026-03-07 22:41:07 +01:00
Chandler Cox
4d4571ee55 Allow -1 for Max textbox length
Allow -1 to be "no" length or max length. add bottom limit of -1.
2026-03-06 20:02:24 -06:00
Chandler Cox
83bbb4f6ba Add recycle bin to script deleting. 2026-03-06 19:39:49 -06:00
Wojtek Figat
a406d6dba2 Disable running native Linux tests until it's fixed (Windows will be enough) and compile just for Large Worlds on Linux to test it 2026-03-07 00:34:40 +01:00
Wojtek Figat
72bd624384 Fix creating textures when running in headless/null mode 2026-03-07 00:32:26 +01:00
Wojtek Figat
82a02698df Fix boolean command line parsing from int 2026-03-07 00:07:41 +01:00
Wojtek Figat
befac36a4f Check for SDL on Linux that is breaking tests, add missing file for Web libs 2026-03-06 23:41:41 +01:00
Wojtek Figat
1282dffca9 Add packages to other Github Actions on Linux that are used by Editor 2026-03-06 20:23:36 +01:00
Wojtek Figat
b291cd93c3 Fix libportal include path and glib include path on Ubuntu 22 2026-03-06 20:04:34 +01:00
Wojtek Figat
28257296b9 Enable Web builds on Linux 2026-03-06 17:57:43 +01:00
Wojtek Figat
164e380672 Merge branch '1.12' of https://gitlab.flaxengine.com/flax/flaxengine into 1.12 2026-03-06 17:40:00 +01:00
Wojtek Figat
438a9e4c3d Merge remote-tracking branch 'origin/1.12' into 1.12 2026-03-06 17:35:22 +01:00
Wojtek Figat
5942209114 Add basis lib for Web 2026-03-06 17:35:08 +01:00
Wojtek Figat
06788055fe Rebuild vorbis and ogg libs for Linux 2026-03-06 16:42:41 +01:00
Wojtek Figat
26838609db Build Linux deps 2026-03-06 16:29:47 +01:00
Wojtek Figat
b408a8ce21 Fix WebGPU in non-Debug builds 2026-03-06 14:45:00 +01:00
Wojtek Figat
6fcc963cf6 Cleanup dependency modules code a bit 2026-03-06 12:20:16 +01:00
Wojtek Figat
0fa3472f24 Refactor Texture Data function to be reusable 2026-03-06 11:40:43 +01:00
Wojtek Figat
c0056f3d9d Fix running Editor or Game target with console on Windows 2026-03-06 11:11:45 +01:00
Wojtek Figat
b8fcb51aa3 Fix loading cube texture import settings 2026-03-06 11:10:58 +01:00
Wojtek Figat
341dc08f7c Fix dependencies building to check for target platform build support, not the host platform 2026-03-06 11:10:40 +01:00
Wojtek Figat
f0873411df Minor fix for Web no threads 2026-03-06 11:10:13 +01:00
Wojtek Figat
94789712e8 Add basis_universal support for textures on Web
Add implementation for loading interchange texture formats with multiple runtime formats support
2026-03-06 11:09:29 +01:00
Saas
d163064f95 fix hv wheel selector 2026-03-05 20:33:18 +01:00
Saas
64c2d64d84 increase distante for slot into connection feature 2026-03-05 20:14:48 +01:00
Saas
a9c510c296 tweak some group archetype colors 2026-03-05 19:49:29 +01:00
Saas
1ef35c3f94 clear up naming of "Pre-skinning Local Vertex Pos" 2026-03-04 23:57:21 +01:00
Saas
23c3edcab9 small cleanup 2026-03-04 23:37:33 +01:00
Saas
2c98d80506 fix node auto resizing 2026-03-04 23:15:09 +01:00
Wojtek Figat
ac36840037 Add basic options for texture compression on Web 2026-03-04 22:49:15 +01:00
Phantom
dfdcd47ad7 Merge branch 'master' into Improve-HighlightedPopUpColor 2026-03-04 22:33:45 +01:00
Wojtek Figat
414c650550 Fixes for WebGPU 2026-03-04 22:00:50 +01:00
Wojtek Figat
2d9ca4c335 Skip threaded physics actors update when single-threaded mode 2026-03-04 21:30:31 +01:00
Wojtek Figat
6c19996f95 Update engine assets 2026-03-04 21:28:01 +01:00
Wojtek Figat
377d5c00aa Add Compute shaders support to WebGPU 2026-03-04 21:27:42 +01:00
Saas
93ca9f1cb0 Merge remote-tracking branch 'upstream/master' into VISjectIsNowMoreVISuallyAppealingAndLegible 2026-03-04 19:12:11 +01:00
Saas
c62b3f7624 improve color picker layout and accept color behaviour
- Color will accept on close dialog or focus loss
- Color will cancel on ESC press
- Increased saved colors count from 8 to 10
- Moved RGB and HSV into tabbed interface
- Moved eyedropper icon
- Removed "Auto Accept Color Picker Change" option since there are no "Cancel" or "OK" button anymore
- Made sure to reset cursor type when the color picker is closed
2026-03-04 17:53:27 +01:00
Wojtek Figat
5fb9cf3be1 Fix shadows from wireframe materials 2026-03-04 16:55:45 +01:00
Wojtek Figat
ceebc68d18 Add ShaderProfileFeatures for more expendable shader feature sets 2026-03-04 16:55:04 +01:00
Saas
66b4c64f98 polish sliders and wheel
- Hide mouse cursor when clicking on wheel or sliders
- Move mouse position to knob position when letting go of slider or wheel
- Show mouse again when letting go of slider or wheel (obviously)
- Provide some visual feedback when the clicks on the wheel or sliders
- Make sliders wider
- Add alpha grid background to alpha slider
2026-03-04 15:17:47 +01:00
Wojtek Figat
aff8090adb Add LZ4 compression to WebGPU shaders 2026-03-04 09:15:53 +01:00
Wojtek Figat
cee1b72f2f Fix regression from 7b7a92758f
#3932
2026-03-04 00:02:06 +01:00
Saas
b9b11b3c2a loop Hue value box 2026-03-03 23:49:16 +01:00
Saas
feca1c7994 replace HW with material instead of sprite 2026-03-03 23:44:24 +01:00
Wojtek Figat
bd39e449d7 Merge branch 'Tryibion-fix-kin-call' 2026-03-03 23:41:45 +01:00
Wojtek Figat
836e1d4f39 Merge branch 'fix-kin-call' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-kin-call 2026-03-03 23:41:41 +01:00
Wojtek Figat
792393345d Merge branch 'xxSeys1-CaretBlinkSpeedTweak' 2026-03-03 23:32:13 +01:00
Wojtek Figat
66be7ebc50 Merge branch 'CaretBlinkSpeedTweak' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-CaretBlinkSpeedTweak 2026-03-03 23:32:10 +01:00
Wojtek Figat
f8b161c04e Merge branch 'GoaLitiuM-string_ref_temp' 2026-03-03 23:30:33 +01:00
Wojtek Figat
bac361baf6 Merge branch 'string_ref_temp' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-string_ref_temp 2026-03-03 23:30:20 +01:00
Wojtek Figat
10bcf9c9a3 Fix Vulkan timeout to be larger (5s)
#3967
2026-03-03 23:29:10 +01:00
Wojtek Figat
075727ab53 Merge branch 'envision3d-patch-1' into 1.12 2026-03-03 23:12:19 +01:00
Wojtek Figat
5a4e94d263 Merge branch 'patch-1' of https://github.com/envision3d/FlaxEngine into envision3d-patch-1 2026-03-03 23:12:15 +01:00
Wojtek Figat
ad3c2be510 Add timer and occlusion queries support to WebGPU 2026-03-03 21:35:42 +01:00
Wojtek Figat
5641bf63e8 Add validation of adapter limits for WebGPU 2026-03-03 16:03:14 +01:00
Wojtek Figat
79a17d8fe3 Add message box to Web via alert 2026-03-03 15:01:36 +01:00
Wojtek Figat
6814a43418 Various changes for WebGPU and hardware instancing support 2026-03-03 14:51:15 +01:00
Wojtek Figat
6891256afe Fix mouse cursor lock regression in cooked game 2026-03-03 10:51:38 +01:00
Wojtek Figat
17b097b1a3 Update engine materials and shaders 2026-03-03 10:30:20 +01:00
Wojtek Figat
a96c7e631e Fix some material nodes on WebGPU 2026-03-03 10:29:29 +01:00
Wojtek Figat
9df5da2a88 Fix compilation warnings from a925c7410a 2026-03-03 10:25:57 +01:00
Wojtek Figat
3e63551e90 Fix hashing pinter on 32-bit systems 2026-03-03 09:48:45 +01:00
Wojtek Figat
2a426e2812 Optimize AtmospherePreCompute to reduce memory usage after sky cache LUTs are rendered 2026-03-03 09:48:29 +01:00
Wojtek Figat
c4f4983f6d Add WebGPU bind groups caching 2026-03-03 09:47:59 +01:00
Wojtek Figat
a925c7410a Deprecate old GPU limits 2026-03-03 08:36:35 +01:00
Chandler Cox
f7e2f3a4d5 Only set kinematic target if rigid body has kinematic flag. 2026-03-02 19:20:15 -06:00
Wojtek Figat
b1befacb84 Fix material templates for WebGPU 2026-03-02 23:06:14 +01:00
Wojtek Figat
23ebb0e754 Fix particles on WebGPU to respect format support flags properly 2026-03-02 23:06:01 +01:00
5f9e8dedec Pass String reference values via temporary values 2026-03-02 23:40:41 +02:00
Wojtek Figat
3b2015e816 Fix creating new particle system or scene animation assets after deprecated code removal 2026-03-02 20:47:57 +01:00
Wojtek Figat
f1e851e1b8 Fix WebGPU by moving user to Australia 2026-03-02 20:37:11 +01:00
Wojtek Figat
b191d3918e Fix rendering various visuals on WebGPU 2026-03-02 20:36:33 +01:00
Saas
db46050b16 tweak caret blink speed 2026-03-01 11:01:55 +01:00
Chandler Cox
24a11ac2a8 Add tree view mode for content window. 2026-02-28 12:38:07 -06:00
fibref
1cf69361a1 fix MSDF font alignment 2026-02-28 10:13:03 +08:00
envision3d
689fab2ba4 add linux platform case to fix build 2026-02-26 16:46:46 -06:00
Wojtek Figat
b36c757753 Fix WebGPU error when sampling depth texture in shader which requires explicit UnfilterableFloat sampler type 2026-02-26 16:59:25 +01:00
Wojtek Figat
63f19aa4d6 Fix minor issues 2026-02-26 15:52:41 +01:00
Wojtek Figat
8728d88dde Fix vertex layouts binding to match vertex shader inputs on WebGPU 2026-02-26 15:50:36 +01:00
Wojtek Figat
f6888b099e Add cubemap and texture arrays copy/update in WebGPU 2026-02-26 13:27:35 +01:00
Wojtek Figat
239ceb75a9 Fix binding various resources to shaders in WebGPU 2026-02-26 12:23:07 +01:00
Wojtek Figat
20c9ed27fb Add sampler slots usage and inputs/outputs count to GPU shader program bindings meta 2026-02-26 12:02:52 +01:00
Wojtek Figat
ac4526744a Add GPU profile events to WebGPU and use the by default in non-Release builds 2026-02-26 11:08:12 +01:00
Wojtek Figat
d2a8ac54cf Fix depth stencil view format when binding to shader to use depth-only aspect but still render to both 2026-02-26 11:07:19 +01:00
Wojtek Figat
153b16ebd7 Add various graphics improvements 2026-02-25 18:23:49 +01:00
Wojtek Figat
b535791c66 Implement bind groups in WebGPU to provide resources to shaders 2026-02-25 18:22:55 +01:00
Phantom
6ed7e8fa40 Merge branch 'master' into Improve-HighlightedPopUpColor 2026-02-25 17:26:20 +01:00
Wojtek Figat
9d95bbaa8c Add GPU data upload allocator with shared page pool 2026-02-24 23:18:07 +01:00
Wojtek Figat
e41ec4ebfd Add verbosity level to platform log for better integration with Web and Android platforms 2026-02-24 20:09:09 +01:00
Wojtek Figat
195d5b1aa2 Fixes and missing changes 2026-02-24 17:59:42 +01:00
Wojtek Figat
7ea3fb1500 Fix shaders codebase to compile into WGSL 2026-02-24 17:56:14 +01:00
Wojtek Figat
9be8589437 Add shader compiler for WebGPU
Use existing Vulkan compiler to generate SPIR-V and convert it into WGSL with tint compiler
https://github.com/google/dawn/releases/tag/v20260219.200501
2026-02-24 17:55:26 +01:00
Wojtek Figat
ff81d339ef Fix missing doppler factor in cooked game with OpenAL backend
#3959
2026-02-23 17:24:59 +01:00
Wojtek Figat
7858225565 Update docs for #3948 2026-02-23 17:19:14 +01:00
Wojtek Figat
83bd1deafd Optimize shadow maps rendering by using new Graphics.Shadows.MinObjectPixelSize to skip sub-pixel objects 2026-02-23 16:53:17 +01:00
Wojtek Figat
9158e1c270 Improve stack trace printing when module name is not provided 2026-02-23 11:51:15 +01:00
Wojtek Figat
f0d182771d Add missing define 2026-02-23 11:50:44 +01:00
Wojtek Figat
6081ed35bc Add initial base implementation for WebGPU rendering backend 2026-02-23 11:49:45 +01:00
Wojtek Figat
4ca10c7869 Fix mouse position on Web to match canvas coordinates, not entire window 2026-02-22 22:05:13 +01:00
Wojtek Figat
9fc31b1021 Run Web main loop at vsync to avoid browser throttling
This could be customized in future (depending on VSync usage).
2026-02-20 23:51:05 +01:00
Wojtek Figat
366a5162b7 DIsable screensaver blocking via SDL in Editor 2026-02-20 23:50:13 +01:00
Wojtek Figat
6fd58c418e Fixes and updates to graphics api 2026-02-20 23:49:49 +01:00
Wojtek Figat
08d9ae0ae6 Add callstack capturing on Web platform 2026-02-20 23:47:30 +01:00
Wojtek Figat
27eb53e1a1 Fix web window to maintain canvas size on start 2026-02-20 23:47:01 +01:00
Wojtek Figat
31b5685251 Add GPU_ENABLE_PRELOADING_RESOURCES and use it on Web/Android/iOS to reduce engine resources preloading 2026-02-20 23:45:56 +01:00
Wojtek Figat
894cf2c886 Fix missing JS symbols in Web build of the main module 2026-02-20 23:44:20 +01:00
Wojtek Figat
5b3079acde Fix texture GPU resource debug name in non-Release game builds to match the path in project 2026-02-20 23:43:29 +01:00
fibref
0f49503abd add native MSDF font support for Render2D 2026-02-19 15:41:48 +08:00
fibref
be4e1edc3e fix flipped color of MSDF fonts 2026-02-19 15:12:25 +08:00
Wojtek Figat
1982694ef0 Fix Release build for Web 2026-02-17 19:07:43 +01:00
Wojtek Figat
8b475e9f54 Restore profiler for Web for engine stats in non-Release builds 2026-02-17 18:50:24 +01:00
Wojtek Figat
2b546eb4b3 Add OpenAL audio to Web 2026-02-17 18:43:52 +01:00
Wojtek Figat
69cefb6822 Fix miliseconds in date on Emscripten and skip SDL create process (unsupported) 2026-02-17 15:07:42 +01:00
Wojtek Figat
9772227146 Add shared libraries support for Web to load game module (C++) 2026-02-17 15:07:11 +01:00
Wojtek Figat
34bddc7db1 Minor fix 2026-02-17 13:43:54 +01:00
Wojtek Figat
7ff4ce18ff Add web platform icons to editor atlas 2026-02-17 13:21:00 +01:00
Wojtek Figat
6e7a7c9350 Fix Screen.CursorLock in Editor to skip when viewport is unfocused 2026-02-17 11:46:20 +01:00
Wojtek Figat
2a9c6bbd1d Refactor engine main loop to allow external stepping in Web 2026-02-16 22:32:02 +01:00
Wojtek Figat
0835a6559c Fix Web build issues 2026-02-16 21:31:12 +01:00
Wojtek Figat
489c4a3661 Add packaging game files and bundling them into final Web app 2026-02-16 17:41:43 +01:00
Wojtek Figat
43dca143fa Add env vars impl to Web platform 2026-02-16 16:11:12 +01:00
Wojtek Figat
6bd13feba6 Add various fixes 2026-02-16 16:11:00 +01:00
Wojtek Figat
d1557e5292 Add support for running engine with a single-thread only (content, jobs, drawing, physics) 2026-02-16 16:10:31 +01:00
fibref
c9fbafe014 Merge branch 'FlaxEngine:master' into flax-msdf-font 2026-02-16 22:48:19 +08:00
fibref
0612b923e1 fix msdf font layout issue 2026-02-16 19:52:12 +08:00
Wojtek Figat
6f13a33be2 Add LTO and Sanitizers support to Web build 2026-02-16 12:00:24 +01:00
Wojtek Figat
4ccf969f7a Add various fixes for Web 2026-02-16 11:59:44 +01:00
Wojtek Figat
3d206e06d0 Fix ThreadLocal when thread count limit is low on a target platform or if it's only main-thread 2026-02-16 11:59:12 +01:00
Wojtek Figat
25e90deed6 Fix Web (and consoles) to run without exceptions throw/catch support 2026-02-16 11:50:52 +01:00
Wojtek Figat
7bc687194f Fix Web to run without dotnet 2026-02-16 11:49:34 +01:00
fibref
d3bd377264 update msdfgen 2026-02-16 11:04:22 +08:00
fibref
974c55418b fix msdfgen build on Linux (Mac not tested) 2026-02-15 20:35:34 +08:00
Saas
0870a86a3a remove non parameters from parameter list 2026-02-14 18:56:58 +01:00
Saas
dd2e2c5b3a add some utility for copying parameter names to parameter right click menu 2026-02-14 18:35:13 +01:00
fibref
75a1b14beb initial support for MSDF font 2026-02-14 22:12:26 +08:00
Wojtek Figat
8a760dc1e2 Fix typo 2026-02-14 00:07:41 +01:00
Wojtek Figat
fc0b885a14 Fix missing Length in Vector4 2026-02-14 00:07:34 +01:00
Wojtek Figat
f12ad5c874 Add **Web platform with Emscripten** 2026-02-14 00:07:21 +01:00
Wojtek Figat
fd0584b406 Fix build regression from 865a26cbbe 2026-02-12 22:03:13 +01:00
Wojtek Figat
374f6e40bb Merge remote-tracking branch 'origin/1.12' into 1.12 2026-02-12 20:26:54 +01:00
Wojtek Figat
9c9e17a9d9 Fix warning when building C# lib with newer .NET than base version used on deps 2026-02-12 18:26:43 +01:00
Wojtek Figat
865a26cbbe Remove deprecated CommonValue
Deprecated on 31th July 2020
2026-02-12 18:26:08 +01:00
Wojtek Figat
56e825cad4 Build SDL for macOS (x64 and arm64) 2026-02-12 17:23:38 +01:00
Wojtek Figat
1df608e902 Remove deprecated NetworkDriverType 2026-02-12 16:43:01 +01:00
Wojtek Figat
07f031e4c5 Merge branch 'GoaLitiuM-sdl_platform' into 1.12 2026-02-12 16:26:05 +01:00
Wojtek Figat
06c31a39f2 Don't bring the main window to the front while dragging as it can cover up floating windows there 2026-02-12 16:24:15 +01:00
Wojtek Figat
2a6e38e020 Fix Editor floating windows to have link to the main window while still be in taskbar
#2800
2026-02-12 16:23:42 +01:00
Wojtek Figat
cc69e5d966 Minor fixes 2026-02-12 16:22:51 +01:00
Wojtek Figat
d68969dbe2 Move SupportsNativeDecorations/SupportsNativeDecorationDragging to SDLPlatform
#2800
2026-02-12 09:24:48 +01:00
Wojtek Figat
c4d20f06ee Move GetDisplayServer to LinuxPlatform (add support for custom platform scripting api)
#2800
2026-02-12 09:24:11 +01:00
Wojtek Figat
3c5c6f9883 Fix new window docking system to match the old one hints placement and enlarge hint spots
#2800
2026-02-11 23:56:35 +01:00
Wojtek Figat
8e7dc2a91e Fix using new window docking system with old non-SDL platform
#2800
2026-02-11 23:55:18 +01:00
Wojtek Figat
4ddbc8ba5c Fix floating dock window title to update when selected tab gets changed
#2800
2026-02-11 23:32:53 +01:00
Wojtek Figat
15f379e87f Fix memory leak in Editor when using material parameter query 2026-02-11 23:29:36 +01:00
Wojtek Figat
d4a7b3074e Fix old windows code to use new window type
#2800
2026-02-11 23:29:13 +01:00
Wojtek Figat
a3492e59ef Use CreateWindow/GetBatteryInfo/GetUserLocaleName from Windows instead of SDL for now
#2800
2026-02-11 23:28:44 +01:00
Wojtek Figat
515ad56fa2 Silence warning in game builds 2026-02-11 18:06:07 +01:00
Wojtek Figat
ebd20dd816 Fix Android compilation since .c files are now compiled 2026-02-11 18:05:56 +01:00
Wojtek Figat
019a9f6089 Merge ScreenUtilities into Platform for simplicity and make it Editor-only
#2800
2026-02-11 17:59:11 +01:00
Wojtek Figat
273b110db4 Code style formatting and minor tweaks
#2800
2026-02-11 17:15:15 +01:00
Wojtek Figat
0bea701a83 Build SDL for Windows 2026-02-11 15:23:42 +01:00
Wojtek Figat
ee22b9dc25 Merge branch 'sdl_platform' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-sdl_platform
# Conflicts:
#	Source/Editor/GUI/Dialogs/ColorPickerDialog.cs
#	Source/Editor/Modules/UIModule.cs
2026-02-11 14:08:57 +01:00
Wojtek Figat
a1096aaf92 Fix crash when MultiScaler shader is not yet loaded on first frame 2026-02-11 13:32:41 +01:00
Phantom
c631c37a34 Merge branch 'master' into Improve-HighlightedPopUpColor 2026-02-11 09:38:34 +01:00
Wojtek Figat
885ee15767 Update engine assets 2026-02-11 00:25:41 +01:00
Wojtek Figat
c978ab2b84 Fix missing changes from e851efa0a8 and ef551c36ae on ForwardShading 2026-02-11 00:25:00 +01:00
Wojtek Figat
f045b5b6b6 Merge remote-tracking branch 'origin/master' into 1.12
# Conflicts:
#	Content/Editor/Camera/M_Camera.flax
#	Content/Editor/CubeTexturePreviewMaterial.flax
#	Content/Editor/DebugMaterials/DDGIDebugProbes.flax
#	Content/Editor/DebugMaterials/SingleColor/Decal.flax
#	Content/Editor/DebugMaterials/SingleColor/Particle.flax
#	Content/Editor/DebugMaterials/SingleColor/Surface.flax
#	Content/Editor/DebugMaterials/SingleColor/SurfaceAdditive.flax
#	Content/Editor/DebugMaterials/SingleColor/Terrain.flax
#	Content/Editor/DefaultFontMaterial.flax
#	Content/Editor/Gizmo/FoliageBrushMaterial.flax
#	Content/Editor/Gizmo/Material.flax
#	Content/Editor/Gizmo/MaterialWire.flax
#	Content/Editor/Gizmo/SelectionOutlineMaterial.flax
#	Content/Editor/Gizmo/VertexColorsPreviewMaterial.flax
#	Content/Editor/Highlight Material.flax
#	Content/Editor/Icons/IconsMaterial.flax
#	Content/Editor/IesProfilePreviewMaterial.flax
#	Content/Editor/MaterialTemplates/Features/ForwardShading.hlsl
#	Content/Editor/Particles/Particle Material Color.flax
#	Content/Editor/Particles/Smoke Material.flax
#	Content/Editor/SpriteMaterial.flax
#	Content/Editor/Terrain/Circle Brush Material.flax
#	Content/Editor/Terrain/Highlight Terrain Material.flax
#	Content/Editor/TexturePreviewMaterial.flax
#	Content/Editor/Wires Debug Material.flax
#	Content/Engine/DefaultDeformableMaterial.flax
#	Content/Engine/DefaultMaterial.flax
#	Content/Engine/DefaultRadialMenu.flax
#	Content/Engine/DefaultTerrainMaterial.flax
#	Content/Engine/SingleColorMaterial.flax
#	Content/Engine/SkyboxMaterial.flax
#	Flax.flaxproj
#	Source/Engine/Graphics/Materials/MaterialShader.h
#	Source/Engine/Graphics/Materials/MaterialShaderFeatures.cpp
#	Source/Engine/Renderer/RenderList.h
#	Source/Shaders/Reflections.shader
#	Source/Shaders/ReflectionsCommon.hlsl
#	Source/Tools/Flax.Build/Bindings/BindingsGenerator.Cpp.cs
2026-02-11 00:20:38 +01:00
Wojtek Figat
c51a023e61 Merge branch 'GoaLitiuM-dotnet10_fixes' 2026-02-11 00:08:48 +01:00
Wojtek Figat
645df4fb06 Merge branch 'dotnet10_fixes' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-dotnet10_fixes 2026-02-11 00:08:37 +01:00
Wojtek Figat
b53028782f Update engine assets 2026-02-11 00:07:44 +01:00
Wojtek Figat
ef551c36ae Fix Forward shading to match Deferred in fog and reflections rendering
#3717
2026-02-11 00:06:44 +01:00
Wojtek Figat
e851efa0a8 Fix applying AO twice for lighting in Forward shading and use correct specular occlusion on reflections
#3717
2026-02-10 22:50:32 +01:00
0084bc051c Merge branch 'master' into sdl_platform 2026-02-10 23:05:19 +02:00
Phantom
07b6d3558a Merge branch 'master' into Improve-HighlightedPopUpColor 2026-02-10 17:09:22 +01:00
Wojtek Figat
9c8023d64f Merge branch 'Menotdan-network-replication-fix-1' 2026-02-10 15:50:05 +01:00
Wojtek Figat
6d02f5d9da Merge branch 'network-replication-fix-1' of https://github.com/Menotdan/FlaxEngine into Menotdan-network-replication-fix-1 2026-02-10 15:50:01 +01:00
Wojtek Figat
1f9f281c31 Fix regression from 7b7a92758f for Visual Scripts 2026-02-10 15:02:05 +01:00
Wojtek Figat
846b64048f Update build number 2026-02-10 11:42:17 +01:00
Wojtek Figat
55f73b6cf7 Optimize Animated Models bones updating with a batches memory pass and manual resource transitions batch
#3917 #3827
2026-02-09 23:03:25 +01:00
Wojtek Figat
0f6c1aea62 Fix various material nodes to work on D3D12 2026-02-09 18:40:39 +01:00
Wojtek Figat
d2ee61ef8d Fix GetNodesPose issue when 2 threads call it at once 2026-02-09 18:06:57 +01:00
Wojtek Figat
a1399c5157 Optimize Anim Graph retarget to use cached pose to avoid dynamic memory allocation
#3827
2026-02-09 18:02:58 +01:00
Wojtek Figat
7b7a92758f Optimize VariantType to use static type name in game or from non-reloadable assemblies
This avoids many dynamic memory allocations in Visual Scripts and Anim Graph.

#
2026-02-09 18:01:47 +01:00
Saas
2a21141dd4 focus whole graph if no selection 2026-02-09 15:56:37 +01:00
Saas
eac9f67bc1 Merge remote-tracking branch 'upstream/master' into FocusSelectedVJControls 2026-02-09 15:52:27 +01:00
Wojtek Figat
bd300651ec Fix Job System regression bug with incorrect initialization of job context 2026-02-09 15:04:19 +01:00
Wojtek Figat
a2b0d0714e Add more docs about new ConcurrentDictionary 2026-02-09 15:03:54 +01:00
Wojtek Figat
3d66316716 Optimize animations retargeting between skeletons
Cuts down `RetargetSkeletonPose` time down by over 80%.

#3827
2026-02-09 15:03:42 +01:00
Wojtek Figat
9c32f978fb Fix regression from 73c19b278f to fix missing skeleton bones on start in Editor 2026-02-08 00:22:37 +01:00
Saas
b19611e3d2 steal right fix from Tryibions PR 2026-02-07 19:58:26 +01:00
Chandler Cox
37e776e407 Add HideInEditor attribute to DirectionGizmo 2026-02-06 21:56:25 -06:00
Wojtek Figat
ed5ad91a32 Optimize SkinnedModel::GetSkeletonMapping to not use locking for better perf when multi-threading
#3827
2026-02-07 00:46:32 +01:00
Wojtek Figat
ecddb8aae5 Optimize GPUVertexLayout caches with ConcurrentDictionary 2026-02-07 00:45:14 +01:00
Wojtek Figat
a855b17cc0 Add new collection type ConcurrentDictionary
#3917 #3827
2026-02-07 00:44:51 +01:00
Wojtek Figat
27dd1bda25 Optimize GPUVertexLayout::Get to not use mutex on lookup read
#3917
2026-02-06 21:57:16 +01:00
Wojtek Figat
4afd9fd8df Optimize Animated Model bones buffer flushing with delayed draw action to reduce lock contention
#3917 #3827
2026-02-06 13:27:53 +01:00
Wojtek Figat
73c19b278f Optimize updating Animated Model bones buffer when it's not dirty
#3827
2026-02-06 12:47:34 +01:00
Wojtek Figat
b4cb1028ed Fix typos 2026-02-06 12:47:07 +01:00
Wojtek Figat
4a7f1a5fde Fix various issues 2026-02-06 10:37:52 +01:00
Wojtek Figat
5d0fdc8313 Add info about skinned model skeleton size 2026-02-06 09:28:06 +01:00
Wojtek Figat
70b324cdec Optimize included header usage 2026-02-06 09:11:55 +01:00
Wojtek Figat
20516bb8bc Fix foliage dithered LOD transitions when using shadows 2026-02-06 09:11:45 +01:00
Wojtek Figat
c18b9163ca Refactor Job System to reduce mutex usage with more atomic operations
#3917
2026-02-06 09:11:12 +01:00
Menotdan
db5b65beac Merge branch 'FlaxEngine:master' into network-replication-fix-1 2026-02-05 19:19:45 -05:00
Menotdan
78e5baf6a5 Fix replicating changes from one client to another 2026-02-05 19:12:21 -05:00
Phantom
05a0a6b539 Merge branch 'master' into Improve-HighlightedPopUpColor 2026-02-05 19:42:54 +01:00
Wojtek Figat
4833c19366 Fix build regression 2026-02-05 15:45:02 +01:00
Wojtek Figat
65fd22f5b6 Add Triangles to MeshAccessor for easy index buffer access
#3918
2026-02-05 13:00:49 +01:00
Phantom
f57df83d26 Add Slerp methods on Vectors
#3682
2026-02-05 12:43:29 +01:00
Wojtek Figat
66894b71fa Add utility to get loaded assets 2026-02-05 12:37:03 +01:00
Wojtek Figat
7e9ee0610a Fix missing audio on OpenAL when changing active device
#3621
2026-02-04 23:43:06 +01:00
Saas
3adda3629e don't try to auto connect to comments and particle emitter nodes 2026-02-04 23:29:41 +01:00
Wojtek Figat
f733611213 Fix various issues with audio and video playback
#3716
2026-02-04 21:48:02 +01:00
Saas
a57fe6c04d add lazy connect feature to visject 2026-02-04 21:31:03 +01:00
Saas
29b043342a don't fall into the trap of moving nodes with NoMove flag again 2026-02-04 14:11:23 +01:00
Saas
8d8bf87c69 move nodes if needed and add undo support 2026-02-04 13:52:37 +01:00
Phantom
ca54313bd8 Merge branch 'master' into Improve-HighlightedPopUpColor 2026-02-04 05:19:47 +01:00
Wojtek Figat
780e78f056 Another compilation fix attempt 2026-02-03 23:33:24 +01:00
Wojtek Figat
4d447b7544 Fix very rare race condition when waiting for an asset to load 2026-02-03 23:33:09 +01:00
Phantom
7a96c1ff76 Merge branch 'master' into Improve-HighlightedPopUpColor 2026-02-03 23:26:34 +01:00
Phantom
83c15c05bb Merge branch 'master' into Improve-HighlightedPopUpColor 2026-02-03 23:06:53 +01:00
Wojtek Figat
9a44902949 Optimize e84b5410ec to use faster code path on common math types
#3499
2026-02-03 23:00:36 +01:00
Wojtek Figat
e84b5410ec Fix C# Json serialization to use proper value comparison for structures with Scene Object references
#3499
2026-02-03 22:59:35 +01:00
Wojtek Figat
9ac19cbd2f Fix build regression on Clang 2026-02-03 22:58:09 +01:00
Wojtek Figat
39a2bc2535 Fix build regression on Clang 2026-02-03 22:11:15 +01:00
Wojtek Figat
15771355cb Add ShouldSerialize to ISerializable to properly handle serialization of custom C++ types in prefabs
#3499
2026-02-03 22:09:41 +01:00
Saas
ab88a6339a add ripping apart connection with reconnect and auto connect when node is dropped over existing connection 2026-02-03 21:36:32 +01:00
Wojtek Figat
f3111e855d Fix showing C++ structures inlined in collection editor when they have a single property/field 2026-02-03 19:48:57 +01:00
Wojtek Figat
3c6838ee35 Fix error in reparent action when scene is missing (eg. in prefab editor) 2026-02-03 19:13:31 +01:00
Wojtek Figat
36ab08e60d Fix build regression on Clang 2026-02-03 18:28:25 +01:00
Phantom
834c4553b2 Add Missing functions on Vector4
#3715
2026-02-03 17:57:31 +01:00
Wojtek Figat
5a95336601 Merge branch 'Tryibion-ui-raycast-cull' 2026-02-03 17:49:08 +01:00
Wojtek Figat
f26fae2daf Merge branch 'ui-raycast-cull' of https://github.com/Tryibion/FlaxEngine into Tryibion-ui-raycast-cull 2026-02-03 17:49:04 +01:00
Wojtek Figat
20df4289c2 Merge branch 'xxSeys1-UnifyAudioListenerWarnings' 2026-02-03 17:48:37 +01:00
Wojtek Figat
217701ae05 Adjust error in case we support more listeners
#3686
2026-02-03 17:48:30 +01:00
Wojtek Figat
f1509bab28 Merge branch 'UnifyAudioListenerWarnings' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-UnifyAudioListenerWarnings 2026-02-03 17:45:52 +01:00
Wojtek Figat
30fdd7336e Merge branch 'xxSeys1-VisjectMoveNodeSmallerIncrements' 2026-02-03 17:44:51 +01:00
Wojtek Figat
3b120cc5a4 Merge branch 'VisjectMoveNodeSmallerIncrements' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-VisjectMoveNodeSmallerIncrements 2026-02-03 17:44:41 +01:00
Wojtek Figat
4cf0c38940 Merge branch 'xxSeys1-PressGToGameModeAndPToNavigate' 2026-02-03 16:46:49 +01:00
Wojtek Figat
0f383d2fc6 Move transform gizmo visibility to the base class
#3692
2026-02-03 16:46:46 +01:00
483df22929 Fix building SDL dependencies 2026-02-03 17:46:41 +02:00
Wojtek Figat
07f21a1520 Merge branch 'PressGToGameModeAndPToNavigate' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-PressGToGameModeAndPToNavigate
# Conflicts:
#	Source/Engine/Graphics/Enums.h
2026-02-03 16:39:57 +01:00
f870fc3ae2 Merge remote-tracking branch 'origin/master' into sdl_platform
# Conflicts:
#	Source/Editor/Viewport/MainEditorGizmoViewport.cs
2026-02-03 17:39:43 +02:00
Wojtek Figat
bbb5354e9c Fix potential crash on out of bounds access 2026-02-03 16:32:34 +01:00
Wojtek Figat
21e2c830e5 Refactor Animation editor to use cloned asset for live preview of nested animations editing
#3773
2026-02-03 16:32:22 +01:00
Wojtek Figat
c828c90161 Add Set Parameter node to Anim Graph
#2162
2026-02-03 15:42:26 +01:00
Wojtek Figat
f725f4c0b9 Add saving viewport icons scale (global) within Editor window layout
#3820
2026-02-03 13:24:13 +01:00
Wojtek Figat
1535f95cf1 Fix mesh collision proxy setup for meshes using packed positions format
#3791
2026-02-03 13:18:02 +01:00
Wojtek Figat
b1f85b7462 Add Auto collision option to handle imported or created model collider asset
#3792
2026-02-03 09:23:50 +01:00
Wojtek Figat
3a0af54f48 Add Collision Meshes Postfix to filter collision meshes inside imported model via ending
#3792
2026-02-03 09:23:19 +01:00
Wojtek Figat
4e3e9386cc Fix restoring Min Screen Size of the model on reimport
#3807
2026-02-02 22:25:08 +01:00
Saas
b27e556363 expose material instance 2026-02-02 21:35:40 +01:00
Wojtek Figat
449fc597b5 Fix crash when using overlapping instances
#3899
2026-02-02 19:21:45 +01:00
Saas
b0a0c5b66c change selectedSegment to int 2026-02-02 12:52:54 +01:00
Saas
f1d5c0257f improve radial menu control
- Add AllowChangeSelectionWhenOutside to allow changing the selection from the outside the menu
- Expose UpdateAngle() to get *some* kind of controller support
- Expose `SelectedSegment`
- Improve various doc comments
2026-02-02 12:50:24 +01:00
Phantom
ae46520edf Merge branch 'master' into Improve-HighlightedPopUpColor 2026-02-02 10:31:24 +01:00
Wojtek Figat
0e91a2d25b Merge branch 'Tryibion-fix-view-band-sel' 2026-02-01 23:33:09 +01:00
Wojtek Figat
aba995a42f Merge branch 'fix-view-band-sel' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-view-band-sel 2026-02-01 23:33:04 +01:00
Wojtek Figat
bf0c7fe0dc Fix timescale in FixedTimestep particles update and when using Editor preview
#3811
2026-02-01 23:32:00 +01:00
Wojtek Figat
2ab8b9dd55 Add Texture Group option for triplanar and procedural samplers
#3904
2026-02-01 23:11:44 +01:00
Chandler Cox
e1ffdee57a If UI is culling children, dont return children outside of client area for raycast. 2026-01-30 15:51:53 -06:00
Chandler Cox
7c44767d4d Fix viewport rubberban selector. 2026-01-30 12:07:36 -06:00
Wojtek Figat
87ccaa9dd8 Add keyboard navgation to context menu child menus
#3676
2026-01-30 18:00:16 +01:00
Wojtek Figat
e8c2f18a4d Add tab navigation to Editor context menus and popups
#3676
2026-01-30 17:50:24 +01:00
Wojtek Figat
6b36543717 Merge branch 'xxSeys1-CurvePresets' 2026-01-30 17:41:13 +01:00
Wojtek Figat
bb2a883dc7 Merge branch 'CurvePresets' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-CurvePresets 2026-01-30 17:39:09 +01:00
Wojtek Figat
be7e88de36 Merge branch 'xxSeys1-VisjectResizeCurveNodes' 2026-01-30 17:32:03 +01:00
Wojtek Figat
4a1490f0b1 Follow up on #3642 and move node resizing code to shared code 2026-01-30 17:31:59 +01:00
Wojtek Figat
e0d0acc33c Merge branch 'VisjectResizeCurveNodes' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-VisjectResizeCurveNodes 2026-01-30 16:58:01 +01:00
Wojtek Figat
e2f2d3e6f6 Merge branch 'Tryibion-fix-terrain-closest-point' 2026-01-30 16:43:52 +01:00
Wojtek Figat
afc04dc41c Minor cleanup and fix
#3733
2026-01-30 16:43:48 +01:00
Wojtek Figat
bdfa503c05 Merge branch 'fix-terrain-closest-point' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-terrain-closest-point 2026-01-30 16:38:50 +01:00
Wojtek Figat
205a8b2ebe Fix GPU Vertex Layout usage with explicit offsets to properly hash and calculates stride
#3625
2026-01-30 15:10:31 +01:00
Wojtek Figat
d18c245730 Fix rare async task crash when it's canceled while dequeuing 2026-01-30 13:14:36 +01:00
Wojtek Figat
e4eb064562 Add bake button to nav mesh bounds and minor improvements 2026-01-30 13:12:45 +01:00
Wojtek Figat
9fc9382e58 Refactor navmesh building to support updating all scenes automatically without specifying one
#3744
2026-01-30 13:11:56 +01:00
Wojtek Figat
2bf9efaf30 Fix rebuilding navmesh data for multiple scenes at once that share the same navmesh runtime
#3744
2026-01-29 17:28:34 +01:00
Wojtek Figat
528b4c89ce Add memory profiler category for engine debug data 2026-01-29 17:15:04 +01:00
Wojtek Figat
277dabc8b4 Fix documentation typos 2026-01-29 13:07:59 +01:00
Wojtek Figat
9a5bc444ba Fix build issues on MSVC on Windows 2026-01-29 12:38:23 +01:00
Wojtek Figat
e834fc5a42 Add more profiler categories for navigation 2026-01-29 12:35:36 +01:00
Wojtek Figat
6b87985a44 Merge branch 'Tryibion-fix-drag-tree-open' 2026-01-29 11:00:37 +01:00
Wojtek Figat
a65a74b866 Merge branch 'fix-drag-tree-open' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-drag-tree-open 2026-01-29 11:00:34 +01:00
Wojtek Figat
b2124201d5 Merge branch 'Tryibion-fix-tabs-panel2' 2026-01-29 10:58:51 +01:00
Wojtek Figat
29b8326042 Merge branch 'fix-tabs-panel2' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-tabs-panel2 2026-01-29 10:58:48 +01:00
Wojtek Figat
81bfa6edc9 Merge branch 'Tryibion-fix-scaling-issue' 2026-01-29 10:58:06 +01:00
Wojtek Figat
8ed6a92022 Merge branch 'fix-scaling-issue' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-scaling-issue 2026-01-29 10:58:03 +01:00
Wojtek Figat
c9d16e16cc Fix Rich Text Box vertical alignment of the inlined images and whole contents
#3502 ae4ae7a638 7ee2e66881
2026-01-29 10:55:10 +01:00
Chandler Cox
d9f9401c5a Fix tree node not expanding on drag over arrow. 2026-01-28 20:04:39 -06:00
Wojtek Figat
1e9918b9cc Add CPU profiler events to texture and buffer creation 2026-01-28 21:46:42 +01:00
Wojtek Figat
6c84b7a259 Update engine assets 2026-01-28 21:38:55 +01:00
Wojtek Figat
43b337e163 Fix Vulkan synchronization between CPU and GPU to prevent running over frames in flight 2026-01-28 20:43:01 +01:00
Wojtek Figat
45306ca20e Minor Vulkan fixes 2026-01-28 20:35:42 +01:00
Wojtek Figat
259d93f95c Fix RenderDoc detection on Vulkan 2026-01-28 17:08:00 +01:00
Wojtek Figat
61b6aeb252 Fix missing DDGI on D3D11 when object counter readback buffer doesn't have data on time
(eg. during very fast rendering)
2026-01-28 14:04:43 +01:00
Wojtek Figat
d694c35db4 Bump up version 2026-01-28 13:20:09 +01:00
Wojtek Figat
f105d6f84f Fix SSR artifacts when ray goes towards the screen 2026-01-28 09:22:48 +01:00
Wojtek Figat
b1b6953200 Optimize Volumetric Fog on 2k/4k displays by limiting res to 1080p 2026-01-28 08:53:15 +01:00
Wojtek Figat
fa428e343b Add dithering to Volumetric Fog to reduce aliasing 2026-01-28 08:39:56 +01:00
Chandler Cox
5d9d64e6e7 Fix missing scale for inverse squared setting for lights. 2026-01-27 22:10:22 -06:00
Wojtek Figat
dbbb67f398 Cleanup old Volumetric Fog pass code 2026-01-27 23:32:13 +01:00
Wojtek Figat
a9bddfa784 Fix Volumetric Fog sampling to use the same code path for depth slices conversion 2026-01-27 23:24:47 +01:00
Wojtek Figat
f9b784a42a Add improvements to Volumetric Fog quality and performance 2026-01-27 22:20:48 +01:00
Wojtek Figat
d47bd5d6e7 Fix small lights and small particles rasterization into Volumetric Fog 2026-01-27 21:00:20 +01:00
Wojtek Figat
e1013aec94 Add using medium shadow quality in Volumetric Fog for smoother shadowed lights scattering 2026-01-27 20:52:41 +01:00
Wojtek Figat
1c294059df Fix volume particles to apply opacity/mask into emission for proper shape 2026-01-27 14:12:48 +01:00
Wojtek Figat
305296883d Fix Volumetric Fog to not flicker on temporal blend when resizing the screen or changing quality 2026-01-27 13:56:26 +01:00
Chandler Cox
a7016d1186 Fix issue with tabs not collapsing panel 1 if no tabs on panel 1 2026-01-26 21:56:30 -06:00
Chandler Cox
004e02af73 Fix double scaling in canvas scalar. 2026-01-26 20:46:49 -06:00
Wojtek Figat
143d714037 Optimize Screen Space Reflections tracing with Hierarchical Z-Buffer
Improve SSR resolve filter quality and adjust scalability.
2026-01-26 15:22:39 +01:00
Wojtek Figat
da8376bba1 Fix NaN artifacts after TAA 2026-01-26 13:51:50 +01:00
Phantom
4e8f54bb61 Merge branch 'master' into Improve-HighlightedPopUpColor 2026-01-24 15:29:34 +01:00
fibref
0eac545271 Merge branch 'FlaxEngine:master' into flax-msdf-font 2026-01-24 20:14:30 +08:00
Wojtek Figat
f773a0755d Merge branch 'Tryibion-fix-missing-light-serialize' 2026-01-22 23:40:22 +01:00
Wojtek Figat
d8343dae8e Merge branch 'fix-missing-light-serialize' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-missing-light-serialize 2026-01-22 23:40:16 +01:00
Wojtek Figat
b09fbe2d9b Fix deploying NuGet packages to include dependencies (recursive)
#3900
2026-01-22 23:39:38 +01:00
Wojtek Figat
6dbfd25bdb Fix deploying NuGet packages to include correct library file name
#3900
2026-01-22 19:57:16 +01:00
Wojtek Figat
ecfd03f79c Fix restoring NuGet packages for target with multiple projects
Fix restoring `NuGet` packages to run before project build to ensure files are downloaded

#3900
2026-01-22 18:49:47 +01:00
Wojtek Figat
66a295d5af Optimize reflections combine with depth bounds test 2026-01-20 22:41:59 +01:00
Wojtek Figat
d7458d81a5 Optimize SSR a bit more 2026-01-20 22:05:52 +01:00
Wojtek Figat
cc5e4c19e1 Fixes for SSAO and SSR 2026-01-20 18:19:34 +01:00
Wojtek Figat
0c5cb59875 Fix precision print in profile gpu dump command 2026-01-20 13:23:11 +01:00
Wojtek Figat
85ed0ecb06 Optimize ASSAO perf by using half pixels and less processing for similar visuals 2026-01-20 13:22:01 +01:00
Wojtek Figat
95b9392f51 Fix render target pool pink clear on consoles and mobile 2026-01-20 12:07:20 +01:00
Wojtek Figat
c7c1bbe35f Fix half res depth buffer regression from 192d3d1a8e 2026-01-20 12:01:03 +01:00
Wojtek Figat
192d3d1a8e Optimize SSAO rendering with depth bounds and half-res depth buffer 2026-01-20 00:22:27 +01:00
Wojtek Figat
877d57681d Optimize reflection probes, lights and shadow projections rendering with depth bounds test 2026-01-19 22:14:59 +01:00
Wojtek Figat
0a9bc084f4 Fix deprecated macro usage 2026-01-19 17:45:30 +01:00
Wojtek Figat
ec4f8ce239 Optimize RenderTargetWriteMask on depth pass for transparency and terrain materials 2026-01-19 17:45:18 +01:00
Wojtek Figat
d049a16882 Add support for Depth Bounds test in all graphics APIs 2026-01-19 17:44:45 +01:00
Wojtek Figat
ee75cab73e Add DirectX12 Agility SDK to third-party includes 2026-01-19 17:41:47 +01:00
Wojtek Figat
0072e21ffa Add ProfilerGPU.Dump command for GPU frame profiling log 2026-01-18 16:38:15 +01:00
Wojtek Figat
f44dde89db Fix missing vertex counting in draws (use index count to approx) 2026-01-18 16:24:15 +01:00
Chandler Cox
e6fd761b80 Fix missing light shadow resolution serialization. 2026-01-17 14:09:13 -06:00
Wojtek Figat
62a378e01a Update engine assets 2026-01-16 13:47:44 +01:00
Wojtek Figat
e67b705397 Deprecate GPUTimerQuery in favor of new queries API 2026-01-16 13:39:28 +01:00
Wojtek Figat
847f6411e7 Migrate ProfilerGPU to new lightweight queries API 2026-01-16 13:24:56 +01:00
Wojtek Figat
0d7c04682d Fix parsing else preprocessor and && conditions in bindings generator 2026-01-16 12:48:58 +01:00
Wojtek Figat
baf068330c Add Graphics.TestValue general purpose utility for A/B testing features and perf in shaders during development 2026-01-16 12:48:05 +01:00
Wojtek Figat
593646061e Mark TemporalScale in SSR settings as deprecated and add a minor sharpening to SSR temporal filter 2026-01-16 11:20:06 +01:00
Wojtek Figat
9ac231c403 Add new GPU Query API that is lightweight and supports occlusion queries 2026-01-16 10:40:30 +01:00
Wojtek Figat
d2d7a871ce Add sharpening and better AABB history clamp to Screen Space Reflections temporal filter 2026-01-14 14:00:54 +01:00
Wojtek Figat
b172b08782 Fix dark Screen Space Reflections in some spots when using Software Tracing 2026-01-14 13:26:26 +01:00
Wojtek Figat
18778aa511 **Add Box Projection to Environment Probe** for better indoor areas 2026-01-14 09:49:01 +01:00
Wojtek Figat
b7e32e13ab Add CaptureOffset to Environment Probe 2026-01-13 14:53:48 +01:00
Wojtek Figat
610c76578b Merge remote-tracking branch 'origin/master' into 1.12
# Conflicts:
#	Flax.flaxproj
2026-01-13 14:29:44 +01:00
Wojtek Figat
e721fbd89f Add editor status message about amount of selected actors 2026-01-13 14:21:32 +01:00
Wojtek Figat
ff2c5290b5 Fix Volumetric Fog rasterization on Vulkan 2026-01-13 13:21:32 +01:00
Wojtek Figat
2b4dc97a97 Fix yellowish artifacts due to quantization error in TAA and composite image output
#3318 #3254
2026-01-13 13:12:33 +01:00
Wojtek Figat
14842183f2 Fix sky, skylight and reflections banding artifacts with a random noise
#3254 #3318
2026-01-13 13:12:19 +01:00
Wojtek Figat
b4b13d8dd4 Fix crash when showing cube or volume texture in GPUTextureBrush 2026-01-13 10:36:26 +01:00
Wojtek Figat
e3d1e8a5ea Add View button to edit Environment Probe texture asset 2026-01-13 10:36:07 +01:00
Wojtek Figat
d9f90f726b Optimize reflection probes rendering by using depth test to reject occluded pixels early 2026-01-13 10:35:29 +01:00
Wojtek Figat
e0062a6ff1 Add RenderColorFormat option to graphics settings for rendering pipeline buffer format
#3618
2026-01-13 09:07:22 +01:00
Wojtek Figat
e494c9ec76 Add small scale for color grading LUT 2026-01-12 23:56:31 +01:00
Wojtek Figat
2501095500 Add screen vignette to Eye Adaptation histogram for more accurate exposure 2026-01-12 23:47:15 +01:00
Phantom
ec0877004c Merge branch 'master' into Improve-HighlightedPopUpColor 2026-01-12 22:56:49 +01:00
Wojtek Figat
3cfc5db54a Merge branch 'xxSeys1-ArrayEditorHideSize' 2026-01-12 21:34:57 +01:00
Wojtek Figat
840835fad2 Merge branch 'ArrayEditorHideSize' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-ArrayEditorHideSize 2026-01-12 21:34:52 +01:00
Wojtek Figat
41f136ce0f Merge branch 'xxSeys1-UiClippingFixes' 2026-01-12 21:33:43 +01:00
Wojtek Figat
32cae3aacd Merge branch 'UiClippingFixes' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-UiClippingFixes 2026-01-12 21:33:03 +01:00
Wojtek Figat
832c524c3c Merge branch 'xxSeys1-DirtyEditorSettingsStar' 2026-01-12 21:30:07 +01:00
Wojtek Figat
a18ca9a4ad Merge branch 'DirtyEditorSettingsStar' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-DirtyEditorSettingsStar 2026-01-12 21:30:00 +01:00
Wojtek Figat
05e7e6630c Fix missing material graph references
#3839
2026-01-12 21:28:45 +01:00
Wojtek Figat
788d8660b8 Fix transparent materials flickering without DDGI 2026-01-12 20:47:03 +01:00
Wojtek Figat
ab806b2a9b Add checkerboard pattern to part of the alpha slider background in color picker 2026-01-12 18:53:56 +01:00
Wojtek Figat
610ba00915 Add support for picking colors in linear color space (with toggle for special cases like UI) 2026-01-12 18:50:44 +01:00
Wojtek Figat
e60bd165f4 Disable Linear color space until it's ready for production 2026-01-12 18:50:19 +01:00
Wojtek Figat
223d4f64eb Add GammaColorSpace to Graphics for simplicity 2026-01-12 18:49:10 +01:00
Wojtek Figat
827ad85651 Fix sRGB between Linear conversion to remain Alpha unchanged 2026-01-12 16:08:50 +01:00
Wojtek Figat
69c5d65318 Add Linear to sRGB and sRGB to Linear nodes to materials 2026-01-12 15:54:52 +01:00
Wojtek Figat
b834dddb11 **Refactor sRGB import option on textures** to actually handle image contents with gamma 2026-01-12 15:50:24 +01:00
Wojtek Figat
baddfec6d1 Merge branch 'GoaLitiuM-build_deps_fixes' 2026-01-12 00:32:07 +01:00
Wojtek Figat
fc2f56aca6 Fix missing console platforms
#3746
2026-01-12 00:31:59 +01:00
Wojtek Figat
0364fd629b Merge branch 'build_deps_fixes' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-build_deps_fixes 2026-01-11 23:31:09 +01:00
Wojtek Figat
5dbaf3f94e Fix to not crash after unhandled exception
#3570
2026-01-11 23:23:04 +01:00
Wojtek Figat
c5b7ea9c44 Merge branch 'xxSeys1-ArrowKeyValueBoxIncrement' 2026-01-11 22:37:19 +01:00
Wojtek Figat
7b856fdc95 Merge branch 'ArrowKeyValueBoxIncrement' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-ArrowKeyValueBoxIncrement 2026-01-11 22:36:09 +01:00
Wojtek Figat
890df65970 Add input GamepadButtonDown and GamepadButtonUp events
#3626
2026-01-11 22:34:57 +01:00
Wojtek Figat
ab6dfca36e Fix broken DrawWireTriangles
#3650
2026-01-11 22:23:49 +01:00
Wojtek Figat
72bb2dd932 Fix Resize to Fit to properly dirty state of level editor
#3670 #3735
2026-01-11 22:17:50 +01:00
Wojtek Figat
ca09852898 Merge branch 'xxSeys1-QuickOpenProductLocalFolder' 2026-01-11 22:11:24 +01:00
Wojtek Figat
e21cb9154a Adjust #3677 to evaluate product local path in lazy 2026-01-11 22:11:16 +01:00
Wojtek Figat
af124ce163 Merge branch 'QuickOpenProductLocalFolder' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-QuickOpenProductLocalFolder 2026-01-11 22:09:43 +01:00
Wojtek Figat
c28381fb09 Merge branch 'xxSeys1-UnderscoreNumberSeparator' 2026-01-11 22:07:57 +01:00
Wojtek Figat
973ff0efa0 Merge branch 'UnderscoreNumberSeparator' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-UnderscoreNumberSeparator 2026-01-11 22:07:51 +01:00
Wojtek Figat
27896b6410 Add view flag to hide particles drawing
#3840
2026-01-11 22:06:30 +01:00
Wojtek Figat
4bb9de21b4 Merge branch 'Tryibion-update-mesh-optimizer' 2026-01-11 21:55:08 +01:00
Wojtek Figat
890538c667 Merge branch 'update-mesh-optimizer' of https://github.com/Tryibion/FlaxEngine into Tryibion-update-mesh-optimizer 2026-01-11 21:54:43 +01:00
Wojtek Figat
4b9fa0dcf5 Add OnSerializing/OnSerialized/OnDeserializing/OnDeserialized callbacks to auto serialization code-gen 2026-01-09 10:24:38 +01:00
Wojtek Figat
14d1b7dd24 Fix name collision on new Focused event in control 2026-01-07 23:22:45 +01:00
Wojtek Figat
6788844270 Merge remote-tracking branch 'origin/1.12' into 1.12 2026-01-07 23:21:22 +01:00
Wojtek Figat
b2f2537338 Update version and year 2026-01-07 23:17:40 +01:00
Wojtek Figat
450b998a29 Merge branch 'master' into 1.12 2026-01-07 23:15:13 +01:00
Wojtek Figat
688d9c77cb Fix rendering postfx with color grading only in use and optimize color grading LUT to be skipped when unsued 2026-01-07 18:24:48 +01:00
Wojtek Figat
d71ea5a72b DIsable temporal jitter in debug views of Vertex Colors and Quad Overdraw 2026-01-07 17:57:03 +01:00
Wojtek Figat
01e3ece2af Remove leftover debug 2026-01-06 23:31:32 +01:00
Wojtek Figat
afc65f7557 Update engine materials after version change 2026-01-06 23:31:18 +01:00
Wojtek Figat
d60484b917 Merge remote-tracking branch 'origin/master' 2026-01-06 14:35:58 +01:00
feceb4e00f Update SDL to 3.4.0 2026-01-06 03:02:58 +02:00
67b33a575a Merge branch 'master' into sdl_platform
# Conflicts:
#	.github/workflows/build_linux.yml
#	.github/workflows/tests.yml
#	Source/Tools/Flax.Build/Projects/VisualStudio/VCProjectGenerator.cs
2026-01-06 02:57:52 +02:00
Wojtek Figat
76b869146d Fix missing scripting api tag on MeshAccessor::Stream 2026-01-06 00:03:35 +01:00
Wojtek Figat
32e725392b Optimize inactive probes update in DDGI with faster Jump Flood instead of Flood Fill 2026-01-06 00:01:17 +01:00
Wojtek Figat
0975ac2a25 Fix odd typo in DDGI inactive probes flood fill 2026-01-05 18:02:05 +01:00
Wojtek Figat
cf3bcc4549 Fix DDGI flickering on floors aligned to world axes
Apply a small bias to sample location and dither it a bit to smooth out.
2026-01-05 17:19:16 +01:00
Wojtek Figat
11ea889fa9 Refactor DDGI fallback radiance to use alpha for blending between fixed color and color at snapped location of the last cascade
This means artists don't need to adjust the value anymore as it can cover vista geometry with GI at last cascade borders.
2026-01-05 16:22:00 +01:00
Wojtek Figat
c5a28a5734 Refactor DDGI irradiance sampling when nearby probe is missing to use precomputed fallback probes
Also, insert fallback/dummy probes when there is no SDF nearby to have lighting in all cases.
This both improves sampling performance and fixes issues when sampling in areas far away from valid GI.
2026-01-05 12:04:02 +01:00
Phantom
b171071893 Merge branch 'master' into Improve-HighlightedPopUpColor 2026-01-05 06:30:42 +01:00
Wojtek Figat
6c79a17c7a Fix DDGI cascade placement when using large probes spacing
Revert fa38f0ac91 after b24d98df9e fixed the source of the problem
2026-01-03 20:57:17 +01:00
Wojtek Figat
b24d98df9e Fix DDGI cascades blending to be smoother 2026-01-03 00:48:36 +01:00
Wojtek Figat
400e2f1b0e Fix DDGI flickering on floors aligned to axis on value 0 (eg. floor) 2026-01-02 21:30:14 +01:00
Wojtek Figat
22e6139ca3 Merge branch 'fibref-asset-upgrader-fix' 2026-01-02 17:06:37 +01:00
Wojtek Figat
859fa16a74 Merge branch 'asset-upgrader-fix' of https://github.com/fibref/FlaxEngine into fibref-asset-upgrader-fix 2026-01-02 17:06:33 +01:00
Wojtek Figat
8facb46def Fix regression from 6f6dd2f4a3 on script interface vtable setup 2026-01-02 17:06:27 +01:00
fibref
b87f8b96e1 fix crash on asset auto-upgrade 2026-01-01 17:49:33 +08:00
Wojtek Figat
37df16a3e4 Refactor DDGI irradiance filtering for smoother and more accurate lighting 2025-12-31 00:19:51 +01:00
Wojtek Figat
ce45fa3d54 Fix crash on Global Surface Atlas objects buffer building 2025-12-30 23:41:49 +01:00
Wojtek Figat
7f56d9456b Fix bindings warning when using curve property/field 2025-12-30 22:51:37 +01:00
Phantom
91fd32b708 Merge branch 'master' into Improve-HighlightedPopUpColor 2025-12-29 22:54:40 +01:00
Wojtek Figat
1cad2489a3 Merge branch 'ThePhantomMask-fix-linuxCICD' 2025-12-29 22:53:44 +01:00
Wojtek Figat
7cdc2456cd Clone #3878 into more usages 2025-12-29 22:53:37 +01:00
Wojtek Figat
6b0ee3eeed Merge branch 'fix-linuxCICD' of https://github.com/ThePhantomMask/FlaxEngine into ThePhantomMask-fix-linuxCICD 2025-12-29 22:51:57 +01:00
Wojtek Figat
57330e39ca Merge branch 'GoaLitiuM-bindings_namespace_fix' 2025-12-29 22:29:34 +01:00
Wojtek Figat
af29f2f3dc Merge branch 'bindings_namespace_fix' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-bindings_namespace_fix 2025-12-29 22:29:29 +01:00
Wojtek Figat
1bdb577b60 Fix engine services before exit event order 2025-12-29 22:24:55 +01:00
Wojtek Figat
329ea1c9b4 Merge branch 'GoaLitiuM-rider_cpp_project_launch' 2025-12-29 22:21:16 +01:00
Wojtek Figat
728da6354f Merge branch 'rider_cpp_project_launch' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-rider_cpp_project_launch 2025-12-29 22:21:13 +01:00
Wojtek Figat
d5456d6eb3 Merge branch 'GoaLitiuM-launchsettings_configuration' 2025-12-29 22:18:40 +01:00
Wojtek Figat
e65714988f Merge branch 'launchsettings_configuration' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-launchsettings_configuration 2025-12-29 22:14:00 +01:00
Wojtek Figat
4e4df736f9 Merge branch 'Tryibion-fix-unused-include' 2025-12-29 22:09:43 +01:00
Wojtek Figat
5bfe5b0035 Merge branch 'fix-unused-include' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-unused-include 2025-12-29 22:09:38 +01:00
Wojtek Figat
b30553ea65 Merge branch 'GoaLitiuM-vs_conformance' 2025-12-29 22:08:59 +01:00
Wojtek Figat
2550763808 Merge branch 'vs_conformance' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-vs_conformance 2025-12-29 22:08:54 +01:00
Wojtek Figat
6f6dd2f4a3 Fix crash on script VTable setup due to async
#3580
2025-12-29 22:06:55 +01:00
Wojtek Figat
c30d457b1c Add unit test of code from #3858 to ensure stability 2025-12-29 22:05:01 +01:00
Wojtek Figat
b786fa1c22 Merge branch 'GoaLitiuM-bindings_gen_fixes' 2025-12-29 22:03:46 +01:00
Wojtek Figat
bbcbe305a8 Merge branch 'bindings_gen_fixes' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-bindings_gen_fixes 2025-12-29 22:02:47 +01:00
Wojtek Figat
222df16f11 Merge branch 'Tryibion-fix-blend-shape-weight' 2025-12-28 00:32:38 +01:00
Wojtek Figat
8b924d13c1 Merge branch 'fix-blend-shape-weight' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-blend-shape-weight 2025-12-28 00:32:21 +01:00
Wojtek Figat
66e25c81b0 Merge branch 'GoaLitiuM-cmake_vs2026' 2025-12-27 22:07:23 +01:00
Wojtek Figat
e12f99ee53 Merge branch 'cmake_vs2026' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-cmake_vs2026 2025-12-27 22:07:17 +01:00
Wojtek Figat
387f0cf457 Merge branch 'GoaLitiuM-bytescontainer_codegen_fix' 2025-12-27 21:26:56 +01:00
Wojtek Figat
f11acdf5db Merge branch 'bytescontainer_codegen_fix' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-bytescontainer_codegen_fix 2025-12-27 21:26:52 +01:00
Wojtek Figat
3af7dddcc2 Merge branch 'Tryibion-fix-compute-dist' 2025-12-27 21:22:32 +01:00
Wojtek Figat
543e2ecd13 Merge branch 'fix-compute-dist' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-compute-dist 2025-12-27 21:22:27 +01:00
35f8051a62 Fix managed boolean array conversion to native array 2025-12-23 01:37:53 +02:00
4453453d46 Fix managed wrapper function parameter handling for BytesContainer 2025-12-23 00:37:25 +02:00
Phantom
23f5f4d85f Add fix-missing 2025-12-21 16:41:51 +01:00
Phantom
90a21696f6 Fix Linux Dependencies error 2025-12-21 15:47:52 +01:00
Wojtek Figat
fa38f0ac91 Fix DDGI cascade offset towards bottom that was too intense making probes flicker 2025-12-20 23:44:56 +01:00
Saas
3279016067 tweak some node spacing 2025-12-20 20:39:54 +01:00
Saas
a92d2b6ca2 add slight background grid 2025-12-20 16:58:35 +01:00
Saas
a98a76f6e5 fix box spacing and (auto calculate) node height
- Work in progress but enough progress to commit because it basically works, it's just a bit ugly
- Node height is now recalculated every time a new element is added to the node
- Introduced `Archetype.UseFixedSize` for special nodes like *Color Gradient* or *Curve* that must rely on hardcoded size for now because the auto sizing does not take elements like the gradient editor or curve editor into account (ideally in the future it will)
- Fixed input and output box spacing (still some 1px offsets that I'm unsure where they are from, could be placebo though)
2025-12-20 00:02:11 +01:00
e3f5af530b Fix incorrect class namespace in bindings class name lookups 2025-12-19 23:57:41 +02:00
Saas
564c9ff0ca improve orthographic/ perspective viewport cam toggle 2025-12-19 19:00:55 +01:00
Chandler Cox
38d8832468 Update meshoptimizer library to 1.0 2025-12-19 11:46:47 -06:00
Chandler Cox
c68aa3b371 Remove not needed include that produces ambiguity for the Label class. 2025-12-19 08:13:24 -06:00
d031649bbd Fix warnings 2025-12-19 13:17:15 +02:00
21b8d1838d Fix command-line parsing for SDL CreateProcess arguments 2025-12-19 13:17:15 +02:00
c8ee2fc155 Add function for parsing command-line arguments into argument list 2025-12-19 13:17:15 +02:00
Chandler Cox
dc22fa4061 Fix blend shape always applying zero weight if default weight is zero. 2025-12-18 21:49:03 -06:00
3eb690fe58 Ensure managed converter functions are exported with optimizations 2025-12-19 01:08:45 +02:00
52e2327527 Add USED attribute for forcing compiler to emit the symbol 2025-12-19 01:08:45 +02:00
f95cbb0e52 Fix missing exports for managed converter structures 2025-12-19 01:08:44 +02:00
518a19c857 Expose RenderContext to scripting API 2025-12-19 01:08:44 +02:00
c0b54be692 Fix clang bindings code generation for non-const ref parameters 2025-12-19 01:08:44 +02:00
Wojtek Figat
c2c92eba82 Adjust 0e76585709 to not affect depth 2025-12-19 00:08:24 +01:00
d64c28f672 Fix compilation errors with /permissive- standard conformance mode 2025-12-19 00:03:48 +02:00
Saas
21d46dad07 change how connected boxes are drawn 2025-12-18 22:55:56 +01:00
71b222e0b0 Fix Editor project file generation to use custom code editor arguments 2025-12-18 23:52:21 +02:00
5921f60af2 Get code editor name through CodeEditingManager 2025-12-18 23:52:21 +02:00
39269583c3 Fix default code editor not using Visual Studio as fallback editor 2025-12-18 23:52:21 +02:00
cba3899c62 Fix invalid code editor when selected editor is not detected 2025-12-18 23:52:21 +02:00
Saas
cfda18ea9d propagate disabled node boxes across reroute nodes 2025-12-18 22:41:55 +01:00
Saas
31b1ceb9f0 increase selection outline width 2025-12-18 19:57:58 +01:00
Saas
d3d67fddcc add node shadow
- rectangular shadow (can be disabled...)
- ... for example for nodes with more complex shapes like reroute
2025-12-18 19:54:31 +01:00
Saas
e272870803 increase max zoom 2025-12-18 19:51:17 +01:00
Saas
d8c90184b9 add script only on prefab instance header button
- add some padding to `AddHeaderButton()`
- Add visual indicator (Header button) if script is only in prefab instance and not part of the prefab
2025-12-18 17:19:41 +01:00
2a959d0531 Support Visual Studio 2026 as a generator for CMake dependencies 2025-12-18 18:05:45 +02:00
Saas
5b1ca13225 choose darker mouse over color 2025-12-18 12:22:24 +01:00
Saas
0d8ac5b7ac implement review
- Remove trailing tooltip "."
- Add `AddSettingsButton` method
- Simplify loop into LINQ expression
2025-12-18 12:17:22 +01:00
Saas
b714668f4c improve visject graph readability
- Separate size for boxes (the circle thingie to connect to) and box rows
- Smaller boxes (circle thingie)
- Smaller footer
- Smaller and color header
- Left align header text
- Replace background with solid color
- Adjust node `ArchetypeColor`s (former `FooterColor`) to keep header title readable over colored header
2025-12-17 18:54:37 +01:00
f6e9cf644a Verify the last project path before using it 2025-12-17 03:45:15 +02:00
604bfb5fe6 Add -lastproject editor command-line option to open the last project 2025-12-17 03:30:19 +02:00
b3ea47b989 Use last opened project as initial directory in project file dialog 2025-12-17 03:30:19 +02:00
5d368e59a0 Fix SpecialFolder::AppData on Apple systems 2025-12-17 03:30:19 +02:00
3afd3ce2d5 Use XDG user directories on Linux special paths 2025-12-17 03:30:19 +02:00
Chandler Cox
4504d0ae96 Fix compute distance crash if no closest point param is defined. 2025-12-16 18:22:26 -06:00
f14ba6ace6 Fix Flax C#-project launchSettings.json to launch without project 2025-12-17 02:19:38 +02:00
518f9dc9dc Launch editor when debugging VC++ projects in Rider Linux/macOS 2025-12-17 02:19:38 +02:00
8db29a30e0 Fix VC++ project file building on macOS Rider 2025-12-17 02:18:45 +02:00
Chandler Cox
1b9f6ed20f Fix large world build. 2025-12-16 18:16:58 -06:00
Chandler Cox
2c5cc7fcc0 Fix double drawing. 2025-12-16 17:32:35 -06:00
Chandler Cox
b9f177d1ab Add ensure capacity to lists. 2025-12-16 17:12:54 -06:00
Wojtek Figat
0e76585709 Fix DDGI iradiance to use debanding by applying quantization error to reduce yellowish artifacts due to R11G11B10 format 2025-12-16 23:56:45 +01:00
Wojtek Figat
8bf51512ac Fix Global SDF trace loop limit down to prevent too long shader execution in extreme scenarios 2025-12-16 16:08:20 +01:00
Wojtek Figat
779e8e7169 Optimize Global SDF tracing to not scale steps nearby geometry and properly trace mip cascade 2025-12-16 16:07:46 +01:00
Wojtek Figat
3c8b80152b Fix sampling Global SDF gradient at lower border 2025-12-16 16:05:49 +01:00
Wojtek Figat
f280412ef4 Remove NeedsHitNormal/HitNormal feature from GlobalSDFTrace to simplify code 2025-12-16 16:04:56 +01:00
Chandler Cox
9708601d3b Small cleanup. 2025-12-15 21:46:03 -06:00
Chandler Cox
d671f57952 Change to container control for anchoring. 2025-12-15 21:41:45 -06:00
Chandler Cox
56e6df261d Add hovering and selecting. 2025-12-15 21:22:11 -06:00
Chandler Cox
88b02105b3 Add direction gizmo. 2025-12-15 20:36:35 -06:00
1327fa40cb Run editor with selected project configuration in launchSettings.json 2025-12-16 01:37:51 +02:00
b70ab01308 Fix duplicate properties for default configuration in C# projects 2025-12-16 01:37:51 +02:00
46fd5a5855 Ensure Flax.Build tasks and utilities output error messages as errors 2025-12-16 00:11:06 +02:00
74c1e200ce Implement Platform::CreateProcess with SDL backend
Supports handling process standard output and standard error
streams separately in realtime.
2025-12-16 00:10:01 +02:00
31945a53a2 Update SDL to 3.3.4 2025-12-15 19:32:47 +02:00
3e91ba3fb2 Merge remote-tracking branch 'origin/master' into sdl_platform 2025-12-15 19:03:05 +02:00
Phantom
0094216ff8 Renaming Luminance name to Brightness 2025-12-15 14:29:57 +01:00
Phantom
298ee284e1 Merge branch 'master' into Improve-HighlightedPopUpColor 2025-12-15 00:49:49 +01:00
Phantom
7f2f73afd8 Added Luminance property and updated authors
-Added public Luminance property in Color.cs to calculate colour brightness.
-Refactored Dropdown.cs to use Luminance instead of manual calculation.
-Updated author list in AboutDialog.cs by adding ‘Michael Salvini’.
2025-12-15 00:48:42 +01:00
Wojtek Figat
e257f9e4a0 Merge branch 'Tryibion-fix-anim-slot-replay' 2025-12-14 23:03:45 +01:00
Wojtek Figat
056de752ed Add docs 2025-12-14 23:03:34 +01:00
Wojtek Figat
76700c0b24 Merge branch 'fix-anim-slot-replay' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-anim-slot-replay 2025-12-14 23:01:21 +01:00
Wojtek Figat
9fdcff657d Merge branch 'VitaminCpp-late_join_fix' 2025-12-14 22:58:55 +01:00
Wojtek Figat
2b6339c05c Minor code cleanup 2025-12-14 22:58:53 +01:00
Wojtek Figat
bb91202439 Merge branch 'late_join_fix' of https://github.com/VitaminCpp/FlaxEngine into VitaminCpp-late_join_fix 2025-12-14 22:49:49 +01:00
Wojtek Figat
f25e9f262a Merge branch 'VitaminCpp-replication_hashing_fix' 2025-12-14 22:48:09 +01:00
Wojtek Figat
ee51077f49 Merge branch 'replication_hashing_fix' of https://github.com/VitaminCpp/FlaxEngine into VitaminCpp-replication_hashing_fix 2025-12-14 22:43:58 +01:00
Wojtek Figat
950e958a58 Merge branch 'VitaminCpp-hash_set_crash_fix' 2025-12-14 22:41:11 +01:00
Wojtek Figat
5fdbed2b56 Minor codestyle adjustments 2025-12-14 22:41:00 +01:00
Chandler Cox
0e627577fc Simplify code. 2025-12-14 15:00:44 -06:00
Wojtek Figat
4846d4b024 Merge branch 'hash_set_crash_fix' of https://github.com/VitaminCpp/FlaxEngine into VitaminCpp-hash_set_crash_fix 2025-12-14 21:52:40 +01:00
Wojtek Figat
5e5293bf7b Merge branch 'GoaLitiuM-oob_write_fix' 2025-12-14 21:31:42 +01:00
Wojtek Figat
d88477dcae Merge branch 'oob_write_fix' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-oob_write_fix 2025-12-14 21:31:37 +01:00
ae03bc2dd2 Improve Linux .NET runtime identifier detection
Use the runtime identifier detected during runtime instead of
calling the dotnet tool in order to query it.
2025-12-14 20:25:33 +02:00
5cd27032b4 Set C# language version to 14 with .NET 10 2025-12-14 20:25:33 +02:00
7445064d97 Improve installed .NET runtime version detection 2025-12-14 20:25:33 +02:00
9f8b15f0d5 Fix Editor state after loading a scene without compiled game modules 2025-12-14 19:33:50 +02:00
Phantom
bb2e22ecf2 Improved readability of highlighted text in drop-down menus
TextColorHighlighted is now automatically lightened if too dark, by calculating brightness and interpolating towards white. This ensures better readability of selected items in drop-down menus.
2025-12-14 13:14:45 +01:00
Wojtek Figat
bd58bd91b4 Merge branch 'ThePhantomMask-AddDropdownHighlightedColor' 2025-12-13 23:14:47 +01:00
Wojtek Figat
7ce0d88bdc Merge branch 'AddDropdownHighlightedColor' of https://github.com/ThePhantomMask/FlaxEngine into ThePhantomMask-AddDropdownHighlightedColor 2025-12-13 23:14:09 +01:00
Wojtek Figat
98bb2d40d6 Merge branch 'Inertia-Squared-hyprland-fix' 2025-12-13 23:13:30 +01:00
Wojtek Figat
f4bc620bbd Merge branch 'hyprland-fix' of https://github.com/Inertia-Squared/FlaxEngine into Inertia-Squared-hyprland-fix 2025-12-13 23:13:26 +01:00
Wojtek Figat
0313bf32c9 Merge branch 'AcidicVoid-master' 2025-12-13 23:11:05 +01:00
Wojtek Figat
0c887cd29e Use fix from #3830 in particle and anim graphs too 2025-12-13 23:11:01 +01:00
Wojtek Figat
5bd9bce634 Merge branch 'master' of https://github.com/AcidicVoid/FlaxEngine into AcidicVoid-master 2025-12-13 23:08:01 +01:00
Wojtek Figat
2a53d0a462 Fix crash on Visual Script missing asset ref after hot-reload in Editor
#3823
2025-12-13 02:10:41 +01:00
Saas
b5b1d84b3f fix silent crash sometimes occurring when dragging and dropping connections 2025-12-12 22:44:13 +01:00
82bd915274 Fix out-of-bounds write while parsing command-line arguments 2025-12-12 14:47:15 +02:00
Saas
e47fc5a54a Merge branch 'master' into PressGToGameModeAndPToNavigate 2025-12-11 21:04:00 +01:00
Saas
26e24769be actually set things to the right thing
How the hell did this happen??
2025-12-11 20:44:40 +01:00
Wojtek Figat
71391cf1cc Fix deprecated tag placement 2025-12-11 16:38:28 +01:00
Wojtek Figat
b5286af526 Attempt to fix regression from 32bd72fecd 2025-12-11 14:48:18 +01:00
Wojtek Figat
9f07a2a54e Attempt to fix regression from 32bd72fecd 2025-12-10 18:58:43 +01:00
Saas
4b62395d69 add script obsolete icon to script editor 2025-12-10 18:41:57 +01:00
Wojtek Figat
c39c642b60 Add safety check for invalid math values in shader graph generation 2025-12-10 17:39:18 +01:00
Wojtek Figat
02cff3973a Bump up engine version 2025-12-10 15:01:53 +01:00
Wojtek Figat
a63b97d31d Add stripping DXIL debug data from the shader cache when not used 2025-12-10 14:58:12 +01:00
Wojtek Figat
ca52122656 Fix validation error on Windows for textures but optimize buffers instead 2025-12-10 14:53:51 +01:00
Wojtek Figat
20a7fcf6a0 Add profiler wait event for GPU wait on D3D12 2025-12-10 13:01:24 +01:00
Wojtek Figat
43665aa7eb Rename GPUContext::ClearState to ResetState for constentency 2025-12-10 13:00:59 +01:00
Wojtek Figat
3b9b49950c Fixes for Xbox One 2025-12-10 09:48:47 +01:00
Wojtek Figat
0a8752ec0a Fix cross-building building engine with separate executable and library for Unix platforms on Windows 2025-12-10 09:48:27 +01:00
Wojtek Figat
47685dc2be Merge branch 'VitaminCpp-missing_move_semantics_fix' 2025-12-09 10:00:55 +01:00
Wojtek Figat
517ee5bb25 Merge branch 'missing_move_semantics_fix' of https://github.com/VitaminCpp/FlaxEngine into VitaminCpp-missing_move_semantics_fix 2025-12-09 10:00:51 +01:00
Wojtek Figat
3ab01d3576 Merge branch 'VitaminCpp-minor_mem_layout_opt' 2025-12-09 10:00:20 +01:00
Wojtek Figat
31b6d4d658 Merge branch 'minor_mem_layout_opt' of https://github.com/VitaminCpp/FlaxEngine into VitaminCpp-minor_mem_layout_opt 2025-12-09 10:00:16 +01:00
Wojtek Figat
08f840d642 Merge branch 'Tryibion-fix-exception-reload' 2025-12-09 09:59:56 +01:00
Wojtek Figat
776b6259cd Merge branch 'fix-exception-reload' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-exception-reload 2025-12-09 09:59:34 +01:00
Wojtek Figat
5c81c71116 Move constant buffer init for instanced draws only, others do it in all paths 2025-12-09 09:51:53 +01:00
Wojtek Figat
188b635ea0 Merge remote-tracking branch 'origin/master' 2025-12-09 09:48:05 +01:00
Wojtek Figat
56066a3212 Porting to a famous blue platform 2025-12-08 14:41:55 -08:00
Phantom
ed50ce9c90 Change Dropdown's EditorOrder from 2023 to 2024 2025-12-07 18:48:16 +01:00
Phantom
a7e77f6e21 Update CreatePopupItem method
-Modify the `TextColour` property to use a dynamic value based on `TextColour` multiplied by `0.9f` instead of a fixed value (`Colour.White * 0.9f`).
-Modify the `TextColourHighlighted` property to use the dynamic value of `TextColourHighlighted` instead of a fixed value (`Colour.White`).
2025-12-07 18:23:38 +01:00
Phantom
56278b17ee Add Text Color Highlighted on Dropdown 2025-12-07 16:53:43 +01:00
Wojtek Figat
bd78db72b9 Add Mono AOT dynamic module preloading to speed up startup time 2025-12-05 03:46:28 -08:00
Wojtek Figat
32bd72fecd Minor fix to the game cooker assets summary log of a single asset 2025-12-04 23:51:07 +01:00
Wojtek Figat
3a798a70fa Fix collections capacity growing to use the closest power of two
Capacity was incorrectly 2x larger than needed.
Added unit test to ensure it stays correct.
2025-12-04 23:29:15 +01:00
Wojtek Figat
02429266b1 Fix Array::RemoveAtKeepOrder to avoid memory override with large mem copy 2025-12-03 05:03:21 -08:00
Wojtek Figat
77aea0c69c Fix fatal error reporting from multiple therads to sync and properly log (eg. out of memory) 2025-12-01 08:18:54 -08:00
Inertia
6a3ce862cb - Add X11 Class hints for easy hooking by WMs for window-specific rules (required to fix some bugs in WMs like Hyprland) 2025-12-01 11:19:35 +11:00
Wojtek Figat
93217da619 Add option to merge vertex layout with reference order maintained 2025-11-29 15:04:11 -08:00
Chandler Cox
bbaa2dfc73 Fix pibot relative movement. 2025-11-29 16:13:46 -06:00
Chandler Cox
ab22b88a53 Better calculation for moving ui by the widgets. 2025-11-29 15:57:35 -06:00
VitaminCpp
63def54dad Merge branch 'FlaxEngine:master' into hash_set_crash_fix 2025-11-28 15:55:15 +01:00
Michael Herzog
00f9a28729 Fixed HashSet compaction count after mid-compact growth
Ensure HashSetBase::Compact() preserves _elementsCount even when EnsureCapacity() triggers during compaction. The growth path resets the counter; we now cache the original count and restore it after moving all buckets so Count() stays correct in heavy-collision scenarios.
2025-11-28 15:51:57 +01:00
092beb6ae9 Fix compilation error 2025-11-28 11:59:56 +02:00
eb69186271 Merge remote-tracking branch 'origin/master' into sdl_platform 2025-11-28 11:58:44 +02:00
Michael Herzog
56beca0db4 Fixed network replicated-object deduplication by hashing/equality on ObjectId
Aligned NetworkReplicatedObject equality with its hash (compare ObjectId, not pointer).
2025-11-27 23:28:17 +01:00
Alex Ray
64cd898a65 Bypassing Call Logic in Editor Preview 2025-11-27 18:09:11 +01:00
Wojtek Figat
394860656a Add FPS limit and pause option when game is unfocused 2025-11-27 10:55:02 +01:00
VitaminCpp
90472a4b31 Merge branch 'FlaxEngine:master' into late_join_fix 2025-11-27 10:33:53 +01:00
Wojtek Figat
a1999183f2 Fix compilation regression 2025-11-27 09:13:14 +01:00
Wojtek Figat
1e3ce48024 Fix compilation regression 2025-11-26 23:43:20 -08:00
Michael Herzog
0007185b5f Fixed late-join network replication
- Adjusted replication to resend unchanged state only to missing clients.
- Skip server serialization when no recipients, and downgrade unknown-despawn noise.
2025-11-26 17:54:49 +01:00
Wojtek Figat
403d2cedc0 Updates to engine for porting to blue platform 2025-11-26 06:28:54 -08:00
Wojtek Figat
c8839b8587 Add support for Cooperative Suspend when running on Mono
Informs mono runtime that Job System, Thread Pool or Content Load threads can wait when they are going idle between tasks.
2025-11-26 00:22:48 -08:00
Wojtek Figat
cf048c9804 Fix path filter query warning 2025-11-26 00:07:00 -08:00
Wojtek Figat
bea75f51bd Fix AOT libs cooking to avoid file dirtying for more accurate iterative cooking 2025-11-26 00:02:40 -08:00
Chandler Cox
1bf6612002 Fix exception thrown when reloading open windows. 2025-11-25 17:26:57 -06:00
Michael Herzog
d9a18b1d31 Fixed HashSet compact rehash under heavy collisions
- Compact now iterates over the old bucket array using the saved oldSize, and frees with that size, avoiding out-of-bounds when _size changes.
- If reinsertion finds no free slot during compaction (pathological collisions), the table grows once and retries, preventing AVs.
- This fix addresses problems with weak hash keys (like #3824).
2025-11-25 21:23:49 +01:00
Michael Herzog
465f30661f Minor memory layout optimization 2025-11-25 17:36:49 +01:00
Michael Herzog
a62ca5452e Fixed missing move semantics in script object reference 2025-11-25 17:33:11 +01:00
Wojtek Figat
b07d74d28d Add option to skip loading Model SDFs in game if disabled in Graphics Settings 2025-11-25 10:39:15 +01:00
Wojtek Figat
dacb3b0891 Fix rendering on Intel-based macOS to use integrated GPU primarly 2025-11-25 10:30:53 +01:00
Wojtek Figat
92254eefcc SImplify some code and update code for platforms 2025-11-25 00:20:14 -08:00
Chandler Cox
2d56411e5f Add slot stop methods without anim param. 2025-11-23 14:19:37 -06:00
Chandler Cox
f8dc8ab903 Fix not being able to replay same animation in animation slot. 2025-11-23 14:19:11 -06:00
Wojtek Figat
2a55cda583 Add fallback location of engine managed library on AOT platforms 2025-11-20 14:58:30 -08:00
Wojtek Figat
7c91c03adf Merge remote-tracking branch 'origin/master' 2025-11-20 06:26:09 -08:00
Wojtek Figat
caa902ea9b Fix shader compilation without HLSL 2021 on Vulkan 2025-11-20 13:47:23 +01:00
Wojtek Figat
fb07071e24 Restore Global Surface Atlas and DDGI on Apple platforms
#3797
2025-11-20 13:47:18 +01:00
Wojtek Figat
a1cb7dcbe7 Fix GPU BVH shader compilation for macOS/iOS 2025-11-20 13:47:11 +01:00
Wojtek Figat
a8db0086b1 Fix shader compilation without HLSL 2021 on Vulkan 2025-11-20 13:07:28 +01:00
Wojtek Figat
e46b6d5b06 Restore Global Surface Atlas and DDGI on Apple platforms
#3797
2025-11-20 10:44:47 +01:00
Wojtek Figat
dfc8c1fac2 Fix GPU BVH shader compilation for macOS/iOS 2025-11-20 10:39:16 +01:00
Wojtek Figat
f8de118288 Merge remote-tracking branch 'origin/master' into 1.12 2025-11-20 10:15:07 +01:00
Wojtek Figat
032f698c7b Fix shader warning 2025-11-19 23:29:28 -08:00
0ac3ab2329 Merge remote-tracking branch 'origin/master' into sdl_platform 2025-11-19 18:30:08 +02:00
Wojtek Figat
e2aaef9b88 Fix shader warning 2025-11-19 08:27:33 -08:00
Wojtek Figat
ee0303bcfb Merge branch 'Tryibion-fix-spline-draw' 2025-11-18 21:30:53 +01:00
Wojtek Figat
1523c7b4ce Merge branch 'fix-spline-draw' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-spline-draw 2025-11-18 21:30:50 +01:00
Wojtek Figat
a16a8eaded Merge branch 'Tryibion-fix-anim-event-edge' 2025-11-18 21:30:05 +01:00
Wojtek Figat
9ff9d48ffd Merge branch 'fix-anim-event-edge' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-anim-event-edge 2025-11-18 21:30:01 +01:00
Wojtek Figat
dfb1fb91a5 Fix ability to override material instance hidden parameters
#3802
2025-11-18 21:29:51 +01:00
Wojtek Figat
8f56ab9534 Fix crash when creating empty material instance 2025-11-18 18:45:43 +01:00
Wojtek Figat
c0dda45c7b Fix crash on exit when C# code was bound to asset unloading event called after C# shutdown 2025-11-18 18:00:02 +01:00
Wojtek Figat
3efb981f00 Fix rare issues on input bugs in Visject 2025-11-18 16:51:43 +01:00
Wojtek Figat
ed408917c6 Fix Visject Surface node dependent connection types init on load
#3802
2025-11-18 16:41:24 +01:00
Wojtek Figat
2ca435a414 Fix shader graph assets loading to wait for async task
#3802
2025-11-18 16:11:31 +01:00
Wojtek Figat
de9e282bad Fix config version in GDK manifest 2025-11-18 05:42:21 -08:00
Wojtek Figat
c437daf9be Fix new compiler DXC changes 2025-11-18 05:42:02 -08:00
Wojtek Figat
1e4f96486f Fix audio playback bug from video on Xbox 2025-11-18 03:55:52 -08:00
Wojtek Figat
e03d0f3322 Fix shader compilation with HLSL 2021 2025-11-18 12:09:20 +01:00
Wojtek Figat
5f0e1253cc Refactor DX12 Root Signature creation to support offline construction
Fix running D3D12 on integrated AMD GPU
2025-11-18 12:08:54 +01:00
Wojtek Figat
7e6b040258 Update DXC shader compiler to 1.8 version (for D3D12) 2025-11-18 12:08:11 +01:00
Wojtek Figat
329ebb6482 Add custom shader compiler for Xbox Scarlett 2025-11-18 12:07:39 +01:00
Wojtek Figat
7a9c58003d Fix video playback on Xbox 2025-11-17 04:41:57 -08:00
Wojtek Figat
371a16e37b Fixes for Xbox with Mono AOT 2025-11-16 14:50:22 -08:00
Chandler Cox
95629e792d Fix additional edge cases 2025-11-15 22:12:35 -06:00
Chandler Cox
e79af2fd60 Handle additional edge cases for anim event. 2025-11-15 21:39:21 -06:00
Wojtek Figat
4aba0153f8 Prioritize Dotnet libs on Mono AOT 2025-11-15 14:57:12 -08:00
Wojtek Figat
f91c33e17c Another fix for shader compilation on Vulkan 2025-11-15 23:42:03 +01:00
Chandler Cox
6c29877b20 Fix spline bezier drawing. 2025-11-15 15:58:50 -06:00
Wojtek Figat
3abde6ecfc Merge branch 'VitaminCpp-fix_bvh_generation_crash' 2025-11-15 22:33:24 +01:00
Wojtek Figat
b42168eee5 Merge branch 'fix_bvh_generation_crash' of https://github.com/VitaminCpp/FlaxEngine into VitaminCpp-fix_bvh_generation_crash 2025-11-15 22:31:49 +01:00
Wojtek Figat
ac3b2c0ef2 Fix shader warning 2025-11-15 22:13:22 +01:00
Michael Herzog
f640452b7b Fix BVH node splitting using stale pointer to invalidated array memory
Ensure BuildBVH refreshes its node pointer after growing _bvh so reallocations no longer leave it operating on freed memory, eliminating the sporadic SDF-generation crash.
2025-11-15 21:57:14 +01:00
Wojtek Figat
2f670495ac Migrate Xbox to using static linking with nethost lib 2025-11-14 14:56:10 +01:00
Wojtek Figat
2a36edf528 Add option to link OpenMP on GDK platforms if needed 2025-11-14 02:11:13 -08:00
Wojtek Figat
5e690abd76 Fix initial state of DummyVertexBuffer on DX12 2025-11-14 01:06:01 -08:00
Wojtek Figat
4008e19ca9 Fix various build issuesin uncommon configurations 2025-11-14 00:52:14 -08:00
Wojtek Figat
e9070b30a0 Minor tweaks 2025-11-13 23:05:13 +01:00
Wojtek Figat
636a1ff930 Fix material shader generation when material layer fails to load 2025-11-13 23:04:24 +01:00
Saas
887311d1f1 replace raw data with (a) struct(s) 2025-11-13 23:00:09 +01:00
Wojtek Figat
3888c4ba21 Fix async tasks destruction to wait on the dependencies in chain 2025-11-13 22:53:52 +01:00
Wojtek Figat
69173803bf Fix shader warning on Vulkan 2025-11-13 22:09:11 +01:00
Wojtek Figat
13e31650be Merge branch 'GoaLitiuM-dotnet_windows_detect_fix' 2025-11-13 22:05:47 +01:00
Wojtek Figat
3563287f17 Merge branch 'dotnet_windows_detect_fix' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-dotnet_windows_detect_fix 2025-11-13 22:05:38 +01:00
Wojtek Figat
91ee9f5e05 Refactor Mesh SDF generation on GPU to use raytracing for more precise results 2025-11-13 22:05:23 +01:00
49918a1067 Fix Windows dotnet root path detection 2025-11-11 22:14:41 +02:00
466f9a4797 Merge remote-tracking branch 'origin/master' into sdl_platform 2025-11-11 21:40:06 +02:00
Wojtek Figat
c7997e0c2f Fix potential error on missing reference object 2025-11-10 21:50:11 +01:00
Wojtek Figat
4805dfbdba Fix issues with model data storage when doing long actions in async (eg. SDF generation) 2025-11-10 15:02:33 +01:00
Wojtek Figat
62424215c1 Fix crash due to missing asset reference inside MeshAccelerationStructure 2025-11-09 23:25:16 +01:00
Wojtek Figat
97ae13759e Merge remote-tracking branch 'origin/master' 2025-11-09 23:22:37 +01:00
Wojtek Figat
108678d94f Fix crash when texture streaming mip task gets deleted after texture object on GC 2025-11-09 22:16:44 +01:00
Wojtek Figat
66dbba5c16 Fix crash if base material gets GCed before it's referenced by instance during loading 2025-11-09 22:16:14 +01:00
Wojtek Figat
d84cef0c18 Fix crash due to async content data streaming
Properly checks for asset data unloading before taking lock on asset chunks.
#3358 #3085 #3515
2025-11-09 22:15:41 +01:00
Wojtek Figat
077cefc60e Merge branch 'xxSeys1-ContentNavigationScrollbarColors' 2025-11-07 21:43:37 +01:00
Wojtek Figat
35acc668c9 Merge branch 'ContentNavigationScrollbarColors' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-ContentNavigationScrollbarColors 2025-11-07 21:42:10 +01:00
Wojtek Figat
ebbe0f12ed Merge branch 'xxSeys1-AttributeEditorPolish' 2025-11-07 21:38:51 +01:00
Wojtek Figat
6a8b76278a Merge branch 'AttributeEditorPolish' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-AttributeEditorPolish 2025-11-07 21:37:46 +01:00
Wojtek Figat
8ac99ef28f Merge branch 'Tryibion-fix-type-editor-in-collection' 2025-11-07 21:33:25 +01:00
Wojtek Figat
547cf7f600 Merge branch 'fix-type-editor-in-collection' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-type-editor-in-collection 2025-11-07 21:33:22 +01:00
Wojtek Figat
b8b8b118c9 Merge branch 'xxSeys1-BakeButtonGroups' 2025-11-07 21:32:35 +01:00
Wojtek Figat
76247323eb Merge branch 'BakeButtonGroups' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-BakeButtonGroups 2025-11-07 21:32:32 +01:00
Wojtek Figat
0ff20c7c85 Merge branch 'Yahasana-patch-1' 2025-11-07 21:31:30 +01:00
Wojtek Figat
dd690e7495 Merge branch 'patch-1' of https://github.com/Yahasana/FlaxEngine into Yahasana-patch-1 2025-11-07 21:31:26 +01:00
Wojtek Figat
ca500548a3 Bump up build number 2025-11-07 21:31:13 +01:00
Wojtek Figat
c0b73375b1 Fix invoking asset load event if it's referenced directly
#3782
2025-11-07 21:31:04 +01:00
Wojtek Figat
9c6d6a0b07 Merge branch 'xxSeys1-CommentAroundAsset' 2025-11-07 15:52:16 +01:00
Wojtek Figat
179f6014bf Merge branch 'CommentAroundAsset' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-CommentAroundAsset 2025-11-07 15:48:34 +01:00
Wojtek Figat
b580c6ec8e Merge branch 'GoaLitiuM-woa_fixes' 2025-11-07 15:25:33 +01:00
Wojtek Figat
dd60cf0040 Merge branch 'woa_fixes' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-woa_fixes 2025-11-07 15:25:29 +01:00
Wojtek Figat
cc851b29fc Fix animation state transition inputs when using other surface context 2025-11-07 15:17:20 +01:00
Wojtek Figat
59643b2fb9 Add improved local-light shadow raytracing by starting ray from light, not surface 2025-11-06 21:01:02 +01:00
Wojtek Figat
3a5bb81d39 Add a new splash screen quote 2025-11-06 21:00:29 +01:00
Wojtek Figat
5ec860015d Add minor adjustments 2025-11-06 21:00:16 +01:00
Wojtek Figat
0f701ec08e Add force Mesh SDF rebuild when holiding F key and using Build All Meshes SDF optino in Editor menu 2025-11-04 13:30:18 +01:00
Wojtek Figat
387c3ea2f4 Add better debug view for Global SDF to include surface hit normal 2025-11-04 13:27:47 +01:00
Wojtek Figat
85b134b7be Add improved Global SDF quality and precision of rasterization 2025-11-04 13:27:21 +01:00
Wojtek Figat
5d17d2509d Fix Global SDF gradient at borders 2025-11-04 12:42:08 +01:00
Wojtek Figat
036d4b2f4b Fix error when asset refs picker uses different types 2025-11-03 23:21:09 +01:00
Wojtek Figat
f8e4f54c77 Fix animation state transition inputs when using other surface context 2025-11-02 22:12:53 +01:00
Saas
206b948ee1 add "Split" for Unpack nodes 2025-11-02 13:36:21 +01:00
Saas
fbad6ba75c add alternative node titles to pack/unpack nodes
Now every pack/ unpack node can be found by searching:
- Make
- Construct
- Compose

-  Break
- Deconstruct
- Decompose
2025-11-02 00:50:07 +01:00
Saas
bf3403449d disable format nodes option when either a) all selected nodes have NoMove or b) clicked on node has NoMove 2025-11-01 18:18:18 +01:00
Saas
d13b98b205 fix Auto Format Nodes to only produce one undo step 2025-11-01 17:55:21 +01:00
Saas
1188150163 prevent node formatting tools from moving nodes with NoMove flag 2025-11-01 17:24:10 +01:00
Saas
e78191cc82 fix error when clearing vj context menu 2025-11-01 17:04:58 +01:00
frank
eb978c767e extend msdfgen buildscript for Mac and Android (not tested) 2025-11-01 20:33:46 +08:00
fibref
661dc8ea1c Merge branch 'FlaxEngine:master' into flax-msdf-font 2025-11-01 19:39:37 +08:00
Saas
93f12b73d8 less code is more better 2025-10-31 23:16:37 +01:00
Saas
1091bc6e2c only show comment edit buttons when surface can be edited 2025-10-31 20:47:23 +01:00
Saas
594c0fb8e7 add comment around asset from which asset reference graph originates 2025-10-31 19:23:42 +01:00
Saas
b6696564f5 tweak colors to be less bright 2025-10-31 18:22:30 +01:00
Saas
316e5b2845 also apply color to border if focused/ selected in ui editor 2025-10-31 18:10:00 +01:00
Saas
c1738bcb0a make the ui editor look like the actor transform editor 2025-10-31 18:02:35 +01:00
Saas
7b3e41efae change how to the actor transform editor looks 2025-10-31 18:02:22 +01:00
ea20dc6da0 Fix wrong build configuration used in ogg and vorbis for Windows 2025-10-31 02:38:09 +02:00
9becddd84f Add dependency build script for Visual Studio EnvDTE 2025-10-31 02:38:09 +02:00
b08c765400 Add dependency build script for WinPixEventRuntime 2025-10-31 02:38:09 +02:00
afd59d7eb3 Fix building vorbis on Windows 2025-10-31 02:38:09 +02:00
47cdd0582c Check VS2026 toolset before trying to compile PhysX 2025-10-31 02:38:09 +02:00
af54d04f9d Fix building ogg+vorbis on macOS 2025-10-31 02:38:09 +02:00
1d2b3bc858 Fix NvCloth compilation on Linux and macOS 2025-10-31 02:32:06 +02:00
4b552563be Fix PhysX compilation on Linux and macOS 2025-10-31 02:32:06 +02:00
ebd929176c Fix python tool call on macOS for glslang 2025-10-31 02:32:06 +02:00
430e685a7c Fix building PhysX on Linux and macOS 2025-10-31 02:32:05 +02:00
d5bd857c45 Support building OpenAL from Git repository in other platforms 2025-10-31 02:32:05 +02:00
b8b9ba3069 Fix building curl on Linux 2025-10-31 02:32:05 +02:00
84c79d5192 Fix building Assimp on Linux
Versioned clang++ symlinks are not available on Arch
2025-10-31 02:32:05 +02:00
028f3a7871 Add support for building dependencies with specific architecture 2025-10-31 02:32:05 +02:00
0c462315f0 Fix CMake compatibility errors with dependencies 2025-10-31 02:21:23 +02:00
26261a2090 Support Visual Studio 2026 as a generator for CMake dependencies 2025-10-31 02:18:00 +02:00
3fc1895b56 Fix compiler error and wrong CPU architecture warnings on WoA 2025-10-31 02:12:14 +02:00
Wojtek Figat
a70d7cf1f9 Update build number 2025-10-30 23:37:20 +01:00
Wojtek Figat
1f592ba1a1 Fix game viewport scaling when using custom aspect or resolution to simulate actual logic
#3699
2025-10-30 23:36:51 +01:00
Wojtek Figat
a43daf025d Merge branch 'xxSeys1-NoEmptyScriptsEditorExpand' 2025-10-30 22:41:31 +01:00
Wojtek Figat
296a2afa95 Merge branch 'NoEmptyScriptsEditorExpand' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-NoEmptyScriptsEditorExpand 2025-10-30 22:41:28 +01:00
Wojtek Figat
a7e879a3a4 Merge branch 'xxSeys1-Flax11ByDefault' 2025-10-30 22:40:46 +01:00
Wojtek Figat
27b160b464 Merge branch 'Flax11ByDefault' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-Flax11ByDefault 2025-10-30 22:40:41 +01:00
Wojtek Figat
7c3c4f1a63 Add Network RPC messages splitting for large arguments payloads
#3776
2025-10-30 22:40:23 +01:00
c61ecc0545 Merge branch 'master' into sdl_platform 2025-10-30 22:42:29 +02:00
Saas
fbae93b532 update default engine version in issue bug template to 1.11 2025-10-30 20:28:37 +01:00
Saas
35d6e5fd21 fix still being able to open/ close script editor with no fields
Introduces "CanOpenClose" to DropPanel.
If false, will ignore the user clicking on the header (or the arrow) to open or collapse the panel
2025-10-30 20:02:15 +01:00
Wojtek Figat
114828adcb Refactor NetworkReplicator update into separate function for cleaner code 2025-10-30 17:12:49 +01:00
Wojtek Figat
b5de4d78ad Fix editing InputEvent that is null 2025-10-30 11:57:47 +01:00
Wojtek Figat
0913e6f738 Fix error when focus changes during focus change xd 2025-10-30 10:39:46 +01:00
Wojtek Figat
053e52c91f Fix compilation for bindings only without scripting internal host defined 2025-10-29 22:18:01 +01:00
Wojtek Figat
d24bd7dfd0 Merge branch 'GoaLitiuM-dotnet_define_fix' 2025-10-29 07:40:11 +01:00
2c8c9b1637 Fix .NET version preprocessor definitions 2025-10-29 08:26:39 +02:00
Wojtek Figat
05a8c841da Fix color grading lut to be refreshed when shader gets reloaded 2025-10-28 23:19:51 +01:00
Wojtek Figat
c4fcaa999c Fix asset thumbnails to be stable with FXAA instead of TAA 2025-10-28 22:23:15 +01:00
Wojtek Figat
70c9dd6608 Fix eye adaptation in Manual mode 2025-10-28 21:36:28 +01:00
Wojtek Figat
802e2ac7c2 Fix compiling stb texture tool on Windows 2025-10-28 21:25:30 +01:00
Wojtek Figat
0ca60062d9 Fix crash on leftover physic contact collision processing 2025-10-28 16:17:48 +01:00
Mofasa
5a587a8582 Update HintPaths for project references
Fixed error CS0234: The type or namespace name 'C
odeAnalysis' does not exist in the namespace 'Microsoft'
2025-10-28 15:09:15 +08:00
Wojtek Figat
22515c37b5 Fix crash regression in D3D12 UAV bindings code 2025-10-27 22:38:47 +01:00
Wojtek Figat
38a48cf1d4 Update build number 2025-10-27 16:48:52 +01:00
Wojtek Figat
cd66d00219 Add checking hardware instruction set on Windows earlier on
#3732
2025-10-27 16:48:24 +01:00
Wojtek Figat
c944bd9bed Fix missing Vulkan feature activation for host query reset 2025-10-27 00:32:29 +01:00
Wojtek Figat
a0689f3f00 Update all Linux deps with Clang 14 on Ubuntu 24 2025-10-27 00:01:36 +01:00
Wojtek Figat
2ee2c97f1e Update docs for Ubuntu 24 and Clang 4 2025-10-26 21:48:49 +01:00
fibref
3cef8cfd61 Merge branch 'FlaxEngine:master' into flax-msdf-font 2025-10-26 14:37:20 +08:00
Wojtek Figat
fd19e83a46 Merge branch 'Tryibion-fix-no-undo-for-drag-spawn' 2025-10-25 22:52:47 +02:00
Wojtek Figat
755702b65a Improve #3747 to check for loaded levels in drag drop validation 2025-10-25 22:52:41 +02:00
Wojtek Figat
72e200a7fc Merge branch 'fix-no-undo-for-drag-spawn' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-no-undo-for-drag-spawn 2025-10-25 22:50:01 +02:00
Wojtek Figat
6353e5f4f2 Merge branch 'Tryibion-fix-arrow-up-tree-select' 2025-10-25 22:47:21 +02:00
Wojtek Figat
b184022d15 Merge branch 'fix-arrow-up-tree-select' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-arrow-up-tree-select 2025-10-25 22:46:55 +02:00
Wojtek Figat
26dce69404 Merge branch 'GoaLitiuM-dotnet10_sdkver' 2025-10-25 22:45:34 +02:00
2841ac22df Bump the maximum supported .NET SDK version to 10 2025-10-25 22:35:48 +03:00
Wojtek Figat
516f22c3c0 Merge branch 'GoaLitiuM-dotnet_error_messages' 2025-10-25 21:14:23 +02:00
Wojtek Figat
5a8c4cd0a5 Merge branch 'dotnet_error_messages' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-dotnet_error_messages 2025-10-25 21:14:19 +02:00
Wojtek Figat
f53b7e3323 Merge branch 'Tryibion-fix-default-scale-option' 2025-10-25 21:10:34 +02:00
Chandler Cox
c1439c646e Fix default for prefab canvas size index being 0 instead of -1. 2025-10-25 11:34:48 -05:00
Chandler Cox
09964df198 Removing moving the control when trying to resize it. 2025-10-24 16:19:33 -05:00
Chandler Cox
dd8e6bf694 Change handles back to outside of control. 2025-10-24 15:40:45 -05:00
280035e54f Use stderr for Flax.Build error messages
This turns the error messages from Flax.Build to red in Flax Editor
console output.
2025-10-24 23:27:18 +03:00
0d140c4f39 Fix Windows dotnet version lookup without installed SDK
Having only x86 dotnet SDK installed while expecting x64 version fails
prematurely.
2025-10-24 23:27:17 +03:00
32b4efc175 Add missing .NET installation architecture info to error messages 2025-10-24 23:27:17 +03:00
Chandler Cox
58cd3e82f6 Better rotation on UI handles which handles total parent rotation. 2025-10-24 14:55:38 -05:00
22ba7f2ee5 Merge remote-tracking branch 'origin/master' into sdl_platform 2025-10-24 18:31:50 +03:00
Wojtek Figat
d1774cac28 Go back to SSE4.2 on Windows as minimum requirement instead of AVX2 for better user coverage by default
#3732
2025-10-22 16:14:05 +02:00
Wojtek Figat
99c26ff9af Fix crash when control reference gets invalid in Editor 2025-10-21 15:54:37 +02:00
Wojtek Figat
a2d91d989d Add Focused event to control 2025-10-21 15:54:20 +02:00
Wojtek Figat
881154e9f4 Fix missing parent tags when creating nested ones from code 2025-10-21 15:54:03 +02:00
Wojtek Figat
2629511224 Merge branch 'Tryibion-fix-duplicate-collection-option' 2025-10-20 22:04:12 +02:00
Wojtek Figat
bcf7226946 Merge branch 'fix-duplicate-collection-option' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-duplicate-collection-option 2025-10-20 22:04:05 +02:00
Wojtek Figat
f5c9e00beb Merge branch 'GoaLitiuM-woa_alignment' 2025-10-20 22:03:39 +02:00
Wojtek Figat
6353514188 Merge branch 'woa_alignment' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-woa_alignment 2025-10-20 22:03:32 +02:00
Wojtek Figat
8467315a1e Fix motion vector stability on Large World origin changes
#3745
2025-10-20 18:08:54 +02:00
Chandler Cox
be5dbbb95f Fix duplicate option for collections being grayed out if nothing is in clipboard. 2025-10-19 15:55:57 -05:00
6b9c727a6a Fix compiler warning 2025-10-19 22:16:34 +03:00
91c0ba1986 Enforce pointer alignment for InlinedAllocation
AssetReferences stored in inlined allocation needs to be aligned to
pointer sized boundary due to atomic operations having strict
requirements for such. Unaligned access seems to only crash on
Windows on ARM systems when trying to allocate TextRender draw chunks.
2025-10-19 22:14:28 +03:00
Chandler Cox
e4bb8001b2 Fix not having undo for items dragged into scene tree into empty space. 2025-10-18 18:23:33 -05:00
f52f3920cb Update SDL to 3.2.24 2025-10-18 02:19:56 +03:00
f99a244b8e Merge remote-tracking branch 'origin/master' into sdl_platform
# Conflicts:
#	Source/Editor/Windows/GameWindow.cs
2025-10-18 02:19:30 +03:00
Saas
5dd9171316 fix default value 2025-10-17 21:58:55 +02:00
Saas
5ec2476aec add "*" to editor settings window title when settings are dirty 2025-10-16 21:05:10 +02:00
Saas
a9fc5f720d break up EnvironmentProbe properties into groups 2025-10-16 20:35:53 +02:00
Saas
d323b1c7e2 move skylight and environment probe bake buttons into dedicated groups 2025-10-16 20:28:34 +02:00
Saas
d6b1478bf1 make double clicking properties splitter bar auto resize split 2025-10-16 20:04:05 +02:00
Wojtek Figat
d93c32db9c Merge remote-tracking branch 'origin/1.11'
# Conflicts:
#	Source/Tools/Flax.Build/Deps/Downloader.cs
2025-10-16 14:07:49 +02:00
Wojtek Figat
08abdc159e Another ios build change to use dotnet 9 instead 2025-10-16 13:38:26 +02:00
Wojtek Figat
708b9c6767 Attempt to fix missing ios workload for .NET 8 2025-10-16 12:12:37 +02:00
Wojtek Figat
ed26a4c182 Fix moving character controller when displacement is zero 2025-10-16 11:34:43 +02:00
Wojtek Figat
a239984908 Add console logging for VSCode on Mac and Linux inside game projects 2025-10-16 10:47:41 +02:00
Wojtek Figat
fc3ea44c69 Update OpenAL on Mac/iOS 2025-10-16 10:40:08 +02:00
Wojtek Figat
fdecad0d29 Fix Vulkan crash on missing handle owner during binding 2025-10-16 10:39:50 +02:00
Wojtek Figat
c7437ed533 Fix OpenAL Soft building due to missing certs on a website 2025-10-16 10:39:36 +02:00
Wojtek Figat
dab44f5ceb Minor fixes 2025-10-16 10:20:51 +02:00
Saas
79351f0c4d Hide array editor "Size" text when array title overlaps it 2025-10-15 21:09:24 +02:00
Saas
e5bd90f58b revert icon scaling 2025-10-15 19:51:24 +02:00
Wojtek Figat
c635d93b3c Fix more errors in Visject context menu regressions 2025-10-15 14:44:58 +02:00
Chandler Cox
7377bad721 Fix check method for type editor not working in a collection. 2025-10-14 21:20:22 -05:00
Wojtek Figat
09fa3ce4be Minor changes 2025-10-14 15:07:40 +02:00
Chandler Cox
bd0daf7580 Fix tree arrowing up not selecting children in tree. 2025-10-13 21:49:05 -05:00
Chandler Cox
25744986a3 Special query for closest point on height field. 2025-10-13 20:40:16 -05:00
Wojtek Figat
e1b3429b4c Fix regression on game window defocus 2025-10-13 21:50:19 +02:00
Wojtek Figat
efa963be68 Fix editor error when prefab asset is unloaded 2025-10-13 21:45:31 +02:00
Saas
d1972a56e2 improve spline editor
- Move "Selected Point" section above keyframes so it is always accessible, even when keyframe array editor is expanded
- Improve icon scaling when editor becomes thin
2025-10-13 18:27:30 +02:00
Saas
df28b0d977 fix Content Panel navigation bar scroll bar colors
Same concept as in #2581
2025-10-13 11:31:53 +02:00
Saas
48100cf9fc fix group element text clipping
fixes group element header text clipping outside of the header and into the settings icon (if there is one).
Also some extra code to handle script editor, as that displays some extra icons in the header.
2025-10-13 11:16:07 +02:00
Saas
69a7e1f25c expand tooltip to hint at being able to create a new folder on shift + left click 2025-10-12 19:57:05 +02:00
Saas
b43ed886b9 add option for what happens with unavailable entries and fix menu positioning 2025-10-12 19:52:18 +02:00
Saas
59fb83a469 correctly center buttons 2025-10-12 16:23:54 +02:00
Saas
76f0768b99 float 2025-10-12 16:14:07 +02:00
Saas
7544500be1 polish attribute editor
- Add hint about what to do when there are no attributes
- Swap "Ok" "Cancel" buttons order to match other dialog boxes
- Move buttons to the bottom
- Increase size of menu
- Add some missing "." to add/ remove button tooltips in array editor
2025-10-12 16:07:20 +02:00
Saas
b2b855200f allow entering numbers with digit separator into value boxes (f.e. 1_000) 2025-10-11 22:02:14 +02:00
Saas
241a8bc764 add incrementing/ decrementing value boxe's value with arrow keys 2025-10-11 20:30:51 +02:00
frank
18a0e8d612 add msdfgen for windows 2025-10-07 16:15:07 +08:00
Saas
ec08a6ca72 Reapply "Merge branch 'NoClearSearchboxesWhenStuffHappens' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-NoClearSearchboxesWhenStuffHappens"
This reverts commit 537d8b57ca.
2025-10-03 20:44:35 +02:00
Saas
7b7d7aaf3d Merge remote-tracking branch 'upstream/master' into NoClearSearchboxesWhenStuffHappens 2025-10-03 20:44:04 +02:00
Saas
2d4843b1f4 fix reloading scripts expanding scene tree
#3701
2025-10-03 20:41:52 +02:00
Saas
7ba01a413f Revert "fix reloading scripts expands all folders"
This reverts commit 2516820e4a.
2025-10-03 18:50:41 +02:00
Saas
2516820e4a fix reloading scripts expands all folders 2025-10-03 18:46:18 +02:00
Saas
0917a743cd Re- add particle prefix and improve some descriptions 2025-09-21 17:07:13 +02:00
Saas
13dd80d429 add changing and caching Debug ViewMode for Game View 2025-09-21 16:57:38 +02:00
Saas
6e9902a966 use DefaultGame ViewFlag and some fixes 2025-09-21 16:49:07 +02:00
Saas
fd1e0a4e80 add game view to "View" menu, add keyboard new keyboard shortcuts to menu and extra options for view flags and view layers 2025-09-20 16:12:04 +02:00
Saas
b130b81863 add game view and show/ hiding navigation similar to unreal engine 2025-09-20 15:08:03 +02:00
Saas
1dd96ae9cb add undo to MoveSelectedNodes (do TODO) 2025-09-19 23:04:43 +02:00
Saas
07c1dfc613 add focus selected visject controls functionality 2025-09-19 20:23:47 +02:00
Saas
fb5cedc575 make particle age/ lifetime nodes more clear 2025-09-19 16:32:59 +02:00
Saas
b38a7e6eb2 unify both "too many audio listeners"- warnings 2025-09-18 17:54:21 +02:00
Saas
4f3f1cd163 make changing selected box with arrow up/ down loop 2025-09-15 23:09:07 +02:00
Saas
4d77646f26 fix error when changing selected box with arrow keys 2025-09-15 22:46:56 +02:00
Saas
187592b673 add moving visject nodes in smaller increments when holding shift and alt 2025-09-15 22:37:31 +02:00
Saas
215467ae42 add ribbon menu buttons to quick open product local folder 2025-09-14 18:14:38 +02:00
Saas
facd7d39dc return true if handled 2025-09-14 16:02:48 +02:00
Saas
6810e5f2a4 add moving selected keyframes with arrow keys 2025-09-14 16:00:07 +02:00
Saas
ee6fae8956 small polish stuff
- Fix keyframe edit popup height
- Make keyframe mouse hover color more intense
- Increase keyframe size by 1 to prevent accidental miss clicks, resulting in a new keyframe added, when trying to double click to edit a keyframe
2025-09-14 14:15:35 +02:00
Saas
bb6c3233d2 method placement 2025-09-13 19:22:37 +02:00
Saas
499228cc98 add curve editor presets 2025-09-13 19:07:41 +02:00
alsed
05f08db66e Fixed a crash when model with no Bones was imported as Skinned Model 2025-09-08 01:28:49 -03:00
alsed
52ee8b3953 better comment for animated prefab and remove unused code in remap blendshapes 2025-09-07 20:40:28 -03:00
alsed
a8768f918e Add more conditions for skeleton import and add blendshapes for prefab recognition 2025-09-07 13:45:21 -03:00
alsed
e52b7170ce fix segfault when generating mipmaps for cubetextures 2025-09-04 11:11:44 -04:00
alsed
dd7233aaf7 Adds support for Cubemaps textures 2025-09-02 22:23:42 -04:00
Chandler Cox
cd0878f810 Simplify code 2025-09-02 20:47:04 -05:00
Chandler Cox
f588d6da51 Add ability to loop root node in behavior trees. 2025-09-02 20:33:41 -05:00
alsed
9a363e2882 Implement prefab detection of skinned models 2025-08-30 08:51:21 -04:00
Chandler Cox
2901e3898c Add IncludeInheritedTypes to RequireActor 2025-08-29 16:03:44 -05:00
Saas
f2699892e0 add support for resizing visject curve nodes 2025-08-17 15:42:54 +02:00
alsed
c63200cba0 bool error corrected 2025-08-13 11:23:56 -04:00
alsed
c8a02ac607 cleanup 2025-08-13 09:22:30 -04:00
alsed
09a304c214 Add support for dds in linux 2025-08-12 19:18:07 -04:00
Zode
4bacceb19f Make comparisons automatically expand if needed so it contains the inputs 2025-06-09 22:49:30 +03:00
Zode
846065007b Make visject inputboxes uniform size of 50 pixels 2025-06-09 22:49:13 +03:00
xxSeys1
c45cba18a6 fix menu positioning 2025-05-04 21:18:00 +02:00
xxSeys1
fccd43502b add create file Content Panel toolstrip button 2025-05-04 21:14:10 +02:00
xxSeys1
d2dba124df add model import option to only create material slots
but not import actual materials
2024-10-09 13:12:48 +02:00
1330 changed files with 154439 additions and 15015 deletions

View File

@@ -5,7 +5,7 @@ body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report! Please attach any minimal reproduction projects!
Thanks for taking the time to fill out this bug report! Please attach a minimal reproduction project if available!
- type: textarea
id: description-area
attributes:
@@ -17,21 +17,21 @@ body:
id: steps-area
attributes:
label: Steps to reproduce
description: Please provide reproduction steps if possible.
description: Please provide reproduction steps if available.
validations:
required: true
- type: dropdown
id: version
attributes:
label: Version
description: What version of Flax are you running?
description: What version of Flax did you experience the bug in?
options:
- '1.8'
- '1.9'
- '1.10'
- '1.11'
- '1.12'
- master branch
default: 2
default: 3
validations:
required: true
- type: textarea

View File

@@ -5,7 +5,7 @@ body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out a feature request!
Thank you for taking the time to submit this feature request!
- type: textarea
id: description-area
attributes:
@@ -17,6 +17,6 @@ body:
id: benefits-area
attributes:
label: Benefits
description: Please provide what benefits this feature would provide to the engine!
description: Please list what benefits this feature would provide to the engine!
validations:
required: true

18
.github/data/bt.sh vendored Normal file
View File

@@ -0,0 +1,18 @@
#!/bin/sh
# https://gist.github.com/ongardie/aa15f1f0d0e6b59890a9
gdb -q --batch \
-ex 'handle SIGHUP nostop pass' \
-ex 'handle SIGQUIT nostop pass' \
-ex 'handle SIGPIPE nostop pass' \
-ex 'handle SIGALRM nostop pass' \
-ex 'handle SIGTERM nostop pass' \
-ex 'handle SIGUSR1 nostop pass' \
-ex 'handle SIGUSR2 nostop pass' \
-ex 'handle SIGCHLD nostop pass' \
-ex 'handle SIG34 nostop pass' \
-ex 'set print thread-events off' \
-return-child-result \
-ex 'run' \
-ex 'thread apply all bt' \
--tty=/dev/stdout \
--args $*

View File

@@ -4,6 +4,7 @@ on: [push, pull_request]
env:
DOTNET_NOLOGO: true
DOTNET_CLI_TELEMETRY_OPTOUT: false
DOTNET_ROLL_FORWARD: 'minor'
jobs:
@@ -19,7 +20,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 8.0.x
dotnet-version: 8.0.419
- name: Setup .NET Workload
run: |
dotnet workload install android
@@ -33,4 +34,7 @@ jobs:
git lfs pull
- name: Build
run: |
PowerShell "(Get-Content global.json).Replace('latestMajor', 'minor') | Set-Content global.json"
PowerShell "(Get-Content Source/Tools/Flax.Build/global.json).Replace('latestMajor', 'minor') | Set-Content Source/Tools/Flax.Build/global.json"
PowerShell "(Get-Content Source/Tools/Flax.Build/Flax.Build.csproj).Replace('LatestMajor', 'Minor') | Set-Content Source/Tools/Flax.Build/Flax.Build.csproj"
.\Development\Scripts\Windows\CallBuildTool.bat -build -log -printSDKs -dotnet=8 -arch=ARM64 -platform=Android -configuration=Release -buildtargets=FlaxGame

View File

@@ -19,7 +19,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 8.0.x
dotnet-version: 9.0.x
- name: Setup .NET Workload
run: |
dotnet workload install ios
@@ -33,4 +33,4 @@ jobs:
git lfs pull
- name: Build
run: |
./Development/Scripts/Mac/CallBuildTool.sh -build -log -dotnet=8 -arch=ARM64 -platform=iOS -configuration=Release -buildtargets=FlaxGame
./Development/Scripts/Mac/CallBuildTool.sh -build -log -dotnet=9 -arch=ARM64 -platform=iOS -configuration=Release -buildtargets=FlaxGame

View File

@@ -16,7 +16,8 @@ jobs:
uses: actions/checkout@v3
- name: Install dependencies
run: |
sudo apt-get install libx11-dev libxcursor-dev libxinerama-dev build-essential gettext libtool libtool-bin libpulse-dev libasound2-dev libjack-dev portaudio19-dev libwayland-dev
sudo apt-get update
sudo apt-get install -y --fix-missing libx11-dev libxcursor-dev libxinerama-dev build-essential gettext libtool libtool-bin libpulse-dev libasound2-dev libjack-dev portaudio19-dev libwayland-dev
- name: Setup Vulkan
uses: ./.github/actions/vulkan
- name: Setup .NET
@@ -44,7 +45,8 @@ jobs:
uses: actions/checkout@v3
- name: Install dependencies
run: |
sudo apt-get install libx11-dev libxcursor-dev libxinerama-dev libwayland-dev
sudo apt-get update
sudo apt-get install -y --fix-missing libx11-dev libxcursor-dev libxinerama-dev build-essential gettext libtool libtool-bin libpulse-dev libasound2-dev libjack-dev portaudio19-dev libwayland-dev
- name: Setup Vulkan
uses: ./.github/actions/vulkan
- name: Setup .NET

View File

@@ -4,6 +4,7 @@ on: [push, pull_request]
env:
DOTNET_NOLOGO: true
DOTNET_CLI_TELEMETRY_OPTOUT: false
DOTNET_ROLL_FORWARD: 'minor'
jobs:
@@ -19,7 +20,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 8.0.x
dotnet-version: 8.0.419
- name: Print .NET info
run: |
dotnet --info
@@ -30,6 +31,9 @@ jobs:
git lfs pull
- name: Build
run: |
PowerShell "(Get-Content global.json).Replace('latestMajor', 'minor') | Set-Content global.json"
PowerShell "(Get-Content Source/Tools/Flax.Build/global.json).Replace('latestMajor', 'minor') | Set-Content Source/Tools/Flax.Build/global.json"
PowerShell "(Get-Content Source/Tools/Flax.Build/Flax.Build.csproj).Replace('LatestMajor', 'Minor') | Set-Content Source/Tools/Flax.Build/Flax.Build.csproj"
.\Development\Scripts\Windows\CallBuildTool.bat -build -log -printSDKs -dotnet=8 -arch=x64 -platform=Windows -configuration=Development -buildtargets=FlaxEditor
# Game
@@ -44,7 +48,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 8.0.x
dotnet-version: 8.0.419
- name: Print .NET info
run: |
dotnet --info
@@ -55,4 +59,7 @@ jobs:
git lfs pull
- name: Build
run: |
PowerShell "(Get-Content global.json).Replace('latestMajor', 'minor') | Set-Content global.json"
PowerShell "(Get-Content Source/Tools/Flax.Build/global.json).Replace('latestMajor', 'minor') | Set-Content Source/Tools/Flax.Build/global.json"
PowerShell "(Get-Content Source/Tools/Flax.Build/Flax.Build.csproj).Replace('LatestMajor', 'Minor') | Set-Content Source/Tools/Flax.Build/Flax.Build.csproj"
.\Development\Scripts\Windows\CallBuildTool.bat -build -log -printSDKs -dotnet=8 -arch=x64 -platform=Windows -configuration=Release -buildtargets=FlaxGame

View File

@@ -7,6 +7,7 @@ on:
env:
DOTNET_NOLOGO: true
DOTNET_CLI_TELEMETRY_OPTOUT: false
DOTNET_ROLL_FORWARD: 'minor'
GIT_LFS_PULL_OPTIONS: '-c lfs.concurrenttransfers=1 -c lfs.transfer.maxretries=2 -c http.version="HTTP/1.1" -c lfs.activitytimeout=60'
jobs:
@@ -27,13 +28,16 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 8.0.x
dotnet-version: 8.0.419
- name: Print .NET info
run: |
dotnet --info
dotnet workload --info
- name: Build
run: |
PowerShell "(Get-Content global.json).Replace('latestMajor', 'minor') | Set-Content global.json"
PowerShell "(Get-Content Source/Tools/Flax.Build/global.json).Replace('latestMajor', 'minor') | Set-Content Source/Tools/Flax.Build/global.json"
PowerShell "(Get-Content Source/Tools/Flax.Build/Flax.Build.csproj).Replace('LatestMajor', 'Minor') | Set-Content Source/Tools/Flax.Build/Flax.Build.csproj"
.\PackageEditor.bat -arch=x64 -platform=Windows -deployOutput=Output -dotnet=8
- name: Upload
uses: actions/upload-artifact@v4
@@ -60,13 +64,16 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 8.0.x
dotnet-version: 8.0.419
- name: Print .NET info
run: |
dotnet --info
dotnet workload --info
- name: Build
run: |
PowerShell "(Get-Content global.json).Replace('latestMajor', 'minor') | Set-Content global.json"
PowerShell "(Get-Content Source/Tools/Flax.Build/global.json).Replace('latestMajor', 'minor') | Set-Content Source/Tools/Flax.Build/global.json"
PowerShell "(Get-Content Source/Tools/Flax.Build/Flax.Build.csproj).Replace('LatestMajor', 'Minor') | Set-Content Source/Tools/Flax.Build/Flax.Build.csproj"
.\PackagePlatforms.bat -arch=x64 -platform=Windows -deployOutput=Output -dotnet=8
- name: Upload
uses: actions/upload-artifact@v4
@@ -87,7 +94,8 @@ jobs:
git ${{ env.GIT_LFS_PULL_OPTIONS }} lfs pull
- name: Install dependencies
run: |
sudo apt-get install libx11-dev libxcursor-dev libxinerama-dev build-essential gettext libtool libtool-bin libpulse-dev libasound2-dev libjack-dev portaudio19-dev
sudo apt-get update
sudo apt-get install -y --fix-missing libx11-dev libxcursor-dev libxinerama-dev build-essential gettext libtool libtool-bin libpulse-dev libasound2-dev libjack-dev portaudio19-dev libwayland-dev
- name: Setup Vulkan
uses: ./.github/actions/vulkan
- name: Setup .NET
@@ -118,7 +126,8 @@ jobs:
git ${{ env.GIT_LFS_PULL_OPTIONS }} lfs pull
- name: Install dependencies
run: |
sudo apt-get install libx11-dev libxcursor-dev libxinerama-dev build-essential gettext libtool libtool-bin libpulse-dev libasound2-dev libjack-dev portaudio19-dev
sudo apt-get update
sudo apt-get install -y --fix-missing libx11-dev libxcursor-dev libxinerama-dev build-essential gettext libtool libtool-bin libpulse-dev libasound2-dev libjack-dev portaudio19-dev libwayland-dev
- name: Setup Vulkan
uses: ./.github/actions/vulkan
- name: Setup .NET

View File

@@ -4,6 +4,7 @@ on: [push, pull_request]
env:
DOTNET_NOLOGO: true
DOTNET_CLI_TELEMETRY_OPTOUT: false
DOTNET_ROLL_FORWARD: 'minor'
jobs:
@@ -28,25 +29,23 @@ jobs:
git lfs pull
- name: Install dependencies
run: |
sudo apt-get install libx11-dev libxcursor-dev libxinerama-dev build-essential gettext libtool libtool-bin libpulse-dev libasound2-dev libjack-dev portaudio19-dev libwayland-dev
sudo apt-get update
sudo apt-get install -y --fix-missing libx11-dev libxcursor-dev libxinerama-dev build-essential gettext libtool libtool-bin libpulse-dev libasound2-dev libjack-dev portaudio19-dev libwayland-dev gdb
chmod +x .github/data/bt.sh
- name: Build
run: |
./GenerateProjectFiles.sh -vs2022 -log -verbose -printSDKs -dotnet=8
./Development/Scripts/Linux/CallBuildTool.sh -build -log -dotnet=8 -arch=x64 -platform=Linux -configuration=Development -buildtargets=FlaxTestsTarget
./Development/Scripts/Linux/CallBuildTool.sh -build -log -dotnet=8 -arch=x64 -platform=Linux -configuration=Development -buildtargets=FlaxTestsTarget -UseLargeWorlds=true
dotnet msbuild Source/Tools/Flax.Build.Tests/Flax.Build.Tests.csproj /m /t:Restore,Build /p:Configuration=Debug /p:Platform=AnyCPU /nologo
dotnet msbuild Source/Tools/Flax.Build.Tests/Flax.Build.Tests.csproj /m /t:Restore,Build /p:Configuration=Debug /p:Platform=AnyCPU /nologo
- name: Test
run: |
${GITHUB_WORKSPACE}/Binaries/Editor/Linux/Development/FlaxTests
${GITHUB_WORKSPACE}/.github/data/bt.sh ./Binaries/Editor/Linux/Development/FlaxTests -headless
dotnet test -f net8.0 Binaries/Tests/Flax.Build.Tests.dll
cp Binaries/Editor/Linux/Development/FlaxEngine.CSharp.dll Binaries/Tests
cp Binaries/Editor/Linux/Development/FlaxEngine.CSharp.runtimeconfig.json Binaries/Tests
cp Binaries/Editor/Linux/Development/Newtonsoft.Json.dll Binaries/Tests
dotnet test -f net8.0 Binaries/Tests/FlaxEngine.CSharp.dll
- name: Test UseLargeWorlds
run: |
./Development/Scripts/Linux/CallBuildTool.sh -build -log -dotnet=8 -arch=x64 -platform=Linux -configuration=Development -buildtargets=FlaxTestsTarget -UseLargeWorlds=true
${GITHUB_WORKSPACE}/Binaries/Editor/Linux/Development/FlaxTests
# Tests on Windows
tests-windows:
@@ -58,7 +57,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 8.0.x
dotnet-version: 8.0.419
- name: Print .NET info
run: |
dotnet --info
@@ -69,6 +68,9 @@ jobs:
git lfs pull
- name: Build
run: |
PowerShell "(Get-Content global.json).Replace('latestMajor', 'minor') | Set-Content global.json"
PowerShell "(Get-Content Source/Tools/Flax.Build/global.json).Replace('latestMajor', 'minor') | Set-Content Source/Tools/Flax.Build/global.json"
PowerShell "(Get-Content Source/Tools/Flax.Build/Flax.Build.csproj).Replace('LatestMajor', 'Minor') | Set-Content Source/Tools/Flax.Build/Flax.Build.csproj"
.\GenerateProjectFiles.bat -vs2022 -log -verbose -printSDKs -dotnet=8
.\Development\Scripts\Windows\CallBuildTool.bat -build -log -dotnet=8 -arch=x64 -platform=Windows -configuration=Development -buildtargets=FlaxTestsTarget
dotnet msbuild Source\Tools\Flax.Build.Tests\Flax.Build.Tests.csproj /m /t:Restore,Build /p:Configuration=Debug /p:Platform=AnyCPU /nologo
@@ -76,7 +78,7 @@ jobs:
shell: pwsh
run: |
$ErrorActionPreference = "Stop"
.\Binaries\Editor\Win64\Development\FlaxTests.exe
.\Binaries\Editor\Win64\Development\FlaxTests.exe -headless
if(!$?) { Write-Host "Tests failed with exit code $LastExitCode" -ForegroundColor Red; Exit $LastExitCode }
dotnet test -f net8.0 Binaries\Tests\Flax.Build.Tests.dll
xcopy /y Binaries\Editor\Win64\Development\FlaxEngine.CSharp.dll Binaries\Tests

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Content/Editor/HSWheel.flax LFS Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -42,10 +42,10 @@ struct MaterialInput
float2 SvPositionToDecalUV(float4 svPosition)
{
float2 screenUV = svPosition.xy * ScreenSize.zw;
svPosition.z = SAMPLE_RT(DepthBuffer, screenUV).r;
float4 positionHS = mul(float4(svPosition.xyz, 1), SvPositionToWorld);
svPosition.z = SAMPLE_RT_DEPTH(DepthBuffer, screenUV);
float4 positionHS = PROJECT_POINT(float4(svPosition.xyz, 1), SvPositionToWorld);
float3 positionWS = positionHS.xyz / positionHS.w;
float3 positionOS = mul(float4(positionWS, 1), InvWorld).xyz;
float3 positionOS = PROJECT_POINT(float4(positionWS, 1), InvWorld).xyz;
return positionOS.xz + 0.5f;
}
@@ -182,10 +182,10 @@ META_VS_IN_ELEMENT(POSITION, 0, R32G32B32_FLOAT, 0, 0, PER_VERTEX, 0, true)
void VS_Decal(in float3 Position : POSITION0, out float4 SvPosition : SV_Position)
{
// Compute world space vertex position
float3 worldPosition = mul(float4(Position.xyz, 1), WorldMatrix).xyz;
float3 worldPosition = PROJECT_POINT(float4(Position.xyz, 1), WorldMatrix).xyz;
// Compute clip space position
SvPosition = mul(float4(worldPosition.xyz, 1), ViewProjectionMatrix);
SvPosition = PROJECT_POINT(float4(worldPosition.xyz, 1), ViewProjectionMatrix);
}
// Pixel Shader function for decals rendering
@@ -213,11 +213,11 @@ void PS_Decal(
}
float2 screenUV = SvPosition.xy * ScreenSize.zw;
SvPosition.z = SAMPLE_RT(DepthBuffer, screenUV).r;
SvPosition.z = SAMPLE_RT_DEPTH(DepthBuffer, screenUV);
float4 positionHS = mul(float4(SvPosition.xyz, 1), SvPositionToWorld);
float4 positionHS = PROJECT_POINT(float4(SvPosition.xyz, 1), SvPositionToWorld);
float3 positionWS = positionHS.xyz / positionHS.w;
float3 positionOS = mul(float4(positionWS, 1), InvWorld).xyz;
float3 positionOS = PROJECT_POINT(float4(positionWS, 1), InvWorld).xyz;
clip(0.5 - abs(positionOS.xyz));
float2 decalUVs = positionOS.xz + 0.5f;

View File

@@ -308,7 +308,7 @@ VertexOutput VS_SplineModel(ModelInput input)
world = mul(world, WorldMatrix);
// Compute clip space position
output.Position = mul(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
output.Position = PROJECT_POINT(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
// Pass vertex attributes
output.Geometry.TexCoord = input.TexCoord0;
@@ -337,8 +337,7 @@ VertexOutput VS_SplineModel(ModelInput input)
// Apply world position offset per-vertex
#if USE_POSITION_OFFSET
output.Geometry.WorldPosition += material.PositionOffset;
output.Geometry.PrevWorldPosition += material.PositionOffset;
output.Position = mul(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
output.Position = PROJECT_POINT(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
#endif
// Get tessalation multiplier (per vertex)

View File

@@ -4,8 +4,8 @@
#define MAX_LOCAL_LIGHTS 4
@1// Forward Shading: Includes
#include "./Flax/LightingCommon.hlsl"
#if USE_REFLECTIONS
#include "./Flax/ReflectionsCommon.hlsl"
#if USE_REFLECTIONS
#define MATERIAL_REFLECTIONS_SSR 1
#if MATERIAL_REFLECTIONS == MATERIAL_REFLECTIONS_SSR
#include "./Flax/SSR.hlsl"
@@ -14,11 +14,13 @@
#include "./Flax/Lighting.hlsl"
#include "./Flax/ShadowsSampling.hlsl"
#include "./Flax/ExponentialHeightFog.hlsl"
#include "./Flax/VolumetricFog.hlsl"
@2// Forward Shading: Constants
LightData DirectionalLight;
LightData SkyLight;
ProbeData EnvironmentProbe;
EnvProbeData EnvironmentProbe;
ExponentialHeightFogData ExponentialHeightFog;
VolumetricFogData VolumetricFog;
float3 Dummy2;
uint LocalLightsCount;
LightData LocalLights[MAX_LOCAL_LIGHTS];
@@ -28,12 +30,14 @@ TextureCube SkyLightTexture : register(t__SRV__);
Buffer<float4> ShadowsBuffer : register(t__SRV__);
Texture2D<float> ShadowMap : register(t__SRV__);
Texture3D VolumetricFogTexture : register(t__SRV__);
Texture2D PreIntegratedGF : register(t__SRV__);
@4// Forward Shading: Utilities
// Public accessors for lighting data, use them as data binding might change but those methods will remain.
LightData GetDirectionalLight() { return DirectionalLight; }
LightData GetSkyLight() { return SkyLight; }
ProbeData GetEnvironmentProbe() { return EnvironmentProbe; }
EnvProbeData GetEnvironmentProbe() { return EnvironmentProbe; }
ExponentialHeightFogData GetExponentialHeightFog() { return ExponentialHeightFog; }
VolumetricFogData GetVolumetricFog() { return VolumetricFog; }
uint GetLocalLightsCount() { return LocalLightsCount; }
LightData GetLocalLight(uint i) { return LocalLights[i]; }
@5// Forward Shading: Shaders
@@ -108,7 +112,8 @@ void PS_Forward(
// Calculate reflections
#if USE_REFLECTIONS
float3 reflections = SampleReflectionProbe(ViewPos, EnvProbe, EnvironmentProbe, gBuffer.WorldPos, gBuffer.Normal, gBuffer.Roughness).rgb;
float4 reflections = SampleReflectionProbe(ViewPos, EnvProbe, EnvironmentProbe, gBuffer.WorldPos, gBuffer.Normal, gBuffer.Roughness);
reflections.rgb *= reflections.a;
#if MATERIAL_REFLECTIONS == MATERIAL_REFLECTIONS_SSR
// Screen Space Reflections
@@ -116,7 +121,7 @@ void PS_Forward(
Texture2D sceneColorTexture = MATERIAL_REFLECTIONS_SSR_COLOR;
float2 screenUV = materialInput.SvPosition.xy * ScreenSize.zw;
float stepSize = ScreenSize.z; // 1 / screenWidth
float maxSamples = 48;
float maxSamples = 50;
float worldAntiSelfOcclusionBias = 0.1f;
float brdfBias = 0.82f;
float drawDistance = 5000.0f;
@@ -124,7 +129,7 @@ void PS_Forward(
if (hit.z > 0)
{
float3 screenColor = sceneColorTexture.SampleLevel(SamplerPointClamp, hit.xy, 0).rgb;
reflections = lerp(reflections, screenColor, hit.z);
reflections.rgb = lerp(reflections.rgb, screenColor, hit.z);
}
// Fallback to software tracing if possible
@@ -136,17 +141,17 @@ void PS_Forward(
if (TraceSDFSoftwareReflections(gBuffer, reflectWS, surfaceAtlas))
{
float3 screenColor = sceneColorTexture.SampleLevel(SamplerPointClamp, hit.xy, 0).rgb;
reflections = lerp(surfaceAtlas, float4(screenColor, 1), hit.z);
reflections.rgb = lerp(surfaceAtlas, float4(screenColor, 1), hit.z);
}
}
#endif
#endif
light.rgb += reflections * GetReflectionSpecularLighting(ViewPos, gBuffer) * light.a;
light.rgb += reflections.rgb * GetReflectionSpecularLighting(PreIntegratedGF, ViewPos, gBuffer);
#endif
// Add lighting (apply ambient occlusion)
output.rgb += light.rgb * gBuffer.AO;
// Add lighting
output.rgb += light.rgb;
#endif
@@ -158,17 +163,13 @@ void PS_Forward(
#else
float fogSceneDistance = gBuffer.ViewPos.z;
#endif
float4 fog = GetExponentialHeightFog(ExponentialHeightFog, materialInput.WorldPosition, ViewPos, 0, fogSceneDistance);
float fogSkipDistance = max(ExponentialHeightFog.VolumetricFogMaxDistance - 100, 0);
float4 fog = GetExponentialHeightFog(ExponentialHeightFog, materialInput.WorldPosition, ViewPos, fogSkipDistance, fogSceneDistance);
if (ExponentialHeightFog.VolumetricFogMaxDistance > 0)
{
// Sample volumetric fog and mix it in
float2 screenUV = materialInput.SvPosition.xy * ScreenSize.zw;
float3 viewVector = materialInput.WorldPosition - ViewPos;
float sceneDepth = length(viewVector);
float depthSlice = sceneDepth / ExponentialHeightFog.VolumetricFogMaxDistance;
float3 volumeUV = float3(screenUV, depthSlice);
float4 volumetricFog = VolumetricFogTexture.SampleLevel(SamplerLinearClamp, volumeUV, 0);
float4 volumetricFog = SampleVolumetricFog(VolumetricFogTexture, VolumetricFog, materialInput.WorldPosition - ViewPos, screenUV, TemporalAAJitter);
fog = CombineVolumetricFog(fog, volumetricFog);
}

View File

@@ -67,7 +67,7 @@ float Rand(inout uint seed)
float3 ReprojectPosition(float2 uv, float rawDepth)
{
uv = uv * float2(2.0, -2.0) + float2(-1.0, 1.0);
float4 pos = mul(float4(uv.x, uv.y, rawDepth, 1.0f), InvViewProjectionMatrix);
float4 pos = PROJECT_POINT(float4(uv.x, uv.y, rawDepth, 1.0f), InvViewProjectionMatrix);
return pos.xyz / pos.w;
}
@@ -158,7 +158,7 @@ void SpawnParticle(Context context)
@4}
// Main entry point for the particles simulation and spawning
META_CS(true, FEATURE_LEVEL_SM5)
META_CS(true, AUTO)
[numthreads(THREAD_GROUP_SIZE, 1, 1)]
void CS_Main(uint3 dispatchThreadId : SV_DispatchThreadID)
{

View File

@@ -38,6 +38,7 @@ struct VertexOutput
#endif
float4 ClipExtents : TEXCOORD3;
float2 ClipOrigin : TEXCOORD4;
float2 CustomData : TEXCOORD5; // x-per-geometry type, y-features mask
#if USE_CUSTOM_VERTEX_INTERPOLATORS
float4 CustomVSToPS[CUSTOM_VERTEX_INTERPOLATORS_COUNT] : TEXCOORD9;
#endif
@@ -55,6 +56,7 @@ struct PixelInput
#endif
float4 ClipExtents : TEXCOORD3;
float2 ClipOrigin : TEXCOORD4;
float2 CustomData : TEXCOORD5; // x-per-geometry type, y-features mask
#if USE_CUSTOM_VERTEX_INTERPOLATORS
float4 CustomVSToPS[CUSTOM_VERTEX_INTERPOLATORS_COUNT] : TEXCOORD9;
#endif
@@ -67,6 +69,7 @@ struct MaterialInput
float3 WorldPosition;
float TwoSidedSign;
float2 TexCoord;
float2 CustomData; // x-per-geometry type, y-features mask
#if USE_VERTEX_COLOR
half4 VertexColor;
#endif
@@ -84,6 +87,7 @@ MaterialInput GetMaterialInput(Render2DVertex input, VertexOutput output)
MaterialInput result;
result.WorldPosition = output.WorldPosition;
result.TexCoord = output.TexCoord;
result.CustomData = input.CustomDataAndClipOrigin.xy;
#if USE_VERTEX_COLOR
result.VertexColor = output.VertexColor;
#endif
@@ -103,6 +107,7 @@ MaterialInput GetMaterialInput(PixelInput input)
MaterialInput result;
result.WorldPosition = input.WorldPosition;
result.TexCoord = input.TexCoord;
result.CustomData = input.CustomData;
#if USE_VERTEX_COLOR
result.VertexColor = input.VertexColor;
#endif
@@ -222,13 +227,14 @@ VertexOutput VS_GUI(Render2DVertex input)
if ((int)input.CustomDataAndClipOrigin.y & 1)
input.Position = (int2)input.Position;
output.Position = mul(float4(input.Position, 0, 1), ViewProjectionMatrix);
output.Position = PROJECT_POINT(float4(input.Position, 0, 1), ViewProjectionMatrix);
output.WorldPosition = mul(float4(input.Position, 0, 1), WorldMatrix).xyz;
output.TexCoord = input.TexCoord;
output.WindowPos = input.Position;
#if USE_VERTEX_COLOR
output.VertexColor = input.Color;
#endif
output.CustomData = input.CustomDataAndClipOrigin.xy;
output.ClipOrigin = input.CustomDataAndClipOrigin.zw;
output.ClipExtents = input.ClipExtents;

View File

@@ -393,7 +393,7 @@ VertexOutput VS_Sprite(SpriteInput input, uint particleIndex : SV_InstanceID)
output.WorldPosition = position + spriteVertexPosition;
// Compute clip space position
output.Position = mul(float4(output.WorldPosition.xyz, 1), ViewProjectionMatrix);
output.Position = PROJECT_POINT(float4(output.WorldPosition.xyz, 1), ViewProjectionMatrix);
// Pass vertex attributes
output.TexCoord = input.TexCoord;
@@ -431,7 +431,7 @@ VertexOutput VS_Sprite(SpriteInput input, uint particleIndex : SV_InstanceID)
// Apply world position offset per-vertex
#if USE_POSITION_OFFSET
output.WorldPosition += material.PositionOffset;
output.Position = mul(float4(output.WorldPosition.xyz, 1), ViewProjectionMatrix);
output.Position = PROJECT_POINT(float4(output.WorldPosition.xyz, 1), ViewProjectionMatrix);
#endif
// Copy interpolants for other shader stages
@@ -511,7 +511,7 @@ VertexOutput VS_Model(ModelInput input, uint particleIndex : SV_InstanceID)
output.WorldPosition = mul(float4(input.Position, 1), world).xyz;
// Compute clip space position
output.Position = mul(float4(output.WorldPosition, 1), ViewProjectionMatrix);
output.Position = PROJECT_POINT(float4(output.WorldPosition, 1), ViewProjectionMatrix);
// Pass vertex attributes
output.TexCoord = input.TexCoord0;
@@ -549,7 +549,7 @@ VertexOutput VS_Model(ModelInput input, uint particleIndex : SV_InstanceID)
// Apply world position offset per-vertex
#if USE_POSITION_OFFSET
output.WorldPosition += material.PositionOffset;
output.Position = mul(float4(output.WorldPosition.xyz, 1), ViewProjectionMatrix);
output.Position = PROJECT_POINT(float4(output.WorldPosition.xyz, 1), ViewProjectionMatrix);
#endif
// Copy interpolants for other shader stages
@@ -617,7 +617,7 @@ VertexOutput VS_Ribbon(RibbonInput input, uint vertexIndex : SV_VertexID)
output.WorldPosition = position + tangentRight * vertexSign * (ribbonWidth.xxx * 0.5f);
// Compute clip space position
output.Position = mul(float4(output.WorldPosition.xyz, 1), ViewProjectionMatrix);
output.Position = PROJECT_POINT(float4(output.WorldPosition.xyz, 1), ViewProjectionMatrix);
// Pass vertex attributes
output.ParticleIndex = particleIndex;
@@ -655,7 +655,7 @@ VertexOutput VS_Ribbon(RibbonInput input, uint vertexIndex : SV_VertexID)
// Apply world position offset per-vertex
#if USE_POSITION_OFFSET
output.WorldPosition += material.PositionOffset;
output.Position = mul(float4(output.WorldPosition.xyz, 1), ViewProjectionMatrix);
output.Position = PROJECT_POINT(float4(output.WorldPosition.xyz, 1), ViewProjectionMatrix);
#endif
// Copy interpolants for other shader stages

View File

@@ -342,7 +342,7 @@ VertexOutput VS(ModelInput input)
output.Geometry.PrevWorldPosition = mul(float4(input.Position.xyz, 1), object.PrevWorldMatrix).xyz;
// Compute clip space position
output.Position = mul(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
output.Position = PROJECT_POINT(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
// Pass vertex attributes
output.Geometry.TexCoords01 = float4(input.TexCoord0, input.TexCoord1);
@@ -378,7 +378,7 @@ VertexOutput VS(ModelInput input)
#if USE_POSITION_OFFSET
output.Geometry.WorldPosition += material.PositionOffset;
output.Geometry.PrevWorldPosition += material.PositionOffset;
output.Position = mul(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
output.Position = PROJECT_POINT(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
#endif
// Get tessalation multiplier (per vertex)
@@ -412,7 +412,7 @@ float4 VS_Depth(ModelInput_PosOnly input) : SV_Position
// Transform vertex position into the screen
float3 worldPosition = mul(float4(input.Position.xyz, 1), object.WorldMatrix).xyz;
float4 position = mul(float4(worldPosition, 1), ViewProjectionMatrix);
float4 position = PROJECT_POINT(float4(worldPosition, 1), ViewProjectionMatrix);
return position;
}
@@ -518,7 +518,7 @@ VertexOutput VS_Skinned(ModelInput_Skinned input)
#endif
// Compute clip space position
output.Position = mul(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
output.Position = PROJECT_POINT(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
// Pass vertex attributes
output.Geometry.TexCoords01 = float4(input.TexCoord0, input.TexCoord1);
@@ -549,7 +549,7 @@ VertexOutput VS_Skinned(ModelInput_Skinned input)
#if USE_POSITION_OFFSET
output.Geometry.WorldPosition += material.PositionOffset;
output.Geometry.PrevWorldPosition += material.PositionOffset;
output.Position = mul(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
output.Position = PROJECT_POINT(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
#endif
// Get tessalation multiplier (per vertex)

View File

@@ -388,7 +388,7 @@ VertexOutput VS(TerrainVertexInput input)
output.Geometry.WorldPosition = mul(float4(position, 1), worldMatrix).xyz;
// Compute clip space position
output.Position = mul(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
output.Position = PROJECT_POINT(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
// Pass vertex attributes
#if USE_SMOOTH_LOD_TRANSITION
@@ -436,7 +436,7 @@ VertexOutput VS(TerrainVertexInput input)
// Apply world position offset per-vertex
#if USE_POSITION_OFFSET
output.Geometry.WorldPosition += material.PositionOffset;
output.Position = mul(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
output.Position = PROJECT_POINT(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
#endif
// Get tessalation multiplier (per vertex)

View File

@@ -8,6 +8,7 @@
#include "./Flax/Common.hlsl"
#include "./Flax/MaterialCommon.hlsl"
#include "./Flax/GBufferCommon.hlsl"
#include "./Flax/VolumetricFog.hlsl"
@7
// Primary constant buffer (with additional material parameters)
@@ -21,6 +22,7 @@ float Dummy0;
float VolumetricFogMaxDistance;
int ParticleStride;
int ParticleIndex;
float4 GridSliceParameters;
@1META_CB_END
// Particles attributes buffer
@@ -202,19 +204,19 @@ Material GetMaterialPS(MaterialInput input)
META_PS(true, FEATURE_LEVEL_SM5)
void PS_VolumetricFog(Quad_GS2PS input, out float4 VBufferA : SV_Target0, out float4 VBufferB : SV_Target1)
{
// Reproject grid position back to the screen and world space
uint3 gridCoordinate = uint3(input.Vertex.Position.xy, input.LayerIndex);
float3 cellOffset = 0.5f;
float2 volumeUV = (gridCoordinate.xy + cellOffset.xy) / GridSize.xy;
float zSlice = gridCoordinate.z + cellOffset.z;
float sceneDepth = (zSlice / GridSize.z) * VolumetricFogMaxDistance / ViewFar;
float sceneDepth = GetDepthFromSlice(GridSliceParameters, gridCoordinate.z + cellOffset.z) / ViewFar;
float deviceDepth = (ViewInfo.w / sceneDepth) + ViewInfo.z;
float4 clipPos = float4(volumeUV * float2(2.0, -2.0) + float2(-1.0, 1.0), deviceDepth, 1.0);
float4 wsPos = mul(clipPos, InverseViewProjectionMatrix);
float3 positionWS = wsPos.xyz / wsPos.w;
wsPos.xyz /= wsPos.w;
// Get material parameters
MaterialInput materialInput = (MaterialInput)0;
materialInput.WorldPosition = positionWS;
materialInput.WorldPosition = wsPos.xyz;
materialInput.TexCoord = input.Vertex.TexCoord;
materialInput.ParticleIndex = ParticleIndex;
materialInput.TBN = float3x3(float3(1, 0, 0), float3(0, 1, 0), float3(0, 0, 1));
@@ -225,9 +227,10 @@ void PS_VolumetricFog(Quad_GS2PS input, out float4 VBufferA : SV_Target0, out fl
Material material = GetMaterialPS(materialInput);
// Compute fog properties
material.Opacity *= material.Mask;
float3 albedo = material.Color;
float extinction = material.Opacity * material.Mask * 0.001f;
float3 emission = material.Emissive;
float extinction = material.Opacity * 0.001f;
float3 emission = material.Emissive * material.Opacity;
float3 scattering = albedo * extinction;
float absorption = max(0.0f, extinction - Luminance(scattering));

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -2,18 +2,26 @@
"Name": "Flax",
"Version": {
"Major": 1,
"Minor": 11,
"Minor": 12,
"Revision": 0,
"Build": 6801
"Build": 6910
},
"Company": "Flax",
"Copyright": "Copyright (c) 2012-2025 Wojciech Figat. All rights reserved.",
"Copyright": "Copyright (c) 2012-2026 Wojciech Figat. All rights reserved.",
"GameTarget": "FlaxGame",
"EditorTarget": "FlaxEditor",
"Configuration": {
"UseCSharp": true,
"UseLargeWorlds": false,
"UseDotNet": true,
"UseSDL": true
"Windows": {
"UseSDL": false,
},
"Mac": {
"UseSDL": false,
},
"Linux": {
"UseSDL": true,
},
}
}
}

View File

@@ -188,7 +188,7 @@
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_FIELD_ATTRIBUTE_ON_SAME_LINE/@EntryValue">False</s:Boolean>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_FIELD_ATTRIBUTE_ON_SAME_LINE_EX/@EntryValue">NEVER</s:String>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_SIMPLE_ACCESSOR_ATTRIBUTE_ON_SAME_LINE/@EntryValue">False</s:Boolean>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_SIMPLE_CASE_STATEMENT_ON_SAME_LINE/@EntryValue">ALWAYS</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_SIMPLE_EMBEDDED_STATEMENT_ON_SAME_LINE/@EntryValue">NEVER</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SIMPLE_CASE_STATEMENT_STYLE/@EntryValue">ON_SINGLE_LINE</s:String>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_AFTER_TYPECAST_PARENTHESES/@EntryValue">False</s:Boolean>

View File

@@ -49,7 +49,7 @@ Follow the instructions below to compile and run the engine from source.
* Fedora: `sudo dnf install dotnet-sdk-8.0`
* Arch: `sudo pacman -S dotnet-sdk-8.0 dotnet-runtime-8.0 dotnet-targeting-pack-8.0 dotnet-host`
* Install Vulkan SDK ([https://vulkan.lunarg.com/](https://vulkan.lunarg.com/))
* Ubuntu: `sudo apt install vulkan-sdk`
* Ubuntu: `sudo apt install vulkan-sdk` (deprecated, follow official docs)
* Fedora: `sudo dnf install vulkan-headers vulkan-tools vulkan-validation-layers`
* Arch: `sudo pacman -S vulkan-headers vulkan-tools vulkan-validation-layers`
* Install Git with LFS
@@ -60,7 +60,7 @@ Follow the instructions below to compile and run the engine from source.
* Ubuntu: `sudo apt-get install libx11-dev libxcursor-dev libxinerama-dev zlib1g-dev`
* Fedora: `sudo dnf install libX11-devel libXcursor-devel libXinerama-devel ghc-zlib-devel`
* Arch: `sudo pacman -S base-devel libx11 libxcursor libxinerama zlib`
* Install Clang compiler (version 6 or later):
* Install Clang compiler (version 14 or later):
* Ubuntu: `sudo apt-get install clang lldb lld`
* Fedora: `sudo dnf install clang llvm lldb lld`
* Arch: `sudo pacman -S clang lldb lld`

View File

@@ -19,7 +19,7 @@ namespace FlaxEditor.Content.GUI
/// <summary>
/// Gets the target node.
/// </summary>
public ContentTreeNode TargetNode { get; }
public ContentFolderTreeNode TargetNode { get; }
/// <summary>
/// Initializes a new instance of the <see cref="ContentNavigationButton"/> class.
@@ -28,7 +28,7 @@ namespace FlaxEditor.Content.GUI
/// <param name="x">The x position.</param>
/// <param name="y">The y position.</param>
/// <param name="height">The height.</param>
public ContentNavigationButton(ContentTreeNode targetNode, float x, float y, float height)
public ContentNavigationButton(ContentFolderTreeNode targetNode, float x, float y, float height)
: base(x, y, height)
{
TargetNode = targetNode;
@@ -147,7 +147,7 @@ namespace FlaxEditor.Content.GUI
ClearItems();
foreach (var child in Target.TargetNode.Children)
{
if (child is ContentTreeNode node)
if (child is ContentFolderTreeNode node)
{
if (node.Folder.VisibleInHierarchy) // Respect the filter set by ContentFilterConfig.Filter(...)
AddItem(node.Folder.ShortName);
@@ -180,7 +180,7 @@ namespace FlaxEditor.Content.GUI
var item = _items[index];
foreach (var child in Target.TargetNode.Children)
{
if (child is ContentTreeNode node && node.Folder.ShortName == item)
if (child is ContentFolderTreeNode node && node.Folder.ShortName == item)
{
Editor.Instance.Windows.ContentWin.Navigate(node);
return;

View File

@@ -187,6 +187,11 @@ namespace FlaxEditor.Content.Import
// Glossiness, metalness, ambient occlusion, displacement, height, cavity or specular
_settings.Settings.Type = TextureFormatType.GrayScale;
}
else if (_settings.Settings.Type == TextureFormatType.ColorRGB)
{
// Blind guess that common color texture is sRGB
_settings.Settings.sRGB = true;
}
// Try to restore target asset texture import options (useful for fast reimport)
Editor.TryRestoreImportOptions(ref _settings.Settings, ResultUrl);

View File

@@ -59,7 +59,7 @@ namespace FlaxEditor.Content
/// <summary>
/// Gets the content node.
/// </summary>
public ContentTreeNode Node { get; }
public ContentFolderTreeNode Node { get; }
/// <summary>
/// The subitems of this folder.
@@ -72,7 +72,7 @@ namespace FlaxEditor.Content
/// <param name="type">The folder type.</param>
/// <param name="path">The path to the item.</param>
/// <param name="node">The folder parent node.</param>
internal ContentFolder(ContentFolderType type, string path, ContentTreeNode node)
internal ContentFolder(ContentFolderType type, string path, ContentFolderTreeNode node)
: base(path)
{
FolderType = type;
@@ -118,7 +118,7 @@ namespace FlaxEditor.Content
get
{
var hasParentFolder = ParentFolder != null;
var isContentFolder = Node is MainContentTreeNode;
var isContentFolder = Node is MainContentFolderTreeNode;
return hasParentFolder && !isContentFolder;
}
}

View File

@@ -281,6 +281,13 @@ namespace FlaxEditor.Content
private void CacheData()
{
if (!_asset)
{
_parameters = Utils.GetEmptyArray<ScriptMemberInfo>();
_methods = Utils.GetEmptyArray<ScriptMemberInfo>();
_attributes = Utils.GetEmptyArray<Attribute>();
return;
}
if (_parameters != null)
return;
if (_asset.WaitForLoaded())
@@ -344,13 +351,13 @@ namespace FlaxEditor.Content
}
/// <inheritdoc />
public string Name => Path.GetFileNameWithoutExtension(_asset.Path);
public string Name => _asset ? Path.GetFileNameWithoutExtension(_asset.Path) : null;
/// <inheritdoc />
public string Namespace => string.Empty;
/// <inheritdoc />
public string TypeName => JsonSerializer.GetStringID(_asset.ID);
public string TypeName => _asset ? JsonSerializer.GetStringID(_asset.ID) : null;
/// <inheritdoc />
public bool IsPublic => true;

View File

@@ -130,6 +130,11 @@ namespace FlaxEditor.Content
eyeAdaptation.Mode = EyeAdaptationMode.None;
eyeAdaptation.OverrideFlags |= EyeAdaptationSettingsOverride.Mode;
preview.PostFxVolume.EyeAdaptation = eyeAdaptation;
var antiAliasing = preview.PostFxVolume.AntiAliasing;
antiAliasing.Mode = AntialiasingMode.FastApproximateAntialiasing;
antiAliasing.OverrideFlags |= AntiAliasingSettingsOverride.Mode;
preview.PostFxVolume.AntiAliasing = antiAliasing;
}
}
}

View File

@@ -45,6 +45,8 @@ namespace FlaxEditor.Content.Thumbnails
{
if (item == null)
throw new ArgumentNullException();
if (_task == null)
return;
// Check if use default icon
var defaultThumbnail = item.DefaultThumbnail;
@@ -223,11 +225,12 @@ namespace FlaxEditor.Content.Thumbnails
/// <inheritdoc />
public override void OnInit()
{
if (Editor.IsHeadlessMode || (GPUDevice.Instance != null && GPUDevice.Instance.RendererType == RendererType.Null))
return;
// Create cache folder
if (!Directory.Exists(_cacheFolder))
{
Directory.CreateDirectory(_cacheFolder);
}
// Find atlases in a Editor cache directory
var files = Directory.GetFiles(_cacheFolder, "cache_*.flax", SearchOption.TopDirectoryOnly);
@@ -482,7 +485,7 @@ namespace FlaxEditor.Content.Thumbnails
public override void OnUpdate()
{
// Wait some frames before start generating previews (late init feature)
if (Time.TimeSinceStartup < 1.0f || HasAllAtlasesLoaded() == false)
if (Time.TimeSinceStartup < 1.0f || HasAllAtlasesLoaded() == false || _task == null)
return;
lock (_requests)

View File

@@ -0,0 +1,433 @@
// Copyright (c) Wojciech Figat. All rights reserved.
using System;
using System.Collections.Generic;
using FlaxEditor.GUI;
using FlaxEditor.GUI.Drag;
using FlaxEditor.GUI.Tree;
using FlaxEditor.SceneGraph;
using FlaxEditor.Utilities;
using FlaxEngine;
using FlaxEngine.GUI;
namespace FlaxEditor.Content;
/// <summary>
/// Content folder tree node.
/// </summary>
/// <seealso cref="TreeNode" />
public class ContentFolderTreeNode : TreeNode
{
private DragItems _dragOverItems;
private DragActors _dragActors;
private List<Rectangle> _highlights;
/// <summary>
/// The folder.
/// </summary>
protected ContentFolder _folder;
/// <summary>
/// Whether this node can be deleted.
/// </summary>
public virtual bool CanDelete => true;
/// <summary>
/// Whether this node can be duplicated.
/// </summary>
public virtual bool CanDuplicate => true;
/// <summary>
/// Gets the content folder item.
/// </summary>
public ContentFolder Folder => _folder;
/// <summary>
/// Gets the type of the folder.
/// </summary>
public ContentFolderType FolderType => _folder.FolderType;
/// <summary>
/// Returns true if that folder can import/manage scripts.
/// </summary>
public bool CanHaveScripts => _folder.CanHaveScripts;
/// <summary>
/// Returns true if that folder can import/manage assets.
/// </summary>
/// <returns>True if can contain assets for project, otherwise false</returns>
public bool CanHaveAssets => _folder.CanHaveAssets;
/// <summary>
/// Gets the parent node.
/// </summary>
public ContentFolderTreeNode ParentNode => Parent as ContentFolderTreeNode;
/// <summary>
/// Gets the folder path.
/// </summary>
public string Path => _folder.Path;
/// <summary>
/// Gets the navigation button label.
/// </summary>
public virtual string NavButtonLabel => _folder.ShortName;
/// <summary>
/// Initializes a new instance of the <see cref="ContentFolderTreeNode"/> class.
/// </summary>
/// <param name="parent">The parent node.</param>
/// <param name="path">The folder path.</param>
public ContentFolderTreeNode(ContentFolderTreeNode parent, string path)
: this(parent, parent?.FolderType ?? ContentFolderType.Other, path)
{
}
/// <summary>
/// Initializes a new instance of the <see cref="ContentFolderTreeNode"/> class.
/// </summary>
/// <param name="parent">The parent node.</param>
/// <param name="type">The folder type.</param>
/// <param name="path">The folder path.</param>
protected ContentFolderTreeNode(ContentFolderTreeNode parent, ContentFolderType type, string path)
: base(false, Editor.Instance.Icons.FolderClosed32, Editor.Instance.Icons.FolderOpen32)
{
_folder = new ContentFolder(type, path, this);
Text = _folder.ShortName;
if (parent != null)
{
Folder.ParentFolder = parent.Folder;
Parent = parent;
}
IconColor = Color.Transparent; // Hide default icon, we draw scaled icon manually
UpdateCustomArrowRect();
Editor.Instance?.Windows?.ContentWin?.TryAutoExpandContentNode(this);
}
/// <summary>
/// Updates the custom arrow rectangle so it stays aligned with the current layout.
/// </summary>
private void UpdateCustomArrowRect()
{
var contentWindow = Editor.Instance?.Windows?.ContentWin;
var scale = contentWindow != null && contentWindow.IsTreeOnlyMode ? contentWindow.View.ViewScale : 1.0f;
var arrowSize = Mathf.Clamp(12.0f * scale, 10.0f, 20.0f);
var iconSize = Mathf.Clamp(16.0f * scale, 12.0f, 28.0f);
// Use the current text layout, not just cached values.
var textRect = TextRect;
var iconLeft = textRect.Left - iconSize - 2.0f;
var x = Mathf.Max(iconLeft - arrowSize - 2.0f, 0.0f);
var y = Mathf.Max((HeaderHeight - arrowSize) * 0.5f, 0.0f);
CustomArrowRect = new Rectangle(x, y, arrowSize, arrowSize);
}
/// <inheritdoc />
public override void PerformLayout(bool force = false)
{
base.PerformLayout(force);
UpdateCustomArrowRect();
}
/// <summary>
/// Shows the rename popup for the item.
/// </summary>
public void StartRenaming()
{
if (!_folder.CanRename)
return;
// Start renaming the folder
Editor.Instance.Windows.ContentWin.ScrollingOnTreeView(false);
var dialog = RenamePopup.Show(this, TextRect, _folder.ShortName, false);
dialog.Tag = _folder;
dialog.Renamed += popup =>
{
Editor.Instance.Windows.ContentWin.Rename((ContentFolder)popup.Tag, popup.Text);
Editor.Instance.Windows.ContentWin.ScrollingOnTreeView(true);
};
dialog.Closed += popup => { Editor.Instance.Windows.ContentWin.ScrollingOnTreeView(true); };
}
/// <summary>
/// Updates the query search filter.
/// </summary>
/// <param name="filterText">The filter text.</param>
public void UpdateFilter(string filterText)
{
bool noFilter = string.IsNullOrWhiteSpace(filterText);
// Update itself
bool isThisVisible;
if (noFilter)
{
// Clear filter
_highlights?.Clear();
isThisVisible = true;
}
else
{
var text = Text;
if (QueryFilterHelper.Match(filterText, text, out QueryFilterHelper.Range[] ranges))
{
// Update highlights
if (_highlights == null)
_highlights = new List<Rectangle>(ranges.Length);
else
_highlights.Clear();
var style = Style.Current;
var font = style.FontSmall;
var textRect = TextRect;
for (int i = 0; i < ranges.Length; i++)
{
var start = font.GetCharPosition(text, ranges[i].StartIndex);
var end = font.GetCharPosition(text, ranges[i].EndIndex);
_highlights.Add(new Rectangle(start.X + textRect.X, textRect.Y, end.X - start.X, textRect.Height));
}
isThisVisible = true;
}
else
{
// Hide
_highlights?.Clear();
isThisVisible = false;
}
}
// Update children
bool isAnyChildVisible = false;
for (int i = 0; i < _children.Count; i++)
{
if (_children[i] is ContentFolderTreeNode child)
{
child.UpdateFilter(filterText);
isAnyChildVisible |= child.Visible;
}
else if (_children[i] is ContentItemTreeNode itemNode)
{
itemNode.UpdateFilter(filterText);
isAnyChildVisible |= itemNode.Visible;
}
}
if (!noFilter)
{
bool isExpanded = isAnyChildVisible;
if (isExpanded)
Expand(true);
else
Collapse(true);
}
Visible = isThisVisible | isAnyChildVisible;
}
/// <inheritdoc />
public override int Compare(Control other)
{
if (other is ContentItemTreeNode)
return -1;
if (other is ContentFolderTreeNode otherNode)
return string.Compare(Text, otherNode.Text, StringComparison.Ordinal);
return base.Compare(other);
}
/// <inheritdoc />
public override void Draw()
{
base.Draw();
// Draw all highlights
if (_highlights != null)
{
var style = Style.Current;
var color = style.ProgressNormal * 0.6f;
for (int i = 0; i < _highlights.Count; i++)
Render2D.FillRectangle(_highlights[i], color);
}
var contentWindow = Editor.Instance.Windows.ContentWin;
var scale = contentWindow != null && contentWindow.IsTreeOnlyMode ? contentWindow.View.ViewScale : 1.0f;
var icon = IsExpanded ? Editor.Instance.Icons.FolderOpen32 : Editor.Instance.Icons.FolderClosed32;
var iconSize = Mathf.Clamp(16.0f * scale, 12.0f, 28.0f);
var iconRect = new Rectangle(TextRect.Left - iconSize - 2.0f, (HeaderHeight - iconSize) * 0.5f, iconSize, iconSize);
Render2D.DrawSprite(icon, iconRect);
}
/// <inheritdoc />
public override void OnDestroy()
{
// Delete folder item
_folder.Dispose();
base.OnDestroy();
}
/// <inheritdoc />
protected override void OnExpandedChanged()
{
base.OnExpandedChanged();
Editor.Instance?.Windows?.ContentWin?.OnContentTreeNodeExpandedChanged(this, IsExpanded);
}
private DragDropEffect GetDragEffect(DragData data)
{
if (_dragActors != null && _dragActors.HasValidDrag)
return DragDropEffect.Move;
if (data is DragDataFiles)
{
if (_folder.CanHaveAssets)
return DragDropEffect.Copy;
}
else
{
if (_dragOverItems != null && _dragOverItems.HasValidDrag)
return DragDropEffect.Move;
}
return DragDropEffect.None;
}
private bool ValidateDragItem(ContentItem item)
{
// Reject itself and any parent
return item != _folder && !item.Find(_folder);
}
private bool ValidateDragActors(ActorNode actor)
{
return actor.CanCreatePrefab && _folder.CanHaveAssets;
}
private void ImportActors(DragActors actors)
{
Select();
foreach (var actorNode in actors.Objects)
{
var actor = actorNode.Actor;
if (actors.Objects.Contains(actorNode.ParentNode as ActorNode))
continue;
Editor.Instance.Prefabs.CreatePrefab(actor, false);
}
Editor.Instance.Windows.ContentWin.RefreshView();
}
/// <inheritdoc />
protected override DragDropEffect OnDragEnterHeader(DragData data)
{
if (data is DragDataFiles)
return _folder.CanHaveAssets ? DragDropEffect.Copy : DragDropEffect.None;
if (_dragActors == null)
_dragActors = new DragActors(ValidateDragActors);
if (_dragActors.OnDragEnter(data))
return DragDropEffect.Move;
if (_dragOverItems == null)
_dragOverItems = new DragItems(ValidateDragItem);
_dragOverItems.OnDragEnter(data);
return GetDragEffect(data);
}
/// <inheritdoc />
protected override DragDropEffect OnDragMoveHeader(DragData data)
{
if (data is DragDataFiles)
return _folder.CanHaveAssets ? DragDropEffect.Copy : DragDropEffect.None;
if (_dragActors != null && _dragActors.HasValidDrag)
return DragDropEffect.Move;
return GetDragEffect(data);
}
/// <inheritdoc />
protected override void OnDragLeaveHeader()
{
_dragOverItems?.OnDragLeave();
_dragActors?.OnDragLeave();
base.OnDragLeaveHeader();
}
/// <inheritdoc />
protected override DragDropEffect OnDragDropHeader(DragData data)
{
var result = DragDropEffect.None;
// Check if drop element or files
if (data is DragDataFiles files)
{
// Import files
Editor.Instance.ContentImporting.Import(files.Files, _folder);
result = DragDropEffect.Copy;
Expand();
}
else if (_dragActors != null && _dragActors.HasValidDrag)
{
ImportActors(_dragActors);
_dragActors.OnDragDrop();
result = DragDropEffect.Move;
Expand();
}
else if (_dragOverItems != null && _dragOverItems.HasValidDrag)
{
// Move items
Editor.Instance.ContentDatabase.Move(_dragOverItems.Objects, _folder);
result = DragDropEffect.Move;
Expand();
}
_dragOverItems?.OnDragDrop();
return result;
}
/// <inheritdoc />
protected override void DoDragDrop()
{
DoDragDrop(DragItems.GetDragData(_folder));
}
/// <inheritdoc />
protected override void OnLongPress()
{
Select();
StartRenaming();
}
/// <inheritdoc />
public override bool OnKeyDown(KeyboardKeys key)
{
if (IsFocused)
{
switch (key)
{
case KeyboardKeys.F2:
StartRenaming();
return true;
case KeyboardKeys.Delete:
if (Folder.Exists && CanDelete)
Editor.Instance.Windows.ContentWin.Delete(Folder);
return true;
}
if (RootWindow.GetKey(KeyboardKeys.Control))
{
switch (key)
{
case KeyboardKeys.D:
if (Folder.Exists && CanDuplicate)
Editor.Instance.Windows.ContentWin.Duplicate(Folder);
return true;
}
}
}
return base.OnKeyDown(key);
}
}

View File

@@ -0,0 +1,224 @@
// Copyright (c) Wojciech Figat. All rights reserved.
using System;
using System.Collections.Generic;
using FlaxEditor.Content.GUI;
using FlaxEditor.GUI.Drag;
using FlaxEditor.GUI.Tree;
using FlaxEditor.Utilities;
using FlaxEngine;
using FlaxEngine.GUI;
namespace FlaxEditor.Content;
/// <summary>
/// Tree node for non-folder content items.
/// </summary>
public sealed class ContentItemTreeNode : TreeNode, IContentItemOwner
{
private List<Rectangle> _highlights;
/// <summary>
/// The content item.
/// </summary>
public ContentItem Item { get; }
/// <summary>
/// Initializes a new instance of the <see cref="ContentItemTreeNode"/> class.
/// </summary>
/// <param name="item">The content item.</param>
public ContentItemTreeNode(ContentItem item)
: base(false, Editor.Instance.Icons.Document128, Editor.Instance.Icons.Document128)
{
Item = item ?? throw new ArgumentNullException(nameof(item));
UpdateDisplayedName();
IconColor = Color.Transparent; // Reserve icon space but draw custom thumbnail.
Item.AddReference(this);
}
private static SpriteHandle GetIcon(ContentItem item)
{
if (item == null)
return SpriteHandle.Invalid;
var icon = item.Thumbnail;
if (!icon.IsValid)
icon = item.DefaultThumbnail;
if (!icon.IsValid)
icon = Editor.Instance.Icons.Document128;
return icon;
}
/// <summary>
/// Updates the query search filter.
/// </summary>
/// <param name="filterText">The filter text.</param>
public void UpdateFilter(string filterText)
{
bool noFilter = string.IsNullOrWhiteSpace(filterText);
bool isVisible;
if (noFilter)
{
_highlights?.Clear();
isVisible = true;
}
else
{
var text = Text;
if (QueryFilterHelper.Match(filterText, text, out QueryFilterHelper.Range[] ranges))
{
if (_highlights == null)
_highlights = new List<Rectangle>(ranges.Length);
else
_highlights.Clear();
var style = Style.Current;
var font = style.FontSmall;
var textRect = TextRect;
for (int i = 0; i < ranges.Length; i++)
{
var start = font.GetCharPosition(text, ranges[i].StartIndex);
var end = font.GetCharPosition(text, ranges[i].EndIndex);
_highlights.Add(new Rectangle(start.X + textRect.X, textRect.Y, end.X - start.X, textRect.Height));
}
isVisible = true;
}
else
{
_highlights?.Clear();
isVisible = false;
}
}
Visible = isVisible;
}
/// <inheritdoc />
public override void Draw()
{
base.Draw();
var icon = GetIcon(Item);
if (icon.IsValid)
{
var contentWindow = Editor.Instance.Windows.ContentWin;
var scale = contentWindow != null && contentWindow.IsTreeOnlyMode ? contentWindow.View.ViewScale : 1.0f;
var iconSize = Mathf.Clamp(16.0f * scale, 12.0f, 28.0f);
var textRect = TextRect;
var iconRect = new Rectangle(textRect.Left - iconSize - 2.0f, (HeaderHeight - iconSize) * 0.5f, iconSize, iconSize);
Render2D.DrawSprite(icon, iconRect);
}
if (_highlights != null)
{
var style = Style.Current;
var color = style.ProgressNormal * 0.6f;
for (int i = 0; i < _highlights.Count; i++)
Render2D.FillRectangle(_highlights[i], color);
}
}
/// <inheritdoc />
protected override bool OnMouseDoubleClickHeader(ref Float2 location, MouseButton button)
{
if (button == MouseButton.Left)
{
Editor.Instance.Windows.ContentWin.Open(Item);
return true;
}
return base.OnMouseDoubleClickHeader(ref location, button);
}
/// <inheritdoc />
public override bool OnKeyDown(KeyboardKeys key)
{
if (IsFocused)
{
switch (key)
{
case KeyboardKeys.Return:
Editor.Instance.Windows.ContentWin.Open(Item);
return true;
case KeyboardKeys.F2:
Editor.Instance.Windows.ContentWin.Rename(Item);
return true;
case KeyboardKeys.Delete:
Editor.Instance.Windows.ContentWin.Delete(Item);
return true;
}
}
return base.OnKeyDown(key);
}
/// <inheritdoc />
protected override void DoDragDrop()
{
DoDragDrop(DragItems.GetDragData(Item));
}
/// <inheritdoc />
public override bool OnShowTooltip(out string text, out Float2 location, out Rectangle area)
{
Item.UpdateTooltipText();
TooltipText = Item.TooltipText;
return base.OnShowTooltip(out text, out location, out area);
}
/// <inheritdoc />
void IContentItemOwner.OnItemDeleted(ContentItem item)
{
}
/// <inheritdoc />
void IContentItemOwner.OnItemRenamed(ContentItem item)
{
UpdateDisplayedName();
}
/// <inheritdoc />
void IContentItemOwner.OnItemReimported(ContentItem item)
{
}
/// <inheritdoc />
void IContentItemOwner.OnItemDispose(ContentItem item)
{
}
/// <inheritdoc />
public override int Compare(Control other)
{
if (other is ContentFolderTreeNode)
return 1;
if (other is ContentItemTreeNode otherItem)
return ApplySortOrder(string.Compare(Text, otherItem.Text, StringComparison.InvariantCulture));
return base.Compare(other);
}
/// <inheritdoc />
public override void OnDestroy()
{
Item.RemoveReference(this);
base.OnDestroy();
}
/// <summary>
/// Updates the text of the node.
/// </summary>
public void UpdateDisplayedName()
{
var contentWindow = Editor.Instance?.Windows?.ContentWin;
var showExtensions = contentWindow?.View?.ShowFileExtensions ?? true;
Text = Item.ShowFileExtension || showExtensions ? Item.FileName : Item.ShortName;
}
private static SortType GetSortType()
{
return Editor.Instance?.Windows?.ContentWin?.CurrentSortType ?? SortType.AlphabeticOrder;
}
private static int ApplySortOrder(int result)
{
return GetSortType() == SortType.AlphabeticReverse ? -result : result;
}
}

View File

@@ -1,333 +0,0 @@
// Copyright (c) Wojciech Figat. All rights reserved.
using System.Collections.Generic;
using FlaxEditor.GUI;
using FlaxEditor.GUI.Drag;
using FlaxEditor.GUI.Tree;
using FlaxEditor.Utilities;
using FlaxEngine;
using FlaxEngine.GUI;
namespace FlaxEditor.Content
{
/// <summary>
/// Content folder tree node.
/// </summary>
/// <seealso cref="TreeNode" />
public class ContentTreeNode : TreeNode
{
private DragItems _dragOverItems;
private List<Rectangle> _highlights;
/// <summary>
/// The folder.
/// </summary>
protected ContentFolder _folder;
/// <summary>
/// Whether this node can be deleted.
/// </summary>
public virtual bool CanDelete => true;
/// <summary>
/// Whether this node can be duplicated.
/// </summary>
public virtual bool CanDuplicate => true;
/// <summary>
/// Gets the content folder item.
/// </summary>
public ContentFolder Folder => _folder;
/// <summary>
/// Gets the type of the folder.
/// </summary>
public ContentFolderType FolderType => _folder.FolderType;
/// <summary>
/// Returns true if that folder can import/manage scripts.
/// </summary>
public bool CanHaveScripts => _folder.CanHaveScripts;
/// <summary>
/// Returns true if that folder can import/manage assets.
/// </summary>
/// <returns>True if can contain assets for project, otherwise false</returns>
public bool CanHaveAssets => _folder.CanHaveAssets;
/// <summary>
/// Gets the parent node.
/// </summary>
public ContentTreeNode ParentNode => Parent as ContentTreeNode;
/// <summary>
/// Gets the folder path.
/// </summary>
public string Path => _folder.Path;
/// <summary>
/// Gets the navigation button label.
/// </summary>
public virtual string NavButtonLabel => _folder.ShortName;
/// <summary>
/// Initializes a new instance of the <see cref="ContentTreeNode"/> class.
/// </summary>
/// <param name="parent">The parent node.</param>
/// <param name="path">The folder path.</param>
public ContentTreeNode(ContentTreeNode parent, string path)
: this(parent, parent?.FolderType ?? ContentFolderType.Other, path)
{
}
/// <summary>
/// Initializes a new instance of the <see cref="ContentTreeNode"/> class.
/// </summary>
/// <param name="parent">The parent node.</param>
/// <param name="type">The folder type.</param>
/// <param name="path">The folder path.</param>
protected ContentTreeNode(ContentTreeNode parent, ContentFolderType type, string path)
: base(false, Editor.Instance.Icons.FolderClosed32, Editor.Instance.Icons.FolderOpen32)
{
_folder = new ContentFolder(type, path, this);
Text = _folder.ShortName;
if (parent != null)
{
Folder.ParentFolder = parent.Folder;
Parent = parent;
}
IconColor = Style.Current.Foreground;
}
/// <summary>
/// Shows the rename popup for the item.
/// </summary>
public void StartRenaming()
{
if (!_folder.CanRename)
return;
// Start renaming the folder
Editor.Instance.Windows.ContentWin.ScrollingOnTreeView(false);
var dialog = RenamePopup.Show(this, TextRect, _folder.ShortName, false);
dialog.Tag = _folder;
dialog.Renamed += popup =>
{
Editor.Instance.Windows.ContentWin.Rename((ContentFolder)popup.Tag, popup.Text);
Editor.Instance.Windows.ContentWin.ScrollingOnTreeView(true);
};
dialog.Closed += popup => { Editor.Instance.Windows.ContentWin.ScrollingOnTreeView(true); };
}
/// <summary>
/// Updates the query search filter.
/// </summary>
/// <param name="filterText">The filter text.</param>
public void UpdateFilter(string filterText)
{
bool noFilter = string.IsNullOrWhiteSpace(filterText);
// Update itself
bool isThisVisible;
if (noFilter)
{
// Clear filter
_highlights?.Clear();
isThisVisible = true;
}
else
{
var text = Text;
if (QueryFilterHelper.Match(filterText, text, out QueryFilterHelper.Range[] ranges))
{
// Update highlights
if (_highlights == null)
_highlights = new List<Rectangle>(ranges.Length);
else
_highlights.Clear();
var style = Style.Current;
var font = style.FontSmall;
var textRect = TextRect;
for (int i = 0; i < ranges.Length; i++)
{
var start = font.GetCharPosition(text, ranges[i].StartIndex);
var end = font.GetCharPosition(text, ranges[i].EndIndex);
_highlights.Add(new Rectangle(start.X + textRect.X, textRect.Y, end.X - start.X, textRect.Height));
}
isThisVisible = true;
}
else
{
// Hide
_highlights?.Clear();
isThisVisible = false;
}
}
// Update children
bool isAnyChildVisible = false;
for (int i = 0; i < _children.Count; i++)
{
if (_children[i] is ContentTreeNode child)
{
child.UpdateFilter(filterText);
isAnyChildVisible |= child.Visible;
}
}
bool isExpanded = isAnyChildVisible;
if (isExpanded)
{
Expand(true);
}
else
{
Collapse(true);
}
Visible = isThisVisible | isAnyChildVisible;
}
/// <inheritdoc />
public override void Draw()
{
base.Draw();
// Draw all highlights
if (_highlights != null)
{
var style = Style.Current;
var color = style.ProgressNormal * 0.6f;
for (int i = 0; i < _highlights.Count; i++)
Render2D.FillRectangle(_highlights[i], color);
}
}
/// <inheritdoc />
public override void OnDestroy()
{
// Delete folder item
_folder.Dispose();
base.OnDestroy();
}
private DragDropEffect GetDragEffect(DragData data)
{
if (data is DragDataFiles)
{
if (_folder.CanHaveAssets)
return DragDropEffect.Copy;
}
else
{
if (_dragOverItems.HasValidDrag)
return DragDropEffect.Move;
}
return DragDropEffect.None;
}
private bool ValidateDragItem(ContentItem item)
{
// Reject itself and any parent
return item != _folder && !item.Find(_folder);
}
/// <inheritdoc />
protected override DragDropEffect OnDragEnterHeader(DragData data)
{
if (_dragOverItems == null)
_dragOverItems = new DragItems(ValidateDragItem);
_dragOverItems.OnDragEnter(data);
return GetDragEffect(data);
}
/// <inheritdoc />
protected override DragDropEffect OnDragMoveHeader(DragData data)
{
return GetDragEffect(data);
}
/// <inheritdoc />
protected override void OnDragLeaveHeader()
{
_dragOverItems.OnDragLeave();
base.OnDragLeaveHeader();
}
/// <inheritdoc />
protected override DragDropEffect OnDragDropHeader(DragData data)
{
var result = DragDropEffect.None;
// Check if drop element or files
if (data is DragDataFiles files)
{
// Import files
Editor.Instance.ContentImporting.Import(files.Files, _folder);
result = DragDropEffect.Copy;
Expand();
}
else if (_dragOverItems.HasValidDrag)
{
// Move items
Editor.Instance.ContentDatabase.Move(_dragOverItems.Objects, _folder);
result = DragDropEffect.Move;
Expand();
}
_dragOverItems.OnDragDrop();
return result;
}
/// <inheritdoc />
protected override void DoDragDrop()
{
DoDragDrop(DragItems.GetDragData(_folder));
}
/// <inheritdoc />
protected override void OnLongPress()
{
Select();
StartRenaming();
}
/// <inheritdoc />
public override bool OnKeyDown(KeyboardKeys key)
{
if (IsFocused)
{
switch (key)
{
case KeyboardKeys.F2:
StartRenaming();
return true;
case KeyboardKeys.Delete:
if (Folder.Exists && CanDelete)
Editor.Instance.Windows.ContentWin.Delete(Folder);
return true;
}
if (RootWindow.GetKey(KeyboardKeys.Control))
{
switch (key)
{
case KeyboardKeys.D:
if (Folder.Exists && CanDuplicate)
Editor.Instance.Windows.ContentWin.Duplicate(Folder);
return true;
}
}
}
return base.OnKeyDown(key);
}
}
}

View File

@@ -7,8 +7,8 @@ namespace FlaxEditor.Content
/// <summary>
/// Content tree node used for main directories.
/// </summary>
/// <seealso cref="FlaxEditor.Content.ContentTreeNode" />
public class MainContentTreeNode : ContentTreeNode
/// <seealso cref="ContentFolderTreeNode" />
public class MainContentFolderTreeNode : ContentFolderTreeNode
{
private FileSystemWatcher _watcher;
@@ -19,12 +19,12 @@ namespace FlaxEditor.Content
public override bool CanDuplicate => false;
/// <summary>
/// Initializes a new instance of the <see cref="MainContentTreeNode"/> class.
/// Initializes a new instance of the <see cref="MainContentFolderTreeNode"/> class.
/// </summary>
/// <param name="parent">The parent project.</param>
/// <param name="type">The folder type.</param>
/// <param name="path">The folder path.</param>
public MainContentTreeNode(ProjectTreeNode parent, ContentFolderType type, string path)
public MainContentFolderTreeNode(ProjectFolderTreeNode parent, ContentFolderType type, string path)
: base(parent, type, path)
{
_watcher = new FileSystemWatcher(path)

View File

@@ -1,5 +1,6 @@
// Copyright (c) Wojciech Figat. All rights reserved.
using System;
using FlaxEngine.GUI;
namespace FlaxEditor.Content
@@ -7,8 +8,8 @@ namespace FlaxEditor.Content
/// <summary>
/// Root tree node for the project workspace.
/// </summary>
/// <seealso cref="FlaxEditor.Content.ContentTreeNode" />
public sealed class ProjectTreeNode : ContentTreeNode
/// <seealso cref="ContentFolderTreeNode" />
public sealed class ProjectFolderTreeNode : ContentFolderTreeNode
{
/// <summary>
/// The project/
@@ -18,18 +19,18 @@ namespace FlaxEditor.Content
/// <summary>
/// The project content directory.
/// </summary>
public MainContentTreeNode Content;
public MainContentFolderTreeNode Content;
/// <summary>
/// The project source code directory.
/// </summary>
public MainContentTreeNode Source;
public MainContentFolderTreeNode Source;
/// <summary>
/// Initializes a new instance of the <see cref="ProjectTreeNode"/> class.
/// Initializes a new instance of the <see cref="ProjectFolderTreeNode"/> class.
/// </summary>
/// <param name="project">The project.</param>
public ProjectTreeNode(ProjectInfo project)
public ProjectFolderTreeNode(ProjectInfo project)
: base(null, project.ProjectFolderPath)
{
Project = project;
@@ -48,9 +49,29 @@ namespace FlaxEditor.Content
/// <inheritdoc />
public override int Compare(Control other)
{
// Move the main game project to the top
if (Project.Name == Editor.Instance.GameProject.Name)
return -1;
if (other is ProjectFolderTreeNode otherProject)
{
var gameProject = Editor.Instance.GameProject;
var engineProject = Editor.Instance.EngineProject;
bool isGame = Project == gameProject;
bool isEngine = Project == engineProject;
bool otherIsGame = otherProject.Project == gameProject;
bool otherIsEngine = otherProject.Project == engineProject;
// Main game project at the top
if (isGame && !otherIsGame)
return -1;
if (!isGame && otherIsGame)
return 1;
// Engine project at the bottom (when distinct)
if (isEngine && !otherIsEngine)
return 1;
if (!isEngine && otherIsEngine)
return -1;
return string.CompareOrdinal(Project.Name, otherProject.Project.Name);
}
return base.Compare(other);
}
}

View File

@@ -5,13 +5,13 @@ namespace FlaxEditor.Content
/// <summary>
/// Root tree node for the content workspace.
/// </summary>
/// <seealso cref="FlaxEditor.Content.ContentTreeNode" />
public sealed class RootContentTreeNode : ContentTreeNode
/// <seealso cref="ContentFolderTreeNode" />
public sealed class RootContentFolderTreeNode : ContentFolderTreeNode
{
/// <summary>
/// Initializes a new instance of the <see cref="RootContentTreeNode"/> class.
/// Initializes a new instance of the <see cref="RootContentFolderTreeNode"/> class.
/// </summary>
public RootContentTreeNode()
public RootContentFolderTreeNode()
: base(null, string.Empty)
{
}

View File

@@ -141,6 +141,11 @@ API_ENUM() enum class BuildPlatform
/// </summary>
API_ENUM(Attributes="EditorDisplay(null, \"Windows ARM64\")")
WindowsARM64 = 15,
/// <summary>
/// Web
/// </summary>
Web = 16,
};
/// <summary>
@@ -188,6 +193,11 @@ enum class DotNetAOTModes
/// Use Mono AOT to cross-compile all used C# assemblies into native platform static libraries which can be linked into a single shared library.
/// </summary>
MonoAOTStatic,
/// <summary>
/// Target platform doesn't support .NET or it has been disabled.
/// </summary>
NoDotnet,
};
extern FLAXENGINE_API const Char* ToString(const BuildPlatform platform);

View File

@@ -69,6 +69,10 @@
#include "Platform/iOS/iOSPlatformTools.h"
#include "Engine/Platform/iOS/iOSPlatformSettings.h"
#endif
#if PLATFORM_TOOLS_WEB
#include "Platform/Web/WebPlatformTools.h"
#include "Engine/Platform/Web/WebPlatformSettings.h"
#endif
namespace GameCookerImpl
{
@@ -151,6 +155,8 @@ const Char* ToString(const BuildPlatform platform)
return TEXT("iOS ARM64");
case BuildPlatform::WindowsARM64:
return TEXT("Windows ARM64");
case BuildPlatform::Web:
return TEXT("Web");
default:
return TEXT("");
}
@@ -183,6 +189,8 @@ const Char* ToString(const DotNetAOTModes mode)
return TEXT("MonoAOTDynamic");
case DotNetAOTModes::MonoAOTStatic:
return TEXT("MonoAOTStatic");
case DotNetAOTModes::NoDotnet:
return TEXT("NoDotnet");
default:
return TEXT("");
}
@@ -307,6 +315,10 @@ void CookingData::GetBuildPlatformName(const Char*& platform, const Char*& archi
platform = TEXT("Windows");
architecture = TEXT("ARM64");
break;
case BuildPlatform::Web:
platform = TEXT("Web");
architecture = TEXT("x86");
break;
default:
LOG(Fatal, "Unknown or unsupported build platform.");
}
@@ -461,6 +473,11 @@ PlatformTools* GameCooker::GetTools(BuildPlatform platform)
case BuildPlatform::iOSARM64:
result = New<iOSPlatformTools>();
break;
#endif
#if PLATFORM_TOOLS_WEB
case BuildPlatform::Web:
result = New<WebPlatformTools>();
break;
#endif
}
Tools.Add(platform, result);
@@ -518,7 +535,8 @@ bool GameCooker::Build(BuildPlatform platform, BuildConfiguration configuration,
{
Function<int32()> f;
f.Bind(ThreadFunction);
const auto thread = ThreadSpawner::Start(f, GameCookerServiceInstance.Name, ThreadPriority::Highest);
uint32 stackSize = 4 * 1024 * 1024; // Larger stack
const auto thread = ThreadSpawner::Start(f, GameCookerServiceInstance.Name, ThreadPriority::Highest, stackSize);
if (thread == nullptr)
{
GameCookerImpl::IsRunning = false;
@@ -604,6 +622,9 @@ void GameCooker::GetCurrentPlatform(PlatformType& platform, BuildPlatform& build
case PlatformType::iOS:
buildPlatform = BuildPlatform::iOSARM64;
break;
case PlatformType::Web:
buildPlatform = BuildPlatform::Web;
break;
default: ;
}
}

View File

@@ -106,6 +106,7 @@ namespace FlaxEditor
case BuildPlatform.MacOSARM64:
case BuildPlatform.MacOSx64: return PlatformType.Mac;
case BuildPlatform.iOSARM64: return PlatformType.iOS;
case BuildPlatform.Web: return PlatformType.Web;
default: throw new ArgumentOutOfRangeException(nameof(buildPlatform), buildPlatform, null);
}
}

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