991 Commits

Author SHA1 Message Date
8cf6979f90 _some prog with dynamic linking perhaps
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-03-15 22:45:36 +02:00
1ff4ac0402 _maybe prog, trying static linking 2026-03-14 15:50:15 +02:00
801f0f7432 _some prog, needs aot for corlib 2026-03-14 15:50:15 +02:00
8b605dff89 _baseline emscripten build 2026-03-14 15:49:23 +02:00
Wojtek Figat
21b2e59fbb Fix ValueBox regression on mouse cursor hover 2026-03-13 23:26:03 +01:00
Wojtek Figat
5fb1ad078b Change default editor windows decorations in SDL on Windows to ClientSide for all windows 2026-03-13 23:23:36 +01:00
Wojtek Figat
1fc5316d12 Adjust new Z Axis color in Transform 2026-03-13 23:21:30 +01:00
Wojtek Figat
1ceb781903 Fix camera preview placement in editor preview when resizing window 2026-03-13 23:21:08 +01:00
Wojtek Figat
6ae68bc6cc Add PhysX and NvCloth to Web 2026-03-13 17:49:11 +01:00
Wojtek Figat
a8e7faec3c Add default icon to Web exported files 2026-03-13 10:21:42 +01:00
Wojtek Figat
ab6e291976 Update file 2026-03-13 10:21:26 +01:00
Wojtek Figat
2cb12e3c0f Add SIMD support to Web with SSE4.2 2026-03-13 10:21:21 +01:00
Wojtek Figat
c91c209974 Build msdfgen for Web and Consoles 2026-03-13 09:55:49 +01:00
Wojtek Figat
45a8d82a83 Merge remote-tracking branch 'origin/master' into 1.12
# Conflicts:
#	Content/Shaders/GI/DDGI.flax
#	Content/Shaders/GUI.flax
#	Flax.flaxproj
#	Source/Editor/Windows/AboutDialog.cs
#	Source/Engine/Serialization/Stream.cpp
#	Source/Shaders/GUICommon.hlsl
2026-03-13 08:09:16 +01:00
Wojtek Figat
b41d25cbce Add msdfgen build for iOS and Mac 2026-03-13 00:12:07 +01:00
Wojtek Figat
3d201ec73f Add msdfgen build for Linux 2026-03-12 23:56:50 +01:00
Wojtek Figat
fa91e3e3ab Update asset 2026-03-12 23:32:37 +01:00
Wojtek Figat
38c87c158a Merge branch 'ThePhantomMask-Improve-HighlightedPopUpColor' 2026-03-12 22:54:54 +01:00
Wojtek Figat
241d37130a Merge branch 'Improve-HighlightedPopUpColor' of https://github.com/ThePhantomMask/FlaxEngine into ThePhantomMask-Improve-HighlightedPopUpColor 2026-03-12 22:54:34 +01:00
Wojtek Figat
21981f666f Merge branch 'fibref-flax-msdf-font' 2026-03-12 22:52:49 +01:00
Wojtek Figat
afe917a7f3 Improve e7016564b1 to reduce recompilation on commit changes 2026-03-12 22:51:29 +01:00
Wojtek Figat
d2a03b90ec Add another utility 2026-03-12 22:50:54 +01:00
Wojtek Figat
88587fb6a4 Add utility function to GUICommon.hlsl for MSDF fonts sampling in shaders
#3944
2026-03-12 20:24:03 +01:00
Phantom
895758d27d Merge branch 'master' into Improve-HighlightedPopUpColor 2026-03-12 17:34:46 +01:00
Wojtek Figat
48d86ac7ae Update engine assets 2026-03-12 17:23:39 +01:00
Wojtek Figat
bc3cddc774 Build msdfgen for Windows and Android with a minor cleanup for a build script
#3944
2026-03-12 17:23:29 +01:00
Wojtek Figat
d784fddf95 Code style cleanup for #3944 2026-03-12 17:22:43 +01:00
Wojtek Figat
fc7abbf541 Merge branch 'flax-msdf-font' of https://github.com/fibref/FlaxEngine into fibref-flax-msdf-font 2026-03-12 16:25:55 +01:00
Wojtek Figat
8b4f8de988 Fix Control.LocalLocation to use parent control GetDesireClientArea rather than Bounds
#3889
2026-03-12 15:27:31 +01:00
Wojtek Figat
549ed76e7c Add warning when importing texture that is non-power-of-two and cannot generate mip maps 2026-03-12 14:32:11 +01:00
Wojtek Figat
e7016564b1 Add Git repository branch name and commit hash injection into generated code module metadata 2026-03-12 14:27:34 +01:00
Wojtek Figat
8318a9c1d0 Fix crash when unloading scene during tick of that scene 2026-03-12 13:39:01 +01:00
Phantom
6b1490dac4 Merge branch 'master' into Improve-HighlightedPopUpColor 2026-03-12 12:26:26 +01:00
Wojtek Figat
5c51652e16 Merge branch 'xxSeys1-NewActorAndUiTransformEditorSkin' 2026-03-12 11:26:28 +01:00
Wojtek Figat
6736f2f77a Merge branch 'NewActorAndUiTransformEditorSkin' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-NewActorAndUiTransformEditorSkin 2026-03-12 11:07:48 +01:00
Wojtek Figat
ab685ccc8c Merge branch 'Tryibion-remove-ui-move-size' 2026-03-12 11:06:46 +01:00
Wojtek Figat
b5d841ffc9 Use total rotation from #3758 in #3760 2026-03-12 11:06:42 +01:00
Wojtek Figat
cb17bcd2ff Merge branch 'remove-ui-move-size' of https://github.com/Tryibion/FlaxEngine into Tryibion-remove-ui-move-size 2026-03-12 11:03:51 +01:00
Wojtek Figat
f17b7b3c79 Merge branch 'Tryibion-better-handle-rot' 2026-03-12 10:53:00 +01:00
Wojtek Figat
1374a0440b Merge branch 'better-handle-rot' of https://github.com/Tryibion/FlaxEngine into Tryibion-better-handle-rot 2026-03-12 10:49:52 +01:00
Wojtek Figat
7fa40eba83 Fix Render2D.DrawRectangle to avoid alpha overdraw on the corners when thickness is large 2026-03-12 10:10:47 +01:00
Wojtek Figat
62e492452d Add UI editor grid toggle 2026-03-12 09:26:23 +01:00
Wojtek Figat
30d7588d9c Fix UI panel controls missing in Editor 2026-03-12 08:53:30 +01:00
Wojtek Figat
e736048fab Ensure probe count is never out of bounds
#3963
2026-03-12 08:41:06 +01:00
Wojtek Figat
14e59281e4 Merge branch 'Tryibion-fix-inverse-squ-light' 2026-03-12 00:00:31 +01:00
Wojtek Figat
895dcf4aa6 Add auto-converting old point/spot lights brightness when using Inverse Squared Falloff to match new shader math
#3907
2026-03-12 00:00:28 +01:00
Wojtek Figat
6d9d606085 Add UNITS_TO_METERS_SCALE to shader sources for world units scale
#3907
2026-03-11 23:56:47 +01:00
Wojtek Figat
a94b9f9426 Merge branch 'fix-inverse-squ-light' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-inverse-squ-light 2026-03-11 23:35:19 +01:00
Wojtek Figat
ace84ae29f Add limit to max DDGI cascade updates per-frame to 2
#3963
2026-03-11 23:31:44 +01:00
Wojtek Figat
22c88eb59d Fix blocky terrain SDF
#3975
2026-03-11 19:25:18 +01:00
Wojtek Figat
96bbae8e28 Fix Global SDF update when changing Draw Modes of the model
Refactor `DrawModes` field in `StaticModel` and `FoliageType` into property with getter/setter

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

#
2026-02-09 18:01:47 +01:00
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
Phantom
05a0a6b539 Merge branch 'master' into Improve-HighlightedPopUpColor 2026-02-05 19:42:54 +01:00
Wojtek Figat
4833c19366 Fix build regression 2026-02-05 15:45:02 +01:00
Wojtek Figat
65fd22f5b6 Add Triangles to MeshAccessor for easy index buffer access
#3918
2026-02-05 13:00:49 +01:00
Phantom
f57df83d26 Add Slerp methods on Vectors
#3682
2026-02-05 12:43:29 +01:00
Wojtek Figat
66894b71fa Add utility to get loaded assets 2026-02-05 12:37:03 +01:00
Wojtek Figat
7e9ee0610a Fix missing audio on OpenAL when changing active device
#3621
2026-02-04 23:43:06 +01:00
Wojtek Figat
f733611213 Fix various issues with audio and video playback
#3716
2026-02-04 21:48:02 +01:00
Phantom
ca54313bd8 Merge branch 'master' into Improve-HighlightedPopUpColor 2026-02-04 05:19:47 +01:00
Wojtek Figat
780e78f056 Another compilation fix attempt 2026-02-03 23:33:24 +01:00
Wojtek Figat
4d447b7544 Fix very rare race condition when waiting for an asset to load 2026-02-03 23:33:09 +01:00
Phantom
7a96c1ff76 Merge branch 'master' into Improve-HighlightedPopUpColor 2026-02-03 23:26:34 +01:00
Phantom
83c15c05bb Merge branch 'master' into Improve-HighlightedPopUpColor 2026-02-03 23:06:53 +01:00
Wojtek Figat
9a44902949 Optimize e84b5410ec to use faster code path on common math types
#3499
2026-02-03 23:00:36 +01:00
Wojtek Figat
e84b5410ec Fix C# Json serialization to use proper value comparison for structures with Scene Object references
#3499
2026-02-03 22:59:35 +01:00
Wojtek Figat
9ac19cbd2f Fix build regression on Clang 2026-02-03 22:58:09 +01:00
Wojtek Figat
39a2bc2535 Fix build regression on Clang 2026-02-03 22:11:15 +01:00
Wojtek Figat
15771355cb Add ShouldSerialize to ISerializable to properly handle serialization of custom C++ types in prefabs
#3499
2026-02-03 22:09:41 +01:00
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
Phantom
ae46520edf Merge branch 'master' into Improve-HighlightedPopUpColor 2026-02-02 10:31:24 +01:00
Wojtek Figat
0e91a2d25b Merge branch 'Tryibion-fix-view-band-sel' 2026-02-01 23:33:09 +01:00
Wojtek Figat
aba995a42f Merge branch 'fix-view-band-sel' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-view-band-sel 2026-02-01 23:33:04 +01:00
Wojtek Figat
bf0c7fe0dc Fix timescale in FixedTimestep particles update and when using Editor preview
#3811
2026-02-01 23:32:00 +01:00
Wojtek Figat
2ab8b9dd55 Add Texture Group option for triplanar and procedural samplers
#3904
2026-02-01 23:11:44 +01:00
Chandler Cox
e1ffdee57a If UI is culling children, dont return children outside of client area for raycast. 2026-01-30 15:51:53 -06:00
Chandler Cox
7c44767d4d Fix viewport rubberban selector. 2026-01-30 12:07:36 -06:00
Wojtek Figat
87ccaa9dd8 Add keyboard navgation to context menu child menus
#3676
2026-01-30 18:00:16 +01:00
Wojtek Figat
e8c2f18a4d Add tab navigation to Editor context menus and popups
#3676
2026-01-30 17:50:24 +01:00
Wojtek Figat
6b36543717 Merge branch 'xxSeys1-CurvePresets' 2026-01-30 17:41:13 +01:00
Wojtek Figat
bb2a883dc7 Merge branch 'CurvePresets' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-CurvePresets 2026-01-30 17:39:09 +01:00
Wojtek Figat
be7e88de36 Merge branch 'xxSeys1-VisjectResizeCurveNodes' 2026-01-30 17:32:03 +01:00
Wojtek Figat
4a1490f0b1 Follow up on #3642 and move node resizing code to shared code 2026-01-30 17:31:59 +01:00
Wojtek Figat
e0d0acc33c Merge branch 'VisjectResizeCurveNodes' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-VisjectResizeCurveNodes 2026-01-30 16:58:01 +01:00
Wojtek Figat
e2f2d3e6f6 Merge branch 'Tryibion-fix-terrain-closest-point' 2026-01-30 16:43:52 +01:00
Wojtek Figat
afc04dc41c Minor cleanup and fix
#3733
2026-01-30 16:43:48 +01:00
Wojtek Figat
bdfa503c05 Merge branch 'fix-terrain-closest-point' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-terrain-closest-point 2026-01-30 16:38:50 +01:00
Wojtek Figat
205a8b2ebe Fix GPU Vertex Layout usage with explicit offsets to properly hash and calculates stride
#3625
2026-01-30 15:10:31 +01:00
Wojtek Figat
d18c245730 Fix rare async task crash when it's canceled while dequeuing 2026-01-30 13:14:36 +01:00
Wojtek Figat
e4eb064562 Add bake button to nav mesh bounds and minor improvements 2026-01-30 13:12:45 +01:00
Wojtek Figat
9fc9382e58 Refactor navmesh building to support updating all scenes automatically without specifying one
#3744
2026-01-30 13:11:56 +01:00
Wojtek Figat
2bf9efaf30 Fix rebuilding navmesh data for multiple scenes at once that share the same navmesh runtime
#3744
2026-01-29 17:28:34 +01:00
Wojtek Figat
528b4c89ce Add memory profiler category for engine debug data 2026-01-29 17:15:04 +01:00
Wojtek Figat
277dabc8b4 Fix documentation typos 2026-01-29 13:07:59 +01:00
Wojtek Figat
9a5bc444ba Fix build issues on MSVC on Windows 2026-01-29 12:38:23 +01:00
Wojtek Figat
e834fc5a42 Add more profiler categories for navigation 2026-01-29 12:35:36 +01:00
Wojtek Figat
6b87985a44 Merge branch 'Tryibion-fix-drag-tree-open' 2026-01-29 11:00:37 +01:00
Wojtek Figat
a65a74b866 Merge branch 'fix-drag-tree-open' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-drag-tree-open 2026-01-29 11:00:34 +01:00
Wojtek Figat
b2124201d5 Merge branch 'Tryibion-fix-tabs-panel2' 2026-01-29 10:58:51 +01:00
Wojtek Figat
29b8326042 Merge branch 'fix-tabs-panel2' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-tabs-panel2 2026-01-29 10:58:48 +01:00
Wojtek Figat
81bfa6edc9 Merge branch 'Tryibion-fix-scaling-issue' 2026-01-29 10:58:06 +01:00
Wojtek Figat
8ed6a92022 Merge branch 'fix-scaling-issue' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-scaling-issue 2026-01-29 10:58:03 +01:00
Wojtek Figat
c9d16e16cc Fix Rich Text Box vertical alignment of the inlined images and whole contents
#3502 ae4ae7a638 7ee2e66881
2026-01-29 10:55:10 +01:00
Chandler Cox
d9f9401c5a Fix tree node not expanding on drag over arrow. 2026-01-28 20:04:39 -06:00
Wojtek Figat
1e9918b9cc Add CPU profiler events to texture and buffer creation 2026-01-28 21:46:42 +01:00
Wojtek Figat
6c84b7a259 Update engine assets 2026-01-28 21:38:55 +01:00
Wojtek Figat
43b337e163 Fix Vulkan synchronization between CPU and GPU to prevent running over frames in flight 2026-01-28 20:43:01 +01:00
Wojtek Figat
45306ca20e Minor Vulkan fixes 2026-01-28 20:35:42 +01:00
Wojtek Figat
259d93f95c Fix RenderDoc detection on Vulkan 2026-01-28 17:08:00 +01:00
Wojtek Figat
61b6aeb252 Fix missing DDGI on D3D11 when object counter readback buffer doesn't have data on time
(eg. during very fast rendering)
2026-01-28 14:04:43 +01:00
Wojtek Figat
d694c35db4 Bump up version 2026-01-28 13:20:09 +01:00
Wojtek Figat
f105d6f84f Fix SSR artifacts when ray goes towards the screen 2026-01-28 09:22:48 +01:00
Wojtek Figat
b1b6953200 Optimize Volumetric Fog on 2k/4k displays by limiting res to 1080p 2026-01-28 08:53:15 +01:00
Wojtek Figat
fa428e343b Add dithering to Volumetric Fog to reduce aliasing 2026-01-28 08:39:56 +01:00
Chandler Cox
5d9d64e6e7 Fix missing scale for inverse squared setting for lights. 2026-01-27 22:10:22 -06:00
Wojtek Figat
dbbb67f398 Cleanup old Volumetric Fog pass code 2026-01-27 23:32:13 +01:00
Wojtek Figat
a9bddfa784 Fix Volumetric Fog sampling to use the same code path for depth slices conversion 2026-01-27 23:24:47 +01:00
Wojtek Figat
f9b784a42a Add improvements to Volumetric Fog quality and performance 2026-01-27 22:20:48 +01:00
Wojtek Figat
d47bd5d6e7 Fix small lights and small particles rasterization into Volumetric Fog 2026-01-27 21:00:20 +01:00
Wojtek Figat
e1013aec94 Add using medium shadow quality in Volumetric Fog for smoother shadowed lights scattering 2026-01-27 20:52:41 +01:00
Wojtek Figat
1c294059df Fix volume particles to apply opacity/mask into emission for proper shape 2026-01-27 14:12:48 +01:00
Wojtek Figat
305296883d Fix Volumetric Fog to not flicker on temporal blend when resizing the screen or changing quality 2026-01-27 13:56:26 +01:00
Chandler Cox
a7016d1186 Fix issue with tabs not collapsing panel 1 if no tabs on panel 1 2026-01-26 21:56:30 -06:00
Chandler Cox
004e02af73 Fix double scaling in canvas scalar. 2026-01-26 20:46:49 -06:00
Wojtek Figat
143d714037 Optimize Screen Space Reflections tracing with Hierarchical Z-Buffer
Improve SSR resolve filter quality and adjust scalability.
2026-01-26 15:22:39 +01:00
Wojtek Figat
da8376bba1 Fix NaN artifacts after TAA 2026-01-26 13:51:50 +01:00
Phantom
4e8f54bb61 Merge branch 'master' into Improve-HighlightedPopUpColor 2026-01-24 15:29:34 +01:00
fibref
0eac545271 Merge branch 'FlaxEngine:master' into flax-msdf-font 2026-01-24 20:14:30 +08:00
Wojtek Figat
f773a0755d Merge branch 'Tryibion-fix-missing-light-serialize' 2026-01-22 23:40:22 +01:00
Wojtek Figat
d8343dae8e Merge branch 'fix-missing-light-serialize' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-missing-light-serialize 2026-01-22 23:40:16 +01:00
Wojtek Figat
b09fbe2d9b Fix deploying NuGet packages to include dependencies (recursive)
#3900
2026-01-22 23:39:38 +01:00
Wojtek Figat
6dbfd25bdb Fix deploying NuGet packages to include correct library file name
#3900
2026-01-22 19:57:16 +01:00
Wojtek Figat
ecfd03f79c Fix restoring NuGet packages for target with multiple projects
Fix restoring `NuGet` packages to run before project build to ensure files are downloaded

