879 Commits

Author SHA1 Message Date
fd5c50635c some mac changes?
Some checks failed
Build Android / Game (Android, Release ARM64) (push) Has been cancelled
Build iOS / Game (iOS, Release ARM64) (push) Has been cancelled
Build Linux / Editor (Linux, Development x64) (push) Has been cancelled
Build Linux / Game (Linux, Release x64) (push) Has been cancelled
Build macOS / Editor (Mac, Development ARM64) (push) Has been cancelled
Build macOS / Game (Mac, Release ARM64) (push) Has been cancelled
Build Windows / Editor (Windows, Development x64) (push) Has been cancelled
Build Windows / Game (Windows, Release x64) (push) Has been cancelled
Cooker / Cook (Mac) (push) Has been cancelled
Tests / Tests (Linux) (push) Has been cancelled
Tests / Tests (Windows) (push) Has been cancelled
2026-02-12 18:40:05 +02: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
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
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
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
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
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
Wojtek Figat
f733611213 Fix various issues with audio and video playback
#3716
2026-02-04 21:48:02 +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
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
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
Wojtek Figat
449fc597b5 Fix crash when using overlapping instances
#3899
2026-02-02 19:21:45 +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
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
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
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
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
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
e3f5af530b Fix incorrect class namespace in bindings class name lookups 2025-12-19 23:57:41 +02: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
2a959d0531 Support Visual Studio 2026 as a generator for CMake dependencies 2025-12-18 18:05:45 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
668a4dbb4d Merge remote-tracking branch 'origin/master' into sdl_platform 2025-10-14 01:09:26 +03: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
Wojtek Figat
e19be4c0c6 Merge branch 'xxSeys1-ColorValueBoxDisplayAlpha' 2025-10-13 20:53:22 +02:00
Wojtek Figat
2d5fdfef2f Merge branch 'ColorValueBoxDisplayAlpha' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-ColorValueBoxDisplayAlpha 2025-10-13 20:51:13 +02:00
Wojtek Figat
46ee6bc193 Merge branch 'xxSeys1-NicerOldNewEditorWarnings' 2025-10-13 20:50:17 +02:00
Wojtek Figat
a2ee2ec6ac Merge branch 'NicerOldNewEditorWarnings' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-NicerOldNewEditorWarnings 2025-10-13 20:50:13 +02:00
Wojtek Figat
2caaef02ad Merge branch 'Tryibion-fix-coll-data-delete-crash' 2025-10-13 20:49:37 +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
Chandler Cox
b62f331b08 Fix crash when deleting collision data. 2025-10-12 17:04:40 -05:00
Wojtek Figat
f7b306532b Merge branch 'GoaLitiuM-openal_pipewire_fixes' 2025-10-12 23:25:24 +02:00
Wojtek Figat
212abe7d90 Update OpenAL for Windows and Android
#3338
2025-10-12 23:25:17 +02:00
Wojtek Figat
7dfc37f652 Adjustments for #3338 2025-10-12 23:24:34 +02:00
Wojtek Figat
12decc3320 Merge branch 'openal_pipewire_fixes' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-openal_pipewire_fixes
# Conflicts:
#	Source/Tools/Flax.Build/Deps/Dependencies/OpenAL.cs
2025-10-12 22:39:34 +02:00
Wojtek Figat
d7a528cdbc Update assets 2025-10-12 22:38:11 +02:00
Wojtek Figat
18364d2a8b Merge remote-tracking branch 'origin/1.11' 2025-10-12 21:50:19 +02:00
Saas
5a9eedfadb make old/ new editor dialog boxes nicer to read 2025-10-12 20:14:43 +02:00
Saas
be7871c292 use Render2D based solution rather than shader for alpha grid
https://github.com/FlaxEngine/FlaxEngine/pull/3281#issuecomment-3218049398
2025-10-12 16:50:31 +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
Wojtek Figat
abdeaa9354 Update build number 2025-10-11 00:17:41 +02:00
Wojtek Figat
d3389604b0 Update engine materials 2025-10-11 00:17:02 +02:00
Wojtek Figat
d426c5b0d9 Merge remote-tracking branch 'origin/master' into 1.11
# Conflicts:
#	Source/Engine/Physics/Colliders/Collider.h
2025-10-11 00:16:10 +02:00
Wojtek Figat
2bf62cc54f Add GPUDevice.VideoOutputs with a list of attached monitors 2025-10-09 15:13:04 +02:00
Wojtek Figat
8cb67f017a Fix PlayStation build regression 2025-10-07 18:23:53 +02:00
Wojtek Figat
7b643e9685 Fix volumetric fog particles drawing regression 2025-10-07 18:23:39 +02:00
Wojtek Figat
39803ce6b2 Add **render layer mask to decals**
#967 #3080
2025-10-07 18:23:03 +02:00
Wojtek Figat
2f1f380062 Add new scene textures SceneStencil and ObjectLayer to sample Stencil buffer 2025-10-07 18:10:14 +02:00
Wojtek Figat
f8dbf363b6 Fix crash on Android when loading mesh with SDF data 2025-10-07 18:09:18 +02:00
Wojtek Figat
fc1451254d Fix missing terrain debug shapes drawing when only in a view 2025-10-07 18:08:51 +02:00
Wojtek Figat
d3c54e590a Fix quad overdraw debug drawing regression 2025-10-07 18:08:32 +02:00
Wojtek Figat
361fc3ecfb Add stencil buffer usage with object layer information
#3080 #967
2025-10-07 18:07:23 +02:00
Wojtek Figat
823ed247d2 Merge remote-tracking branch 'origin/master' into 1.11
# Conflicts:
#	Source/Engine/Level/Actors/Sky.cpp
2025-10-03 22:37:32 +02:00
Wojtek Figat
93219793d5 Merge remote-tracking branch 'origin/master' into 1.11 2025-09-30 18:26:14 +02:00
Wojtek Figat
32f2ef3f06 Fix Android compilation 2025-09-30 18:26:10 +02:00
Wojtek Figat
086a49f45d Fix deadlock when updating Text Render layout during scene rendering 2025-09-30 15:46:06 +02:00
Wojtek Figat
c46e1164d6 Add hot-reload support for material feature template sources on material generation 2025-09-30 15:45:45 +02:00
Wojtek Figat
2a5898c1de Fix regression from #3342 to use existing time as unscaled to match previous content 2025-09-30 15:45:24 +02:00
Wojtek Figat
f09d6aa0eb Fix fog rendering bug on d3d11/d3d10 2025-09-30 15:44:34 +02:00
Wojtek Figat
0848f1fa83 Refactor specular lighting to properly map specular as reflectance in BRDF
Reference: https://google.github.io/filament/Filament.md.html

#1492
2025-09-30 15:43:55 +02:00
Wojtek Figat
02c5ad3fa4 Fix particles to support any amount of contexts drawings 2025-09-25 18:38:46 +02:00
Wojtek Figat
41e851298d Add new PreIntegratedGF with 80% smaller but more accurate data
Update old generation code, use R16G16_UNorm format instead of R11G11B10, skip mips and reduce Y axis to 32 pixels.