#3900
2026-01-22 18:49:47 +01:00
Wojtek Figat
66a295d5af Optimize reflections combine with depth bounds test 2026-01-20 22:41:59 +01:00
Wojtek Figat
d7458d81a5 Optimize SSR a bit more 2026-01-20 22:05:52 +01:00
Wojtek Figat
cc5e4c19e1 Fixes for SSAO and SSR 2026-01-20 18:19:34 +01:00
Wojtek Figat
0c5cb59875 Fix precision print in profile gpu dump command 2026-01-20 13:23:11 +01:00
Wojtek Figat
85ed0ecb06 Optimize ASSAO perf by using half pixels and less processing for similar visuals 2026-01-20 13:22:01 +01:00
Wojtek Figat
95b9392f51 Fix render target pool pink clear on consoles and mobile 2026-01-20 12:07:20 +01:00
Wojtek Figat
c7c1bbe35f Fix half res depth buffer regression from 192d3d1a8e 2026-01-20 12:01:03 +01:00
Wojtek Figat
192d3d1a8e Optimize SSAO rendering with depth bounds and half-res depth buffer 2026-01-20 00:22:27 +01:00
Wojtek Figat
877d57681d Optimize reflection probes, lights and shadow projections rendering with depth bounds test 2026-01-19 22:14:59 +01:00
Wojtek Figat
0a9bc084f4 Fix deprecated macro usage 2026-01-19 17:45:30 +01:00
Wojtek Figat
ec4f8ce239 Optimize RenderTargetWriteMask on depth pass for transparency and terrain materials 2026-01-19 17:45:18 +01:00
Wojtek Figat
d049a16882 Add support for Depth Bounds test in all graphics APIs 2026-01-19 17:44:45 +01:00
Wojtek Figat
ee75cab73e Add DirectX12 Agility SDK to third-party includes 2026-01-19 17:41:47 +01:00
Wojtek Figat
0072e21ffa Add ProfilerGPU.Dump command for GPU frame profiling log 2026-01-18 16:38:15 +01:00
Wojtek Figat
f44dde89db Fix missing vertex counting in draws (use index count to approx) 2026-01-18 16:24:15 +01:00
Chandler Cox
e6fd761b80 Fix missing light shadow resolution serialization. 2026-01-17 14:09:13 -06:00
Wojtek Figat
62a378e01a Update engine assets 2026-01-16 13:47:44 +01:00
Wojtek Figat
e67b705397 Deprecate GPUTimerQuery in favor of new queries API 2026-01-16 13:39:28 +01:00
Wojtek Figat
847f6411e7 Migrate ProfilerGPU to new lightweight queries API 2026-01-16 13:24:56 +01:00
Wojtek Figat
0d7c04682d Fix parsing else preprocessor and && conditions in bindings generator 2026-01-16 12:48:58 +01:00
Wojtek Figat
baf068330c Add Graphics.TestValue general purpose utility for A/B testing features and perf in shaders during development 2026-01-16 12:48:05 +01:00
Wojtek Figat
593646061e Mark TemporalScale in SSR settings as deprecated and add a minor sharpening to SSR temporal filter 2026-01-16 11:20:06 +01:00
Wojtek Figat
9ac231c403 Add new GPU Query API that is lightweight and supports occlusion queries 2026-01-16 10:40:30 +01:00
Wojtek Figat
d2d7a871ce Add sharpening and better AABB history clamp to Screen Space Reflections temporal filter 2026-01-14 14:00:54 +01:00
Wojtek Figat
b172b08782 Fix dark Screen Space Reflections in some spots when using Software Tracing 2026-01-14 13:26:26 +01:00
Wojtek Figat
18778aa511 **Add Box Projection to Environment Probe** for better indoor areas 2026-01-14 09:49:01 +01:00
Wojtek Figat
b7e32e13ab Add CaptureOffset to Environment Probe 2026-01-13 14:53:48 +01:00
Wojtek Figat
610c76578b Merge remote-tracking branch 'origin/master' into 1.12
# Conflicts:
#	Flax.flaxproj
2026-01-13 14:29:44 +01:00
Wojtek Figat
e721fbd89f Add editor status message about amount of selected actors 2026-01-13 14:21:32 +01:00
Wojtek Figat
ff2c5290b5 Fix Volumetric Fog rasterization on Vulkan 2026-01-13 13:21:32 +01:00
Wojtek Figat
2b4dc97a97 Fix yellowish artifacts due to quantization error in TAA and composite image output
#3318 #3254
2026-01-13 13:12:33 +01:00
Wojtek Figat
14842183f2 Fix sky, skylight and reflections banding artifacts with a random noise
#3254 #3318
2026-01-13 13:12:19 +01:00
Wojtek Figat
b4b13d8dd4 Fix crash when showing cube or volume texture in GPUTextureBrush 2026-01-13 10:36:26 +01:00
Wojtek Figat
e3d1e8a5ea Add View button to edit Environment Probe texture asset 2026-01-13 10:36:07 +01:00
Wojtek Figat
d9f90f726b Optimize reflection probes rendering by using depth test to reject occluded pixels early 2026-01-13 10:35:29 +01:00
Wojtek Figat
e0062a6ff1 Add RenderColorFormat option to graphics settings for rendering pipeline buffer format
#3618
2026-01-13 09:07:22 +01:00
Wojtek Figat
e494c9ec76 Add small scale for color grading LUT 2026-01-12 23:56:31 +01:00
Wojtek Figat
2501095500 Add screen vignette to Eye Adaptation histogram for more accurate exposure 2026-01-12 23:47:15 +01:00
Phantom
ec0877004c Merge branch 'master' into Improve-HighlightedPopUpColor 2026-01-12 22:56:49 +01:00
Wojtek Figat
3cfc5db54a Merge branch 'xxSeys1-ArrayEditorHideSize' 2026-01-12 21:34:57 +01:00
Wojtek Figat
840835fad2 Merge branch 'ArrayEditorHideSize' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-ArrayEditorHideSize 2026-01-12 21:34:52 +01:00
Wojtek Figat
41f136ce0f Merge branch 'xxSeys1-UiClippingFixes' 2026-01-12 21:33:43 +01:00
Wojtek Figat
32cae3aacd Merge branch 'UiClippingFixes' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-UiClippingFixes 2026-01-12 21:33:03 +01:00
Wojtek Figat
832c524c3c Merge branch 'xxSeys1-DirtyEditorSettingsStar' 2026-01-12 21:30:07 +01:00
Wojtek Figat
a18ca9a4ad Merge branch 'DirtyEditorSettingsStar' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-DirtyEditorSettingsStar 2026-01-12 21:30:00 +01:00
Wojtek Figat
05e7e6630c Fix missing material graph references
#3839
2026-01-12 21:28:45 +01:00
Wojtek Figat
788d8660b8 Fix transparent materials flickering without DDGI 2026-01-12 20:47:03 +01:00
Wojtek Figat
ab806b2a9b Add checkerboard pattern to part of the alpha slider background in color picker 2026-01-12 18:53:56 +01:00
Wojtek Figat
610ba00915 Add support for picking colors in linear color space (with toggle for special cases like UI) 2026-01-12 18:50:44 +01:00
Wojtek Figat
e60bd165f4 Disable Linear color space until it's ready for production 2026-01-12 18:50:19 +01:00
Wojtek Figat
223d4f64eb Add GammaColorSpace to Graphics for simplicity 2026-01-12 18:49:10 +01:00
Wojtek Figat
827ad85651 Fix sRGB between Linear conversion to remain Alpha unchanged 2026-01-12 16:08:50 +01:00
Wojtek Figat
69c5d65318 Add Linear to sRGB and sRGB to Linear nodes to materials 2026-01-12 15:54:52 +01:00
Wojtek Figat
b834dddb11 **Refactor sRGB import option on textures** to actually handle image contents with gamma 2026-01-12 15:50:24 +01:00
Wojtek Figat
baddfec6d1 Merge branch 'GoaLitiuM-build_deps_fixes' 2026-01-12 00:32:07 +01:00
Wojtek Figat
fc2f56aca6 Fix missing console platforms
#3746
2026-01-12 00:31:59 +01:00
Wojtek Figat
0364fd629b Merge branch 'build_deps_fixes' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-build_deps_fixes 2026-01-11 23:31:09 +01:00
Wojtek Figat
5dbaf3f94e Fix to not crash after unhandled exception
#3570
2026-01-11 23:23:04 +01:00
Wojtek Figat
c5b7ea9c44 Merge branch 'xxSeys1-ArrowKeyValueBoxIncrement' 2026-01-11 22:37:19 +01:00
Wojtek Figat
7b856fdc95 Merge branch 'ArrowKeyValueBoxIncrement' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-ArrowKeyValueBoxIncrement 2026-01-11 22:36:09 +01:00
Wojtek Figat
890df65970 Add input GamepadButtonDown and GamepadButtonUp events
#3626
2026-01-11 22:34:57 +01:00
Wojtek Figat
ab6dfca36e Fix broken DrawWireTriangles
#3650
2026-01-11 22:23:49 +01:00
Wojtek Figat
72bb2dd932 Fix Resize to Fit to properly dirty state of level editor
#3670 #3735
2026-01-11 22:17:50 +01:00
Wojtek Figat
ca09852898 Merge branch 'xxSeys1-QuickOpenProductLocalFolder' 2026-01-11 22:11:24 +01:00
Wojtek Figat
e21cb9154a Adjust #3677 to evaluate product local path in lazy 2026-01-11 22:11:16 +01:00
Wojtek Figat
af124ce163 Merge branch 'QuickOpenProductLocalFolder' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-QuickOpenProductLocalFolder 2026-01-11 22:09:43 +01:00
Wojtek Figat
c28381fb09 Merge branch 'xxSeys1-UnderscoreNumberSeparator' 2026-01-11 22:07:57 +01:00
Wojtek Figat
973ff0efa0 Merge branch 'UnderscoreNumberSeparator' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-UnderscoreNumberSeparator 2026-01-11 22:07:51 +01:00
Wojtek Figat
27896b6410 Add view flag to hide particles drawing
#3840
2026-01-11 22:06:30 +01:00
Wojtek Figat
4bb9de21b4 Merge branch 'Tryibion-update-mesh-optimizer' 2026-01-11 21:55:08 +01:00
Wojtek Figat
890538c667 Merge branch 'update-mesh-optimizer' of https://github.com/Tryibion/FlaxEngine into Tryibion-update-mesh-optimizer 2026-01-11 21:54:43 +01:00
Wojtek Figat
4b9fa0dcf5 Add OnSerializing/OnSerialized/OnDeserializing/OnDeserialized callbacks to auto serialization code-gen 2026-01-09 10:24:38 +01:00
Wojtek Figat
14d1b7dd24 Fix name collision on new Focused event in control 2026-01-07 23:22:45 +01:00
Wojtek Figat
6788844270 Merge remote-tracking branch 'origin/1.12' into 1.12 2026-01-07 23:21:22 +01:00
Wojtek Figat
b2f2537338 Update version and year 2026-01-07 23:17:40 +01:00
Wojtek Figat
450b998a29 Merge branch 'master' into 1.12 2026-01-07 23:15:13 +01:00
Wojtek Figat
688d9c77cb Fix rendering postfx with color grading only in use and optimize color grading LUT to be skipped when unsued 2026-01-07 18:24:48 +01:00
Wojtek Figat
d71ea5a72b DIsable temporal jitter in debug views of Vertex Colors and Quad Overdraw 2026-01-07 17:57:03 +01:00
Wojtek Figat
01e3ece2af Remove leftover debug 2026-01-06 23:31:32 +01:00
Wojtek Figat
afc65f7557 Update engine materials after version change 2026-01-06 23:31:18 +01:00
Wojtek Figat
d60484b917 Merge remote-tracking branch 'origin/master' 2026-01-06 14:35:58 +01:00
feceb4e00f Update SDL to 3.4.0 2026-01-06 03:02:58 +02:00
67b33a575a Merge branch 'master' into sdl_platform
# Conflicts:
#	.github/workflows/build_linux.yml
#	.github/workflows/tests.yml
#	Source/Tools/Flax.Build/Projects/VisualStudio/VCProjectGenerator.cs
2026-01-06 02:57:52 +02:00
Wojtek Figat
76b869146d Fix missing scripting api tag on MeshAccessor::Stream 2026-01-06 00:03:35 +01:00
Wojtek Figat
32e725392b Optimize inactive probes update in DDGI with faster Jump Flood instead of Flood Fill 2026-01-06 00:01:17 +01:00
Wojtek Figat
0975ac2a25 Fix odd typo in DDGI inactive probes flood fill 2026-01-05 18:02:05 +01:00
Wojtek Figat
cf3bcc4549 Fix DDGI flickering on floors aligned to world axes
Apply a small bias to sample location and dither it a bit to smooth out.
2026-01-05 17:19:16 +01:00
Wojtek Figat
11ea889fa9 Refactor DDGI fallback radiance to use alpha for blending between fixed color and color at snapped location of the last cascade
This means artists don't need to adjust the value anymore as it can cover vista geometry with GI at last cascade borders.
2026-01-05 16:22:00 +01:00
Wojtek Figat
c5a28a5734 Refactor DDGI irradiance sampling when nearby probe is missing to use precomputed fallback probes
Also, insert fallback/dummy probes when there is no SDF nearby to have lighting in all cases.
This both improves sampling performance and fixes issues when sampling in areas far away from valid GI.
2026-01-05 12:04:02 +01:00
Phantom
b171071893 Merge branch 'master' into Improve-HighlightedPopUpColor 2026-01-05 06:30:42 +01:00
Wojtek Figat
6c79a17c7a Fix DDGI cascade placement when using large probes spacing
Revert fa38f0ac91 after b24d98df9e fixed the source of the problem
2026-01-03 20:57:17 +01:00
Wojtek Figat
b24d98df9e Fix DDGI cascades blending to be smoother 2026-01-03 00:48:36 +01:00
Wojtek Figat
400e2f1b0e Fix DDGI flickering on floors aligned to axis on value 0 (eg. floor) 2026-01-02 21:30:14 +01:00
Wojtek Figat
22e6139ca3 Merge branch 'fibref-asset-upgrader-fix' 2026-01-02 17:06:37 +01:00
Wojtek Figat
859fa16a74 Merge branch 'asset-upgrader-fix' of https://github.com/fibref/FlaxEngine into fibref-asset-upgrader-fix 2026-01-02 17:06:33 +01:00
Wojtek Figat
8facb46def Fix regression from 6f6dd2f4a3 on script interface vtable setup 2026-01-02 17:06:27 +01:00
fibref
b87f8b96e1 fix crash on asset auto-upgrade 2026-01-01 17:49:33 +08:00
Wojtek Figat
37df16a3e4 Refactor DDGI irradiance filtering for smoother and more accurate lighting 2025-12-31 00:19:51 +01:00
Wojtek Figat
ce45fa3d54 Fix crash on Global Surface Atlas objects buffer building 2025-12-30 23:41:49 +01:00
Wojtek Figat
7f56d9456b Fix bindings warning when using curve property/field 2025-12-30 22:51:37 +01:00
Phantom
91fd32b708 Merge branch 'master' into Improve-HighlightedPopUpColor 2025-12-29 22:54:40 +01:00
Wojtek Figat
1cad2489a3 Merge branch 'ThePhantomMask-fix-linuxCICD' 2025-12-29 22:53:44 +01:00
Wojtek Figat
7cdc2456cd Clone #3878 into more usages 2025-12-29 22:53:37 +01:00
Wojtek Figat
6b0ee3eeed Merge branch 'fix-linuxCICD' of https://github.com/ThePhantomMask/FlaxEngine into ThePhantomMask-fix-linuxCICD 2025-12-29 22:51:57 +01:00
Wojtek Figat
57330e39ca Merge branch 'GoaLitiuM-bindings_namespace_fix' 2025-12-29 22:29:34 +01:00
Wojtek Figat
af29f2f3dc Merge branch 'bindings_namespace_fix' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-bindings_namespace_fix 2025-12-29 22:29:29 +01:00
Wojtek Figat
1bdb577b60 Fix engine services before exit event order 2025-12-29 22:24:55 +01:00
Wojtek Figat
329ea1c9b4 Merge branch 'GoaLitiuM-rider_cpp_project_launch' 2025-12-29 22:21:16 +01:00
Wojtek Figat
728da6354f Merge branch 'rider_cpp_project_launch' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-rider_cpp_project_launch 2025-12-29 22:21:13 +01:00
Wojtek Figat
d5456d6eb3 Merge branch 'GoaLitiuM-launchsettings_configuration' 2025-12-29 22:18:40 +01:00
Wojtek Figat
e65714988f Merge branch 'launchsettings_configuration' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-launchsettings_configuration 2025-12-29 22:14:00 +01:00
Wojtek Figat
4e4df736f9 Merge branch 'Tryibion-fix-unused-include' 2025-12-29 22:09:43 +01:00
Wojtek Figat
5bfe5b0035 Merge branch 'fix-unused-include' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-unused-include 2025-12-29 22:09:38 +01:00
Wojtek Figat
b30553ea65 Merge branch 'GoaLitiuM-vs_conformance' 2025-12-29 22:08:59 +01:00
Wojtek Figat
2550763808 Merge branch 'vs_conformance' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-vs_conformance 2025-12-29 22:08:54 +01:00
Wojtek Figat
6f6dd2f4a3 Fix crash on script VTable setup due to async
#3580
2025-12-29 22:06:55 +01:00
Wojtek Figat
c30d457b1c Add unit test of code from #3858 to ensure stability 2025-12-29 22:05:01 +01:00
Wojtek Figat
b786fa1c22 Merge branch 'GoaLitiuM-bindings_gen_fixes' 2025-12-29 22:03:46 +01:00
Wojtek Figat
bbcbe305a8 Merge branch 'bindings_gen_fixes' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-bindings_gen_fixes 2025-12-29 22:02:47 +01:00
Wojtek Figat
222df16f11 Merge branch 'Tryibion-fix-blend-shape-weight' 2025-12-28 00:32:38 +01:00
Wojtek Figat
8b924d13c1 Merge branch 'fix-blend-shape-weight' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-blend-shape-weight 2025-12-28 00:32:21 +01:00
Wojtek Figat
66e25c81b0 Merge branch 'GoaLitiuM-cmake_vs2026' 2025-12-27 22:07:23 +01:00
Wojtek Figat
e12f99ee53 Merge branch 'cmake_vs2026' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-cmake_vs2026 2025-12-27 22:07:17 +01:00
Wojtek Figat
387f0cf457 Merge branch 'GoaLitiuM-bytescontainer_codegen_fix' 2025-12-27 21:26:56 +01:00
Wojtek Figat
f11acdf5db Merge branch 'bytescontainer_codegen_fix' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-bytescontainer_codegen_fix 2025-12-27 21:26:52 +01:00
Wojtek Figat
3af7dddcc2 Merge branch 'Tryibion-fix-compute-dist' 2025-12-27 21:22:32 +01:00
Wojtek Figat
543e2ecd13 Merge branch 'fix-compute-dist' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-compute-dist 2025-12-27 21:22:27 +01:00
35f8051a62 Fix managed boolean array conversion to native array 2025-12-23 01:37:53 +02:00
4453453d46 Fix managed wrapper function parameter handling for BytesContainer 2025-12-23 00:37:25 +02:00
Phantom
23f5f4d85f Add fix-missing 2025-12-21 16:41:51 +01:00
Phantom
90a21696f6 Fix Linux Dependencies error 2025-12-21 15:47:52 +01:00
Wojtek Figat
fa38f0ac91 Fix DDGI cascade offset towards bottom that was too intense making probes flicker 2025-12-20 23:44:56 +01:00
e3f5af530b Fix incorrect class namespace in bindings class name lookups 2025-12-19 23:57:41 +02:00
Saas
564c9ff0ca improve orthographic/ perspective viewport cam toggle 2025-12-19 19:00:55 +01:00
Chandler Cox
38d8832468 Update meshoptimizer library to 1.0 2025-12-19 11:46:47 -06:00
Chandler Cox
c68aa3b371 Remove not needed include that produces ambiguity for the Label class. 2025-12-19 08:13:24 -06:00
d031649bbd Fix warnings 2025-12-19 13:17:15 +02:00
21b8d1838d Fix command-line parsing for SDL CreateProcess arguments 2025-12-19 13:17:15 +02:00
c8ee2fc155 Add function for parsing command-line arguments into argument list 2025-12-19 13:17:15 +02:00
Chandler Cox
dc22fa4061 Fix blend shape always applying zero weight if default weight is zero. 2025-12-18 21:49:03 -06:00
3eb690fe58 Ensure managed converter functions are exported with optimizations 2025-12-19 01:08:45 +02:00
52e2327527 Add USED attribute for forcing compiler to emit the symbol 2025-12-19 01:08:45 +02:00
f95cbb0e52 Fix missing exports for managed converter structures 2025-12-19 01:08:44 +02:00
518a19c857 Expose RenderContext to scripting API 2025-12-19 01:08:44 +02:00
c0b54be692 Fix clang bindings code generation for non-const ref parameters 2025-12-19 01:08:44 +02:00
Wojtek Figat
c2c92eba82 Adjust 0e76585709 to not affect depth 2025-12-19 00:08:24 +01:00
d64c28f672 Fix compilation errors with /permissive- standard conformance mode 2025-12-19 00:03:48 +02:00
71b222e0b0 Fix Editor project file generation to use custom code editor arguments 2025-12-18 23:52:21 +02:00
5921f60af2 Get code editor name through CodeEditingManager 2025-12-18 23:52:21 +02:00
39269583c3 Fix default code editor not using Visual Studio as fallback editor 2025-12-18 23:52:21 +02:00
cba3899c62 Fix invalid code editor when selected editor is not detected 2025-12-18 23:52:21 +02:00
Saas
d8c90184b9 add script only on prefab instance header button
- add some padding to `AddHeaderButton()`
- Add visual indicator (Header button) if script is only in prefab instance and not part of the prefab
2025-12-18 17:19:41 +01:00
2a959d0531 Support Visual Studio 2026 as a generator for CMake dependencies 2025-12-18 18:05:45 +02:00
Saas
5b1ca13225 choose darker mouse over color 2025-12-18 12:22:24 +01:00
Saas
0d8ac5b7ac implement review
- Remove trailing tooltip "."
- Add `AddSettingsButton` method
- Simplify loop into LINQ expression
2025-12-18 12:17:22 +01:00
f6e9cf644a Verify the last project path before using it 2025-12-17 03:45:15 +02:00
604bfb5fe6 Add -lastproject editor command-line option to open the last project 2025-12-17 03:30:19 +02:00
b3ea47b989 Use last opened project as initial directory in project file dialog 2025-12-17 03:30:19 +02:00
5d368e59a0 Fix SpecialFolder::AppData on Apple systems 2025-12-17 03:30:19 +02:00
3afd3ce2d5 Use XDG user directories on Linux special paths 2025-12-17 03:30:19 +02:00
Chandler Cox
4504d0ae96 Fix compute distance crash if no closest point param is defined. 2025-12-16 18:22:26 -06:00
f14ba6ace6 Fix Flax C#-project launchSettings.json to launch without project 2025-12-17 02:19:38 +02:00
518f9dc9dc Launch editor when debugging VC++ projects in Rider Linux/macOS 2025-12-17 02:19:38 +02:00
8db29a30e0 Fix VC++ project file building on macOS Rider 2025-12-17 02:18:45 +02:00
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
Phantom
0094216ff8 Renaming Luminance name to Brightness 2025-12-15 14:29:57 +01:00
Phantom
298ee284e1 Merge branch 'master' into Improve-HighlightedPopUpColor 2025-12-15 00:49:49 +01:00
Phantom
7f2f73afd8 Added Luminance property and updated authors
-Added public Luminance property in Color.cs to calculate colour brightness.
-Refactored Dropdown.cs to use Luminance instead of manual calculation.
-Updated author list in AboutDialog.cs by adding ‘Michael Salvini’.
2025-12-15 00:48:42 +01:00
Wojtek Figat
e257f9e4a0 Merge branch 'Tryibion-fix-anim-slot-replay' 2025-12-14 23:03:45 +01:00
Wojtek Figat
056de752ed Add docs 2025-12-14 23:03:34 +01:00
Wojtek Figat
76700c0b24 Merge branch 'fix-anim-slot-replay' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-anim-slot-replay 2025-12-14 23:01:21 +01:00
Wojtek Figat
9fdcff657d Merge branch 'VitaminCpp-late_join_fix' 2025-12-14 22:58:55 +01:00
Wojtek Figat
2b6339c05c Minor code cleanup 2025-12-14 22:58:53 +01:00
Wojtek Figat
bb91202439 Merge branch 'late_join_fix' of https://github.com/VitaminCpp/FlaxEngine into VitaminCpp-late_join_fix 2025-12-14 22:49:49 +01:00
Wojtek Figat
f25e9f262a Merge branch 'VitaminCpp-replication_hashing_fix' 2025-12-14 22:48:09 +01:00
Wojtek Figat
ee51077f49 Merge branch 'replication_hashing_fix' of https://github.com/VitaminCpp/FlaxEngine into VitaminCpp-replication_hashing_fix 2025-12-14 22:43:58 +01:00
Wojtek Figat
950e958a58 Merge branch 'VitaminCpp-hash_set_crash_fix' 2025-12-14 22:41:11 +01:00
Wojtek Figat
5fdbed2b56 Minor codestyle adjustments 2025-12-14 22:41:00 +01:00
Chandler Cox
0e627577fc Simplify code. 2025-12-14 15:00:44 -06:00
Wojtek Figat
4846d4b024 Merge branch 'hash_set_crash_fix' of https://github.com/VitaminCpp/FlaxEngine into VitaminCpp-hash_set_crash_fix 2025-12-14 21:52:40 +01:00
Wojtek Figat
5e5293bf7b Merge branch 'GoaLitiuM-oob_write_fix' 2025-12-14 21:31:42 +01:00
Wojtek Figat
d88477dcae Merge branch 'oob_write_fix' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-oob_write_fix 2025-12-14 21:31:37 +01:00
ae03bc2dd2 Improve Linux .NET runtime identifier detection
Use the runtime identifier detected during runtime instead of
calling the dotnet tool in order to query it.
2025-12-14 20:25:33 +02:00
5cd27032b4 Set C# language version to 14 with .NET 10 2025-12-14 20:25:33 +02:00
7445064d97 Improve installed .NET runtime version detection 2025-12-14 20:25:33 +02:00
9f8b15f0d5 Fix Editor state after loading a scene without compiled game modules 2025-12-14 19:33:50 +02:00
Phantom
bb2e22ecf2 Improved readability of highlighted text in drop-down menus
TextColorHighlighted is now automatically lightened if too dark, by calculating brightness and interpolating towards white. This ensures better readability of selected items in drop-down menus.
2025-12-14 13:14:45 +01:00
Wojtek Figat
bd58bd91b4 Merge branch 'ThePhantomMask-AddDropdownHighlightedColor' 2025-12-13 23:14:47 +01:00
Wojtek Figat
7ce0d88bdc Merge branch 'AddDropdownHighlightedColor' of https://github.com/ThePhantomMask/FlaxEngine into ThePhantomMask-AddDropdownHighlightedColor 2025-12-13 23:14:09 +01:00
Wojtek Figat
98bb2d40d6 Merge branch 'Inertia-Squared-hyprland-fix' 2025-12-13 23:13:30 +01:00
Wojtek Figat
f4bc620bbd Merge branch 'hyprland-fix' of https://github.com/Inertia-Squared/FlaxEngine into Inertia-Squared-hyprland-fix 2025-12-13 23:13:26 +01:00
Wojtek Figat
0313bf32c9 Merge branch 'AcidicVoid-master' 2025-12-13 23:11:05 +01:00
Wojtek Figat
0c887cd29e Use fix from #3830 in particle and anim graphs too 2025-12-13 23:11:01 +01:00
Wojtek Figat
5bd9bce634 Merge branch 'master' of https://github.com/AcidicVoid/FlaxEngine into AcidicVoid-master 2025-12-13 23:08:01 +01:00
Wojtek Figat
2a53d0a462 Fix crash on Visual Script missing asset ref after hot-reload in Editor
#3823
2025-12-13 02:10:41 +01:00
82bd915274 Fix out-of-bounds write while parsing command-line arguments 2025-12-12 14:47:15 +02:00
Saas
e47fc5a54a Merge branch 'master' into PressGToGameModeAndPToNavigate 2025-12-11 21:04:00 +01:00
Saas
26e24769be actually set things to the right thing
How the hell did this happen??
2025-12-11 20:44:40 +01:00
Wojtek Figat
71391cf1cc Fix deprecated tag placement 2025-12-11 16:38:28 +01:00
Wojtek Figat
b5286af526 Attempt to fix regression from 32bd72fecd 2025-12-11 14:48:18 +01:00
Wojtek Figat
9f07a2a54e Attempt to fix regression from 32bd72fecd 2025-12-10 18:58:43 +01:00
Saas
4b62395d69 add script obsolete icon to script editor 2025-12-10 18:41:57 +01:00
Wojtek Figat
c39c642b60 Add safety check for invalid math values in shader graph generation 2025-12-10 17:39:18 +01:00
Wojtek Figat
02cff3973a Bump up engine version 2025-12-10 15:01:53 +01:00
Wojtek Figat
a63b97d31d Add stripping DXIL debug data from the shader cache when not used 2025-12-10 14:58:12 +01:00
Wojtek Figat
ca52122656 Fix validation error on Windows for textures but optimize buffers instead 2025-12-10 14:53:51 +01:00
Wojtek Figat
20a7fcf6a0 Add profiler wait event for GPU wait on D3D12 2025-12-10 13:01:24 +01:00
Wojtek Figat
43665aa7eb Rename GPUContext::ClearState to ResetState for constentency 2025-12-10 13:00:59 +01:00
Wojtek Figat
3b9b49950c Fixes for Xbox One 2025-12-10 09:48:47 +01:00
Wojtek Figat
0a8752ec0a Fix cross-building building engine with separate executable and library for Unix platforms on Windows 2025-12-10 09:48:27 +01:00
Wojtek Figat
47685dc2be Merge branch 'VitaminCpp-missing_move_semantics_fix' 2025-12-09 10:00:55 +01:00
Wojtek Figat
517ee5bb25 Merge branch 'missing_move_semantics_fix' of https://github.com/VitaminCpp/FlaxEngine into VitaminCpp-missing_move_semantics_fix 2025-12-09 10:00:51 +01:00
Wojtek Figat
3ab01d3576 Merge branch 'VitaminCpp-minor_mem_layout_opt' 2025-12-09 10:00:20 +01:00
Wojtek Figat
31b6d4d658 Merge branch 'minor_mem_layout_opt' of https://github.com/VitaminCpp/FlaxEngine into VitaminCpp-minor_mem_layout_opt 2025-12-09 10:00:16 +01:00
Wojtek Figat
08f840d642 Merge branch 'Tryibion-fix-exception-reload' 2025-12-09 09:59:56 +01:00
Wojtek Figat
776b6259cd Merge branch 'fix-exception-reload' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-exception-reload 2025-12-09 09:59:34 +01:00
Wojtek Figat
5c81c71116 Move constant buffer init for instanced draws only, others do it in all paths 2025-12-09 09:51:53 +01:00
Wojtek Figat
188b635ea0 Merge remote-tracking branch 'origin/master' 2025-12-09 09:48:05 +01:00
Wojtek Figat
56066a3212 Porting to a famous blue platform 2025-12-08 14:41:55 -08:00
Phantom
ed50ce9c90 Change Dropdown's EditorOrder from 2023 to 2024 2025-12-07 18:48:16 +01:00
Phantom
a7e77f6e21 Update CreatePopupItem method
-Modify the `TextColour` property to use a dynamic value based on `TextColour` multiplied by `0.9f` instead of a fixed value (`Colour.White * 0.9f`).
-Modify the `TextColourHighlighted` property to use the dynamic value of `TextColourHighlighted` instead of a fixed value (`Colour.White`).
2025-12-07 18:23:38 +01:00
Phantom
56278b17ee Add Text Color Highlighted on Dropdown 2025-12-07 16:53:43 +01:00
Wojtek Figat
bd78db72b9 Add Mono AOT dynamic module preloading to speed up startup time 2025-12-05 03:46:28 -08:00
Wojtek Figat
32bd72fecd Minor fix to the game cooker assets summary log of a single asset 2025-12-04 23:51:07 +01:00
Wojtek Figat
3a798a70fa Fix collections capacity growing to use the closest power of two
Capacity was incorrectly 2x larger than needed.
Added unit test to ensure it stays correct.
2025-12-04 23:29:15 +01:00
Wojtek Figat
02429266b1 Fix Array::RemoveAtKeepOrder to avoid memory override with large mem copy 2025-12-03 05:03:21 -08:00
Wojtek Figat
77aea0c69c Fix fatal error reporting from multiple therads to sync and properly log (eg. out of memory) 2025-12-01 08:18:54 -08:00
Inertia
6a3ce862cb - Add X11 Class hints for easy hooking by WMs for window-specific rules (required to fix some bugs in WMs like Hyprland) 2025-12-01 11:19:35 +11:00
Wojtek Figat
93217da619 Add option to merge vertex layout with reference order maintained 2025-11-29 15:04:11 -08:00
Chandler Cox
bbaa2dfc73 Fix pibot relative movement. 2025-11-29 16:13:46 -06:00
Chandler Cox
ab22b88a53 Better calculation for moving ui by the widgets. 2025-11-29 15:57:35 -06:00
VitaminCpp
63def54dad Merge branch 'FlaxEngine:master' into hash_set_crash_fix 2025-11-28 15:55:15 +01:00
Michael Herzog
00f9a28729 Fixed HashSet compaction count after mid-compact growth
Ensure HashSetBase::Compact() preserves _elementsCount even when EnsureCapacity() triggers during compaction. The growth path resets the counter; we now cache the original count and restore it after moving all buckets so Count() stays correct in heavy-collision scenarios.
2025-11-28 15:51:57 +01:00
092beb6ae9 Fix compilation error 2025-11-28 11:59:56 +02:00
eb69186271 Merge remote-tracking branch 'origin/master' into sdl_platform 2025-11-28 11:58:44 +02:00
Michael Herzog
56beca0db4 Fixed network replicated-object deduplication by hashing/equality on ObjectId
Aligned NetworkReplicatedObject equality with its hash (compare ObjectId, not pointer).
2025-11-27 23:28:17 +01:00
Alex Ray
64cd898a65 Bypassing Call Logic in Editor Preview 2025-11-27 18:09:11 +01:00
Wojtek Figat
394860656a Add FPS limit and pause option when game is unfocused 2025-11-27 10:55:02 +01:00
VitaminCpp
90472a4b31 Merge branch 'FlaxEngine:master' into late_join_fix 2025-11-27 10:33:53 +01:00
Wojtek Figat
a1999183f2 Fix compilation regression 2025-11-27 09:13:14 +01:00
Wojtek Figat
1e3ce48024 Fix compilation regression 2025-11-26 23:43:20 -08:00
Michael Herzog
0007185b5f Fixed late-join network replication
- Adjusted replication to resend unchanged state only to missing clients.
- Skip server serialization when no recipients, and downgrade unknown-despawn noise.
2025-11-26 17:54:49 +01:00
Wojtek Figat
403d2cedc0 Updates to engine for porting to blue platform 2025-11-26 06:28:54 -08:00
Wojtek Figat
c8839b8587 Add support for Cooperative Suspend when running on Mono
Informs mono runtime that Job System, Thread Pool or Content Load threads can wait when they are going idle between tasks.
2025-11-26 00:22:48 -08:00
Wojtek Figat
cf048c9804 Fix path filter query warning 2025-11-26 00:07:00 -08:00
Wojtek Figat
bea75f51bd Fix AOT libs cooking to avoid file dirtying for more accurate iterative cooking 2025-11-26 00:02:40 -08:00
Chandler Cox
1bf6612002 Fix exception thrown when reloading open windows. 2025-11-25 17:26:57 -06:00
Michael Herzog
d9a18b1d31 Fixed HashSet compact rehash under heavy collisions
- Compact now iterates over the old bucket array using the saved oldSize, and frees with that size, avoiding out-of-bounds when _size changes.
- If reinsertion finds no free slot during compaction (pathological collisions), the table grows once and retries, preventing AVs.
- This fix addresses problems with weak hash keys (like #3824).
2025-11-25 21:23:49 +01:00
Michael Herzog
465f30661f Minor memory layout optimization 2025-11-25 17:36:49 +01:00
Michael Herzog
a62ca5452e Fixed missing move semantics in script object reference 2025-11-25 17:33:11 +01:00
Wojtek Figat
b07d74d28d Add option to skip loading Model SDFs in game if disabled in Graphics Settings 2025-11-25 10:39:15 +01:00
Wojtek Figat
dacb3b0891 Fix rendering on Intel-based macOS to use integrated GPU primarly 2025-11-25 10:30:53 +01:00
Wojtek Figat
92254eefcc SImplify some code and update code for platforms 2025-11-25 00:20:14 -08:00
Chandler Cox
2d56411e5f Add slot stop methods without anim param. 2025-11-23 14:19:37 -06:00
Chandler Cox
f8dc8ab903 Fix not being able to replay same animation in animation slot. 2025-11-23 14:19:11 -06:00
Wojtek Figat
2a55cda583 Add fallback location of engine managed library on AOT platforms 2025-11-20 14:58:30 -08:00
Wojtek Figat
7c91c03adf Merge remote-tracking branch 'origin/master' 2025-11-20 06:26:09 -08:00
Wojtek Figat
caa902ea9b Fix shader compilation without HLSL 2021 on Vulkan 2025-11-20 13:47:23 +01:00
Wojtek Figat
fb07071e24 Restore Global Surface Atlas and DDGI on Apple platforms
#3797
2025-11-20 13:47:18 +01:00
Wojtek Figat
a1cb7dcbe7 Fix GPU BVH shader compilation for macOS/iOS 2025-11-20 13:47:11 +01:00
Wojtek Figat
a8db0086b1 Fix shader compilation without HLSL 2021 on Vulkan 2025-11-20 13:07:28 +01:00
Wojtek Figat
e46b6d5b06 Restore Global Surface Atlas and DDGI on Apple platforms
#3797
2025-11-20 10:44:47 +01:00
Wojtek Figat
dfc8c1fac2 Fix GPU BVH shader compilation for macOS/iOS 2025-11-20 10:39:16 +01:00
Wojtek Figat
f8de118288 Merge remote-tracking branch 'origin/master' into 1.12 2025-11-20 10:15:07 +01:00
Wojtek Figat
032f698c7b Fix shader warning 2025-11-19 23:29:28 -08:00
0ac3ab2329 Merge remote-tracking branch 'origin/master' into sdl_platform 2025-11-19 18:30:08 +02:00
Wojtek Figat
e2aaef9b88 Fix shader warning 2025-11-19 08:27:33 -08:00
Wojtek Figat
ee0303bcfb Merge branch 'Tryibion-fix-spline-draw' 2025-11-18 21:30:53 +01:00
Wojtek Figat
1523c7b4ce Merge branch 'fix-spline-draw' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-spline-draw 2025-11-18 21:30:50 +01:00
Wojtek Figat
a16a8eaded Merge branch 'Tryibion-fix-anim-event-edge' 2025-11-18 21:30:05 +01:00
Wojtek Figat
9ff9d48ffd Merge branch 'fix-anim-event-edge' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-anim-event-edge 2025-11-18 21:30:01 +01:00
Wojtek Figat
dfb1fb91a5 Fix ability to override material instance hidden parameters
#3802
2025-11-18 21:29:51 +01:00
Wojtek Figat
8f56ab9534 Fix crash when creating empty material instance 2025-11-18 18:45:43 +01:00
Wojtek Figat
c0dda45c7b Fix crash on exit when C# code was bound to asset unloading event called after C# shutdown 2025-11-18 18:00:02 +01:00
Wojtek Figat
3efb981f00 Fix rare issues on input bugs in Visject 2025-11-18 16:51:43 +01:00
Wojtek Figat
ed408917c6 Fix Visject Surface node dependent connection types init on load
#3802
2025-11-18 16:41:24 +01:00
Wojtek Figat
2ca435a414 Fix shader graph assets loading to wait for async task
#3802
2025-11-18 16:11:31 +01:00
Wojtek Figat
de9e282bad Fix config version in GDK manifest 2025-11-18 05:42:21 -08:00
Wojtek Figat
c437daf9be Fix new compiler DXC changes 2025-11-18 05:42:02 -08:00
Wojtek Figat
1e4f96486f Fix audio playback bug from video on Xbox 2025-11-18 03:55:52 -08:00
Wojtek Figat
e03d0f3322 Fix shader compilation with HLSL 2021 2025-11-18 12:09:20 +01:00
Wojtek Figat
5f0e1253cc Refactor DX12 Root Signature creation to support offline construction
Fix running D3D12 on integrated AMD GPU
2025-11-18 12:08:54 +01:00
Wojtek Figat
7e6b040258 Update DXC shader compiler to 1.8 version (for D3D12) 2025-11-18 12:08:11 +01:00
Wojtek Figat
329ebb6482 Add custom shader compiler for Xbox Scarlett 2025-11-18 12:07:39 +01:00
Wojtek Figat
7a9c58003d Fix video playback on Xbox 2025-11-17 04:41:57 -08:00
Wojtek Figat
371a16e37b Fixes for Xbox with Mono AOT 2025-11-16 14:50:22 -08:00
Chandler Cox
95629e792d Fix additional edge cases 2025-11-15 22:12:35 -06:00
Chandler Cox
e79af2fd60 Handle additional edge cases for anim event. 2025-11-15 21:39:21 -06:00
Wojtek Figat
4aba0153f8 Prioritize Dotnet libs on Mono AOT 2025-11-15 14:57:12 -08:00
Wojtek Figat
f91c33e17c Another fix for shader compilation on Vulkan 2025-11-15 23:42:03 +01:00
Chandler Cox
6c29877b20 Fix spline bezier drawing. 2025-11-15 15:58:50 -06:00
Wojtek Figat
3abde6ecfc Merge branch 'VitaminCpp-fix_bvh_generation_crash' 2025-11-15 22:33:24 +01:00
Wojtek Figat
b42168eee5 Merge branch 'fix_bvh_generation_crash' of https://github.com/VitaminCpp/FlaxEngine into VitaminCpp-fix_bvh_generation_crash 2025-11-15 22:31:49 +01:00
Wojtek Figat
ac3b2c0ef2 Fix shader warning 2025-11-15 22:13:22 +01:00
Michael Herzog
f640452b7b Fix BVH node splitting using stale pointer to invalidated array memory
Ensure BuildBVH refreshes its node pointer after growing _bvh so reallocations no longer leave it operating on freed memory, eliminating the sporadic SDF-generation crash.
2025-11-15 21:57:14 +01:00
Wojtek Figat
2f670495ac Migrate Xbox to using static linking with nethost lib 2025-11-14 14:56:10 +01:00
Wojtek Figat
2a36edf528 Add option to link OpenMP on GDK platforms if needed 2025-11-14 02:11:13 -08:00
Wojtek Figat
5e690abd76 Fix initial state of DummyVertexBuffer on DX12 2025-11-14 01:06:01 -08:00
Wojtek Figat
4008e19ca9 Fix various build issuesin uncommon configurations 2025-11-14 00:52:14 -08:00
Wojtek Figat
e9070b30a0 Minor tweaks 2025-11-13 23:05:13 +01:00
Wojtek Figat
636a1ff930 Fix material shader generation when material layer fails to load 2025-11-13 23:04:24 +01:00
Saas
887311d1f1 replace raw data with (a) struct(s) 2025-11-13 23:00:09 +01:00
Wojtek Figat
3888c4ba21 Fix async tasks destruction to wait on the dependencies in chain 2025-11-13 22:53:52 +01:00
Wojtek Figat
69173803bf Fix shader warning on Vulkan 2025-11-13 22:09:11 +01:00
Wojtek Figat
13e31650be Merge branch 'GoaLitiuM-dotnet_windows_detect_fix' 2025-11-13 22:05:47 +01:00
Wojtek Figat
3563287f17 Merge branch 'dotnet_windows_detect_fix' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-dotnet_windows_detect_fix 2025-11-13 22:05:38 +01:00
Wojtek Figat
91ee9f5e05 Refactor Mesh SDF generation on GPU to use raytracing for more precise results 2025-11-13 22:05:23 +01:00
49918a1067 Fix Windows dotnet root path detection 2025-11-11 22:14:41 +02:00
466f9a4797 Merge remote-tracking branch 'origin/master' into sdl_platform 2025-11-11 21:40:06 +02:00
Wojtek Figat
c7997e0c2f Fix potential error on missing reference object 2025-11-10 21:50:11 +01:00
Wojtek Figat
4805dfbdba Fix issues with model data storage when doing long actions in async (eg. SDF generation) 2025-11-10 15:02:33 +01:00
Wojtek Figat
62424215c1 Fix crash due to missing asset reference inside MeshAccelerationStructure 2025-11-09 23:25:16 +01:00
Wojtek Figat
97ae13759e Merge remote-tracking branch 'origin/master' 2025-11-09 23:22:37 +01:00
Wojtek Figat
108678d94f Fix crash when texture streaming mip task gets deleted after texture object on GC 2025-11-09 22:16:44 +01:00
Wojtek Figat
66dbba5c16 Fix crash if base material gets GCed before it's referenced by instance during loading 2025-11-09 22:16:14 +01:00
Wojtek Figat
d84cef0c18 Fix crash due to async content data streaming
Properly checks for asset data unloading before taking lock on asset chunks.
#3358 #3085 #3515
2025-11-09 22:15:41 +01:00
Wojtek Figat
077cefc60e Merge branch 'xxSeys1-ContentNavigationScrollbarColors' 2025-11-07 21:43:37 +01:00
Wojtek Figat
35acc668c9 Merge branch 'ContentNavigationScrollbarColors' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-ContentNavigationScrollbarColors 2025-11-07 21:42:10 +01:00
Wojtek Figat
ebbe0f12ed Merge branch 'xxSeys1-AttributeEditorPolish' 2025-11-07 21:38:51 +01:00
Wojtek Figat
6a8b76278a Merge branch 'AttributeEditorPolish' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-AttributeEditorPolish 2025-11-07 21:37:46 +01:00
Wojtek Figat
8ac99ef28f Merge branch 'Tryibion-fix-type-editor-in-collection' 2025-11-07 21:33:25 +01:00
Wojtek Figat
547cf7f600 Merge branch 'fix-type-editor-in-collection' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-type-editor-in-collection 2025-11-07 21:33:22 +01:00
Wojtek Figat
b8b8b118c9 Merge branch 'xxSeys1-BakeButtonGroups' 2025-11-07 21:32:35 +01:00
Wojtek Figat
76247323eb Merge branch 'BakeButtonGroups' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-BakeButtonGroups 2025-11-07 21:32:32 +01:00
Wojtek Figat
0ff20c7c85 Merge branch 'Yahasana-patch-1' 2025-11-07 21:31:30 +01:00
Wojtek Figat
dd690e7495 Merge branch 'patch-1' of https://github.com/Yahasana/FlaxEngine into Yahasana-patch-1 2025-11-07 21:31:26 +01:00
Wojtek Figat
ca500548a3 Bump up build number 2025-11-07 21:31:13 +01:00
Wojtek Figat
c0b73375b1 Fix invoking asset load event if it's referenced directly
#3782
2025-11-07 21:31:04 +01:00
Wojtek Figat
9c6d6a0b07 Merge branch 'xxSeys1-CommentAroundAsset' 2025-11-07 15:52:16 +01:00
Wojtek Figat
179f6014bf Merge branch 'CommentAroundAsset' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-CommentAroundAsset 2025-11-07 15:48:34 +01:00
Wojtek Figat
b580c6ec8e Merge branch 'GoaLitiuM-woa_fixes' 2025-11-07 15:25:33 +01:00
Wojtek Figat
dd60cf0040 Merge branch 'woa_fixes' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-woa_fixes 2025-11-07 15:25:29 +01:00
Wojtek Figat
cc851b29fc Fix animation state transition inputs when using other surface context 2025-11-07 15:17:20 +01:00
Wojtek Figat
59643b2fb9 Add improved local-light shadow raytracing by starting ray from light, not surface 2025-11-06 21:01:02 +01:00
Wojtek Figat
3a5bb81d39 Add a new splash screen quote 2025-11-06 21:00:29 +01:00
Wojtek Figat
5ec860015d Add minor adjustments 2025-11-06 21:00:16 +01:00
Wojtek Figat
0f701ec08e Add force Mesh SDF rebuild when holiding F key and using Build All Meshes SDF optino in Editor menu 2025-11-04 13:30:18 +01:00
Wojtek Figat
387c3ea2f4 Add better debug view for Global SDF to include surface hit normal 2025-11-04 13:27:47 +01:00
Wojtek Figat
85b134b7be Add improved Global SDF quality and precision of rasterization 2025-11-04 13:27:21 +01:00
Wojtek Figat
5d17d2509d Fix Global SDF gradient at borders 2025-11-04 12:42:08 +01:00
Wojtek Figat
036d4b2f4b Fix error when asset refs picker uses different types 2025-11-03 23:21:09 +01:00
Wojtek Figat
f8e4f54c77 Fix animation state transition inputs when using other surface context 2025-11-02 22:12:53 +01:00
frank
eb978c767e extend msdfgen buildscript for Mac and Android (not tested) 2025-11-01 20:33:46 +08:00
fibref
661dc8ea1c Merge branch 'FlaxEngine:master' into flax-msdf-font 2025-11-01 19:39:37 +08:00
Saas
93f12b73d8 less code is more better 2025-10-31 23:16:37 +01:00
Saas
1091bc6e2c only show comment edit buttons when surface can be edited 2025-10-31 20:47:23 +01:00
Saas
594c0fb8e7 add comment around asset from which asset reference graph originates 2025-10-31 19:23:42 +01:00
Saas
b6696564f5 tweak colors to be less bright 2025-10-31 18:22:30 +01:00
Saas
316e5b2845 also apply color to border if focused/ selected in ui editor 2025-10-31 18:10:00 +01:00
Saas
c1738bcb0a make the ui editor look like the actor transform editor 2025-10-31 18:02:35 +01:00
Saas
7b3e41efae change how to the actor transform editor looks 2025-10-31 18:02:22 +01:00
ea20dc6da0 Fix wrong build configuration used in ogg and vorbis for Windows 2025-10-31 02:38:09 +02:00
9becddd84f Add dependency build script for Visual Studio EnvDTE 2025-10-31 02:38:09 +02:00
b08c765400 Add dependency build script for WinPixEventRuntime 2025-10-31 02:38:09 +02:00
afd59d7eb3 Fix building vorbis on Windows 2025-10-31 02:38:09 +02:00
47cdd0582c Check VS2026 toolset before trying to compile PhysX 2025-10-31 02:38:09 +02:00
af54d04f9d Fix building ogg+vorbis on macOS 2025-10-31 02:38:09 +02:00
1d2b3bc858 Fix NvCloth compilation on Linux and macOS 2025-10-31 02:32:06 +02:00
4b552563be Fix PhysX compilation on Linux and macOS 2025-10-31 02:32:06 +02:00
ebd929176c Fix python tool call on macOS for glslang 2025-10-31 02:32:06 +02:00
430e685a7c Fix building PhysX on Linux and macOS 2025-10-31 02:32:05 +02:00
d5bd857c45 Support building OpenAL from Git repository in other platforms 2025-10-31 02:32:05 +02:00
b8b9ba3069 Fix building curl on Linux 2025-10-31 02:32:05 +02:00
84c79d5192 Fix building Assimp on Linux
Versioned clang++ symlinks are not available on Arch
2025-10-31 02:32:05 +02:00
028f3a7871 Add support for building dependencies with specific architecture 2025-10-31 02:32:05 +02:00
0c462315f0 Fix CMake compatibility errors with dependencies 2025-10-31 02:21:23 +02:00
26261a2090 Support Visual Studio 2026 as a generator for CMake dependencies 2025-10-31 02:18:00 +02:00
3fc1895b56 Fix compiler error and wrong CPU architecture warnings on WoA 2025-10-31 02:12:14 +02:00
Wojtek Figat
a70d7cf1f9 Update build number 2025-10-30 23:37:20 +01:00
Wojtek Figat
1f592ba1a1 Fix game viewport scaling when using custom aspect or resolution to simulate actual logic
#3699
2025-10-30 23:36:51 +01:00
Wojtek Figat
a43daf025d Merge branch 'xxSeys1-NoEmptyScriptsEditorExpand' 2025-10-30 22:41:31 +01:00
Wojtek Figat
296a2afa95 Merge branch 'NoEmptyScriptsEditorExpand' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-NoEmptyScriptsEditorExpand 2025-10-30 22:41:28 +01:00
Wojtek Figat
a7e879a3a4 Merge branch 'xxSeys1-Flax11ByDefault' 2025-10-30 22:40:46 +01:00
Wojtek Figat
27b160b464 Merge branch 'Flax11ByDefault' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-Flax11ByDefault 2025-10-30 22:40:41 +01:00
Wojtek Figat
7c3c4f1a63 Add Network RPC messages splitting for large arguments payloads
#3776
2025-10-30 22:40:23 +01:00
c61ecc0545 Merge branch 'master' into sdl_platform 2025-10-30 22:42:29 +02:00
Saas
fbae93b532 update default engine version in issue bug template to 1.11 2025-10-30 20:28:37 +01:00
Saas
35d6e5fd21 fix still being able to open/ close script editor with no fields
Introduces "CanOpenClose" to DropPanel.
If false, will ignore the user clicking on the header (or the arrow) to open or collapse the panel
2025-10-30 20:02:15 +01:00
Wojtek Figat
114828adcb Refactor NetworkReplicator update into separate function for cleaner code 2025-10-30 17:12:49 +01:00
Wojtek Figat
b5de4d78ad Fix editing InputEvent that is null 2025-10-30 11:57:47 +01:00
Wojtek Figat
0913e6f738 Fix error when focus changes during focus change xd 2025-10-30 10:39:46 +01:00
Wojtek Figat
053e52c91f Fix compilation for bindings only without scripting internal host defined 2025-10-29 22:18:01 +01:00
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
fibref
3cef8cfd61 Merge branch 'FlaxEngine:master' into flax-msdf-font 2025-10-26 14:37:20 +08:00
Chandler Cox
09964df198 Removing moving the control when trying to resize it. 2025-10-24 16:19:33 -05:00
Chandler Cox
dd8e6bf694 Change handles back to outside of control. 2025-10-24 15:40:45 -05:00
Chandler Cox
58cd3e82f6 Better rotation on UI handles which handles total parent rotation. 2025-10-24 14:55:38 -05:00
22ba7f2ee5 Merge remote-tracking branch 'origin/master' into sdl_platform 2025-10-24 18:31:50 +03:00
Wojtek Figat
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
f52f3920cb Update SDL to 3.2.24 2025-10-18 02:19:56 +03:00
f99a244b8e Merge remote-tracking branch 'origin/master' into sdl_platform
# Conflicts:
#	Source/Editor/Windows/GameWindow.cs
2025-10-18 02:19:30 +03:00
Saas
5dd9171316 fix default value 2025-10-17 21:58:55 +02:00
Saas
5ec2476aec add "*" to editor settings window title when settings are dirty 2025-10-16 21:05:10 +02:00
Saas
a9fc5f720d break up EnvironmentProbe properties into groups 2025-10-16 20:35:53 +02:00
Saas
d323b1c7e2 move skylight and environment probe bake buttons into dedicated groups 2025-10-16 20:28:34 +02:00
Saas
d6b1478bf1 make double clicking properties splitter bar auto resize split 2025-10-16 20:04:05 +02:00
Saas
79351f0c4d Hide array editor "Size" text when array title overlaps it 2025-10-15 21:09:24 +02:00
Saas
e5bd90f58b revert icon scaling 2025-10-15 19:51:24 +02:00
Chandler Cox
7377bad721 Fix check method for type editor not working in a collection. 2025-10-14 21:20:22 -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
Saas
d1972a56e2 improve spline editor
- Move "Selected Point" section above keyframes so it is always accessible, even when keyframe array editor is expanded
- Improve icon scaling when editor becomes thin
2025-10-13 18:27:30 +02:00
Saas
df28b0d977 fix Content Panel navigation bar scroll bar colors
Same concept as in #2581
2025-10-13 11:31:53 +02:00
Saas
48100cf9fc fix group element text clipping
fixes group element header text clipping outside of the header and into the settings icon (if there is one).
Also some extra code to handle script editor, as that displays some extra icons in the header.
2025-10-13 11:16:07 +02:00
Saas
69a7e1f25c expand tooltip to hint at being able to create a new folder on shift + left click 2025-10-12 19:57:05 +02:00
Saas
b43ed886b9 add option for what happens with unavailable entries and fix menu positioning 2025-10-12 19:52:18 +02:00
Saas
59fb83a469 correctly center buttons 2025-10-12 16:23:54 +02:00
Saas
76f0768b99 float 2025-10-12 16:14:07 +02:00
Saas
7544500be1 polish attribute editor
- Add hint about what to do when there are no attributes
- Swap "Ok" "Cancel" buttons order to match other dialog boxes
- Move buttons to the bottom
- Increase size of menu
- Add some missing "." to add/ remove button tooltips in array editor
2025-10-12 16:07:20 +02:00
Saas
b2b855200f allow entering numbers with digit separator into value boxes (f.e. 1_000) 2025-10-11 22:02:14 +02:00
Saas
241a8bc764 add incrementing/ decrementing value boxe's value with arrow keys 2025-10-11 20:30:51 +02:00
frank
18a0e8d612 add msdfgen for windows 2025-10-07 16:15:07 +08:00
Saas
0917a743cd Re- add particle prefix and improve some descriptions 2025-09-21 17:07:13 +02:00
Saas
13dd80d429 add changing and caching Debug ViewMode for Game View 2025-09-21 16:57:38 +02:00
Saas
6e9902a966 use DefaultGame ViewFlag and some fixes 2025-09-21 16:49:07 +02:00
Saas
fd1e0a4e80 add game view to "View" menu, add keyboard new keyboard shortcuts to menu and extra options for view flags and view layers 2025-09-20 16:12:04 +02:00
Saas
b130b81863 add game view and show/ hiding navigation similar to unreal engine 2025-09-20 15:08:03 +02:00
Saas
fb5cedc575 make particle age/ lifetime nodes more clear 2025-09-19 16:32:59 +02:00
Saas
b38a7e6eb2 unify both "too many audio listeners"- warnings 2025-09-18 17:54:21 +02:00
Saas
4f3f1cd163 make changing selected box with arrow up/ down loop 2025-09-15 23:09:07 +02:00
Saas
4d77646f26 fix error when changing selected box with arrow keys 2025-09-15 22:46:56 +02:00
Saas
187592b673 add moving visject nodes in smaller increments when holding shift and alt 2025-09-15 22:37:31 +02:00
Saas
215467ae42 add ribbon menu buttons to quick open product local folder 2025-09-14 18:14:38 +02:00
Saas
facd7d39dc return true if handled 2025-09-14 16:02:48 +02:00
Saas
6810e5f2a4 add moving selected keyframes with arrow keys 2025-09-14 16:00:07 +02:00
Saas
ee6fae8956 small polish stuff
- Fix keyframe edit popup height
- Make keyframe mouse hover color more intense
- Increase keyframe size by 1 to prevent accidental miss clicks, resulting in a new keyframe added, when trying to double click to edit a keyframe
2025-09-14 14:15:35 +02:00
Saas
bb6c3233d2 method placement 2025-09-13 19:22:37 +02:00
Saas
499228cc98 add curve editor presets 2025-09-13 19:07:41 +02:00
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
d70a003617 Improve tab-less dock window behavior in other platforms
Add checks for #3215 to hide the tab bar only if it doesn't prevent
window dragging in Wayland sessions with native decorations.
2025-09-07 19:27:24 +03:00
b443b74d18 Merge branch 'master' into sdl_platform
# Conflicts:
#	Source/Editor/GUI/Docking/DockHintWindow.cs
#	Source/Editor/Options/InterfaceOptions.cs
2025-09-07 19:02:09 +03:00
alsed
e52b7170ce fix segfault when generating mipmaps for cubetextures 2025-09-04 11:11:44 -04:00
alsed
dd7233aaf7 Adds support for Cubemaps textures 2025-09-02 22:23:42 -04:00
Chandler Cox
cd0878f810 Simplify code 2025-09-02 20:47:04 -05:00
Chandler Cox
f588d6da51 Add ability to loop root node in behavior trees. 2025-09-02 20:33:41 -05:00
Chandler Cox
2901e3898c Add IncludeInheritedTypes to RequireActor 2025-08-29 16:03:44 -05:00
fc341a86e7 Merge remote-tracking branch 'origin/master' into sdl_platform 2025-08-24 09:44:28 +03:00
Saas
f2699892e0 add support for resizing visject curve nodes 2025-08-17 15:42:54 +02:00
alsed
c63200cba0 bool error corrected 2025-08-13 11:23:56 -04:00
alsed
c8a02ac607 cleanup 2025-08-13 09:22:30 -04:00
alsed
09a304c214 Add support for dds in linux 2025-08-12 19:18:07 -04:00
68da28ffe8 Update SDL to 3.2.20 2025-08-12 15:39:19 +03:00
Wojtek Figat
427e76e76e Update volk to version 1.4.304 2025-08-12 15:24:48 +03:00
b183b5bcfc Merge remote-tracking branch 'origin/master' into sdl_platform 2025-08-12 15:22:34 +03:00
51feaa0730 Release mouse relative mode when focus changes during mouse tracking
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
2025-07-03 23:21:42 +03:00
8e69aa8bd6 Fix error while closing Editor
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
2025-07-03 22:57:07 +03:00
90b2fded48 Merge remote-tracking branch 'origin/master' into sdl_platform
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
# Conflicts:
#	Source/Editor/Windows/SceneTreeWindow.cs
2025-07-03 22:05:29 +03:00
9125ffeb9e Update third-party label in About dialog 2025-07-03 22:02:37 +03:00
28980e5fbf Cleanup 2025-07-03 22:02:36 +03:00
aab0d772a4 Implement client-side window decorations for Editor windows 2025-07-03 22:02:36 +03:00
6296e1a9eb Fix linker errors 2025-06-26 15:32:38 +03:00
1586bb0702 Merge remote-tracking branch 'origin/master' into sdl_platform 2025-06-26 15:31:59 +03:00
edeaf6af09 Fix compilation without SDL 2025-06-24 22:57:49 +03:00
951edd95db Cleanup 2025-06-24 16:47:45 +03:00
9951211596 Fix mono glib.h wrapper compilation error 2025-06-24 16:47:20 +03:00
6d337464f7 Support XDG Desktop Portal as color picker provider
Wayland and XWayland fallback implementation uses XDP in
order to query picked color from desktop.
2025-06-24 16:41:32 +03:00
d0b552d74a Use logo as an icon in Linux windows 2025-06-23 18:58:02 +03:00
83512822b1 Support clipboard actions in Content Browser and Scene tree on Wayland
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
2025-06-23 17:50:02 +03:00
ccb78103ec Support clipboard actions in Content Browser and Scene tree on X11 2025-06-23 17:07:10 +03:00
6e79ffea34 Fix clipboard not working on X11 2025-06-23 17:07:10 +03:00
4f03d37a17 Merge remote-tracking branch 'origin/master' into sdl_platform 2025-06-23 12:03:41 +03:00
6fb8419b3c Disable window flashing on Wayland to fix focus issues 2025-06-17 14:23:20 +03:00
a4272d6ca9 Merge remote-tracking branch 'origin/master' into sdl_platform 2025-06-17 14:19:46 +03:00
4654117d5e Merge remote-tracking branch 'origin/master' into sdl_platform 2025-06-16 17:09:22 +03:00
6ff260d052 Merge remote-tracking branch 'origin/master' into sdl_platform 2025-06-16 14:09:29 +03:00
88d2b72822 Update SDL to 3.3.x
Fixes popup focus issues on Linux
2025-06-16 14:09:04 +03:00
29868531ad SDL workaround for window size and position not updating
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
2025-06-08 18:57:57 +03:00
95dfb6fdc6 Reduce minimum default window size for CommandLineBox popup 2025-06-08 18:57:12 +03:00
8df3999f85 Merge remote-tracking branch 'origin/master' into sdl_platform 2025-06-04 19:30:30 +03:00
149b189629 Update SDL to 3.2.16 2025-06-02 19:23:34 +03:00
b1fd86e6b5 Merge remote-tracking branch 'origin/master' into sdl_platform 2025-06-02 18:15:16 +03:00
5e8fdf879d Fix logging in gamepad related events 2025-06-02 18:15:10 +03:00
xxSeys1
c45cba18a6 fix menu positioning 2025-05-04 21:18:00 +02:00
xxSeys1
fccd43502b add create file Content Panel toolstrip button 2025-05-04 21:14:10 +02:00
84ada18299 Fix unlock mouse hotkey not unlocking CursorLockMode.Locked cursor 2025-04-21 23:13:23 +03:00
635fe8017e Fix EditorViewport buttons activating items on scene 2025-04-21 23:13:23 +03:00
834380ff05 Cleanup 2025-04-21 23:13:23 +03:00
dd65fc2289 Implement Wayland text clipboard data handling 2025-04-21 23:13:23 +03:00
86125bb625 Add support for VK_EXT_metal_surface extension 2025-04-21 23:13:23 +03:00
09a9d8b380 Update volk to 1.4.304 2025-04-21 23:13:23 +03:00
86b223ec93 Fix mouse relative mode activation triggering mouse move events on Mac 2025-04-21 23:13:23 +03:00
78f6080321 Initial support for building and running SDL platform on macOS 2025-04-21 23:13:23 +03:00
c7be6f6e0e Fix VC++ project file building on macOS Rider 2025-04-20 01:14:51 +03:00
c40c31fbb7 Reduce lock usage during window events 2025-04-19 21:14:13 +03:00
f5fbc1e32d Fix handling of WindowsManager locks 2025-04-19 21:14:13 +03:00
0a20378acd Handle Wayland dragging actions ending prematurely 2025-04-19 21:14:12 +03:00
d4e87877b6 Fix editor viewport activating while dragging a window 2025-04-19 21:14:12 +03:00
7eb7236b8a Fix occluded or hidden windows causing the engine to freeze on Wayland 2025-04-19 21:14:11 +03:00
dc0e4ffce2 Allow context menu to show when activating scene tree with right click 2025-04-19 21:14:11 +03:00
86fe93943d Fix crash when relative mode was left active on removed window 2025-04-19 21:14:10 +03:00
3258113ef8 Ensure mouse position is up-to-date during button down events 2025-04-19 21:14:10 +03:00
ebf3999cfe Fix rubber band selector activating outside of the viewport
This usually happens while trying to drag the window from window handle
2025-04-19 21:14:09 +03:00
a1ccbbb5b9 Use sensible window minimum size limits in editor windows 2025-04-19 21:14:09 +03:00
35072c40d8 Fix build on Linux 2025-04-19 21:14:08 +03:00
5c51021388 Fix merge 2025-04-19 21:14:08 +03:00
95fd527515 Apply drag and drop styling on refactored WindowDragHelper
Reapplies changes from commit 38b00f458c
2025-04-19 21:14:07 +03:00
113d851cea Fix cursor escaping constrained area when initially outside on Windows 2025-04-19 21:14:07 +03:00
72f0c460f9 Refix dragged maximized window generating wrong mouse position events 2025-04-19 21:14:06 +03:00
13ddd15b44 Focus viewports earlier to fix CursorLockMode not always activating 2025-04-19 21:14:06 +03:00
c9e24aaf5f Fix documentation generation 2025-04-19 21:14:05 +03:00
68c0ac0ffc Fix cursor locking bounds calculation 2025-04-19 21:14:05 +03:00
bebda275a9 Fix crash when Game viewport was hidden 2025-04-19 21:14:04 +03:00
287eaae850 Fix X11 external drag and drop not releasing consistently 2025-04-19 21:14:04 +03:00
7e59c3b9a7 Fix restoring locked cursor state when window gains focus again 2025-04-19 21:14:03 +03:00
38658a5b8c Fix CursorLockMode.Locked not working 2025-04-19 21:14:02 +03:00
88c75b8672 Fix dragged maximized window generating wrong mouse position events 2025-04-19 21:14:02 +03:00
17ab1e6830 Fix window handle clicking to not restore window from maximized state 2025-04-19 21:14:01 +03:00
1f45110e5f Fix rubber band selector activating when using Alt-key to orbit 2025-04-19 21:14:01 +03:00
5401166a07 Fix error when entering playmode while holding right mouse button 2025-04-19 21:14:00 +03:00
bfa8188782 Fix accepting drag and drop for files in Wayland 2025-04-19 21:14:00 +03:00
e777a71784 Fix error while dragging files around Content window 2025-04-19 21:13:59 +03:00
c13e91a0d0 Release rubber band selection when viewport starts controlling the view 2025-04-19 21:13:59 +03:00
aac5d57352 Update SDL to 3.2.10 2025-04-19 21:13:58 +03:00
ceca13c7b6 Avoid showing tooltips in inactive windows 2025-04-19 21:13:58 +03:00
2905470330 Update SDL3 to 3.2.4 2025-04-19 21:13:57 +03:00
2c17033822 Fix window dragging when not supported by Wayland compositor
(cherry picked from commit 3554747a67)
2025-04-19 21:13:57 +03:00
0a4cb9e9b1 Show current display server in Editor window tooltip
(cherry picked from commit 62968dd437)
2025-04-19 21:13:56 +03:00
096651f4c1 Properly mark floating windows with transparency support
(cherry picked from commit c660fac524)
2025-04-19 21:13:56 +03:00
275a08506b Enable transparency support in Vulkan swapchains
(cherry picked from commit 431a69e357)
2025-04-19 21:13:55 +03:00
4cd61cb381 Fix compilation for game builds
(cherry picked from commit f4fcc07288)
2025-04-19 21:13:54 +03:00
9ad1147581 Fix cloning SDL repository 2025-04-19 21:13:54 +03:00
35e09def1b Fix text input not working on X11 2025-04-19 21:13:53 +03:00
0469607a71 Fix button latching on Windows after drag and drop operation 2025-04-19 21:13:53 +03:00
d115d22ee6 Implement new window dragging system 2025-04-19 21:13:52 +03:00
8120ae621d Fix mouse resetting issues after ending relative mode 2025-04-19 21:13:52 +03:00
f873c2fa9f Fix frame stutter when window is focused 2025-04-19 21:13:51 +03:00
c3ffbe2f42 Fix error when docking to sides of tabbed panel 2025-04-19 21:13:51 +03:00
55a0a39881 Cleanup Linux SDL implementation 2025-04-19 21:13:50 +03:00
592215dd30 Support compiling third party library C files as C code 2025-04-19 21:13:50 +03:00
ef0c2a2785 Implement Wayland protocols module and file generation 2025-04-19 21:13:49 +03:00
37979e452a Fix mouse warping after ending relative mode 2025-04-19 21:13:49 +03:00
e9671bb727 Add git fetch method for dependencies 2025-04-19 21:13:48 +03:00
aa328bd591 Fix window ShowInTaskbar setting 2025-04-19 21:13:48 +03:00
188e4313f9 Fix various issues with child window positioning 2025-04-19 21:13:47 +03:00
df02c70e31 Add Window.IsAlwaysOnTop property 2025-04-19 21:13:47 +03:00
257f54b323 Use SDL locale 2025-04-19 21:13:46 +03:00
fb4b5b2575 Allow window with single tab to be dragged from tab area 2025-04-19 21:13:46 +03:00
4e1251276d Fix ValueBox mouse position resetting after releasing the button 2025-04-19 21:13:45 +03:00
a7b200dc57 Fix SDL build process on Linux 2025-04-19 21:13:44 +03:00
8cadbae80e Update SDL to 3.2.0 2025-04-19 21:13:44 +03:00
c3bae49aae Force cursor to center of Game Window when tab handle is clicked 2025-04-19 21:13:43 +03:00
Chandler Cox
6fa4fc6149 Fix rotation using SDL 2025-04-19 21:13:43 +03:00
f1ffe1acaa Fix Linux compilation without SDL 2025-04-19 21:13:42 +03:00
5c9ddf7f00 Fix compilation 2025-04-19 21:13:42 +03:00
431767a150 Update SDL3 2025-04-19 21:13:41 +03:00
8ba4e442a6 Fix compilation issues 2025-04-19 21:13:41 +03:00
2f8d19c267 Fix windows not being hidden initially 2025-04-19 21:13:40 +03:00
f2fd98f742 Fix parent window position handling with popup/tooltip windows 2025-04-19 21:13:40 +03:00
3ce35d6e81 Fix compilation errors in other platforms 2025-04-19 21:13:39 +03:00
796dbaa836 Fix CI for Linux 2025-04-19 21:13:39 +03:00
84b209ec7f Prevent building with SDL in unsupported platforms 2025-04-19 21:13:38 +03:00
fa976b34dc Fallback to X11 message box implementation when SDL fails 2025-04-19 21:13:38 +03:00
e7cda362b7 Fix popup and context menus not working on Wayland 2025-04-19 21:13:37 +03:00
a41a09c162 Hide warnings for unsupported SDL operations on Wayland 2025-04-19 21:13:37 +03:00
e82f84f0ab Log a warning for not implemented Wayland functionality 2025-04-19 21:13:36 +03:00
f1d387ceea Fix compilation in Linux 2025-04-19 21:13:36 +03:00
3893d4d1f8 Enable warning sound in question dialogs 2025-04-19 21:13:35 +03:00
cf7ac50faf Enable modern Windows dialog boxes 2025-04-19 21:13:35 +03:00
3f6bf15554 Implement relative mouse mode (raw input) for SDL platform 2025-04-19 21:13:34 +03:00
dac74829b4 Add flag for Window types 2025-04-19 21:13:34 +03:00
94d6f213a0 Enable native windowing system settings with SDL platform 2025-04-19 21:13:33 +03:00
8f2550ef61 Add command-line switches to force X11 and Wayland SDL drivers 2025-04-19 21:13:33 +03:00
b622a1cc5e Implement SDL platform, windowing and input handling 2025-04-19 21:13:32 +03:00
c83a3c32c7 Refactor application window class name 2025-04-19 21:13:32 +03:00
e7dcf7f7e7 Move Window related enums to separate header file 2025-04-19 21:13:31 +03:00
398785a2be Refactor Windows drag and drop implementation 2025-04-19 21:13:31 +03:00
05dba0f1f5 Refactor ScreenUtilities 2025-04-19 21:13:30 +03:00
39dbd32b2e Add more helper methods for managing Git repos 2025-04-19 21:13:30 +03:00
23a34a455a Fix centered window location on X11 2025-04-19 21:13:29 +03:00
4308328b48 Fix initial position of Tooltips 2025-04-19 21:13:29 +03:00
1249 changed files with 242238 additions and 14272 deletions

View File

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

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

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

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

View File

@@ -28,25 +28,23 @@ jobs:
git lfs pull
- name: Install dependencies
run: |
sudo apt-get install libx11-dev libxcursor-dev libxinerama-dev build-essential gettext libtool libtool-bin libpulse-dev libasound2-dev libjack-dev portaudio19-dev
sudo apt-get update
sudo apt-get install -y --fix-missing libx11-dev libxcursor-dev libxinerama-dev build-essential gettext libtool libtool-bin libpulse-dev libasound2-dev libjack-dev portaudio19-dev libwayland-dev gdb
chmod +x .github/data/bt.sh
- name: Build
run: |
./GenerateProjectFiles.sh -vs2022 -log -verbose -printSDKs -dotnet=8
./Development/Scripts/Linux/CallBuildTool.sh -build -log -dotnet=8 -arch=x64 -platform=Linux -configuration=Development -buildtargets=FlaxTestsTarget
./Development/Scripts/Linux/CallBuildTool.sh -build -log -dotnet=8 -arch=x64 -platform=Linux -configuration=Development -buildtargets=FlaxTestsTarget -UseLargeWorlds=true
dotnet msbuild Source/Tools/Flax.Build.Tests/Flax.Build.Tests.csproj /m /t:Restore,Build /p:Configuration=Debug /p:Platform=AnyCPU /nologo
dotnet msbuild Source/Tools/Flax.Build.Tests/Flax.Build.Tests.csproj /m /t:Restore,Build /p:Configuration=Debug /p:Platform=AnyCPU /nologo
- name: Test
run: |
${GITHUB_WORKSPACE}/Binaries/Editor/Linux/Development/FlaxTests
${GITHUB_WORKSPACE}/.github/data/bt.sh ./Binaries/Editor/Linux/Development/FlaxTests -headless
dotnet test -f net8.0 Binaries/Tests/Flax.Build.Tests.dll
cp Binaries/Editor/Linux/Development/FlaxEngine.CSharp.dll Binaries/Tests
cp Binaries/Editor/Linux/Development/FlaxEngine.CSharp.runtimeconfig.json Binaries/Tests
cp Binaries/Editor/Linux/Development/Newtonsoft.Json.dll Binaries/Tests
dotnet test -f net8.0 Binaries/Tests/FlaxEngine.CSharp.dll
- name: Test UseLargeWorlds
run: |
./Development/Scripts/Linux/CallBuildTool.sh -build -log -dotnet=8 -arch=x64 -platform=Linux -configuration=Development -buildtargets=FlaxTestsTarget -UseLargeWorlds=true
${GITHUB_WORKSPACE}/Binaries/Editor/Linux/Development/FlaxTests
# Tests on Windows
tests-windows:
@@ -76,7 +74,7 @@ jobs:
shell: pwsh
run: |
$ErrorActionPreference = "Stop"
.\Binaries\Editor\Win64\Development\FlaxTests.exe
.\Binaries\Editor\Win64\Development\FlaxTests.exe -headless
if(!$?) { Write-Host "Tests failed with exit code $LastExitCode" -ForegroundColor Red; Exit $LastExitCode }
dotnet test -f net8.0 Binaries\Tests\Flax.Build.Tests.dll
xcopy /y Binaries\Editor\Win64\Development\FlaxEngine.CSharp.dll Binaries\Tests

View File

@@ -1,4 +1,4 @@
# Redirect to our own Git LFS server
[lfs]
url="https://gitlab.flaxengine.com/flax/flaxengine.git/info/lfs"
#url="https://gitlab.flaxengine.com/flax/flaxengine.git/info/lfs"
locksverify = false

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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

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

View File

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

View File

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

@@ -282,7 +282,7 @@ namespace FlaxEditor.Content
if (data is DragDataFiles)
return DragDropEffect.Copy;
return _dragOverItems.Effect;
return _dragOverItems?.Effect ?? DragDropEffect.None;
}
/// <inheritdoc />

View File

@@ -20,7 +20,7 @@ namespace FlaxEditor.Content
}
/// <inheritdoc />
public override string TypeDescription => Path.EndsWith(".h") ? "C++ Header File" : "C++ Source Code";
public override string TypeDescription => Path.EndsWith(".h") || Path.EndsWith(".hpp") ? "C++ Header File" : "C++ Source Code";
/// <inheritdoc />
public override SpriteHandle DefaultThumbnail => Editor.Instance.Icons.CPPScript128;

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

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

View File

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

View File

@@ -69,6 +69,10 @@
#include "Platform/iOS/iOSPlatformTools.h"
#include "Engine/Platform/iOS/iOSPlatformSettings.h"
#endif
#if PLATFORM_TOOLS_WEB
#include "Platform/Web/WebPlatformTools.h"
#include "Engine/Platform/Web/WebPlatformSettings.h"
#endif
namespace GameCookerImpl
{
@@ -151,6 +155,8 @@ const Char* ToString(const BuildPlatform platform)
return TEXT("iOS ARM64");
case BuildPlatform::WindowsARM64:
return TEXT("Windows ARM64");
case BuildPlatform::Web:
return TEXT("Web");
default:
return TEXT("");
}
@@ -183,6 +189,8 @@ const Char* ToString(const DotNetAOTModes mode)
return TEXT("MonoAOTDynamic");
case DotNetAOTModes::MonoAOTStatic:
return TEXT("MonoAOTStatic");
case DotNetAOTModes::NoDotnet:
return TEXT("NoDotnet");
default:
return TEXT("");
}
@@ -307,6 +315,10 @@ void CookingData::GetBuildPlatformName(const Char*& platform, const Char*& archi
platform = TEXT("Windows");
architecture = TEXT("ARM64");
break;
case BuildPlatform::Web:
platform = TEXT("Web");
architecture = TEXT("x86");
break;
default:
LOG(Fatal, "Unknown or unsupported build platform.");
}
@@ -461,6 +473,11 @@ PlatformTools* GameCooker::GetTools(BuildPlatform platform)
case BuildPlatform::iOSARM64:
result = New<iOSPlatformTools>();
break;
#endif
#if PLATFORM_TOOLS_WEB
case BuildPlatform::Web:
result = New<WebPlatformTools>();
break;
#endif
}
Tools.Add(platform, result);
@@ -604,6 +621,9 @@ void GameCooker::GetCurrentPlatform(PlatformType& platform, BuildPlatform& build
case PlatformType::iOS:
buildPlatform = BuildPlatform::iOSARM64;
break;
case PlatformType::Web:
buildPlatform = BuildPlatform::Web;
break;
default: ;
}
}