#1492
2025-09-25 17:35:10 +02:00
Wojtek Figat
d57eec3403 Bump up materials after merge 2025-09-24 18:26:33 +02:00
Wojtek Figat
87e2c4c4d5 Merge remote-tracking branch 'origin/master' into 1.11
# Conflicts:
#	Content/Editor/DebugMaterials/DDGIDebugProbes.flax
#	Source/Editor/Windows/OutputLogWindow.cs
#	Source/Engine/Level/Actor.cpp
2025-09-24 18:18:27 +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
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
Wojtek Figat
f323fdb592 Add and use Max Mesh Position Error to Build Settings for automatic mesh vertex positions storage 2025-09-12 17:53:14 +02:00
Wojtek Figat
b537a80031 Fix regression in lights/shadows setup from 1a88fefd76 2025-09-09 23:53:28 +02:00
Wojtek Figat
5e52bf6469 Fix missing code from 80de56f469 2025-09-09 23:21:10 +02:00
Wojtek Figat
8482f93a0f Merge remote-tracking branch 'origin/1.11' into 1.11 2025-09-09 22:58:34 +02:00
Wojtek Figat
64c62f269c Optimize D3D12 with D3D12_HEAP_FLAG_CREATE_NOT_ZEROED in some cases 2025-09-09 22:54:37 +02:00
Wojtek Figat
19d0d3b683 Remove system lockers during asset loads or saving (only unload needs it) 2025-09-09 15:26:27 +02:00
Wojtek Figat
1f56c75821 Minor fixes 2025-09-09 15:26:03 +02:00
Wojtek Figat
64e127a47a Fix crashes of scripting backend on Android 2025-09-09 15:25:24 +02:00
Wojtek Figat
8921cf5156 Add label/button text to string convertion for better debugging 2025-09-09 10:42:10 +02:00
Wojtek Figat
24e088fc08 Fix compilation warnings 2025-09-09 10:23:07 +02:00
Wojtek Figat
14a69a11df Add Android native crashes caching 2025-09-07 23:50:41 +02:00
1d8f221f1b Merge remote-tracking branch 'origin/1.11' into sdl_platform_1.11
# Conflicts:
#	Source/Engine/Platform/Windows/WindowsPlatform.cpp
#	Source/Tools/Flax.Build/Build/ProjectTarget.cs
#	Source/Tools/Flax.Build/Configuration.cs
2025-09-07 19:31:16 +03:00
Wojtek Figat
42b542d190 Improve recent changes to memory barriers on Vulkan 2025-09-07 00:17:11 +02:00
Wojtek Figat
576b0710e0 Fix GPU particles issues with missing sorting keys data when shader is not yet loaded 2025-09-06 23:37:24 +02:00
Wojtek Figat
44e70692a2 Fix render memory alignment issues to prevent crashes on Android 2025-09-06 23:36:54 +02:00
Wojtek Figat
857b0c5ac3 Fix various graphics issues detected by Vulkan Validation Layers on Android 2025-09-06 23:32:54 +02:00
Wojtek Figat
1f6d837117 Fix regression from 6d05bf16b1 2025-09-05 08:51:43 +02:00
Wojtek Figat
67220d3f80 Add support for large 16kb page sizes on Android 2025-09-04 22:28:53 +02:00
Wojtek Figat
c5d06b2c8b Fix crash regression from #3588 when editing active particle emitters 2025-09-04 22:05:31 +02:00
Wojtek Figat
3b19e1b40c Fix collision data memory preview text 2025-09-04 21:47:51 +02:00
Wojtek Figat
831fb0f442 Optimize textures/buffers uploading on Vulkan with page allocator 2025-09-04 21:38:07 +02:00
Wojtek Figat
cd22cd059d Various small fixes and improvements 2025-09-04 15:56:33 +02:00
Wojtek Figat
3e363c8275 Remove ConcurrentSystemLocker and use ReadWriteLock instead of better threading synchronization 2025-09-04 14:48:52 +02:00
Wojtek Figat
c44d939c08 Add ReadWriteLock to platform api 2025-09-04 14:46:56 +02:00
Wojtek Figat
c0c9df49dc Optimize DDGI probes update to overlap both irradiance and distance data at once 2025-09-03 23:21:45 +02:00
Wojtek Figat
80de56f469 Optimize Global SDF dispatches with UAV write overlaps
2-3x faster rasterization
2025-09-03 23:12:55 +02:00
Wojtek Figat
f1ecbf828e Fix debug check on Vulkan backbuffer texture usage 2025-09-03 22:11:48 +02:00
Wojtek Figat
f1c4fd464a Optimize GPU textures and buffers uploads with a batched memory barrier 2025-09-03 22:11:26 +02:00
Wojtek Figat
212b0de29b Add RenderListAlloc to simplify rendering memory allocations 2025-09-03 13:00:28 +02:00
Wojtek Figat
5a2555f845 Improve cdb09847ec and 499ef51875 to swap key bits during sorting
#2271
2025-09-02 22:30:50 +02:00
Wojtek Figat
c57e128ff1 Merge remote-tracking branch 'origin/master' into 1.11
# Conflicts:
#	Source/Engine/Level/Scene/SceneRendering.cpp
#	Source/Engine/Physics/Colliders/Collider.cpp
#	Source/Engine/Physics/Colliders/Collider.h
2025-09-02 22:23:45 +02:00
Wojtek Figat
826009c1b4 Merge remote-tracking branch 'origin/master' into 1.11
# Conflicts:
#	Content/Editor/DebugMaterials/DDGIDebugProbes.flax
#	Source/Engine/Scripting/Scripting.cpp
2025-08-25 23:48:08 +02:00
Wojtek Figat
26f4bcbc25 Fix UI Control Reference picker to support base/inherited types 2025-08-25 10:09:25 +02:00
Saas
f2699892e0 add support for resizing visject curve nodes 2025-08-17 15:42:54 +02:00
Wojtek Figat
cdb09847ec Fix draw calls batching to ignore distance in opaque passes for better draw calls instancing
#2271
2025-08-13 21:30:18 +02:00
Wojtek Figat
278dead0bd Add PLATFORM_CONSOLE define and fix desktop to be as Windows/UWP, not Win32 2025-08-12 12:34:32 +02:00
Wojtek Figat
cdff7708fb Add automatic periodic Vulkan Pipeline State Cache serialization 2025-08-12 10:25:02 +02:00
Wojtek Figat
b4d501cd6a Add OcclusionQueryPools to Vulkan and move code to cpp file 2025-08-12 10:21:51 +02:00
Wojtek Figat
9cf9fae453 Add Vulkan device cache customization per-platform and reuse code 2025-08-12 00:09:54 +02:00
Wojtek Figat
7fcf6f9c97 Add various improvements 2025-08-11 23:47:48 +02:00
Wojtek Figat
1bedfd3adf Disable auto-GC every 60 ticks in game 2025-08-11 19:00:38 +02:00
Wojtek Figat
80d19a002f Optimize Audio streaming to reduce lock contention 2025-08-11 18:42:55 +02:00
Wojtek Figat
99707b6586 Add various profiler events for more insights 2025-08-11 18:15:47 +02:00
Wojtek Figat
9f14bb7279 Optimize GPU particles simulation by scheduling larger sims first to overlap more work 2025-08-11 13:24:11 +02:00
Wojtek Figat
a18314c669 Add various minor improvements 2025-08-11 13:23:46 +02:00
Wojtek Figat
c946fa239e Fix gpu particles crash from 0ea555b041 on first draw 2025-08-10 22:54:37 +02:00
Wojtek Figat
d109e5ca9f Add AGS lib to D3D11 for efficient UAV writes overlaps on AMD GPUs 2025-08-10 17:16:36 +02:00
Wojtek Figat
bc0e1f81e7 Add AGS third party module
AGS 6.3
2025-08-10 17:16:09 +02:00
Wojtek Figat
c1c806490f Add nvapi lib to D3D11 for efficient UAV writes overlaps on NVIDIA GPUs 2025-08-10 16:05:18 +02:00
Wojtek Figat
4fd6343fb9 Fix missing memory barrier on particle indirect args building to ensure buffer copies are done afetr whole buffer update ends 2025-08-10 16:04:24 +02:00
Wojtek Figat
a2e9d8d77b Add nvapi third party module
R580-Developer SDK
2025-08-10 16:02:34 +02:00
Wojtek Figat
ff3d785483 Optimize GPU particles simulation, sorting and drawing with better resource transition barriers 2025-08-09 23:59:52 +02:00
Wojtek Figat
82231981dc Add debug tool detection for Nsight Graphics 2025-08-09 23:58:47 +02:00
Wojtek Figat
1915e1e7f4 Optimize compute shader pipeline binding on D3D12 and Vulkan when unchanged 2025-08-09 23:58:15 +02:00
Wojtek Figat
b5a431d2f5 Add explicit GPU resource transitions, memory and compute barriers 2025-08-09 23:57:43 +02:00
Wojtek Figat
3907bc4957 Optimize sorted particle indices format to 16-bit for small emitters 2025-08-08 18:46:10 +02:00
Wojtek Figat
854f3acd4c Optimize GPU particles Bitonic sort to use separate buffers for indices and keys to avoid additional buffer copy 2025-08-08 18:24:44 +02:00
Wojtek Figat
519a9c0a14 Add direct dispatch for Bitonic Sort when using small input buffer 2025-08-08 17:03:39 +02:00
Wojtek Figat
0ea555b041 Optimize GPU Particles simulation to perform memory buffer copies/updates before dispatch 2025-08-08 16:25:09 +02:00
Wojtek Figat
90d1e63b58 Add minor optimizations to particles drawing 2025-08-08 13:11:05 +02:00
Wojtek Figat
0369d9b2cb Optimize CSSetShader on D3D11 when remains unchanged 2025-08-08 11:03:03 +02:00
Wojtek Figat
9fabc1028a Optimize GPU particles indirect args building with a single batched upload of default data 2025-08-07 23:51:02 +02:00
Wojtek Figat
2a9260ddd5 Optimize emitters to cull shadow passes sorting and drawing 2025-08-07 23:49:21 +02:00
Wojtek Figat
3d84380175 Optimize particles sorting by splitting key generation and sorting to reduce CS switches 2025-08-07 19:09:58 +02:00
Wojtek Figat
545df6ce35 Add profiler event to GPU particles indirect args setup 2025-08-07 18:57:39 +02:00
Wojtek Figat
d4355e31d8 Optimize GPU particles drawing with batched indirect args setup before sorting 2025-08-07 18:41:58 +02:00
Wojtek Figat
3ffb067e55 Optimize Particles drawing to use a whole RenderContextBatch 2025-08-07 09:27:28 +02:00
Wojtek Figat
959371a995 Fix particles regression on DirectX 2025-08-06 23:39:46 +02:00
Wojtek Figat
cf9c203855 Various optimizations 2025-08-06 18:48:18 +02:00
Wojtek Figat
a5838f739d Optimize GPU particles indirect args building code 2025-08-05 23:01:07 +02:00
Wojtek Figat
b1710c4d01 Add async particles drawing (GPU emitters are sync) 2025-08-05 22:53:09 +02:00
Wojtek Figat
baf0cfce8e Add support for using custom memory allocator in lambda bind to Function 2025-08-05 22:13:21 +02:00
Wojtek Figat
a1a6d4738f Fix async draw wait labels type 2025-08-05 12:28:29 +02:00
Wojtek Figat
761ea094d6 Optimize render module indices data 4 times 2025-08-05 11:50:26 +02:00
Wojtek Figat
8e043e533e Optimize SpriteRenderer to lazy-init 2025-08-05 11:02:03 +02:00
Wojtek Figat
1a88fefd76 Optimize CPU particles drawing to support async 2025-08-05 09:03:47 +02:00
Wojtek Figat
abe496fe12 Fix crash on particles sorting memory access 2025-08-04 10:31:52 +02:00
Wojtek Figat
c9e0637b0f Fix crash when unloading texture with leftover streaming task that was idle 2025-08-02 22:03:19 +02:00
Wojtek Figat
db660721ce Fix debug command length bug 2025-08-02 22:01:25 +02:00
Wojtek Figat
2730d63257 More build fixes 2025-08-02 21:50:09 +02:00
Wojtek Figat
31764d6d4e Fix crash on memory access in Vulkan descriptor set data 2025-08-02 17:56:26 +02:00
Wojtek Figat
34ba45cd5a Add Stack to Sanitizers options 2025-08-02 17:36:48 +02:00
Wojtek Figat
5de5d8f683 Add more events for GPU profiling 2025-08-02 17:12:53 +02:00
Wojtek Figat
744c94b3cc Compilation errors fixing 2025-08-02 17:05:13 +02:00
Wojtek Figat
b26d6ea108 Fix various issues 2025-08-02 08:31:24 +02:00
Wojtek Figat
5c5341e346 Optimize Color Grading LUT to be cached if unchanged from the previous frame 2025-08-01 23:16:57 +02:00
Wojtek Figat
0f81c64964 Refactor Color Grading LUT rendering to have config for 2D/3D mode 2025-07-31 20:05:08 +02:00
Wojtek Figat
7603109dce Add StringUtils::Copy for char to Char 2025-07-31 20:04:03 +02:00
Wojtek Figat
01617ae684 Optimize Debug Commands name building and support nested classes with name hierarchy 2025-07-31 20:03:26 +02:00
Wojtek Figat
4aa2676084 Fix MClass::GetNamespace typo that returned name instead 2025-07-31 20:02:42 +02:00
Wojtek Figat
a8b9211c32 Fix output log console to resize width to contain whole item text 2025-07-31 17:34:22 +02:00
Wojtek Figat
9c5060584d Fix output log console to remove executed command from history no matter the placement 2025-07-31 17:32:41 +02:00
Wojtek Figat
846a0b5685 Fix PSO init to release old data on recreation 2025-07-31 15:08:38 +02:00
Wojtek Figat
08154d8fe5 Fix support for nesting classes inside other scripting classes 2025-07-31 15:07:57 +02:00
Wojtek Figat
a53a438c3c Fix to use static VkInstance 2025-07-31 12:10:42 +02:00
Wojtek Figat
bb8f569c41 Fix Motion Vectors rendering skipping when not needed by SSR 2025-07-30 23:46:42 +02:00
Wojtek Figat
6307ad7979 Fix shadow bias artifacts on Low shadows quality 2025-07-30 23:46:17 +02:00
Wojtek Figat
b6229350a3 Fix crash on invalid GPUBuffer vertex layout in empty buffer 2025-07-30 23:45:53 +02:00
Wojtek Figat
5dc4ebade1 Fix Vulkan perf tracing with Tracy on Switch 2025-07-30 23:25:27 +02:00
Wojtek Figat
3cd5890db1 Update volk to version 1.4.304 2025-07-30 19:11:15 +02:00
Wojtek Figat
522d8d89e6 Fix Global SDF to properly lock static chunks access 2025-07-30 19:09:21 +02:00
Wojtek Figat
492a5f979d Fix yield on Android 2025-07-30 19:08:58 +02:00
Wojtek Figat
5e4d564338 Add **GPU profiling support to Tracy integration** 2025-07-30 19:08:45 +02:00
Wojtek Figat
8fcbef863e Add GPUResourceMapMode.NoWait flag to control buffer data reading
c68b75a298
2025-07-30 08:42:26 +02:00
Wojtek Figat
c68b75a298 Fix GPUBufferDX11::Map to wait on data to avoid missing data when reading staging buffers 2025-07-29 21:43:09 +02:00
Wojtek Figat
8f63a99a2c Fix game splash screen to wait fr texture to be streamed in, not just allocated 2025-07-29 21:42:37 +02:00
Wojtek Figat
6d05bf16b1 Optimize Asset::GetPath in cooked build 2025-07-29 21:41:59 +02:00
Wojtek Figat
b8218e9ab4 Fix shader asset path in debug name in cooked build 2025-07-29 17:34:42 +02:00
Wojtek Figat
99323c1d2f Add customizable per-platform affinity for content and pool threads 2025-07-29 10:41:41 +02:00
Wojtek Figat
17c0892ff1 Add debug name for PSO catching on D3D12/Vulkan during profiling incl. Development builds 2025-07-28 23:08:26 +02:00
Wojtek Figat
ad6764e6d7 Fix Asset.WaitForLoaded to yield or sleep thread for proper multithreading on some platforms 2025-07-28 18:35:37 +02:00
Wojtek Figat
0bfd38e065 Fix compilation on platforms without cloth sim 2025-07-28 18:34:29 +02:00
Wojtek Figat
a00ffe6ec3 Add Platform::Yield 2025-07-28 18:33:05 +02:00
Wojtek Figat
a7ffd9e57f Add more profiler events 2025-07-28 15:15:09 +02:00
Wojtek Figat
354eaac56c Add optional testing utility for malloc/free operations 2025-07-27 23:20:06 +02:00
Wojtek Figat
8c51ea511a Fix incorrect documentation comments on HashSet/Dictionary item removal 2025-07-27 11:07:58 +02:00
Wojtek Figat
2af266727f Add utility names to gamepad buttons doc and add usefull profiler event for mono 2025-07-26 00:12:10 +02:00
Wojtek Figat
acc1777638 Add shared utility for command line arguments merging 2025-07-24 12:38:52 +02:00
Wojtek Figat
69585618ed Optimize scripting objects spawning on AOT platforms 2025-07-24 12:27:28 +02:00
Wojtek Figat
af0ea65d78 Add option to disable pipeline cache on specific Vulkan platforms 2025-07-24 12:20:09 +02:00
Wojtek Figat
751d179cdb Fix missing brace 2025-07-24 11:34:48 +02:00
Wojtek Figat
2550b9f88e Fix missing TypeConverter support in AOT build 2025-07-23 22:15:38 +02:00
Wojtek Figat
c3cf8fba98 Optimize managed code 2025-07-23 18:17:10 +02:00
Wojtek Figat
6f172f8f2c Fix crash when prefab root object failed to deserialize 2025-07-23 18:16:32 +02:00
Wojtek Figat
735d611de1 Fix AOT libs rebuild when corlib was modified to avoid version mismatch 2025-07-23 18:15:52 +02:00
Wojtek Figat
8ac2385447 Update dependencies for Switch 2025-07-22 22:58:57 +02:00
Wojtek Figat
892e2e0d1e Fix fullscreen borderless window on macOS 2025-07-19 16:46:10 +02:00
Wojtek Figat
90551b32bc Add version to game settings 2025-07-19 16:40:34 +02:00
Wojtek Figat
cd08eeaf95 Fix running cooked game o macOS 2025-07-19 16:08:27 +02:00
Wojtek Figat
f87e2c2229 Merge branch '1.11' of https://gitlab.flaxengine.com/flax/flaxengine into 1.11 2025-07-19 11:14:58 +02:00
Wojtek Figat
18035a8604 Fix incorrect image buffer usage in Render Output Control 2025-07-19 11:14:54 +02:00
Wojtek Figat
6763436eff Add logging missing instance layer on Vulkan 2025-07-15 20:10:01 +02:00
Wojtek Figat
2754d61c05 Fix building Tracy for Switch 2025-07-15 19:31:07 +02:00
Wojtek Figat
7fd278a689 Fix .NET version to use selection for consoles with fixed setup 2025-07-15 13:34:43 +02:00
Wojtek Figat
2d2c5411cd Add variable DDGI probe size in debug view based on cascade 2025-07-15 12:49:05 +02:00
Wojtek Figat
3e0c085bf3 Add error log when adding/removign actors during rendering or when ConcurrentSystemLocker deadlocks 2025-07-15 12:34:40 +02:00
Wojtek Figat
c882b547c8 Fix game UI focus loss when hiding focused control to maintain gamepad navigation in Editor 2025-07-15 12:34:02 +02:00
Wojtek Figat
9646dd3fc2 Fix AutoFocus on ContainerControl to be false by default 2025-07-15 12:33:33 +02:00
Wojtek Figat
c0cce748cc Optimize Array::RemoveAtKeepOrder 2025-07-15 00:12:31 +02:00
Wojtek Figat
ab8612a914 Add profiler events to editor gizmo 2025-07-14 22:24:27 +02:00
Wojtek Figat
20f1e67700 Optimize Spline debug rendering far from camera 2025-07-14 21:09:28 +02:00
Wojtek Figat
eda7f7e90f Merge remote-tracking branch 'origin/master' into 1.11 2025-07-14 20:26:56 +02:00
Wojtek Figat
a22b33d3bb Fix missing sphere bounds update for splines 2025-07-14 20:26:41 +02:00
Wojtek Figat
8ed2d6da56 Optimize Debug Draw performance of splines to use frustum culling 2025-07-14 20:26:24 +02:00
Wojtek Figat
349547f66c Merge remote-tracking branch 'origin/master' into 1.11
# Conflicts:
#	Source/Engine/Particles/Particles.cpp
2025-07-14 18:35:53 +02:00
Wojtek Figat
a1e4ed05c4 Don't force load asset on asset clone if it's unused 2025-07-14 18:14:09 +02:00
Wojtek Figat
c27a9808c4 Fix unwanted code 2025-07-09 10:02:20 +02:00
Wojtek Figat
bdaf31b54f Optimize Arena Allocator to store page metadata within itself to save on allocs 2025-07-09 00:22:35 +02:00
Wojtek Figat
3abbf08f1f Optimize foliage rendering with concurrent arena allocator 2025-07-08 22:18:00 +02:00
Wojtek Figat
a8eb4fc140 Add allocator tag support for Dictionary and HashSet 2025-07-07 23:22:32 +02:00
Wojtek Figat
48c6339ebb Fix memory leak on material instances when updating layout of Text Render 2025-07-04 12:21:25 +02:00
Wojtek Figat
2dd34b288c Merge remote-tracking branch 'origin/master' into 1.11 2025-07-04 12:05:19 +02:00
Wojtek Figat
bf345f13ce Fix reflection probes capture seams on cube face edges due to volumetric fog
#3252
2025-07-03 13:54:22 +02:00
Wojtek Figat
a138c6b062 Optimize environment probes filtering shader 2025-07-03 11:45:12 +02:00
Wojtek Figat
33e58c12cb Optimize ProbesRenderer to use time-slicing for cubemap faces rendering and filtering 2025-07-03 11:43:56 +02:00
Wojtek Figat
094a6562b8 Refactor ProbesRenderer 2025-07-03 10:18:51 +02:00
Wojtek Figat
448eb48c23 Fix fog to draw Fog Cutoff Distance via a plane, not sphere test
Add support for negative Fog Cutoff Distance on fog to draw it in front of the camera Far Plane, no matter the setup.
Fix hot-reloading Fog shader in Editor.
2025-06-29 20:02:24 +02:00
Wojtek Figat
78d519cb9a Fix ConcurrentSystemLocker to have exclusive lock as an option 2025-06-29 19:16:41 +02:00
Wojtek Figat
43d11264f8 Fix asset references to use separate lightweight locking instead of full asset mutex 2025-06-29 19:16:23 +02:00
Wojtek Figat
f126a83b79 Fix graphical issues when batching materials that use Forward Shading for instancing 2025-06-29 13:52:29 +02:00
Wojtek Figat
bdd7bae459 Add new Custom Lit shading model for custom lighting in materials (eg. Cel Shading) 2025-06-29 13:51:59 +02:00
Wojtek Figat
3dc7546dd4 Fix crash when constant buffer is unused by shader but still exists 2025-06-27 19:06:25 +02:00
Wojtek Figat
185151b025 Minor fixes 2025-06-27 18:52:25 +02:00
Wojtek Figat
8cdec15fa6 Fix GlobalSignDistanceFieldCustomBuffer to be thread-safe (scene rendering events are not guarded via mutex anymore) 2025-06-27 15:41:48 +02:00
Wojtek Figat
1b40775d62 Fix deadloop in HtmlParser when parsing text with incorrect tags 2025-06-27 11:56:09 +02:00
Wojtek Figat
45e82d21f4 Fix ConcurrentSystemLocker to guard for a single writer at once 2025-06-26 19:51:06 +02:00
Wojtek Figat
5c37584eca Minor adjustment for alignment of perf-critical variables in rendering 2025-06-26 19:50:42 +02:00
Wojtek Figat
674fda7375 Add resizing to Custom Code nodes in Materials 2025-06-26 19:50:04 +02:00
Wojtek Figat
d1c43ec1fe Merge remote-tracking branch 'origin/master' into 1.11 2025-06-25 10:48:11 +02:00
Wojtek Figat
ef5d45874a Fix compilation regression 2025-06-22 12:12:42 +02:00
Wojtek Figat
d7df403e5e Optimize ContainerControl.DisposeChildren 2025-06-20 09:05:41 +02:00
Wojtek Figat
d3a50cdacb Optimize Actor::DestroyChildren 2025-06-20 09:05:25 +02:00
Wojtek Figat
2e10d776e9 Optimize updating actor rendering entry with better thread locking that support async writes on actor update 2025-06-19 14:04:06 +02:00
Wojtek Figat
4ac870f701 Optimize physics transformation updates propagation in async via Job System 2025-06-19 13:57:50 +02:00
Wojtek Figat
6144f6c74e Optimize physics simulation with higher limit of 8 threads 2025-06-19 09:50:07 +02:00
Wojtek Figat
edb6884942 Optimize PhysX work dispatcher to be shared by all scenes 2025-06-19 08:24:26 +02:00
Wojtek Figat
62e329ac6e Add more memory tags for Navigation 2025-06-18 23:00:43 +02:00
Wojtek Figat
68dce7e4dd Merge remote-tracking branch 'origin/master' into 1.11 2025-06-18 22:46:10 +02:00
Wojtek Figat
bd2add7edd Tweak memory command tip 2025-06-16 23:15:58 +02:00
Wojtek Figat
986693757c Merge remote-tracking branch 'origin/master' into 1.11 2025-06-16 22:46:17 +02:00
Wojtek Figat
766091045b Improve version parsing to share code 2025-06-12 18:21:12 +02:00
Wojtek Figat
e2d9452994 Add unified min Clang version 13 for Linux 2025-06-12 18:05:01 +02:00
Wojtek Figat
eadb4411ff Fix crash in GPU Memory profiler if resource went null 2025-06-12 17:35:02 +02:00
Wojtek Figat
bdc87c7bc6 Update min supported version of macOS to 13 and iOS to 15 2025-06-12 17:26:39 +02:00
Wojtek Figat
7606c9ac12 Update minimum CPU arch requirement on Windows to AVX2 with SSE4.2
94.48% support on PC according to Steam Hardware & Software Survey: May 2025 (https://store.steampowered.com/hwsurvey/)
2025-06-12 17:03:19 +02:00
Wojtek Figat
4240646ec7 Update minimum Windows version to 10 (to match .NET 8) 2025-06-12 08:31:32 +02:00
Wojtek Figat
0fa53f860a Add UseLogInRelease to engine config to disable logging in Release builds 2025-06-11 23:35:03 +02:00
Wojtek Figat
8ec138399a Add higher level streaming time budget in frame based on idle time 2025-06-11 18:40:35 +02:00
Wojtek Figat
5b6859a66f Add time slicing to Deserialization stage of async scenes loading to avoid hitching
#3261
2025-06-11 18:40:06 +02:00
Wojtek Figat
e9835766bc Add red color to Tracy profiler zones that cause CPU waiting to improve profiling 2025-06-11 14:56:43 +02:00
Wojtek Figat
d6eb647d59 Optimize async scene loading to run in separate stages with time-slicing 2025-06-11 14:33:47 +02:00
Wojtek Figat
b50f3fcb64 Refactor level actions to support time budget and time slicing 2025-06-11 00:01:46 +02:00
Wojtek Figat
d6b4992991 Optimize actors registration in SceneRendering to track free items 2025-06-10 20:08:20 +02:00
Wojtek Figat
cfd2f42b0c Optimize managed memory allocations in Editor profiler 2025-06-09 22:06:49 +02:00
Wojtek Figat
89c7f4b0a3 Fix ManagedDictionary cache to be cleared on hot-reload 2025-06-09 17:19:36 +02:00
Wojtek Figat
d7ff9fdade Optimize editor profiler native allocations when capturing data 2025-06-09 15:23:31 +02:00
Wojtek Figat
057ec9d41e Anothher fix 2025-06-09 10:48:02 +02:00
Wojtek Figat
7fa4efcac5 Fix compilation in Release 2025-06-09 10:17:51 +02:00
Wojtek Figat
6547e7ee9c Fix compilation with Clang 2025-06-08 23:58:33 +02:00
Wojtek Figat
907c593671 Fix typos in doc comments 2025-06-08 19:47:09 +02:00
Wojtek Figat
65ab42158d Update engine version 2025-06-08 00:58:39 +02:00
Wojtek Figat
99841e2e8d Fix crash when using invalid node index in skinned mesh 2025-06-08 00:58:31 +02:00
Wojtek Figat
73c30d3d89 Optimize asset references to support direct registration to reduce Delegate memory allocations and overhead 2025-06-08 00:58:15 +02:00
Wojtek Figat
bffb175a9b Code fixes 2025-06-07 01:25:22 +02:00
Wojtek Figat
125a973ff2 Rename Prefetch to MemoryPrefetch 2025-06-06 22:55:14 +02:00
Wojtek Figat
462f75abd0 Optimize memory allocation when reading animated model pose by cloth 2025-06-06 22:41:48 +02:00
Wojtek Figat
d95cd2f0be Optimize memory alloc on Animated Model init 2025-06-06 22:41:29 +02:00
Wojtek Figat
091f76bbf2 Add more improvements to usability of memory profiler 2025-06-06 22:40:43 +02:00
Wojtek Figat
e8b60060ab Fix memory profiler thread-local storage to avoid dynamic mem alloc due to recursive call 2025-06-06 14:52:27 +02:00
Wojtek Figat
cd637e8a7a Add more memory profiling coverage 2025-06-06 14:38:22 +02:00
Wojtek Figat
9d8e75caa3 Fix various code to improve quality 2025-06-06 11:19:32 +02:00
Wojtek Figat
0670c0bbd3 Fix compilation warnings 2025-06-05 18:32:36 +02:00
Wojtek Figat
f462a2187f Merge branch 'master' into 1.11 2025-06-05 18:03:17 +02:00
Wojtek Figat
8eff098850 Fix Linux build 2025-05-28 04:30:08 +02:00
Wojtek Figat
4fe9fdded6 Optimize redundant string allocation in managed binary module unload 2025-05-28 04:10:47 +02:00
Wojtek Figat
03d52d4eb9 Add support for building engine without logging 2025-05-28 04:05:12 +02:00
Wojtek Figat
ab61ed5a37 Add more memory profiling insights and groups 2025-05-28 04:03:44 +02:00
Wojtek Figat
72ee80242d Add integration with Tracy profiler to plot main memory categories 2025-05-26 05:37:53 +02:00
Wojtek Figat
9dc4dbc6d7 Add more memory profiler categories 2025-05-25 18:38:07 +02:00
Wojtek Figat
a74c5e7943 Another fix for iOS build 2025-05-25 18:01:30 +02:00
Wojtek Figat
8f9fa6995e Fix compilation issues 2025-05-25 17:40:00 +02:00
Wojtek Figat
98e59450f1 Add freeing managed assembly memory on reload/unload 2025-05-25 17:39:51 +02:00
Wojtek Figat
8c62f1120f Optimize dynamic memory allocations for managed runtime interop collections with a new Arena Allocation 2025-05-25 17:39:20 +02:00
Wojtek Figat
9aaba955d0 Fix profiler tables to use column headers aligned to center 2025-05-25 02:04:56 +02:00
Wojtek Figat
410ec0465c Optimize CSharp scripting runtime to use arena allocator per-assembly 2025-05-25 02:04:16 +02:00
Wojtek Figat
f9cb4ddae2 Add new Arena Allocator for optimized dynamic memory allocations with a shared lifetime 2025-05-24 05:08:32 +02:00
Wojtek Figat
bb855e2663 Add suport for Tracy profiler on Mac 2025-05-22 05:34:36 +02:00
Wojtek Figat
d24f9d1e1e Add warning when using memory profiler without enabled on startup 2025-05-22 05:18:56 +02:00
Wojtek Figat
c1b1f4afc4 Add process memory stats for Apple platforms 2025-05-22 04:49:48 +02:00
Wojtek Figat
c639a3103c Add memory profiling events to the main areas of the engine 2025-05-22 04:47:01 +02:00
Wojtek Figat
32bc73610f Fix debug command type detection when it's used with argument 2025-05-22 04:45:12 +02:00
Wojtek Figat
66dcfafa2e Fix Vulkan descriptor sets pooling 2025-05-22 04:42:01 +02:00
Wojtek Figat
9215f2662f Add missing memory alloc profiling for virtual pages 2025-05-22 04:41:01 +02:00
Wojtek Figat
2dc404cbd3 Add new memory profiler 2025-05-22 04:40:32 +02:00
fc96b248cb Ignore invalid VelocityChanged velocity values in audio backend 2025-04-05 20:17:33 +03:00
36c1909111 Build OpenAL with PipeWire backend enabled 2025-04-05 20:17:32 +03:00
643fe639e5 Update OpenAL to 1.24.3 2025-04-05 20:17:32 +03:00
78dffc9ad1 Add override for building CMake project with custom configuration 2025-04-05 20:17:32 +03:00
xxSeys1
051d363358 add alpha grid background 2025-03-14 15:51:36 +01:00
xxSeys1
9b495bbc68 improve how ColorValueBoxes draw transparent colors 2025-03-13 17:18:11 +01:00
1063 changed files with 144906 additions and 11783 deletions

View File

@@ -31,7 +31,7 @@ body:
- '1.10'
- '1.11'
- master branch
default: 2
default: 3
validations:
required: true
- type: textarea

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

View File

@@ -87,7 +87,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
- name: Setup Vulkan
uses: ./.github/actions/vulkan
- name: Setup .NET
@@ -118,7 +119,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
- name: Setup Vulkan
uses: ./.github/actions/vulkan
- name: Setup .NET

View File

@@ -28,7 +28,8 @@ 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
- name: Build
run: |
./GenerateProjectFiles.sh -vs2022 -log -verbose -printSDKs -dotnet=8

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

@@ -6,6 +6,7 @@
@3
#include "./Flax/Common.hlsl"
#include "./Flax/Stencil.hlsl"
#include "./Flax/MaterialCommon.hlsl"
#include "./Flax/GBufferCommon.hlsl"
@7
@@ -14,10 +15,13 @@ META_CB_BEGIN(0, Data)
float4x4 WorldMatrix;
float4x4 InvWorld;
float4x4 SvPositionToWorld;
float3 Padding0;
uint RenderLayersMask;
@1META_CB_END
// Use depth buffer for per-pixel decal layering
Texture2D DepthBuffer : register(t0);
Texture2D<uint2> StencilBuffer : register(t1);
// Material shader resources
@2
@@ -200,6 +204,14 @@ void PS_Decal(
#endif
)
{
// Stencil masking
uint stencilObjectLayer = STENCIL_BUFFER_OBJECT_LAYER(STENCIL_BUFFER_LOAD(StencilBuffer, SvPosition.xy));
if ((RenderLayersMask & (1 << stencilObjectLayer)) == 0)
{
clip(-1);
return;
}
float2 screenUV = SvPosition.xy * ScreenSize.zw;
SvPosition.z = SAMPLE_RT(DepthBuffer, screenUV).r;

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,7 +30,16 @@ 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; }
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
// Pixel Shader function for Forward Pass
@@ -77,9 +88,8 @@ void PS_Forward(
gBuffer.ShadingModel = MATERIAL_SHADING_MODEL;
// Calculate lighting from a single directional light
float4 shadowMask = 1.0f;
ShadowSample shadow = SampleDirectionalLightShadow(DirectionalLight, ShadowsBuffer, ShadowMap, gBuffer);
shadowMask = GetShadowMask(shadow);
float4 shadowMask = GetShadowMask(shadow);
float4 light = GetLighting(ViewPos, DirectionalLight, gBuffer, shadowMask, false, false);
// Calculate lighting from sky light
@@ -102,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
@@ -110,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;
@@ -118,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
@@ -130,33 +141,35 @@ 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
#if USE_FOG && MATERIAL_SHADING_MODEL != SHADING_MODEL_UNLIT
// Calculate exponential height fog
float4 fog = GetExponentialHeightFog(ExponentialHeightFog, materialInput.WorldPosition, ViewPos, 0, gBuffer.ViewPos.z);
#if DIRECTX && FEATURE_LEVEL < FEATURE_LEVEL_SM6
// TODO: fix D3D11/D3D10 bug with incorrect distance
float fogSceneDistance = distance(materialInput.WorldPosition, ViewPos);
#else
float fogSceneDistance = gBuffer.ViewPos.z;
#endif
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

@@ -21,7 +21,7 @@ float4 ViewInfo;
float4 ScreenSize;
float4 ViewSize;
float3 ViewPadding0;
float UnscaledTimeParam;
float ScaledTimeParam;
@1META_CB_END
// Shader resources
@@ -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
@@ -229,6 +234,7 @@ VertexOutput VS_GUI(Render2DVertex input)
#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

@@ -20,7 +20,7 @@ float4 ScreenSize;
float4 TemporalAAJitter;
float4x4 InverseViewProjectionMatrix;
float3 ViewPadding0;
float UnscaledTimeParam;
float ScaledTimeParam;
@1META_CB_END
// Shader resources

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.

View File

@@ -2,12 +2,12 @@
"Name": "Flax",
"Version": {
"Major": 1,
"Minor": 10,
"Minor": 12,
"Revision": 0,
"Build": 6705
"Build": 6905
},
"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": {

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

@@ -12,6 +12,6 @@ cd "`dirname "$0"`"
bash ./Development/Scripts/Mac/CallBuildTool.sh --genproject "$@"
# Build bindings for all editor configurations
echo Building C# bindings...
#echo Building C# bindings...
# TODO: Detect the correct architecture here
Binaries/Tools/Flax.Build -build -BuildBindingsOnly -arch=ARM64 -platform=Mac --buildTargets=FlaxEditor
#Binaries/Tools/Flax.Build -build -BuildBindingsOnly -arch=ARM64 -platform=Mac --buildTargets=FlaxEditor

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
@@ -57,10 +57,10 @@ Follow the instructions below to compile and run the engine from source.
* Arch: `sudo pacman -S git git-lfs`
* `git-lfs install`
* Install the required packages:
* Ubuntu: `sudo apt-get install libx11-dev libxcursor-dev libxinerama-dev zlib1g-dev zenity wayland-protocols libportal-dev`
* Fedora: `sudo dnf install libX11-devel libXcursor-devel libXinerama-devel ghc-zlib-devel zenity wayland-protocols-devel libportal`
* Arch: `sudo pacman -S base-devel libx11 libxcursor libxinerama zlib zenity wayland-protocols libportal`
* Install Clang compiler (version 6 or later):
* 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 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

@@ -174,7 +174,9 @@ void EditorAnalytics::StartSession()
// Bind events
GameCooker::OnEvent.Bind<RegisterGameCookingStart>();
ShadowsOfMordor::Builder::Instance()->OnBuildStarted.Bind<RegisterLightmapsBuildingStart>();
#if LOG_ENABLE
Log::Logger::OnError.Bind<RegisterError>();
#endif
}
void EditorAnalytics::EndSession()
@@ -187,7 +189,9 @@ void EditorAnalytics::EndSession()
// Unbind events
GameCooker::OnEvent.Unbind<RegisterGameCookingStart>();
ShadowsOfMordor::Builder::Instance()->OnBuildStarted.Unbind<RegisterLightmapsBuildingStart>();
#if LOG_ENABLE
Log::Logger::OnError.Unbind<RegisterError>();
#endif
// End session
{

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

@@ -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

@@ -20,13 +20,6 @@ class PlatformTools;
#define GAME_BUILD_DOTNET_RUNTIME_MAX_VER 9
#endif
#if OFFICIAL_BUILD
// Use the fixed .NET SDK version in packaged builds for compatibility (FlaxGame is precompiled with it)
#define GAME_BUILD_DOTNET_VER TEXT("-dotnet=" MACRO_TO_STR(GAME_BUILD_DOTNET_RUNTIME_MIN_VER))
#else
#define GAME_BUILD_DOTNET_VER TEXT("")
#endif
/// <summary>
/// Game building options. Used as flags.
/// </summary>
@@ -374,6 +367,8 @@ public:
/// </summary>
void GetBuildPlatformName(const Char*& platform, const Char*& architecture) const;
String GetDotnetCommandArg() const;
public:
/// <summary>

View File

@@ -30,6 +30,7 @@
#include "Engine/Scripting/ManagedCLR/MAssembly.h"
#include "Engine/Content/JsonAsset.h"
#include "Engine/Content/AssetReference.h"
#include "Engine/Profiler/ProfilerMemory.h"
#if PLATFORM_TOOLS_WINDOWS
#include "Platform/Windows/WindowsPlatformTools.h"
#include "Engine/Platform/Windows/WindowsPlatformSettings.h"
@@ -311,6 +312,14 @@ void CookingData::GetBuildPlatformName(const Char*& platform, const Char*& archi
}
}
String CookingData::GetDotnetCommandArg() const
{
int32 version = Tools->GetDotnetVersion();
if (version == 0)
return String::Empty;
return String::Format(TEXT("-dotnet={}"), version);
}
void CookingData::StepProgress(const String& info, const float stepProgress) const
{
const float singleStepProgress = 1.0f / (StepsCount + 1);
@@ -380,6 +389,7 @@ bool GameCooker::IsCancelRequested()
PlatformTools* GameCooker::GetTools(BuildPlatform platform)
{
PROFILE_MEM(Editor);
PlatformTools* result = nullptr;
if (!Tools.TryGet(platform, result))
{
@@ -471,6 +481,7 @@ bool GameCooker::Build(BuildPlatform platform, BuildConfiguration configuration,
LOG(Error, "Build platform {0} is not supported.", ::ToString(platform));
return true;
}
PROFILE_MEM(Editor);
// Setup
CancelFlag = 0;
@@ -624,6 +635,7 @@ void GameCookerImpl::ReportProgress(const String& info, float totalProgress)
void GameCookerImpl::OnCollectAssets(HashSet<Guid>& assets)
{
PROFILE_MEM(Editor);
if (Internal_OnCollectAssets == nullptr)
{
auto c = GameCooker::GetStaticClass();
@@ -651,6 +663,7 @@ void GameCookerImpl::OnCollectAssets(HashSet<Guid>& assets)
bool GameCookerImpl::Build()
{
PROFILE_MEM(Editor);
CookingData& data = *Data;
LOG(Info, "Starting Game Cooker...");
LOG(Info, "Platform: {0}, Configuration: {2}, Options: {1}", ::ToString(data.Platform), (int32)data.Options, ::ToString(data.Configuration));
@@ -670,8 +683,7 @@ bool GameCookerImpl::Build()
MCore::Thread::Attach();
// Build Started
if (!EnumHasAnyFlags(data.Options, BuildOptions::NoCook))
// Build start
{
CallEvent(GameCooker::EventType::BuildStarted);
data.Tools->OnBuildStarted(data);
@@ -744,8 +756,8 @@ bool GameCookerImpl::Build()
}
IsRunning = false;
CancelFlag = 0;
if (!EnumHasAnyFlags(data.Options, BuildOptions::NoCook))
{
// Build end
for (int32 stepIndex = 0; stepIndex < Steps.Count(); stepIndex++)
Steps[stepIndex]->OnBuildEnded(data, failed);
data.Tools->OnBuildEnded(data, failed);
@@ -778,6 +790,8 @@ int32 GameCookerImpl::ThreadFunction()
bool GameCookerService::Init()
{
PROFILE_MEM(Editor);
auto editorAssembly = ((NativeBinaryModule*)GetBinaryModuleFlaxEngine())->Assembly;
editorAssembly->Unloading.Bind(OnEditorAssemblyUnloading);
GameCooker::OnCollectAssets.Bind(OnCollectAssets);
@@ -789,6 +803,7 @@ void GameCookerService::Update()
{
if (IsRunning)
{
PROFILE_MEM(Editor);
ScopeLock lock(ProgressLocker);
if (ProgressMsg.HasChars())

View File

@@ -15,26 +15,32 @@
#include "Editor/ProjectInfo.h"
#include "Editor/Utilities/EditorUtilities.h"
GDKPlatformTools::GDKPlatformTools()
String GetGDK()
{
// Find GDK
Platform::GetEnvironmentVariable(TEXT("GameDKLatest"), _gdkPath);
if (_gdkPath.IsEmpty() || !FileSystem::DirectoryExists(_gdkPath))
String gdk;
Platform::GetEnvironmentVariable(TEXT("GameDKLatest"), gdk);
if (gdk.IsEmpty() || !FileSystem::DirectoryExists(gdk))
{
_gdkPath.Clear();
Platform::GetEnvironmentVariable(TEXT("GRDKLatest"), _gdkPath);
if (_gdkPath.IsEmpty() || !FileSystem::DirectoryExists(_gdkPath))
gdk.Clear();
Platform::GetEnvironmentVariable(TEXT("GRDKLatest"), gdk);
if (gdk.IsEmpty() || !FileSystem::DirectoryExists(gdk))
{
_gdkPath.Clear();
gdk.Clear();
}
else
{
if (_gdkPath.EndsWith(TEXT("GRDK\\")))
_gdkPath.Remove(_gdkPath.Length() - 6);
else if (_gdkPath.EndsWith(TEXT("GRDK")))
_gdkPath.Remove(_gdkPath.Length() - 5);
if (gdk.EndsWith(TEXT("GRDK\\")))
gdk.Remove(gdk.Length() - 6);
else if (gdk.EndsWith(TEXT("GRDK")))
gdk.Remove(gdk.Length() - 5);
}
}
return gdk;
}
GDKPlatformTools::GDKPlatformTools()
{
_gdkPath = GetGDK();
}
DotNetAOTModes GDKPlatformTools::UseAOT() const
@@ -121,7 +127,7 @@ bool GDKPlatformTools::OnPostProcess(CookingData& data, GDKPlatformSettings* pla
validName.Add('\0');
sb.Append(TEXT("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"));
sb.Append(TEXT("<Game configVersion=\"0\">\n"));
sb.Append(TEXT("<Game configVersion=\"1\">\n"));
sb.AppendFormat(TEXT(" <Identity Name=\"{0}\" Publisher=\"{1}\" Version=\"{2}\"/>\n"),
validName.Get(),
platformSettings->PublisherName.HasChars() ? platformSettings->PublisherName : TEXT("CN=") + gameSettings->CompanyName,
@@ -195,4 +201,9 @@ bool GDKPlatformTools::OnPostProcess(CookingData& data, GDKPlatformSettings* pla
return false;
}
int32 GDKPlatformTools::GetDotnetVersion() const
{
return GAME_BUILD_DOTNET_RUNTIME_MIN_VER;
}
#endif

View File

@@ -26,6 +26,7 @@ public:
public:
// [PlatformTools]
int32 GetDotnetVersion() const override;
DotNetAOTModes UseAOT() const override;
bool OnDeployBinaries(CookingData& data) override;
};

View File

@@ -186,7 +186,7 @@ bool MacPlatformTools::OnPostProcess(CookingData& data)
ADD_ENTRY("CFBundlePackageType", "APPL");
ADD_ENTRY("NSPrincipalClass", "NSApplication");
ADD_ENTRY("LSApplicationCategoryType", "public.app-category.games");
ADD_ENTRY("LSMinimumSystemVersion", "10.15");
ADD_ENTRY("LSMinimumSystemVersion", "13");
ADD_ENTRY("CFBundleIconFile", "icon.icns");
ADD_ENTRY_STR("CFBundleExecutable", executableName);
ADD_ENTRY_STR("CFBundleIdentifier", appIdentifier);
@@ -231,6 +231,8 @@ bool MacPlatformTools::OnPostProcess(CookingData& data)
LOG(Info, "Building app package...");
{
const String dmgPath = data.OriginalOutputPath / appName + TEXT(".dmg");
if (FileSystem::FileExists(dmgPath))
FileSystem::DeleteFile(dmgPath);
CreateProcessSettings procSettings;
procSettings.HiddenWindow = true;
procSettings.WorkingDirectory = data.OriginalOutputPath;

View File

@@ -528,6 +528,9 @@ bool WindowsPlatformTools::OnDeployBinaries(CookingData& data)
void WindowsPlatformTools::OnBuildStarted(CookingData& data)
{
if (EnumHasAllFlags(data.Options, BuildOptions::NoCook))
return;
// Remove old executable
Array<String> files;
FileSystem::DirectoryGetFiles(files, data.NativeCodeOutputPath, TEXT("*.exe"), DirectorySearchOption::TopDirectoryOnly);

View File

@@ -70,6 +70,20 @@ public:
/// </summary>
virtual ArchitectureType GetArchitecture() const = 0;
/// <summary>
/// Gets the .Net version to use for the cooked game.
/// </summary>
virtual int32 GetDotnetVersion() const
{
#if OFFICIAL_BUILD
// Use the fixed .NET SDK version in packaged builds for compatibility (FlaxGame is precompiled with it)
return GAME_BUILD_DOTNET_RUNTIME_MIN_VER;
#else
// Use the highest version found on a system (Flax.Build will decide)
return 0;
#endif
}
/// <summary>
/// Gets the value indicating whenever platform requires AOT (needs C# assemblies to be precompiled).
/// </summary>

View File

@@ -10,9 +10,10 @@
#include "Engine/Serialization/JsonTools.h"
#include "Engine/Serialization/JsonWriters.h"
#include "Editor/Cooker/PlatformTools.h"
#include "Engine/Engine/Globals.h"
#include "Editor/Editor.h"
#include "Editor/ProjectInfo.h"
#include "Engine/Engine/Globals.h"
#include "Editor/Utilities/EditorUtilities.h"
#if PLATFORM_MAC
#include <sys/stat.h>
#endif
@@ -127,7 +128,7 @@ bool CompileScriptsStep::DeployBinaries(CookingData& data, const String& path, c
const String dst = dstPath / StringUtils::GetFileName(file);
if (dst == file)
continue;
if (FileSystem::CopyFile(dst, file))
if (EditorUtilities::CopyFileIfNewer(dst, file))
{
data.Error(String::Format(TEXT("Failed to copy file from {0} to {1}."), file, dst));
return true;
@@ -189,7 +190,7 @@ bool CompileScriptsStep::Perform(CookingData& data)
const String logFile = data.CacheDirectory / TEXT("CompileLog.txt");
auto args = String::Format(
TEXT("-log -logfile=\"{4}\" -build -mutex -buildtargets={0} -platform={1} -arch={2} -configuration={3} -aotMode={5} {6}"),
target, platform, architecture, configuration, logFile, ToString(data.Tools->UseAOT()), GAME_BUILD_DOTNET_VER);
target, platform, architecture, configuration, logFile, ToString(data.Tools->UseAOT()), data.GetDotnetCommandArg());
#if PLATFORM_WINDOWS
if (data.Platform == BuildPlatform::LinuxX64)
#elif PLATFORM_LINUX

View File

@@ -36,6 +36,7 @@
#include "Engine/Engine/Base/GameBase.h"
#include "Engine/Engine/Globals.h"
#include "Engine/Tools/TextureTool/TextureTool.h"
#include "Engine/Threading/Threading.h"
#include "Engine/Profiler/ProfilerCPU.h"
#include "Engine/Scripting/Enums.h"
#if PLATFORM_TOOLS_WINDOWS
@@ -525,6 +526,7 @@ bool ProcessShaderBase(CookAssetsStep::AssetCookData& data, ShaderAssetBase* ass
#if PLATFORM_TOOLS_XBOX_SCARLETT
case BuildPlatform::XboxScarlett:
{
options.Platform = PlatformType::XboxScarlett;
const char* platformDefineName = "PLATFORM_XBOX_SCARLETT";
COMPILE_PROFILE(DirectX_SM6, SHADER_FILE_CHUNK_INTERNAL_D3D_SM6_CACHE);
break;
@@ -1366,7 +1368,10 @@ bool CookAssetsStep::Perform(CookingData& data)
{
typeName = e.TypeName;
}
LOG(Info, "{0}: {1:>4} assets of total size {2}", typeName, e.Count, Utilities::BytesToText(e.ContentSize));
if (e.Count == 1)
LOG(Info, "{0}: 1 asset of total size {1}", typeName, Utilities::BytesToText(e.ContentSize));
else
LOG(Info, "{0}: {1:>4} assets of total size {2}", typeName, e.Count, Utilities::BytesToText(e.ContentSize));
}
LOG(Info, "");
}

View File

@@ -88,7 +88,7 @@ bool DeployDataStep::Perform(CookingData& data)
{
// Ask Flax.Build to provide .NET SDK location for the current platform
String sdks;
bool failed = ScriptsBuilder::RunBuildTool(String::Format(TEXT("-log -logMessagesOnly -logFileWithConsole -logfile=SDKs.txt -printSDKs {}"), GAME_BUILD_DOTNET_VER), data.CacheDirectory);
bool failed = ScriptsBuilder::RunBuildTool(String::Format(TEXT("-log -logMessagesOnly -logFileWithConsole -logfile=SDKs.txt -printSDKs {}"), data.GetDotnetCommandArg()), data.CacheDirectory);
failed |= File::ReadAllText(data.CacheDirectory / TEXT("SDKs.txt"), sdks);
int32 idx = sdks.Find(TEXT("DotNetSdk, "), StringSearchCase::CaseSensitive);
if (idx != -1)
@@ -200,7 +200,7 @@ bool DeployDataStep::Perform(CookingData& data)
String sdks;
const Char *platformName, *archName;
data.GetBuildPlatformName(platformName, archName);
String args = String::Format(TEXT("-log -logMessagesOnly -logFileWithConsole -logfile=SDKs.txt -printDotNetRuntime -platform={} -arch={} {}"), platformName, archName, GAME_BUILD_DOTNET_VER);
String args = String::Format(TEXT("-log -logMessagesOnly -logFileWithConsole -logfile=SDKs.txt -printDotNetRuntime -platform={} -arch={} {}"), platformName, archName, data.GetDotnetCommandArg());
bool failed = ScriptsBuilder::RunBuildTool(args, data.CacheDirectory);
failed |= File::ReadAllText(data.CacheDirectory / TEXT("SDKs.txt"), sdks);
Array<String> parts;
@@ -244,10 +244,13 @@ bool DeployDataStep::Perform(CookingData& data)
}
if (version.IsEmpty())
{
int32 minVer = GAME_BUILD_DOTNET_RUNTIME_MIN_VER, maxVer = GAME_BUILD_DOTNET_RUNTIME_MAX_VER;
if (srcDotnetFromEngine)
{
// Detect version from runtime files inside Engine Platform folder
for (int32 i = GAME_BUILD_DOTNET_RUNTIME_MAX_VER; i >= GAME_BUILD_DOTNET_RUNTIME_MIN_VER; i--)
if (data.Tools->GetDotnetVersion() != 0)
minVer = maxVer = data.Tools->GetDotnetVersion();
for (int32 i = maxVer; i >= minVer; i--)
{
// Check runtime files inside Engine Platform folder
String testPath1 = srcDotnet / String::Format(TEXT("lib/net{}.0"), i);
@@ -262,7 +265,7 @@ bool DeployDataStep::Perform(CookingData& data)
}
if (version.IsEmpty())
{
data.Error(String::Format(TEXT("Failed to find supported .NET {} version for the current host platform."), GAME_BUILD_DOTNET_RUNTIME_MIN_VER));
data.Error(String::Format(TEXT("Failed to find supported .NET {} version (min {}) for {} platform."), maxVer, minVer, platformName));
return true;
}
}
@@ -364,7 +367,7 @@ bool DeployDataStep::Perform(CookingData& data)
const String logFile = data.CacheDirectory / TEXT("StripDotnetLibs.txt");
String args = String::Format(
TEXT("-log -logfile=\"{}\" -runDotNetClassLibStripping -mutex -binaries=\"{}\" {}"),
logFile, data.DataOutputPath, GAME_BUILD_DOTNET_VER);
logFile, data.DataOutputPath, data.GetDotnetCommandArg());
for (const String& define : data.CustomDefines)
{
args += TEXT(" -D");

View File

@@ -12,7 +12,7 @@
void PrecompileAssembliesStep::OnBuildStarted(CookingData& data)
{
const DotNetAOTModes aotMode = data.Tools->UseAOT();
if (aotMode == DotNetAOTModes::None)
if (aotMode == DotNetAOTModes::None || EnumHasAllFlags(data.Options, BuildOptions::NoCook))
return;
const auto& buildSettings = *BuildSettings::Get();
@@ -59,6 +59,7 @@ bool PrecompileAssembliesStep::Perform(CookingData& data)
data.StepProgress(infoMsg, 0);
// Override Newtonsoft.Json with AOT-version (one that doesn't use System.Reflection.Emit)
// TODO: remove it since EngineModule does properly reference AOT lib now
EditorUtilities::CopyFileIfNewer(data.ManagedCodeOutputPath / TEXT("Newtonsoft.Json.dll"), Globals::StartupFolder / TEXT("Source/Platforms/DotNet/AOT/Newtonsoft.Json.dll"));
FileSystem::DeleteFile(data.ManagedCodeOutputPath / TEXT("Newtonsoft.Json.xml"));
FileSystem::DeleteFile(data.ManagedCodeOutputPath / TEXT("Newtonsoft.Json.pdb"));
@@ -69,7 +70,7 @@ bool PrecompileAssembliesStep::Perform(CookingData& data)
const String logFile = data.CacheDirectory / TEXT("AOTLog.txt");
String args = String::Format(
TEXT("-log -logfile=\"{}\" -runDotNetAOT -mutex -platform={} -arch={} -configuration={} -aotMode={} -binaries=\"{}\" -intermediate=\"{}\" {}"),
logFile, platform, architecture, configuration, ToString(aotMode), data.DataOutputPath, data.ManagedCodeOutputPath, GAME_BUILD_DOTNET_VER);
logFile, platform, architecture, configuration, ToString(aotMode), data.DataOutputPath, data.ManagedCodeOutputPath, data.GetDotnetCommandArg());
if (!buildSettings.SkipUnusedDotnetLibsPackaging)
args += TEXT(" -skipUnusedDotnetLibs=false"); // Run AOT on whole class library (not just used libs)
for (const String& define : data.CustomDefines)

View File

@@ -6,6 +6,8 @@
#include "Engine/Core/Types/TimeSpan.h"
#include "Engine/Core/Types/Stopwatch.h"
#include "Engine/Core/Collections/Dictionary.h"
#include "Engine/Profiler/ProfilerCPU.h"
#include "Engine/Profiler/ProfilerMemory.h"
#include "Engine/Engine/EngineService.h"
#include "Engine/Scripting/Scripting.h"
#include "Engine/Scripting/BinaryModule.h"
@@ -69,6 +71,7 @@ MTypeObject* CustomEditorsUtil::GetCustomEditor(MTypeObject* refType)
bool CustomEditorsUtilService::Init()
{
PROFILE_MEM(Editor);
TRACK_ASSEMBLY(((NativeBinaryModule*)GetBinaryModuleFlaxEngine())->Assembly);
Scripting::BinaryModuleLoaded.Bind(&OnBinaryModuleLoaded);
@@ -77,6 +80,8 @@ bool CustomEditorsUtilService::Init()
void OnAssemblyLoaded(MAssembly* assembly)
{
PROFILE_CPU_NAMED("CustomEditors.OnAssemblyLoaded");
PROFILE_MEM(Editor);
Stopwatch stopwatch;
// Prepare FlaxEngine

View File

@@ -1,6 +1,7 @@
// Copyright (c) Wojciech Figat. All rights reserved.
using FlaxEngine;
using FlaxEngine.GUI;
namespace FlaxEditor.CustomEditors.Dedicated
{
@@ -11,7 +12,7 @@ namespace FlaxEditor.CustomEditors.Dedicated
[CustomEditor(typeof(EnvironmentProbe)), DefaultEditor]
public class EnvironmentProbeEditor : ActorEditor
{
private FlaxEngine.GUI.Button _bake;
private Button _bake;
/// <inheritdoc />
public override void Initialize(LayoutElementsContainer layout)
@@ -20,9 +21,12 @@ namespace FlaxEditor.CustomEditors.Dedicated
if (Values.HasDifferentTypes == false)
{
layout.Space(10);
_bake = layout.Button("Bake").Button;
var group = layout.Group("Probe");
group.Panel.ItemsMargin = new Margin(Utilities.Constants.UIMargin * 2);
_bake = group.Button("Bake").Button;
_bake.Clicked += BakeButtonClicked;
var view = group.Button("View", "Opens the probe texture viewer");
view.Button.Clicked += OnViewButtonClicked;
}
}
@@ -48,5 +52,14 @@ namespace FlaxEditor.CustomEditors.Dedicated
}
}
}
private void OnViewButtonClicked()
{
foreach (var value in Values)
{
if (value is EnvironmentProbe probe && probe.ProbeAsset)
Editor.Instance.ContentEditing.Open(probe.ProbeAsset);
}
}
}
}

View File

@@ -195,7 +195,7 @@ namespace FlaxEditor.CustomEditors.Dedicated
filesCount += files.Length;
foreach (var file in files)
FindNewKeysCpp(file, newKeys, allKeys);
files = Directory.GetFiles(Globals.ProjectSourceFolder, "*.h", SearchOption.AllDirectories).Concat(Directory.GetFiles(Globals.ProjectSourceFolder, "*.hpp", SearchOption.AllDirectories)).ToArray();;
files = Directory.GetFiles(Globals.ProjectSourceFolder, "*.h", SearchOption.AllDirectories).Concat(Directory.GetFiles(Globals.ProjectSourceFolder, "*.hpp", SearchOption.AllDirectories)).ToArray();
filesCount += files.Length;
foreach (var file in files)
FindNewKeysCpp(file, newKeys, allKeys);

View File

@@ -0,0 +1,38 @@
// Copyright (c) Wojciech Figat. All rights reserved.
using FlaxEngine;
namespace FlaxEditor.CustomEditors.Dedicated
{
/// <summary>
/// Custom editor for <see cref="NavMeshBoundsVolume"/>.
/// </summary>
/// <seealso cref="ActorEditor" />
[CustomEditor(typeof(NavMeshBoundsVolume)), DefaultEditor]
internal class NavMeshBoundsVolumeEditor : ActorEditor
{
/// <inheritdoc />
public override void Initialize(LayoutElementsContainer layout)
{
base.Initialize(layout);
if (Values.HasDifferentTypes == false)
{
var button = layout.Button("Build");
button.Button.Clicked += OnBuildClicked;
}
}
private void OnBuildClicked()
{
foreach (var value in Values)
{
if (value is NavMeshBoundsVolume volume)
{
Navigation.BuildNavMesh(volume.Box, volume.Scene);
Editor.Instance.Scene.MarkSceneEdited(volume.Scene);
}
}
}
}
}

View File

@@ -1,7 +1,6 @@
// Copyright (c) Wojciech Figat. All rights reserved.
using System.Collections.Generic;
using System.Reflection.Emit;
using FlaxEditor.CustomEditors.GUI;
using FlaxEngine;
using FlaxEngine.GUI;

View File

@@ -909,14 +909,17 @@ namespace FlaxEditor.CustomEditors.Dedicated
settingsButton.Tag = script;
settingsButton.Clicked += OnSettingsButtonClicked;
group.Panel.HeaderTextMargin = new Margin(scriptDrag.Right - 12, 15, 2, 2);
// Adjust margin to not overlap with other ui elements in the header
group.Panel.HeaderTextMargin = group.Panel.HeaderTextMargin with { Left = scriptDrag.Right - 12, Right = settingsButton.Width + Utilities.Constants.UIMargin };
group.Object(values, editor);
// Remove drop down arrows and containment lines if no objects in the group
if (group.Children.Count == 0)
{
group.Panel.Close();
group.Panel.ArrowImageOpened = null;
group.Panel.ArrowImageClosed = null;
group.Panel.EnableContainmentLines = false;
group.Panel.CanOpenClose = false;
}
// Scripts arrange bar

View File

@@ -1,6 +1,7 @@
// Copyright (c) Wojciech Figat. All rights reserved.
using FlaxEngine;
using FlaxEngine.GUI;
namespace FlaxEditor.CustomEditors.Dedicated
{
@@ -19,8 +20,9 @@ namespace FlaxEditor.CustomEditors.Dedicated
if (Values.HasDifferentTypes == false)
{
// Add 'Bake' button
layout.Space(10);
var button = layout.Button("Bake");
var group = layout.Group("Bake");
group.Panel.ItemsMargin = new Margin(Utilities.Constants.UIMargin * 2);
var button = group.Button("Bake");
button.Button.Clicked += BakeButtonClicked;
}
}

View File

@@ -123,6 +123,8 @@ namespace FlaxEditor.CustomEditors.Editors
{
base.Refresh();
if (Picker == null)
return;
var differentValues = HasDifferentValues;
Picker.DifferentValues = differentValues;
if (!differentValues)

View File

@@ -71,7 +71,7 @@ namespace FlaxEditor.CustomEditors.Editors
menu.AddButton("Copy", linkedEditor.Copy);
var b = menu.AddButton("Duplicate", () => Editor.Duplicate(Index));
b.Enabled = linkedEditor.CanPaste && !Editor._readOnly && Editor._canResize;
b.Enabled = !Editor._readOnly && Editor._canResize;
b = menu.AddButton("Paste", linkedEditor.Paste);
b.Enabled = linkedEditor.CanPaste && !Editor._readOnly;
@@ -407,7 +407,7 @@ namespace FlaxEditor.CustomEditors.Editors
menu.AddButton("Copy", linkedEditor.Copy);
var b = menu.AddButton("Duplicate", () => Editor.Duplicate(Index));
b.Enabled = linkedEditor.CanPaste && !Editor._readOnly && Editor._canResize;
b.Enabled = !Editor._readOnly && Editor._canResize;
var paste = menu.AddButton("Paste", linkedEditor.Paste);
paste.Enabled = linkedEditor.CanPaste && !Editor._readOnly;
@@ -450,6 +450,7 @@ namespace FlaxEditor.CustomEditors.Editors
protected bool NotNullItems;
private IntValueBox _sizeBox;
private Label _label;
private Color _background;
private int _elementsCount, _minCount, _maxCount;
private bool _readOnly;
@@ -566,7 +567,7 @@ namespace FlaxEditor.CustomEditors.Editors
Parent = dropPanel,
};
var label = new Label
_label = new Label
{
Text = "Size",
AnchorPreset = AnchorPresets.TopRight,
@@ -592,11 +593,12 @@ namespace FlaxEditor.CustomEditors.Editors
panel.Panel.Offsets = new Margin(7, 7, 0, 0);
panel.Panel.BackgroundColor = _background;
var elementType = ElementType;
var bindingAttr = System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public;
bool single = elementType.IsPrimitive ||
elementType.Equals(new ScriptType(typeof(string))) ||
elementType.IsEnum ||
(elementType.GetFields().Length == 1 && elementType.GetProperties().Length == 0) ||
(elementType.GetProperties().Length == 1 && elementType.GetFields().Length == 0) ||
(elementType.GetFields(bindingAttr).Length == 1 && elementType.GetProperties(bindingAttr).Length == 0) ||
(elementType.GetProperties(bindingAttr).Length == 1 && elementType.GetFields(bindingAttr).Length == 0) ||
elementType.Equals(new ScriptType(typeof(JsonAsset))) ||
elementType.Equals(new ScriptType(typeof(SettingsBase)));
if (_cachedDropPanels == null)
@@ -650,7 +652,7 @@ namespace FlaxEditor.CustomEditors.Editors
panel.Panel.Size = new Float2(0, 18);
panel.Panel.Margin = new Margin(0, 0, Utilities.Constants.UIMargin, 0);
var removeButton = panel.Button("-", "Remove the last item");
var removeButton = panel.Button("-", "Remove the last item.");
removeButton.Button.Size = new Float2(16, 16);
removeButton.Button.Enabled = size > _minCount;
removeButton.Button.AnchorPreset = AnchorPresets.TopRight;
@@ -661,7 +663,7 @@ namespace FlaxEditor.CustomEditors.Editors
Resize(Count - 1);
};
var addButton = panel.Button("+", "Add a new item");
var addButton = panel.Button("+", "Add a new item.");
addButton.Button.Size = new Float2(16, 16);
addButton.Button.Enabled = (!NotNullItems || size > 0) && size < _maxCount;
addButton.Button.AnchorPreset = AnchorPresets.TopRight;
@@ -672,8 +674,10 @@ namespace FlaxEditor.CustomEditors.Editors
Resize(Count + 1);
};
}
}
Layout.ContainerControl.SizeChanged += OnLayoutSizeChanged;
}
private void OnSetupContextMenu(ContextMenu menu, DropPanel panel)
{
if (menu.Items.Any(x => x is ContextMenuButton b && b.Text.Equals("Open All", StringComparison.Ordinal)))
@@ -696,10 +700,24 @@ namespace FlaxEditor.CustomEditors.Editors
});
}
private void OnLayoutSizeChanged(Control control)
{
if (Layout.ContainerControl is DropPanel dropPanel)
{
// Hide "Size" text when array editor title overlaps
var headerTextSize = dropPanel.HeaderTextFont.GetFont().MeasureText(dropPanel.HeaderText);
if (headerTextSize.X + DropPanel.DropDownIconSize >= _label.Left)
_label.TextColor = _label.TextColorHighlighted = Color.Transparent;
else
_label.TextColor = _label.TextColorHighlighted = FlaxEngine.GUI.Style.Current.Foreground;
}
}
/// <inheritdoc />
protected override void Deinitialize()
{
_sizeBox = null;
Layout.ContainerControl.SizeChanged -= OnLayoutSizeChanged;
base.Deinitialize();
}

View File

@@ -22,7 +22,7 @@ internal class UIControlRefPickerControl : FlaxObjectRefPickerControl
/// <inheritdoc />
protected override bool IsValid(Object obj)
{
return obj == null || (obj is UIControl control && control.Control.GetType() == ControlType);
return obj == null || (obj is UIControl control && ControlType.IsAssignableFrom(control.Control.GetType()));
}
}

View File

@@ -47,6 +47,8 @@ namespace FlaxEditor.CustomEditors.Editors
return inputEvent;
if (Values[0] is string str)
return str;
if (Values.Type.Type == typeof(InputEvent))
return new InputEvent();
if (Values.Type.Type == typeof(string))
return string.Empty;
return null;

View File

@@ -104,7 +104,7 @@ namespace FlaxEditor.CustomEditors.Editors
public event Action<TypePickerControl> TypePickerValueChanged;
/// <summary>
/// The custom callback for types validation. Cane be used to implement a rule for types to pick.
/// The custom callback for types validation. Can be used to implement a rule for types to pick.
/// </summary>
public Func<ScriptType, bool> CheckValid;
@@ -353,7 +353,13 @@ namespace FlaxEditor.CustomEditors.Editors
}
if (!string.IsNullOrEmpty(typeReference.CheckMethod))
{
var parentType = ParentEditor.Values[0].GetType();
var parentEditor = ParentEditor;
// Find actual parent editor if parent editor is collection editor
while (parentEditor.GetType().IsAssignableTo(typeof(CollectionEditor)))
parentEditor = parentEditor.ParentEditor;
var parentType = parentEditor.Values[0].GetType();
var method = parentType.GetMethod(typeReference.CheckMethod, BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic);
if (method != null)
{

View File

@@ -44,7 +44,8 @@ namespace FlaxEditor.CustomEditors.Elements
{
var style = Style.Current;
var settingsButtonSize = Panel.HeaderHeight;
return new Image
Panel.HeaderTextMargin = Panel.HeaderTextMargin with { Right = settingsButtonSize + Utilities.Constants.UIMargin };
; return new Image
{
TooltipText = "Settings",
AutoFocus = true,

View File

@@ -20,6 +20,7 @@
#include "Engine/Engine/Engine.h"
#include "Engine/ShadowsOfMordor/Builder.h"
#include "Engine/Profiler/ProfilerCPU.h"
#include "Engine/Profiler/ProfilerMemory.h"
#include "FlaxEngine.Gen.h"
#if PLATFORM_LINUX
#include "Engine/Tools/TextureTool/TextureTool.h"
@@ -47,6 +48,7 @@ void Editor::CloseSplashScreen()
bool Editor::CheckProjectUpgrade()
{
PROFILE_MEM(Editor);
const auto versionFilePath = Globals::ProjectCacheFolder / TEXT("version");
// Load version cache file
@@ -266,8 +268,8 @@ bool Editor::CheckProjectUpgrade()
// Check if last version was older
else if (lastVersion.Major < FLAXENGINE_VERSION_MAJOR || (lastVersion.Major == FLAXENGINE_VERSION_MAJOR && lastVersion.Minor < FLAXENGINE_VERSION_MINOR))
{
LOG(Warning, "The project was opened with the older editor version last time");
const auto result = MessageBox::Show(TEXT("The project was opened with the older editor version last time. Loading it may modify existing data so older editor version won't open it. Do you want to perform a backup before or cancel operation?"), TEXT("Project upgrade"), MessageBoxButtons::YesNoCancel, MessageBoxIcon::Question);
LOG(Warning, "The project was last opened with an older editor version");
const auto result = MessageBox::Show(TEXT("The project was last opened with an older editor version.\nLoading it may modify existing data, which can result in older editor versions being unable to open it.\n\nDo you want to perform a backup before or cancel the operation?"), TEXT("Project upgrade"), MessageBoxButtons::YesNoCancel, MessageBoxIcon::Question);
if (result == DialogResult::Yes)
{
if (BackupProject())
@@ -289,8 +291,8 @@ bool Editor::CheckProjectUpgrade()
// Check if last version was newer
else if (lastVersion.Major > FLAXENGINE_VERSION_MAJOR || (lastVersion.Major == FLAXENGINE_VERSION_MAJOR && lastVersion.Minor > FLAXENGINE_VERSION_MINOR))
{
LOG(Warning, "The project was opened with the newer editor version last time");
const auto result = MessageBox::Show(TEXT("The project was opened with the newer editor version last time. Loading it may fail and corrupt existing data. Do you want to perform a backup before or cancel operation?"), TEXT("Project upgrade"), MessageBoxButtons::YesNoCancel, MessageBoxIcon::Warning);
LOG(Warning, "The project was last opened with a newer editor version");
const auto result = MessageBox::Show(TEXT("The project was last opened with a newer editor version.\nLoading it may fail and corrupt existing data.\n\nDo you want to perform a backup before loading or cancel the operation?"), TEXT("Project upgrade"), MessageBoxButtons::YesNoCancel, MessageBoxIcon::Warning);
if (result == DialogResult::Yes)
{
if (BackupProject())
@@ -366,6 +368,8 @@ bool Editor::BackupProject()
int32 Editor::LoadProduct()
{
PROFILE_MEM(Editor);
// Flax Editor product
Globals::ProductName = TEXT("Flax Editor");
Globals::CompanyName = TEXT("Flax");
@@ -626,6 +630,7 @@ int32 Editor::LoadProduct()
Window* Editor::CreateMainWindow()
{
PROFILE_MEM(Editor);
Window* window = Managed->GetMainWindow();
#if PLATFORM_LINUX
@@ -662,6 +667,7 @@ bool Editor::Init()
return true;
}
PROFILE_CPU();
PROFILE_MEM(Editor);
// If during last lightmaps baking engine crashed we could try to restore the progress
ShadowsOfMordor::Builder::Instance()->CheckIfRestoreState();
@@ -693,11 +699,13 @@ bool Editor::Init()
void Editor::BeforeRun()
{
PROFILE_MEM(Editor);
Managed->BeforeRun();
}
void Editor::BeforeExit()
{
PROFILE_MEM(Editor);
CloseSplashScreen();
Managed->Exit();
@@ -708,6 +716,8 @@ void Editor::BeforeExit()
void EditorImpl::OnUpdate()
{
PROFILE_MEM(Editor);
// Update c# editor
Editor::Managed->Update();

View File

@@ -23,6 +23,7 @@ using FlaxEngine.Assertions;
using FlaxEngine.GUI;
using FlaxEngine.Interop;
using FlaxEngine.Json;
using FlaxEngine.Utilities;
#pragma warning disable CS1591
@@ -1370,7 +1371,7 @@ namespace FlaxEditor
public void BuildCSG()
{
var scenes = Level.Scenes;
scenes.ToList().ForEach(x => x.BuildCSG(0));
scenes.ForEach(x => x.BuildCSG(0));
Scene.MarkSceneEdited(scenes);
}
@@ -1380,7 +1381,7 @@ namespace FlaxEditor
public void BuildNavMesh()
{
var scenes = Level.Scenes;
scenes.ToList().ForEach(x => Navigation.BuildNavMesh(x, 0));
Navigation.BuildNavMesh();
Scene.MarkSceneEdited(scenes);
}
@@ -1390,6 +1391,7 @@ namespace FlaxEditor
public void BuildAllMeshesSDF()
{
var models = new List<Model>();
var forceRebuild = Input.GetKey(KeyboardKeys.F);
Scene.ExecuteOnGraph(node =>
{
if (node is StaticModelNode staticModelNode && staticModelNode.Actor is StaticModel staticModel)
@@ -1399,7 +1401,7 @@ namespace FlaxEditor
model != null &&
!models.Contains(model) &&
!model.IsVirtual &&
model.SDF.Texture == null)
(forceRebuild || model.SDF.Texture == null))
{
models.Add(model);
}
@@ -1412,7 +1414,17 @@ namespace FlaxEditor
{
var model = models[i];
Log($"[{i}/{models.Count}] Generating SDF for {model}");
if (!model.GenerateSDF())
float resolutionScale = 1.0f, backfacesThreshold = 0.6f;
int lodIndex = 6;
bool useGPU = true;
var sdf = model.SDF;
if (sdf.Texture != null)
{
// Preserve options set on this model
resolutionScale = sdf.ResolutionScale;
lodIndex = sdf.LOD;
}
if (!model.GenerateSDF(resolutionScale, lodIndex, true, backfacesThreshold, useGPU))
model.Save();
}
});
@@ -1587,7 +1599,7 @@ namespace FlaxEditor
if (dockedTo != null && dockedTo.SelectedTab != gameWin && dockedTo.SelectedTab != null)
result = dockedTo.SelectedTab.Size;
else
result = gameWin.Viewport.Size;
result = gameWin.Viewport.ContentSize;
result *= root.DpiScale;
result = Float2.Round(result);

View File

@@ -51,7 +51,7 @@ namespace FlaxEditor.GUI
/// <summary>
/// The column title horizontal text alignment
/// </summary>
public TextAlignment TitleAlignment = TextAlignment.Near;
public TextAlignment TitleAlignment = TextAlignment.Center;
/// <summary>
/// The column title margin.

View File

@@ -502,6 +502,7 @@ namespace FlaxEditor.GUI.ContextMenu
if (base.OnKeyDown(key))
return true;
// Keyboard navigation around the menu
switch (key)
{
case KeyboardKeys.ArrowDown:
@@ -526,6 +527,20 @@ namespace FlaxEditor.GUI.ContextMenu
}
}
break;
case KeyboardKeys.ArrowRight:
for (int i = 0; i < _panel.Children.Count; i++)
{
if (_panel.Children[i] is ContextMenuChildMenu item && item.Visible && item.IsFocused && !item.ContextMenu.IsOpened)
{
item.ShowChild(this);
item.ContextMenu._panel.Children.FirstOrDefault(x => x is ContextMenuButton && x.Visible)?.Focus();
break;
}
}
break;
case KeyboardKeys.ArrowLeft:
ParentCM?.RootWindow.Focus();
break;
}
return false;

View File

@@ -75,6 +75,11 @@ namespace FlaxEditor.GUI.ContextMenu
/// </summary>
public bool HasChildCMOpened => _childCM != null;
/// <summary>
/// Gets the parent context menu (if exists).
/// </summary>
public ContextMenuBase ParentCM => _parentCM;
/// <summary>
/// Gets the topmost context menu.
/// </summary>
@@ -84,9 +89,7 @@ namespace FlaxEditor.GUI.ContextMenu
{
var cm = this;
while (cm._parentCM != null && cm._isSubMenu)
{
cm = cm._parentCM;
}
return cm;
}
}
@@ -111,15 +114,21 @@ namespace FlaxEditor.GUI.ContextMenu
/// </summary>
public bool UseInput = true;
/// <summary>
/// Optional flag that can disable UI navigation (tab/enter).
/// </summary>
public bool UseNavigation = true;
/// <summary>
/// Initializes a new instance of the <see cref="ContextMenuBase"/> class.
/// </summary>
public ContextMenuBase()
: base(0, 0, 120, 32)
{
_direction = ContextMenuDirection.RightDown;
Visible = false;
AutoFocus = true;
_direction = ContextMenuDirection.RightDown;
_isSubMenu = true;
}
@@ -270,7 +279,7 @@ namespace FlaxEditor.GUI.ContextMenu
_window.GotFocus += OnWindowGotFocus;
_window.LostFocus += OnWindowLostFocus;
}
#if USE_IS_FOREGROUND && USE_SDL_WORKAROUNDS
// The focus between popup and parent windows doesn't change, force hide the popup when clicked on parent
parentWin.Window.MouseDown += OnWindowMouseDown;
@@ -621,6 +630,21 @@ namespace FlaxEditor.GUI.ContextMenu
case KeyboardKeys.Escape:
Hide();
return true;
case KeyboardKeys.Return:
if (UseNavigation && Root?.FocusedControl != null)
{
Root.SubmitFocused();
return true;
}
break;
case KeyboardKeys.Tab:
if (UseNavigation && Root != null)
{
bool shiftDown = Root.GetKey(KeyboardKeys.Shift);
Root.Navigate(shiftDown ? NavDirection.Previous : NavDirection.Next);
return true;
}
break;
}
return false;
}

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