View File

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

View File

@@ -138,6 +138,7 @@ Array<byte> AndroidPlatformTools::SaveCache(CookingData& data, IBuildCache* cach
result.Add((const byte*)&platformCache, sizeof(platformCache));
return result;
}
void AndroidPlatformTools::OnBuildStarted(CookingData& data)
{
// Adjust the cooking output folder to be located inside the Gradle assets directory
@@ -412,7 +413,6 @@ bool AndroidPlatformTools::OnPostProcess(CookingData& data)
}
LOG(Info, "Output Android APK application package: {0} (size: {1} MB)", outputApk, FileSystem::GetFileSize(outputApk) / 1024 / 1024);
return false;
}

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,

View File

@@ -0,0 +1,271 @@
// Copyright (c) Wojciech Figat. All rights reserved.
#if PLATFORM_TOOLS_WEB
#include "WebPlatformTools.h"
#include "Engine/Platform/File.h"
#include "Engine/Platform/FileSystem.h"
#include "Engine/Platform/CreateProcessSettings.h"
#include "Engine/Platform/Web/WebPlatformSettings.h"
#include "Engine/Core/Types/Span.h"
#include "Engine/Core/Math/Vector2.h"
#include "Engine/Core/Config/GameSettings.h"
#include "Engine/Core/Config/BuildSettings.h"
#include "Engine/Content/Content.h"
#include "Engine/Content/JsonAsset.h"
#include "Engine/Graphics/PixelFormatExtensions.h"
#include "Engine/Graphics/Textures/TextureBase.h"
#include "Editor/Cooker/GameCooker.h"
IMPLEMENT_SETTINGS_GETTER(WebPlatformSettings, WebPlatform);
namespace
{
struct WebPlatformCache
{
WebPlatformSettings::TextureCompression TexturesCompression;
};
}
const Char* WebPlatformTools::GetDisplayName() const
{
return TEXT("Web");
}
const Char* WebPlatformTools::GetName() const
{
return TEXT("Web");
}
PlatformType WebPlatformTools::GetPlatform() const
{
return PlatformType::Web;
}
ArchitectureType WebPlatformTools::GetArchitecture() const
{
return ArchitectureType::x86;
}
DotNetAOTModes WebPlatformTools::UseAOT() const
{
return DotNetAOTModes::MonoAOTDynamic;//MonoAOTStatic;// DotNetAOTModes::None;//DotNetAOTModes::MonoAOTStatic;//DotNetAOTModes::NoDotnet;
}
PixelFormat WebPlatformTools::GetTextureFormat(CookingData& data, TextureBase* texture, PixelFormat format)
{
const auto platformSettings = WebPlatformSettings::Get();
const auto uncompressed = PixelFormatExtensions::FindUncompressedFormat(format);
switch (platformSettings->TexturesCompression)
{
case WebPlatformSettings::TextureCompression::Uncompressed:
return uncompressed;
case WebPlatformSettings::TextureCompression::BC:
return format;
case WebPlatformSettings::TextureCompression::ASTC:
switch (format)
{
case PixelFormat::BC4_SNorm:
return PixelFormat::R8_SNorm;
case PixelFormat::BC5_SNorm:
return PixelFormat::R16G16_SNorm;
case PixelFormat::BC6H_Typeless:
case PixelFormat::BC6H_Uf16:
case PixelFormat::BC6H_Sf16:
case PixelFormat::BC7_Typeless:
case PixelFormat::BC7_UNorm:
case PixelFormat::BC7_UNorm_sRGB:
return PixelFormat::R16G16B16A16_Float; // TODO: ASTC HDR
default:
return PixelFormatExtensions::IsSRGB(format) ? PixelFormat::ASTC_6x6_UNorm_sRGB : PixelFormat::ASTC_6x6_UNorm;
}
case WebPlatformSettings::TextureCompression::Basis:
switch (format)
{
case PixelFormat::BC7_Typeless:
case PixelFormat::BC7_UNorm:
case PixelFormat::BC7_UNorm_sRGB:
return PixelFormat::R16G16B16A16_Float; // Basic Universal doesn't support alpha in BC7 (and it can be loaded only from LDR formats)
default:
if (uncompressed != format && texture->Size().MinValue() >= 16)
return PixelFormat::Basis;
return uncompressed;
}
default:
return format;
}
}
void WebPlatformTools::LoadCache(CookingData& data, IBuildCache* cache, const Span<byte>& bytes)
{
const auto platformSettings = WebPlatformSettings::Get();
bool invalidTextures = true;
if (bytes.Length() == sizeof(WebPlatformCache))
{
auto* platformCache = (WebPlatformCache*)bytes.Get();
invalidTextures = platformCache->TexturesCompression != platformSettings->TexturesCompression;
}
if (invalidTextures)
{
LOG(Info, "{0} option has been modified.", TEXT("TexturesQuality"));
cache->InvalidateCacheTextures();
}
}
Array<byte> WebPlatformTools::SaveCache(CookingData& data, IBuildCache* cache)
{
const auto platformSettings = WebPlatformSettings::Get();
WebPlatformCache platformCache;
platformCache.TexturesCompression = platformSettings->TexturesCompression;
Array<byte> result;
result.Add((const byte*)&platformCache, sizeof(platformCache));
return result;
}
bool WebPlatformTools::IsNativeCodeFile(CookingData& data, const String& file)
{
String extension = FileSystem::GetExtension(file);
return extension.IsEmpty() || extension == TEXT("html") || extension == TEXT("js") || extension == TEXT("wasm");
}
void WebPlatformTools::OnBuildStarted(CookingData& data)
{
// Adjust the cooking output folder for the data files so file_packager tool can compress and output final data inside the cooker output folder
data.DataOutputPath = data.CacheDirectory / TEXT("Files");
}
bool WebPlatformTools::OnPostProcess(CookingData& data)
{
const auto gameSettings = GameSettings::Get();
const auto platformSettings = WebPlatformSettings::Get();
const auto platformDataPath = data.GetPlatformBinariesRoot();
// Get name of the output binary (JavaScript and WebAssembly files match)
String gameJs;
{
Array<String> files;
FileSystem::DirectoryGetFiles(files, data.OriginalOutputPath, TEXT("*"), DirectorySearchOption::TopDirectoryOnly);
for (const String& file : files)
{
if (file.EndsWith(TEXT(".js")))
{
String outputWasm = String(StringUtils::GetPathWithoutExtension(file)) + TEXT(".wasm");
if (files.Contains(outputWasm))
{
gameJs = file;
break;
}
}
}
}
if (gameJs.IsEmpty())
{
data.Error(TEXT("Failed to find the main JavaScript for the output game"));
return true;
}
// Move .wasm assemblies into the data files in order for dlopen to work (blocking)
{
Array<String> files, files2;
FileSystem::DirectoryGetFiles(files, data.OriginalOutputPath, TEXT("*.wasm"), DirectorySearchOption::AllDirectories);
FileSystem::DirectoryGetFiles(files, data.OriginalOutputPath, TEXT("*.so"), DirectorySearchOption::AllDirectories);
StringView gameWasm = StringUtils::GetFileNameWithoutExtension(gameJs);
for (const String& file : files)
{
if (StringUtils::GetFileNameWithoutExtension(file) == gameWasm)
continue; // Skip the main game module
FileSystem::MoveFile(data.DataOutputPath / StringUtils::GetFileName(file), file, true);
}
for (const String& file : files2)
{
if (StringUtils::GetFileNameWithoutExtension(file) == gameWasm)
continue; // Skip the main game module
FileSystem::MoveFile(data.DataOutputPath / StringUtils::GetFileName(file), file, true);
}
}
// Pack data files into a single file using Emscripten's file_packager tool
{
CreateProcessSettings procSettings;
String emscriptenSdk = TEXT("EMSDK");
Platform::GetEnvironmentVariable(emscriptenSdk, emscriptenSdk);
procSettings.FileName = emscriptenSdk / TEXT("upstream/emscripten/tools/file_packager");
#if PLATFORM_WIN32
procSettings.FileName += TEXT(".bat");
#endif
procSettings.Arguments = String::Format(TEXT("files.data --preload \"{}@/\" --lz4 --js-output=files.js"), data.DataOutputPath);
procSettings.WorkingDirectory = data.OriginalOutputPath;
const int32 result = Platform::CreateProcess(procSettings);
if (result != 0)
{
if (!FileSystem::FileExists(procSettings.FileName))
data.Error(TEXT("Missing file_packager.bat. Ensure Emscripten SDK installation is valid and 'EMSDK' environment variable points to it."));
data.Error(String::Format(TEXT("Failed to package project files (result code: {0}). See log for more info."), result));
return true;
}
}
// Copy icon file
{
String dstIcon = data.OriginalOutputPath / TEXT("favicon.ico");
if (!FileSystem::FileExists(dstIcon))
FileSystem::CopyFile(dstIcon, platformDataPath / TEXT("favicon.ico"));
}
// TODO: customizable HTML templates
// Insert packaged file system with game data
{
String gameJsText;
if (File::ReadAllText(gameJs, gameJsText))
{
data.Error(String::Format(TEXT("Failed to load file '{}'"), gameJs));
return true;
}
const String filesIncludeBegin = TEXT("// include: files.js");
const String filesIncludeEnd = TEXT("// end include: files.js");
String fileJs = data.OriginalOutputPath / TEXT("files.js");
if (!gameJsText.Contains(filesIncludeBegin))
{
// Insert generated files.js into the main game file after the minimum_runtime_check.js include
String fileJsText;
if (File::ReadAllText(fileJs, fileJsText))
{
data.Error(String::Format(TEXT("Failed to load file '{}'"), fileJs));
return true;
}
const String insertPrefixLocation = TEXT("// end include: minimum_runtime_check.js");
int32 location = gameJsText.Find(insertPrefixLocation);
if (location != -1)
{
location += insertPrefixLocation.Length() + 1;
fileJsText = filesIncludeBegin + TEXT("\n") + fileJsText + TEXT("\n") + filesIncludeEnd + TEXT("\n");
gameJsText.Insert(location, fileJsText);
}
else
{
// Comments are missing in Release when JS/HTML are minified
fileJsText.Insert(0, filesIncludeBegin);
fileJsText.Insert(0, TEXT("\n"));
gameJsText.Insert(0, fileJsText);
}
File::WriteAllText(gameJs, gameJsText, Encoding::UTF8);
}
// Remove the generated files.js as it's now included in the main game JS file
FileSystem::DeleteFile(fileJs);
}
const auto buildSettings = BuildSettings::Get();
if (buildSettings->SkipPackaging)
return false;
GameCooker::PackageFiles();
// TODO: minify/compress output JS files (in Release builds)
LOG(Info, "Output website size: {0} MB", FileSystem::GetDirectorySize(data.OriginalOutputPath) / 1024 / 1024);
return false;
}
#endif

View File

@@ -0,0 +1,29 @@
// Copyright (c) Wojciech Figat. All rights reserved.
#pragma once
#if PLATFORM_TOOLS_WEB
#include "../../PlatformTools.h"
/// <summary>
/// The Web platform support tools.
/// </summary>
class WebPlatformTools : public PlatformTools
{
public:
// [PlatformTools]
const Char* GetDisplayName() const override;
const Char* GetName() const override;
PlatformType GetPlatform() const override;
ArchitectureType GetArchitecture() const override;
DotNetAOTModes UseAOT() const override;
PixelFormat GetTextureFormat(CookingData& data, TextureBase* texture, PixelFormat format) override;
void LoadCache(CookingData& data, IBuildCache* cache, const Span<byte>& bytes) override;
Array<byte> SaveCache(CookingData& data, IBuildCache* cache) override;
bool IsNativeCodeFile(CookingData& data, const String& file) override;
void OnBuildStarted(CookingData& data) override;
bool OnPostProcess(CookingData& data) override;
};
#endif

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;

View File

@@ -526,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;
@@ -571,6 +572,14 @@ bool ProcessShaderBase(CookAssetsStep::AssetCookData& data, ShaderAssetBase* ass
COMPILE_PROFILE(Vulkan_SM5, SHADER_FILE_CHUNK_INTERNAL_VULKAN_SM5_CACHE);
break;
}
#endif
#if PLATFORM_TOOLS_WEB
case BuildPlatform::Web:
{
const char* platformDefineName = "PLATFORM_WEB";
COMPILE_PROFILE(WebGPU, SHADER_FILE_CHUNK_INTERNAL_GENERIC_CACHE);
break;
}
#endif
default:
{
@@ -733,37 +742,8 @@ bool ProcessTextureBase(CookAssetsStep::AssetCookData& data)
{
auto chunk = New<FlaxChunk>();
data.InitData.Header.Chunks[mipIndex] = chunk;
// Calculate the texture data storage layout
uint32 rowPitch, slicePitch;
const int32 mipWidth = Math::Max(1, textureData->Width >> mipIndex);
const int32 mipHeight = Math::Max(1, textureData->Height >> mipIndex);
RenderTools::ComputePitch(textureData->Format, mipWidth, mipHeight, rowPitch, slicePitch);
chunk->Data.Allocate(slicePitch * textureData->GetArraySize());
// Copy array slices into mip data (sequential)
for (int32 arrayIndex = 0; arrayIndex < textureData->Items.Count(); arrayIndex++)
{
auto& mipData = textureData->Items[arrayIndex].Mips[mipIndex];
byte* src = mipData.Data.Get();
byte* dst = chunk->Data.Get() + (slicePitch * arrayIndex);
// Faster path if source and destination data layout matches
if (rowPitch == mipData.RowPitch && slicePitch == mipData.DepthPitch)
{
Platform::MemoryCopy(dst, src, slicePitch);
}
else
{
const auto copyRowSize = Math::Min(mipData.RowPitch, rowPitch);
for (uint32 line = 0; line < mipData.Lines; line++)
{
Platform::MemoryCopy(dst, src, copyRowSize);
src += mipData.RowPitch;
dst += rowPitch;
}
}
}
if (TextureTool::WriteTextureData(chunk->Data, *textureData, mipIndex))
return true;
}
// Clone any custom asset chunks (eg. sprite atlas data, mips are in 0-13 chunks)
@@ -1367,7 +1347,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

@@ -39,17 +39,23 @@ bool DeployDataStep::Perform(CookingData& data)
}
String dstDotnet = data.DataOutputPath / TEXT("Dotnet");
const DotNetAOTModes aotMode = data.Tools->UseAOT();
const bool usAOT = aotMode != DotNetAOTModes::None;
const bool usAOT = aotMode != DotNetAOTModes::None && aotMode != DotNetAOTModes::NoDotnet;
if (usAOT)
{
// Deploy Dotnet files into intermediate cooking directory for AOT
FileSystem::DeleteDirectory(dstDotnet);
dstDotnet = data.ManagedCodeOutputPath;
}
if (buildSettings.SkipDotnetPackaging && data.Tools->UseSystemDotnet())
if (aotMode == DotNetAOTModes::NoDotnet)
{
// No .NET
FileSystem::DeleteDirectory(dstDotnet);
}
else if (buildSettings.SkipDotnetPackaging && data.Tools->UseSystemDotnet())
{
// Use system-installed .NET Runtime
FileSystem::DeleteDirectory(dstDotnet);
LOG(Info, "Not using .NET Runtime");
}
else
{
@@ -265,7 +271,7 @@ bool DeployDataStep::Perform(CookingData& data)
}
if (version.IsEmpty())
{
data.Error(String::Format(TEXT("Failed to find supported .NET {} version (min {}) for the current host platform."), maxVer, minVer));
data.Error(String::Format(TEXT("Failed to find supported .NET {} version (min {}) for {} platform."), maxVer, minVer, platformName));
return true;
}
}

View File

@@ -12,7 +12,9 @@
void PrecompileAssembliesStep::OnBuildStarted(CookingData& data)
{
const DotNetAOTModes aotMode = data.Tools->UseAOT();
if (aotMode == DotNetAOTModes::None || EnumHasAllFlags(data.Options, BuildOptions::NoCook))
if (aotMode == DotNetAOTModes::None ||
aotMode == DotNetAOTModes::NoDotnet ||
EnumHasAllFlags(data.Options, BuildOptions::NoCook))
return;
const auto& buildSettings = *BuildSettings::Get();
@@ -35,8 +37,8 @@ void PrecompileAssembliesStep::OnBuildStarted(CookingData& data)
if (cachedData != aotModeCacheValue)
{
LOG(Info, "AOT cache invalidation");
FileSystem::DeleteDirectory(data.ManagedCodeOutputPath); // Remove AOT cache
FileSystem::DeleteDirectory(data.DataOutputPath / TEXT("Dotnet")); // Remove deployed Dotnet libs (be sure to remove any leftovers from previous build)
//FileSystem::DeleteDirectory(data.ManagedCodeOutputPath); // Remove AOT cache
//FileSystem::DeleteDirectory(data.DataOutputPath / TEXT("Dotnet")); // Remove deployed Dotnet libs (be sure to remove any leftovers from previous build)
}
}
if (!FileSystem::DirectoryExists(data.ManagedCodeOutputPath))
@@ -49,7 +51,8 @@ void PrecompileAssembliesStep::OnBuildStarted(CookingData& data)
bool PrecompileAssembliesStep::Perform(CookingData& data)
{
const DotNetAOTModes aotMode = data.Tools->UseAOT();
if (aotMode == DotNetAOTModes::None)
if (aotMode == DotNetAOTModes::None ||
aotMode == DotNetAOTModes::NoDotnet)
return false;
const auto& buildSettings = *BuildSettings::Get();
if (buildSettings.SkipDotnetPackaging && data.Tools->UseSystemDotnet())
@@ -59,6 +62,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"));

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

@@ -190,12 +190,12 @@ namespace FlaxEditor.CustomEditors.Dedicated
foreach (var file in files)
FindNewKeysCSharp(file, newKeys, allKeys);
// C++
files = Directory.GetFiles(Globals.ProjectSourceFolder, "*.cpp", SearchOption.AllDirectories);
// C/C++
files = Directory.GetFiles(Globals.ProjectSourceFolder, "*.cpp", SearchOption.AllDirectories).Concat(Directory.GetFiles(Globals.ProjectSourceFolder, "*.c", SearchOption.AllDirectories)).ToArray();
filesCount += files.Length;
foreach (var file in files)
FindNewKeysCpp(file, newKeys, allKeys);
files = Directory.GetFiles(Globals.ProjectSourceFolder, "*.h", SearchOption.AllDirectories);
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;

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