660 Commits

Author SHA1 Message Date
f5974a7448 Merge remote-tracking branch 'origin/1.10' into sdl_platform_1.10 2025-03-13 18:43:06 +02:00
Wojtek Figat
5d3da8a8d0 Merge remote-tracking branch 'origin/master' into 1.10
# Conflicts:
#	Source/Editor/SceneGraph/Actors/StaticModelNode.cs
#	Source/Engine/Graphics/Models/Mesh.cs
#	Source/Engine/Graphics/Models/ModelData.h
2025-03-13 11:23:01 +01:00
Wojtek Figat
2cf30c27eb Fix .NET libs deploy regression 2025-03-13 11:19:09 +01:00
Wojtek Figat
5d32bb962f Add warning when cloth paint is incorrect size 2025-03-11 23:09:47 +01:00
Wojtek Figat
477c979cdd Merge branch 'Tryibion-local-origin-multi-mesh' 2025-03-11 23:02:39 +01:00
Wojtek Figat
9d46626641 Fix new rubberband selection when using arc cam via alt key 2025-03-11 22:58:01 +01:00
Wojtek Figat
e7824d6d9b Merge branch 'local-origin-multi-mesh' of https://github.com/Tryibion/FlaxEngine into Tryibion-local-origin-multi-mesh 2025-03-11 22:28:48 +01:00
Wojtek Figat
7120ac4f10 Merge branch 'xxSeys1-TypoFix' 2025-03-11 22:12:49 +01:00
Wojtek Figat
f5751254d6 Merge branch 'TypoFix' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-TypoFix 2025-03-11 22:12:43 +01:00
Wojtek Figat
f11349f16c Fix compilation 2025-03-11 22:09:19 +01:00
xxSeys1
862c2db11a fix some typos 2025-03-11 21:18:23 +01:00
Wojtek Figat
2af6bdc283 Fix audio artifacts when importing 32-bit IEE wav files 2025-03-11 18:46:25 +01:00
Wojtek Figat
3c303514a4 Fix crash when using audio playback and playing editor meanwhile 2025-03-11 18:10:48 +01:00
Wojtek Figat
a3cc3c79e2 Another fix for spatial and non-spatial, mono and multi-channel audio sourcs playback on OpenAL
#3206
2025-03-11 18:10:19 +01:00
Wojtek Figat
cab0f92da8 Fix crash when importing large audio file 2025-03-11 17:01:33 +01:00
Wojtek Figat
21c07b7bf3 Fix regression from f256b0670f
#3277
2025-03-11 16:41:27 +01:00
Wojtek Figat
0b85438b20 Merge branch 'Zode-absolutesnap' 2025-03-11 14:05:30 +01:00
Wojtek Figat
9c15094855 Minor tweaks
#2722
2025-03-11 14:05:18 +01:00
Wojtek Figat
9e9b255c00 Merge branch 'absolutesnap' of https://github.com/Zode/FlaxEngine into Zode-absolutesnap 2025-03-11 13:28:01 +01:00
Wojtek Figat
1a5874e425 Merge branch 'Tryibion-scene-actor-multi-select' 2025-03-11 13:09:01 +01:00
Wojtek Figat
f256b0670f Add mouse capture usage for new rubber band selection
#3151
2025-03-11 13:07:53 +01:00
Wojtek Figat
a54299a560 Optimize ViewportRubberBandSelector
#3151
2025-03-11 13:05:15 +01:00
Wojtek Figat
273b366f44 Merge branch 'scene-actor-multi-select' of https://github.com/Tryibion/FlaxEngine into Tryibion-scene-actor-multi-select 2025-03-11 10:24:00 +01:00
Wojtek Figat
131d2fa4f1 Merge branch 'Tryibion-control-type-search' 2025-03-11 10:15:01 +01:00
Wojtek Figat
08a43b93f4 Merge branch 'control-type-search' of https://github.com/Tryibion/FlaxEngine into Tryibion-control-type-search 2025-03-11 10:14:55 +01:00
Wojtek Figat
47b004a4aa Merge branch 'Tryibion-multi-axis-select-box' 2025-03-11 10:14:30 +01:00
Wojtek Figat
f7e5bcb058 Merge branch 'multi-axis-select-box' of https://github.com/Tryibion/FlaxEngine into Tryibion-multi-axis-select-box 2025-03-11 10:14:24 +01:00
Wojtek Figat
e30647b675 Merge branch 'Tryibion-scale-gizmo-fix' 2025-03-11 00:09:36 +01:00
Wojtek Figat
f8e6e09717 Merge branch 'scale-gizmo-fix' of https://github.com/Tryibion/FlaxEngine into Tryibion-scale-gizmo-fix 2025-03-11 00:08:19 +01:00
Wojtek Figat
b8ae066542 Merge branch 'Tryibion-remove-obj-dropdown' 2025-03-11 00:06:19 +01:00
Wojtek Figat
b96ff56043 Merge branch 'remove-obj-dropdown' of https://github.com/Tryibion/FlaxEngine into Tryibion-remove-obj-dropdown 2025-03-11 00:06:15 +01:00
Wojtek Figat
2b0dc8b16d Merge branch 'Tryibion-lock-scene-change' 2025-03-11 00:05:38 +01:00
Wojtek Figat
3c7d88663a Merge branch 'lock-scene-change' of https://github.com/Tryibion/FlaxEngine into Tryibion-lock-scene-change 2025-03-11 00:05:33 +01:00
Wojtek Figat
cd72f4f19b Add Edit GUI option to Game Window
#3269
2025-03-11 00:04:57 +01:00
Wojtek Figat
897e451ab6 Restore shadows on Switch after refactor into Shadow Atlas 2025-03-10 21:00:49 +01:00
Chandler Cox
7a83bce996 Add using c: in search filtering to find control types. 2025-03-10 12:46:30 -05:00
Wojtek Figat
48343897cd Fix .NET files deploy regression on AOT platforms 2025-03-10 18:46:15 +01:00
Wojtek Figat
52c09b95ca Add Base Model to Animation Window to preview animation via a different base skeleton with retargetting
#3072
2025-03-09 23:35:24 +01:00
Wojtek Figat
09b23e2376 Minor fixes 2025-03-09 23:02:06 +01:00
72ef6f92ae Update SDL3 to 3.2.6 2025-03-09 22:47:17 +02:00
45c388c92d Merge remote-tracking branch 'origin/1.10' into sdl_platform
# Conflicts:
#	Source/Editor/GUI/ContextMenu/ContextMenuBase.cs
#	Source/Engine/Platform/Linux/LinuxPlatform.cpp
2025-03-09 22:47:12 +02:00
Chandler Cox
0abd953ded Better selection bounds for multi axis transform gizmo 2025-03-09 15:29:01 -05:00
Wojtek Figat
7f8729451c Fix regression/crash in new World Triplanar node
#3214
2025-03-09 20:39:13 +01:00
Chandler Cox
5340eac14a Small fixes. 2025-03-09 13:14:26 -05:00
83d6f9fcf3 Avoid showing tooltips in inactive windows 2025-03-09 13:05:03 +02:00
4d3588d09e Update SDL3 to 3.2.4 2025-03-09 13:05:02 +02:00
d72f8a61cb Fix window dragging when not supported by Wayland compositor
(cherry picked from commit 3554747a67)
2025-03-09 13:05:02 +02:00
0e173de542 Show current display server in Editor window tooltip
(cherry picked from commit 62968dd437)
2025-03-09 13:05:01 +02:00
8aa0aa4292 Properly mark floating windows with transparency support
(cherry picked from commit c660fac524)
2025-03-09 13:05:01 +02:00
26f8aa9985 Enable transparency support in Vulkan swapchains
(cherry picked from commit 431a69e357)
2025-03-09 13:05:00 +02:00
24c62e2a8d Fix compilation for game builds
(cherry picked from commit f4fcc07288)
2025-03-09 13:05:00 +02:00
91c1d3ce0a Fix cloning SDL repository 2025-03-09 13:04:59 +02:00
93aba7b959 Fix text input not working on X11 2025-03-09 13:04:59 +02:00
fbe61eee9e Fix button latching on Windows after drag and drop operation 2025-03-09 13:04:58 +02:00
12bb3f3a22 Implement new window dragging system 2025-03-09 13:04:58 +02:00
713c4f5d1d Fix mouse resetting issues after ending relative mode 2025-03-09 13:04:57 +02:00
2fe286eed0 Fix frame stutter when window is focused 2025-03-09 13:04:56 +02:00
4539ec4dcf Fix error when docking to sides of tabbed panel 2025-03-09 13:04:56 +02:00
17714c52e0 Cleanup Linux SDL implementation 2025-03-09 13:04:55 +02:00
8810a98c28 Support compiling third party library C files as C code 2025-03-09 13:04:55 +02:00
1da6ffe920 Implement Wayland protocols module and file generation 2025-03-09 13:04:54 +02:00
f966f92583 Fix mouse warping after ending relative mode 2025-03-09 13:04:54 +02:00
ca17bc501f Add git fetch method for dependencies 2025-03-09 13:04:53 +02:00
2e866aa156 Fix window ShowInTaskbar setting 2025-03-09 13:04:53 +02:00
696be807bd Fix various issues with child window positioning 2025-03-09 13:04:52 +02:00
ed63f47620 Add Window.IsAlwaysOnTop property 2025-03-09 13:04:52 +02:00
0d546a82c7 Use SDL locale 2025-03-09 13:04:51 +02:00
9a6c0dd5f4 Allow window with single tab to be dragged from tab area 2025-03-09 13:04:50 +02:00
a00342b1c3 Fix ValueBox mouse position resetting after releasing the button 2025-03-09 13:04:50 +02:00
a798965d9a Fix SDL build process on Linux 2025-03-09 13:04:49 +02:00
d0925b82df Update SDL to 3.2.0 2025-03-09 13:04:49 +02:00
0c535d5a33 Force cursor to center of Game Window when tab handle is clicked 2025-03-09 13:04:48 +02:00
Chandler Cox
05cf5a4d7a Fix rotation using SDL 2025-03-09 13:04:48 +02:00
da59713152 Fix Linux compilation without SDL 2025-03-09 13:04:47 +02:00
8510fd237f Fix compilation 2025-03-09 13:04:46 +02:00
3dc2fe0558 Update SDL3 2025-03-09 13:04:46 +02:00
716f76dca4 Fix compilation issues 2025-03-09 13:04:45 +02:00
29e732c783 Fix windows not being hidden initially 2025-03-09 13:04:45 +02:00
53862298b6 Fix parent window position handling with popup/tooltip windows 2025-03-09 13:04:44 +02:00
4464555dcc Fix compilation errors in other platforms 2025-03-09 13:04:44 +02:00
ec383ffb1d Fix CI for Linux 2025-03-09 13:04:43 +02:00
909ba336b0 Prevent building with SDL in unsupported platforms 2025-03-09 13:04:43 +02:00
ecaa03365f Fallback to X11 message box implementation when SDL fails 2025-03-09 13:04:42 +02:00
fb88460903 Fix popup and context menus not working on Wayland 2025-03-09 13:04:42 +02:00
db840ebef9 Hide warnings for unsupported SDL operations on Wayland 2025-03-09 13:04:41 +02:00
3f303a7a77 Log a warning for not implemented Wayland functionality 2025-03-09 13:04:40 +02:00
848d8e35e5 Fix compilation in Linux 2025-03-09 13:04:40 +02:00
2f3b45ae82 Enable warning sound in question dialogs 2025-03-09 13:04:39 +02:00
48600c6ac5 Enable modern Windows dialog boxes 2025-03-09 13:04:39 +02:00
bb132305e3 Implement relative mouse mode (raw input) for SDL platform 2025-03-09 13:04:38 +02:00
769823ddf5 Add flag for Window types 2025-03-09 13:04:38 +02:00
8a0ce55fec Enable native windowing system settings with SDL platform 2025-03-09 13:04:37 +02:00
832d902699 Add command-line switches to force X11 and Wayland SDL drivers 2025-03-09 13:04:37 +02:00
6843205ec9 Implement SDL platform, windowing and input handling 2025-03-09 13:04:36 +02:00
74fb1a74a6 Refactor application window class name 2025-03-09 13:04:35 +02:00
29c3a9e4bf Move Window related enums to separate header file 2025-03-09 13:04:35 +02:00
6f55b5452f Refactor Windows drag and drop implementation 2025-03-09 13:04:34 +02:00
716ae95630 Refactor ScreenUtilities 2025-03-09 13:04:34 +02:00
02e9d60c5b Add more helper methods for managing Git repos 2025-03-09 13:04:33 +02:00
a1b7666c1c Fix centered window location on X11 2025-03-09 13:04:33 +02:00
1b9663a390 Fix initial position of Tooltips 2025-03-09 13:04:32 +02:00
Wojtek Figat
bc4f3668fe Merge remote-tracking branch 'origin/master' into 1.10
# Conflicts:
#	Source/Engine/Core/Math/Vector3.cpp
#	Source/Engine/Core/Math/Vector3.h
#	Source/Engine/GraphicsDevice/Vulkan/GPUContextVulkan.cpp
#	Source/Engine/GraphicsDevice/Vulkan/GPUDeviceVulkan.cpp
#	Source/Engine/GraphicsDevice/Vulkan/GPUDeviceVulkan.h
2025-03-09 09:23:42 +01:00
Wojtek Figat
a93085d6d6 Redo 7d79dbac40 2025-03-09 09:15:49 +01:00
Wojtek Figat
34dcbc0445 Add Vector3.SignedAngle utility method
Merge 072f7c7e45 and c1bd42ff7e
2025-03-09 09:10:15 +01:00
Wojtek Figat
3643ec7a58 Fix crash when loading old triplanar node 2025-03-09 09:09:45 +01:00
Wojtek Figat
1e2e613a78 Fix rich textbox carret placement regressions
#3118 #2964
2025-03-08 23:49:12 +01:00
Wojtek Figat
fe95ac96af Rename param 2025-03-08 21:09:48 +01:00
Wojtek Figat
3b7c90644e Merge branch 'Muzz-Advanced-Bloom' into 1.10 2025-03-08 20:29:57 +01:00
Wojtek Figat
5e8f9e357a Reorganize code 2025-03-08 20:25:03 +01:00
Wojtek Figat
4c9d51f0ef Code style cleanup
#3250
2025-03-08 20:18:38 +01:00
Wojtek Figat
f7c6d34f59 Merge branch 'Advanced-Bloom' of https://github.com/Muzz/FlaxEngine into Muzz-Advanced-Bloom 2025-03-08 19:47:22 +01:00
Wojtek Figat
7808c65dd3 Update engine asset 2025-03-08 19:47:04 +01:00
Wojtek Figat
baf28382a8 Disable contact shadows on low shadows quality mode and fix step count for high setting 2025-03-08 19:46:35 +01:00
Chandler Cox
e9f2d94a2e Remove object editor drop down if disabled. 2025-03-08 11:07:07 -06:00
Chandler Cox
837a4927c1 Try fix build issues. 2025-03-08 10:50:46 -06:00
Chandler Cox
1ece21e25c Deselect locked object on scene change. 2025-03-08 10:46:11 -06:00
Chandler Cox
54dc66d22e Add base check to control and canvas nodes. 2025-03-08 09:41:00 -06:00
Chandler Cox
5ea6e7b49d Refactor to ViewportRubberBandSelector class and use actor node virtual methods. 2025-03-08 09:38:01 -06:00
Wojtek Figat
8a52fa257b Add logging draw event into in Vulkan error 2025-03-08 14:29:36 +01:00
Wojtek Figat
7d79dbac40 Fix shadows sampling error in shader due to incorrect sampler used
#3000
2025-03-08 14:29:17 +01:00
Wojtek Figat
fef967d4a0 Fix crash on Vulkan when binding dummy buffer as missing uniform buffer
#3000
2025-03-08 14:28:47 +01:00
Wojtek Figat
679d56d7a3 Fix regression error on duplicated scene objects in registry 2025-03-08 13:31:01 +01:00
Wojtek Figat
e760e5cc97 Fix particle sim shader compilation warning on Vulkan
#https://github.com/KhronosGroup/glslang/issues/2066
2025-03-08 13:23:08 +01:00
Wojtek Figat
5bdbbb6d38 Merge remote-tracking branch 'origin/master' into 1.10 2025-03-07 23:41:02 +01:00
Wojtek Figat
0c0f128585 Fix collision proxy not updating on sequential mesh changes
#2920
2025-03-07 23:39:01 +01:00
Wojtek Figat
ca153e70ab Fix crash when loading cloth that has different paint data size than mesh
#3264
2025-03-07 21:23:54 +01:00
Wojtek Figat
bc6f4f50cb Fix serialization of ControlReference when used in prefabs
#3262
2025-03-07 18:55:03 +01:00
Wojtek Figat
84f6667105 Fix missing MoltenVK error to be logged only once 2025-03-07 12:52:45 +01:00
Wojtek Figat
5d80cb03f1 Fix compilation issues 2025-03-07 12:35:54 +01:00
Wojtek Figat
4fada6ba40 Add logging CPU name on Windows 2025-03-07 12:06:15 +01:00
Wojtek Figat
0fa88b23c6 Add DriverVersion to GPUAdapter for checking on old GPU drivers 2025-03-07 11:39:54 +01:00
Wojtek Figat
301491bcde Fix Linux platform init to correctly calculate device id and add missing change 2025-03-07 11:39:15 +01:00
Wojtek Figat
5f57286cdb Fix Windows detection to use correct system version it was build for (eg. Win10 or Win7) 2025-03-07 11:09:32 +01:00
Wojtek Figat
7135eb3591 Add SystemName and SystemVersion to Platform api 2025-03-07 11:06:10 +01:00
Wojtek Figat
cc7d88d4a9 Fix Platform::GetCacheLineSize to be deprecated in favor of existing CPUInfo.CacheLineSize` 2025-03-06 09:08:00 +01:00
Wojtek Figat
772f7f7fd2 Move GPUDeviceDX::UpdateOutputs to cpp file 2025-03-06 09:00:33 +01:00
Wojtek Figat
8e2f3ec0c0 Fix Version marshaling as parameter 2025-03-06 00:36:39 +01:00
Wojtek Figat
196ada5710 Add Extra Development Memory access and log on start 2025-03-05 13:43:15 +01:00
Wojtek Figat
06729f6b62 Add Program Size Memory access and log on start 2025-03-05 12:10:17 +01:00
Wojtek Figat
7809007a13 Fix deprecation api usage on game exit 2025-03-05 12:09:32 +01:00
Wojtek Figat
06de1c0041 Add logging memoery usage by external apps on crash
Game crash on out of memory might be caused by user opening too many external apps that use most of memory.
2025-03-05 10:51:29 +01:00
Wojtek Figat
06665734e7 Fix Platform::GetCacheLineSize to be deprecated in favor of CPUInfo 2025-03-04 22:57:58 +01:00
Wojtek Figat
668511a727 Fix error in XML docs processing
#2724
2025-03-04 22:37:05 +01:00
Wojtek Figat
5ffa3eb837 Fix getting Control from null ControlReference
#3123
2025-03-04 22:12:35 +01:00
Wojtek Figat
00202b06a4 Merge branch 'Tryibion-control-reference' 2025-03-04 22:04:28 +01:00
Wojtek Figat
93442ec8fa Refactor ControlReference to use FlaxObjectRefPickerControl as a base class
#3123
2025-03-04 20:32:06 +01:00
Wojtek Figat
520bab7463 Refactor serialziation of ControlReference into a string with ID of actor for simplicity
#3123
2025-03-04 17:14:21 +01:00
Wojtek Figat
35fa63852c Format code and simplify IControlReference a little bit
#3123
2025-03-04 16:06:48 +01:00
Wojtek Figat
fee54f0f39 Merge branch 'control-reference' of https://github.com/Tryibion/FlaxEngine into Tryibion-control-reference 2025-03-04 14:03:56 +01:00
Wojtek Figat
e66ae2ee74 Merge branch 'Tryibion-android-emulate' 2025-03-04 10:58:01 +01:00
Wojtek Figat
30e9fe2371 Merge branch 'android-emulate' of https://github.com/Tryibion/FlaxEngine into Tryibion-android-emulate 2025-03-04 10:49:58 +01:00
Chandler Cox
a5e8f7d405 Move to custom tool method within platform 2025-03-03 21:42:54 -06:00
Wojtek Figat
a3822b6669 Fix spline node to support prefab editor
#3257
2025-03-03 23:38:41 +01:00
Wojtek Figat
819ce2222d Refactor ISceneContextWindow into ISceneEditingContext with more utilities
#3257
2025-03-03 23:32:27 +01:00
Wojtek Figat
e82bb639ed Fix objects creation to ensure managed object ctor is always executed
#3245
2025-03-03 19:12:29 +01:00
Wojtek Figat
3200fc1570 Fix new terrain debug drawing of collision lines
#3227
2025-03-03 12:03:38 +01:00
Wojtek Figat
54ad9a7629 Fix error when connecting nodes in Visject 2025-03-03 09:54:30 +01:00
Wojtek Figat
6f28302fd1 Merge branch 'xxSeys1-DebugDrawClearInEditor' 2025-03-03 09:52:43 +01:00
Wojtek Figat
47b22b305d Add conditional showing of Clear Debug Draw buttons only if there is anything to clear
#2989
2025-03-03 09:51:05 +01:00
Wojtek Figat
6ad20b222d Merge branch 'DebugDrawClearInEditor' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-DebugDrawClearInEditor
# Conflicts:
#	Source/Editor/Windows/GameWindow.cs
2025-03-03 09:40:01 +01:00
Wojtek Figat
68b21652bb Merge branch 'Tryibion-input-helpers' 2025-03-02 23:06:35 +01:00
Wojtek Figat
5fe9108803 Merge branch 'input-helpers' of https://github.com/Tryibion/FlaxEngine into Tryibion-input-helpers 2025-03-02 23:06:31 +01:00
Wojtek Figat
02ecfad428 Merge branch 'xxSeys1-ShowInContentPanel' 2025-03-02 23:05:31 +01:00
Wojtek Figat
25b51cf9c4 Merge branch 'ShowInContentPanel' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-ShowInContentPanel 2025-03-02 23:05:27 +01:00
Wojtek Figat
b2c5b4c2e5 Merge branch 'anton-makarenko-DebugLog-documentation-fix' 2025-03-02 22:54:32 +01:00
Wojtek Figat
379c31ca49 Merge branch 'DebugLog-documentation-fix' of https://github.com/anton-makarenko/FlaxEngine into anton-makarenko-DebugLog-documentation-fix 2025-03-02 22:54:26 +01:00
Wojtek Figat
383df75a81 Merge branch 'xxSeys1-GridPanelFillSliderSens' 2025-03-02 22:52:52 +01:00
Wojtek Figat
0ff19e9c95 Merge branch 'GridPanelFillSliderSens' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-GridPanelFillSliderSens 2025-03-02 22:52:44 +01:00
Wojtek Figat
cbe96252f6 Update assets 2025-03-02 11:38:25 +01:00
Wojtek Figat
4846852762 Fix crash when spline actor gets removed
(speculative fix)

#3180
2025-03-02 10:45:51 +01:00
Wojtek Figat
72c3d2b94c Update engine materials 2025-02-28 15:19:47 +01:00
Wojtek Figat
7ccae0140b Fix regression from #3214 on Deformable shader 2025-02-28 15:18:29 +01:00
Muzz
7885590593 Merge branch 'Muzz-Triplanar-Features' into 1.10 2025-02-28 14:56:45 +01:00
Wojtek Figat
dad8c0cd6b Merge remote-tracking branch 'origin/master' into 1.10
# Conflicts:
#	Source/Engine/Level/Prefabs/Prefab.Apply.cpp
2025-02-27 17:17:02 +01:00
Wojtek Figat
7410b506e3 Merge branch 'GoaLitiuM-csharp_mainproj_fix' 2025-02-27 16:22:09 +01:00
Wojtek Figat
dec9905bd3 Merge branch 'csharp_mainproj_fix' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-csharp_mainproj_fix 2025-02-27 15:43:25 +01:00
Wojtek Figat
bb35d9f811 Add improved AndroidNdk detection to handle versions folder in env var location and fallback to automatic
#2893
2025-02-27 15:34:29 +01:00
Wojtek Figat
b2c8c4018c Fix scripting bindings codegen for SoftTypeReference and SceneReference
#2761
2025-02-26 22:43:30 +01:00
Wojtek Figat
809fd2653a Fix game viewport size to not include DPI scale (screen-space uses it)
#2976
2025-02-26 20:55:57 +01:00
Wojtek Figat
2d956ebb36 Fix error when applying prefab changes with missing (deleted) nested prefabs
#3244
2025-02-26 17:46:22 +01:00
Wojtek Figat
33dd47c169 Merge branch 'MrCapy0-Level' 2025-02-25 22:37:04 +01:00
Wojtek Figat
e101048c71 Merge branch 'Level' of https://github.com/MrCapy0/FlaxEngine into MrCapy0-Level
# Conflicts:
#	Source/Engine/Level/Level.cpp
2025-02-25 22:33:12 +01:00
Wojtek Figat
aaad2face2 Fix HRTF audio to be disabled due to common audio problems
#3225
2025-02-25 22:19:26 +01:00
Wojtek Figat
8f1a1827f2 Fix crash in OpenAL audio backend on context rebuild
#3225
2025-02-25 22:17:18 +01:00
Wojtek Figat
83c3201ef8 Fix regression in rapidjson update 2025-02-25 18:09:47 +01:00
Wojtek Figat
dcba97f84a Fix missing masked terrain rendering
#3177
2025-02-25 16:46:17 +01:00
Wojtek Figat
ca6544204b Fix actor hierarchy initialization when it gets modified by a script on the fly
#2940 #2623 #2751
2025-02-25 15:32:20 +01:00
Wojtek Figat
1c3d1b623d Optimize and cleanup some actor code 2025-02-25 15:31:46 +01:00
Muzz
1fac78f48f attributes fix 2025-02-25 14:49:59 +10:00
Muzz
953cbb6e40 Advanced Bloom commit. 2025-02-25 14:02:15 +10:00
Wojtek Figat
21047ac8ac Upgrade CollisionCooking to use new MeshAccessor 2025-02-24 23:46:44 +01:00
Wojtek Figat
754d321ef0 Fix crash on incorrect index buffer size when building mesh buffers via MeshAccessor
#3246
2025-02-24 23:28:35 +01:00
Wojtek Figat
2ab9adab24 Merge remote-tracking branch 'origin/master' into 1.10 2025-02-24 23:27:56 +01:00
Wojtek Figat
bf21b0a267 Fix collision cooking for skinned models that use different vertex format
#3246
2025-02-24 22:05:33 +01:00
xxSeys1
0d5534c445 decrease grid panel fill slider sensitivity 2025-02-24 17:43:32 +01:00
Wojtek Figat
afc4158dd3 Fix sprite and texture 9-slice rendering brush to properly calculate border size 2025-02-24 14:19:51 +01:00
Wojtek Figat
09ead0cc7a Fix Eye Adaptation in colllision data window viewport 2025-02-24 12:30:44 +01:00
Wojtek Figat
f2e840577a Merge branch 'Tryibion-prefab-doubleclick-obj-ref' 2025-02-24 00:10:11 +01:00
Wojtek Figat
345cbdb8d4 Merge branch 'prefab-doubleclick-obj-ref' of https://github.com/Tryibion/FlaxEngine into Tryibion-prefab-doubleclick-obj-ref 2025-02-24 00:10:04 +01:00
Wojtek Figat
0ebda18669 Fix game-build version of DebugDraw for C# but without xml docs
#3201
2025-02-24 00:09:52 +01:00
Wojtek Figat
efa081716f Merge branch 'Tryibion-tube-to-capsule' 2025-02-24 00:00:30 +01:00
Wojtek Figat
7225737984 Merge branch 'tube-to-capsule' of https://github.com/Tryibion/FlaxEngine into Tryibion-tube-to-capsule 2025-02-23 23:58:28 +01:00
Wojtek Figat
0b1a64305a Merge branch 'GoaLitiuM-update_rapidjson' 2025-02-23 23:51:12 +01:00
Wojtek Figat
bfd972b96d Add SIMD support for rapidjson when processing json data
#3155
2025-02-23 23:38:07 +01:00
Wojtek Figat
25f26a7a91 Merge branch 'update_rapidjson' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-update_rapidjson 2025-02-23 23:26:55 +01:00
Wojtek Figat
d9ae41ed10 Fix editor transform gizmos rendering to draw over other editor shapes
#2954
2025-02-23 23:01:20 +01:00
Wojtek Figat
68877eebe3 Format code 2025-02-23 21:31:30 +01:00
Wojtek Figat
5ed18c7448 Fix fc4b79239b 2025-02-23 21:28:02 +01:00
Wojtek Figat
1fda1d749d Merge branch 'GoaLitiuM-launchsettings_fix' 2025-02-23 21:24:31 +01:00
Wojtek Figat
ac728f1a31 Merge branch 'launchsettings_fix' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-launchsettings_fix 2025-02-23 21:24:17 +01:00
Wojtek Figat
8beeea0da1 Merge branch 'davevanegdom-Double-Click-Scene-Node-Actions' 2025-02-23 21:23:18 +01:00
Wojtek Figat
fc4b79239b Refactor new scene tree double click feature to support both prefab and scene editing
#1502
2025-02-23 21:23:09 +01:00
Wojtek Figat
618027b181 Merge branch 'Double-Click-Scene-Node-Actions' of https://github.com/davevanegdom/FlaxEngine into davevanegdom-Double-Click-Scene-Node-Actions
# Conflicts:
#	Source/Editor/Modules/PrefabsModule.cs
#	Source/Editor/Windows/SceneTreeWindow.ContextMenu.cs
2025-02-23 21:18:38 +01:00
Wojtek Figat
f97ead8a20 Merge branch 'davevanegdom-DebugOutputImprovements' 2025-02-23 20:30:01 +01:00
Wojtek Figat
bae381430a Cleanup code
#1437
2025-02-23 20:29:58 +01:00
Wojtek Figat
1c3f7fcec0 Merge branch 'DebugOutputImprovements' of https://github.com/davevanegdom/FlaxEngine into davevanegdom-DebugOutputImprovements
# Conflicts:
#	Source/Editor/Options/InterfaceOptions.cs
#	Source/Editor/Windows/DebugLogWindow.cs
2025-02-23 20:29:10 +01:00
Chandler Cox
65a219512c Add double clicking an object reference in a prefab to select the actor within the prefab. 2025-02-21 15:52:43 -06:00
Wojtek Figat
bb12562c2f Fix crash when setting C# property of value-type from native code 2025-02-21 20:22:54 +01:00
Wojtek Figat
b81b0b7616 Fix text clipping behind the button in Behavior Knowledge Selector editor 2025-02-21 19:34:35 +01:00
Wojtek Figat
bd9a5f03a4 Fix crash when importing fbx model with convex polygon with duplicated vertices
#3222
2025-02-21 17:36:20 +01:00
Wojtek Figat
9d5d80bf4a Fix crash when using physics overlap tests with Collider outputs that catch Terrain
#3221
2025-02-21 15:07:44 +01:00
Wojtek Figat
44e894f406 Remove unused default value codegen 2025-02-21 15:07:09 +01:00
Chandler Cox
ef8612fb59 Merge branch 'master' into android-emulate 2025-02-20 21:19:32 -06:00
Wojtek Figat
366b47ad80 Fix crash when applying prefab with missing scripts in use
#3239
2025-02-20 23:50:36 +01:00
Wojtek Figat
b3508b9fe1 Fix Visject gradient stops to update graph only on sliding end
#3226
2025-02-20 20:28:46 +01:00
Wojtek Figat
3f2eab5206 Optimize divide into multiply 2025-02-20 17:04:20 +01:00
Wojtek Figat
5bdf5da142 Resave engine materials
#3231
2025-02-20 10:09:37 +01:00
c823257b79 Fix invalid paths in C# launch settings on Windows 2025-02-19 17:23:47 +02:00
Wojtek Figat
937d369856 Fix crash in particles system when assets gets loading/unloaded while async jobs are active 2025-02-18 23:27:49 +01:00
Wojtek Figat
060bc0aaf8 Fix crash in animations system when assets gets loading/unloaded while async jobs are active
#2974
2025-02-18 22:30:49 +01:00
Wojtek Figat
ce335a0fe4 Use new api for span from stream 2025-02-18 09:52:49 +01:00
Wojtek Figat
4aab1be3d6 Bump up materials version after merge with master 2025-02-18 09:20:48 +01:00
Wojtek Figat
6b6d808698 Fix warning 2025-02-18 09:20:06 +01:00
Wojtek Figat
a6fb651ff4 Merge remote-tracking branch 'origin/master' into 1.10
# Conflicts:
#	Source/Engine/Graphics/Materials/MaterialShader.h
2025-02-18 09:19:59 +01:00
Wojtek Figat
c81ddd09cc Fix spatial audio bug regression from 84843f8cbb
#3224 #3206
2025-02-17 23:55:26 +01:00
Wojtek Figat
015c4ab475 Fix memory leak in particle buffers recycling
#3152
2025-02-17 23:25:40 +01:00
Wojtek Figat
ccdf004404 Fix memory leak in Video player on Windows
#3158
2025-02-17 21:19:45 +01:00
Wojtek Figat
9049093267 Fix scene object reference serialization in C# scripts
#3136
2025-02-17 11:57:31 +01:00
Wojtek Figat
9d4d9ccf38 Optimize compilation on MSVC as it can ommit include 2025-02-17 10:24:04 +01:00
Wojtek Figat
8b1d678f2e Fix scene object reference serialization in Visual Script properties
#3136
2025-02-17 10:23:07 +01:00
Chandler Cox
25b8939aff Update to include presenter context. 2025-02-16 18:05:25 -06:00
Chandler Cox
e4d2e429a0 Merge branch 'master' into control-reference 2025-02-16 17:40:38 -06:00
Wojtek Figat
67db774a2f Fix compilation regression 2025-02-17 00:27:06 +01:00
Wojtek Figat
3cd951f0a0 Merge branch 'Tryibion-add-context-to-obj-ref-editor' 2025-02-16 21:15:48 +01:00
Wojtek Figat
0525ce2cb3 Merge branch 'add-context-to-obj-ref-editor' of https://github.com/Tryibion/FlaxEngine into Tryibion-add-context-to-obj-ref-editor 2025-02-16 20:42:23 +01:00
Wojtek Figat
5e74ec01ce Merge branch 'Tryibion-prefab-ui-mode' 2025-02-16 20:38:03 +01:00
Wojtek Figat
bbbc0c9d50 Merge branch 'prefab-ui-mode' of https://github.com/Tryibion/FlaxEngine into Tryibion-prefab-ui-mode 2025-02-16 20:35:00 +01:00
Wojtek Figat
25067959eb Add nested prefabs editing buttons inside Prefab Window
#1595
2025-02-16 20:34:33 +01:00
xxSeys1
054d06f49e add rmb menu entry to show item in Content Panel 2025-02-15 17:38:03 +01:00
Wojtek Figat
086ddc96bb Fix incorrect prefab serialization to correctly handle diff on object references to prefab objects
#3136
2025-02-14 17:07:33 +01:00
Wojtek Figat
3394de0b93 Fix grid in multi-blend node to draw behind the lines
#3212
2025-02-13 23:29:02 +01:00
Wojtek Figat
abd0c7dece Add support for displaying Multiple Values info to object reference pickers
#2984
2025-02-12 22:31:53 +01:00
Wojtek Figat
ee540b3cb7 Speculative fix for error in thumbnails rendering 2025-02-12 22:13:29 +01:00
Wojtek Figat
c146e156ec Fix perlin and simplex noises to return normalized value to range 0-1
#3154
2025-02-12 22:13:09 +01:00
Wojtek Figat
6efb015169 Merge code for Perlin Noise impl 2025-02-12 17:21:13 +01:00
Wojtek Figat
a982e0a111 Fix crash when reading object value from BehaviorKnowledgeSelector
#3171
2025-02-12 16:54:33 +01:00
Wojtek Figat
84843f8cbb Fix playing mono audio sounds with panning
Tested on OpenAL and XAudio backkend on Windows.

#3206
2025-02-11 23:35:08 +01:00
Wojtek Figat
dccb43702e Add missing casting from Double to Float vectors within Variant 2025-02-11 14:51:17 +01:00
Wojtek Figat
f459249f78 Fix compilation regression from aa8add7b38 2025-02-11 14:23:10 +01:00
Wojtek Figat
3ad369501a Add support for searching actors and scripts by interface
#3199
2025-02-11 14:22:44 +01:00
Wojtek Figat
b0fe4373b0 Merge branch 'xxSeys1-AudioSliderGamePanelFix' 2025-02-11 14:07:16 +01:00
Wojtek Figat
9df5ed5b7f Merge branch 'AudioSliderGamePanelFix' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-AudioSliderGamePanelFix 2025-02-11 14:07:09 +01:00
Wojtek Figat
aa8add7b38 Fix large worlds rendering of meshes
Add `Double4x4` for higher precision matrices operations

#2985
2025-02-11 13:01:48 +01:00
Wojtek Figat
21f8dab5de Tweak 58090aa6d6 to secure for incorrect includes and usage 2025-02-11 00:33:08 +01:00
Wojtek Figat
4baa38c0cc Add explicit cast to in vector in C# api 2025-02-11 00:32:20 +01:00
Wojtek Figat
3c091dc214 Fix editor grid gizmo when using Large Worlds 2025-02-11 00:32:04 +01:00
Wojtek Figat
58090aa6d6 Fix triplanar texture mapping when using Large Worlds
#3001
2025-02-11 00:31:37 +01:00
Chandler Cox
2521ed4ad5 Change DrawTube to DrawCapsule. Depricate old Tube code. 2025-02-08 21:15:49 -06:00
Anton Makarenko
9e25714338 Changes text of documentation above static Log method from warning to info to better reflect method's purpose and avoid possible confusion 2025-02-05 16:24:55 +02:00
xxSeys1
6a5f22400d update volume slider in game panel on menu show 2025-02-05 12:35:49 +01:00
Wojtek Figat
a5fffc0c9e Fix DebugDraw.DrawWireArc with Large Worlds enabled
#3049
2025-02-04 23:44:31 +01:00
Wojtek Figat
e551ecbe5f Fix build warning with Large Worlds enabled 2025-02-04 23:44:12 +01:00
Chandler Cox
898295e9d4 Small code cleanup. 2025-02-03 22:20:51 -06:00
Chandler Cox
a17c15ae96 Add missing return comments for get methods. 2025-02-03 22:11:07 -06:00
Chandler Cox
be6a258846 Add runtime input mapping helpers. 2025-02-03 21:57:14 -06:00
Wojtek Figat
8542f78b0b Merge branch 'xxSeys1-BetterRayNormAssert' 2025-02-01 15:26:25 +01:00
Wojtek Figat
da513972e8 Simplify message to be single-line with less text
#2990
2025-02-01 15:26:13 +01:00
Wojtek Figat
be293a957a Merge branch 'BetterRayNormAssert' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-BetterRayNormAssert 2025-02-01 15:24:44 +01:00
Wojtek Figat
8e26591c0b Merge branch 'xxSeys1-GamePanelAudio' 2025-02-01 15:23:39 +01:00
Wojtek Figat
4e31d436d5 Merge branch 'GamePanelAudio' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-GamePanelAudio 2025-02-01 15:23:33 +01:00
Wojtek Figat
b6f7914b14 Fix RenderToTextureControl to render correctly when using different texture size than control size
#2760
2025-02-01 15:17:21 +01:00
Wojtek Figat
9ffbe1f8ca Add support in scripting for using interfaces on structures
#2679
2025-01-31 23:36:15 +01:00
0764ff6cb7 Fix C# projects not compiling in VS with native code plugins present 2025-01-31 23:58:23 +02:00
Wojtek Figat
4e0cd9e8a9 Add support for creating Json Assets in editor out of structure type
#2679
2025-01-31 21:58:36 +01:00
Wojtek Figat
24f3dfe264 Fix selected spline points to be drawn relative to the view for greater readability
#2595
2025-01-31 21:01:26 +01:00
Wojtek Figat
42fc62eb68 Add Actor.Clone for actors duplication at runtime (including scripts and children)
#2012
2025-01-31 10:21:05 +01:00
Wojtek Figat
b1392be3a1 Fix typo 2025-01-30 22:48:07 +01:00
Wojtek Figat
04dde7a3f2 Add warnings on incorrect GPUBuffer or GPUTexture usage when binding to GPUContext (in non-release builds) 2025-01-30 22:03:21 +01:00
Wojtek Figat
44fae3838e Add GPUResourceUsage.Staging for both CPU read/write access 2025-01-30 20:39:04 +01:00
Wojtek Figat
f11306af24 Add caching and restoring curve height in properties panel
#2455
2025-01-30 17:42:54 +01:00
Wojtek Figat
4057dc189d Fix SnapToGrid to skip when grid component is 0 2025-01-30 17:26:34 +01:00
Wojtek Figat
fc98b5f1f0 Add snapping to grid with Ctrl key when moving keyframes in curve
#2455
2025-01-30 17:26:04 +01:00
Wojtek Figat
4d6282a5b4 Add focus selection to curve editor and apply margin around shown curve section
#2455
2025-01-29 23:54:41 +01:00
Chandler Cox
45a24a05c5 Add check for if static model has a model. 2025-01-28 16:22:02 -06:00
Wojtek Figat
0e058b2590 Fix curve tangents reset on drag start
#2455
2025-01-28 23:18:26 +01:00
Wojtek Figat
a31279954a Fix curve editor scroll bars to be hidden when not enabled
#1083
2025-01-28 23:07:05 +01:00
Chandler Cox
16ed7272a7 Skip not active actors. 2025-01-28 16:05:19 -06:00
Wojtek Figat
d25cb7a9da Fix curve tangent handles to maintain size relative to the current view scale
Fix curve tangent colors to match editor style
Fix curve tangents editing to have stable movement no matter the view scale

#2455
2025-01-28 22:59:39 +01:00
Chandler Cox
6461ffbd0d Skip selecting scene actor. 2025-01-28 15:58:18 -06:00
Wojtek Figat
1b04c9a7b1 Another attempt to fix CD builds stability 2025-01-28 14:30:57 +01:00
Wojtek Figat
6a27e5338a Fix float precision issue when drawing curve or timeline time axes
#2455
2025-01-28 12:48:19 +01:00
Wojtek Figat
5ad323c7cb Fix showing whole curve if its empty 2025-01-28 12:44:52 +01:00
Chandler Cox
abe2482a01 Use mesh collision proxy if available. 2025-01-27 18:28:06 -06:00
Chandler Cox
9c065d55e0 Change to use view CM and set inital ui mode to use if the prefab has ui. 2025-01-27 18:02:54 -06:00
Wojtek Figat
1475075b00 Merge branch 'GoaLitiuM-dotnet_refasm_version_fix' 2025-01-27 20:29:16 +01:00
Wojtek Figat
702564366d Merge branch 'dotnet_refasm_version_fix' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-dotnet_refasm_version_fix 2025-01-27 20:29:12 +01:00
Wojtek Figat
e2fd3891d1 Fix regression in curve keyframes editing
#3179
2025-01-27 20:19:35 +01:00
f54e961f11 Update .NET compilation instructions for Arch 2025-01-27 20:35:56 +02:00
Wojtek Figat
aabd70fbe7 Fix code project files generation to properly handle path slashes and ignore binary modules without exports
#3086
2025-01-27 19:35:27 +01:00
428ebf7fd7 Fix .NET runtime and SDK compilation issues with newer runtime 2025-01-27 20:06:06 +02:00
Wojtek Figat
72f16d738f Merge branch 'Tryibion-draw-anchors' 2025-01-27 12:41:01 +01:00
Wojtek Figat
475818554d Fix error in editor when sliding value 2025-01-27 12:40:55 +01:00
Wojtek Figat
8ebb3a3215 Merge branch 'draw-anchors' of https://github.com/Tryibion/FlaxEngine into Tryibion-draw-anchors 2025-01-27 12:12:24 +01:00
Wojtek Figat
2085a0bf25 Merge branch 'amir9480-fix_issue_3083' 2025-01-27 11:58:46 +01:00
Wojtek Figat
d829461def Merge branch 'fix_issue_3083' of https://github.com/amir9480/FlaxEngine into amir9480-fix_issue_3083 2025-01-27 11:58:13 +01:00
Wojtek Figat
2d169fdcd8 Merge branch 'Tryibion-particle-rotate-shape' 2025-01-27 11:43:04 +01:00
Wojtek Figat
53ba5968fd Fix missing default value usage on GPU particle shape rotation and simplify CPU code
#3104
2025-01-27 11:42:59 +01:00
Wojtek Figat
cc735a1b6a Merge branch 'particle-rotate-shape' of https://github.com/Tryibion/FlaxEngine into Tryibion-particle-rotate-shape 2025-01-27 11:35:26 +01:00
Wojtek Figat
970af7bdc8 Attempt to fix recent Github CD failing 2025-01-27 11:35:10 +01:00
Wojtek Figat
2ff6a6dd9a Merge branch 'Tryibion-clamp-anchors' 2025-01-26 22:05:40 +01:00
Wojtek Figat
ae3149c9c0 Merge branch 'clamp-anchors' of https://github.com/Tryibion/FlaxEngine into Tryibion-clamp-anchors 2025-01-26 22:05:36 +01:00
Wojtek Figat
1a1bd56802 Merge branch 'GoaLitiuM-sln_folder_fix' 2025-01-26 22:03:11 +01:00
Wojtek Figat
25b566b348 Merge branch 'sln_folder_fix' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-sln_folder_fix 2025-01-26 22:02:58 +01:00
Wojtek Figat
4fb95a704a Merge branch 'Tryibion-file-path-drag-dop' 2025-01-26 21:59:04 +01:00
Wojtek Figat
5f09ef4c1f Merge branch 'file-path-drag-dop' of https://github.com/Tryibion/FlaxEngine into Tryibion-file-path-drag-dop 2025-01-26 21:58:34 +01:00
Chandler Cox
fc4c2c53fc select parent of prefab if it has a prefab link. 2025-01-26 13:50:07 -06:00
Chandler Cox
fa06a8cc16 Fix rubberband taking over when tyring to move objects. Move rubberband out of update method. 2025-01-26 13:45:31 -06:00
Chandler Cox
4d4c046556 small cleanup with uicanvas searching. 2025-01-25 15:35:07 -06:00
Chandler Cox
4598cdb2d0 Fix check for control parent. 2025-01-25 15:32:18 -06:00
Chandler Cox
eb43d4813d Faster selection, select while dragging, only select if actor box is in rect. 2025-01-25 15:30:22 -06:00
Wojtek Figat
7bc099c32c Merge branch 'Tryibion-content-item-text-scale' 2025-01-25 11:09:36 +01:00
Wojtek Figat
9a59d0c5ed Merge branch 'content-item-text-scale' of https://github.com/Tryibion/FlaxEngine into Tryibion-content-item-text-scale 2025-01-25 10:05:54 +01:00
Wojtek Figat
275ca296fa Fix editor orthographic viewport in top or bottom view
#3169
2025-01-25 00:38:51 +01:00
Wojtek Figat
57af076c8d Merge branch 'Tryibion-is-active-null-check' 2025-01-24 23:51:48 +01:00
Wojtek Figat
d501018feb Add improved GPU crashes reporting 2025-01-24 22:56:52 +01:00
Wojtek Figat
d4c72487cd Fix various asset windows shutdown when editor is disposing during crash 2025-01-24 22:55:21 +01:00
Wojtek Figat
0b48a274e5 Fix compilation 2025-01-24 22:54:56 +01:00
Wojtek Figat
342f3543ca Fix LOG_FLUSH to flush only when automatic mode is disabled 2025-01-24 20:15:32 +01:00
Wojtek Figat
b36e55446f Add Engine::ReportCrash event for custom crash reporting or handling 2025-01-24 20:15:17 +01:00
Wojtek Figat
cf40facefe Add engine fatal error types handling
Add general out-of-memory handling
Add safety memory buffer for crash or out of memory handling
Refactor Globals exit/error state to be in Engine class
2025-01-24 20:07:12 +01:00
Chandler Cox
f905c49f0b Change content item text scale with content view scale. 2025-01-24 13:02:05 -06:00
Wojtek Figat
fa2f2e3104 Fix Linux build 2025-01-24 12:53:56 +01:00
Wojtek Figat
ae74d49b09 Fix bug 2025-01-24 12:24:52 +01:00
Wojtek Figat
80a44b5f5c Remove old code 2025-01-24 11:08:31 +01:00
Chandler Cox
c72fac335f Check for null in Actor node IsActive. 2025-01-23 21:28:09 -06:00
Wojtek Figat
dffc6ea24d Move hash set related configs into proper header file and rename those 2025-01-24 00:05:07 +01:00
Wojtek Figat
38f74c8cf7 Refactor Dictionary and HashSet to use shared base class
Add const iterators
2025-01-23 23:59:31 +01:00
Wojtek Figat
61a731704d Fix const-correctness in dictionary iterator access 2025-01-23 21:40:52 +01:00
Wojtek Figat
c1339765b7 Fix parsing nested template types in scripting type inheritance 2025-01-23 21:32:09 +01:00
Wojtek Figat
f5280eab74 Refactor and improve collections code
#3043
2025-01-23 14:44:11 +01:00
Chandler Cox
030befdcaa Rename dropped method. 2025-01-22 21:47:28 -06:00
Chandler Cox
3a591577ad Add drag drop to FilePathEditor 2025-01-22 21:46:21 -06:00
Wojtek Figat
af416fe0c8 Fix packaging issues to properly read asset data after it's serialized with a new format 2025-01-22 21:24:49 +01:00
Wojtek Figat
326bc498b8 Add more logging for cooking process 2025-01-22 00:01:25 +01:00
Wojtek Figat
d1cc8da841 Remove not needed warning log in Editor on fresh project 2025-01-21 23:46:32 +01:00
Wojtek Figat
4cf22c3a1f Fix material to run shader generation when using null rendering backend 2025-01-21 23:14:00 +01:00
Wojtek Figat
8736d4c91a Remove not needed warning log in Editor on fresh project 2025-01-21 22:47:44 +01:00
Wojtek Figat
682ca9e953 Add progress indicator in editor for assets loading 2025-01-21 21:38:02 +01:00
Wojtek Figat
344d17714c Fix crash when using ref struct reflection in managed api 2025-01-21 15:39:21 +01:00
Wojtek Figat
b247070840 Fix regression in Dictionary capacity and use similar improvement in HashSet 2025-01-21 15:38:14 +01:00
Wojtek Figat
236b8d5667 Add failing Windows Test CI if FlaxTests.exe fails 2025-01-21 14:01:23 +01:00
Wojtek Figat
c3ad937d3f Add failing Windows Test CI if FlaxTests.exe fails 2025-01-21 13:12:04 +01:00
Wojtek Figat
d8dcec42d5 Add failing Windows Test CI if FlaxTests.exe fails 2025-01-21 12:28:35 +01:00
Wojtek Figat
3b5f953b3d Add failing Windows Test CI if FlaxTests.exe fails 2025-01-21 11:52:27 +01:00
Wojtek Figat
9fd98c8e12 Optimize blend weights to use 8-bit per bone (instead of 16-bit) 2025-01-21 11:40:01 +01:00
Wojtek Figat
0b24c50161 Expose ContentDeprecated to scripting (editor-only) 2025-01-21 10:18:57 +01:00
Chandler Cox
8f9eaddbe5 Add anchor and pivot drawing for UI Gizmo. 2025-01-20 21:08:47 -06:00
Wojtek Figat
fe8f862b16 Update engine assets 2025-01-21 00:04:03 +01:00
Wojtek Figat
7d0804af91 Add content deprecation upgrades support to prefabs and scenes when loading levels 2025-01-20 23:53:13 +01:00
Wojtek Figat
67f12596e2 Fix LoadAssetTask to properly dereference asset loading task pointer when asset init fails 2025-01-20 23:52:12 +01:00
Wojtek Figat
6a66a944d2 Add total mesh vertex stride display in editor panel 2025-01-20 23:51:35 +01:00
Wojtek Figat
65a689f8ab Add logging first scene asset id in cooked game 2025-01-20 23:51:08 +01:00
Wojtek Figat
18fd68db25 Add SpawnOptions container for more robust prefabs spawning 2025-01-20 23:50:47 +01:00
Wojtek Figat
86444aa5f3 Fix TypeUtils.GetTypeName for nested generic types 2025-01-20 23:49:40 +01:00
Wojtek Figat
011abe4ac0 Fix error when connecting nodes in Visject 2025-01-20 23:49:17 +01:00
Wojtek Figat
f4c07388d9 Restore old upgrader for skinned models from 9f648caac8 2025-01-20 23:49:00 +01:00
Wojtek Figat
eaf48bb176 Fix regression in dynamic mesh bounds and triangles setup after refactor 2025-01-20 23:48:25 +01:00
Wojtek Figat
d4a5c76c82 Add serialization of game settings for proper upgrade when loading deprecated data 2025-01-20 23:47:51 +01:00
Wojtek Figat
8a7ceef288 Add content deprecation system that auto-saves assets in Editor that use old data format 2025-01-20 23:46:49 +01:00
Amir Alizadeh
ec11a79f55 Add raycast support to the ContainerControl 2025-01-19 23:55:56 +03:30
Amir Alizadeh
55fd198102 Add raycast-first priority to the UIEditorGizmo 2025-01-19 23:55:23 +03:30
Chandler Cox
425699c4b0 Clamp control anchors betwen 0 and 1. 2025-01-19 13:51:50 -06:00
Wojtek Figat
1497acef58 SImplify capacity presetting for Dictionary to handle memory slack scale internally as suers care about items count only 2025-01-16 17:42:01 +01:00
Wojtek Figat
6111f67e33 Add ToSpan for MemoryWriteStream and simplify code with it 2025-01-16 17:35:28 +01:00
Wojtek Figat
39419787fa Another compilation fix 2025-01-15 08:48:03 +01:00
Wojtek Figat
e02f2990d9 Another compilation fix 2025-01-14 23:43:31 +01:00
Wojtek Figat
d0a6edbb2c Another compilation fix 2025-01-14 23:26:26 +01:00
10a906d51b Apply patches to rapidjson 2025-01-15 00:23:30 +02:00
f61779119b Update rapidjson to latest version
Commit d621dc9e9c77f81e5c8a35b8dcc16dcd63351321 in Tencent/rapidjson
2025-01-15 00:23:30 +02:00
Wojtek Figat
be8686bbb2 Fix new code on non-windows editor platforms 2025-01-14 22:45:03 +01:00
Wojtek Figat
59061c01d3 Fix compilation error 2025-01-14 22:29:06 +01:00
af3badaeef Fix Visual Studio solution nested project names on Unix systems 2025-01-14 19:08:09 +02:00
Wojtek Figat
90ba7f4a92 Mark CommonValue as deprecated to generate warnings in old code 2025-01-13 18:25:26 +01:00
Wojtek Figat
754e0c4e29 Update build number 2025-01-13 18:09:19 +01:00
Wojtek Figat
addc6d5216 Merge remote-tracking branch 'origin/master' into 1.10
# Conflicts:
#	Content/Editor/Gizmo/Material.flax
#	Content/Engine/DefaultTerrainMaterial.flax
#	Source/Editor/Windows/Assets/ModelWindow.cs
#	Source/Editor/Windows/Assets/SkinnedModelWindow.cs
#	Source/Engine/Core/Types/Variant.cpp
2025-01-13 18:07:54 +01:00
Wojtek Figat
f17d6f62ab Merge branch 'Tryibion-use-version' 2025-01-13 17:32:03 +01:00
Wojtek Figat
ae3d437539 Merge branch 'use-version' of https://github.com/Tryibion/FlaxEngine into Tryibion-use-version 2025-01-13 17:31:53 +01:00
Wojtek Figat
99b737eb14 Merge branch 'Tryibion-aab-building' 2025-01-13 17:31:38 +01:00
Wojtek Figat
4add5dcf49 Add missing default value and fix doc comment
#3150
2025-01-13 17:31:34 +01:00
Wojtek Figat
a204ada6d3 Merge branch 'aab-building' of https://github.com/Tryibion/FlaxEngine into Tryibion-aab-building 2025-01-13 17:18:35 +01:00
Wojtek Figat
bdc7f0760f Merge branch 'Tryibion-re-enable-scale-center' 2025-01-13 17:17:12 +01:00
Wojtek Figat
07ef2f03d5 Merge branch 're-enable-scale-center' of https://github.com/Tryibion/FlaxEngine into Tryibion-re-enable-scale-center 2025-01-13 17:12:20 +01:00
Wojtek Figat
b5437a9097 Merge branch 'Tryibion-fix-actor-drop-focus' 2025-01-13 17:11:48 +01:00
Wojtek Figat
890c3e75c3 Merge branch 'fix-actor-drop-focus' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-actor-drop-focus 2025-01-13 16:08:56 +01:00
Wojtek Figat
7fcf8c2d4c Improve #3138 to pass over setting value to null and via proper cast so value type stays the same 2025-01-13 16:08:43 +01:00
Wojtek Figat
3796b0ccae Revert #3117 and do it different way as some types can be valid even if different thus use internal parameter setter for type validation 2025-01-13 16:07:47 +01:00
Wojtek Figat
bc18ddc04b Merge branch 'Tryibion-invert-channels' 2025-01-13 15:46:49 +01:00
Wojtek Figat
90316dfa52 Minor code changes to PR 2025-01-13 15:46:35 +01:00
Chandler Cox
55fa372197 re-add returns to aab 2025-01-13 07:30:01 -06:00
Chandler Cox
563f0b9ab4 Move Build .aab to Android platform settings and make it side-by-side 2025-01-13 07:24:50 -06:00
Chandler Cox
30ea3bc9c2 Add check for empty array and use IsInRange for version check. 2025-01-13 07:16:31 -06:00
Wojtek Figat
07b9e5bfdd Merge branch 'invert-channels' of https://github.com/Tryibion/FlaxEngine into Tryibion-invert-channels 2025-01-13 09:20:22 +01:00
Chandler Cox
3b7cb00af2 Add shift to continue selection 2025-01-12 21:41:24 -06:00
Chandler Cox
d0d5ad4657 Add rubber band select to scene editor viewport for selecting multiple actors. 2025-01-12 21:33:01 -06:00
Chandler Cox
f274639e94 Fix path bug. 2025-01-12 17:17:59 -06:00
Wojtek Figat
7ac2376231 Simplify code 2025-01-12 23:57:52 +01:00
Chandler Cox
01d1dbba6c Add aditional check for if custom define of BuildAAB already exists. 2025-01-12 16:57:19 -06:00
Chandler Cox
ca995093b6 Add .aab bundling for Android. 2025-01-12 16:50:16 -06:00
Wojtek Figat
f36d3a11ab Merge branch 'Tryibion-handle-multi-linked' 2025-01-12 22:13:11 +01:00
Wojtek Figat
06a04167c7 Merge branch 'handle-multi-linked' of https://github.com/Tryibion/FlaxEngine into Tryibion-handle-multi-linked 2025-01-12 22:13:07 +01:00
Chandler Cox
e2df7a1e85 Handle linked values in Float3Editor 2025-01-12 15:07:43 -06:00
Wojtek Figat
80f5b554cd Merge branch 'Tryibion-fix-run-cooked-game' 2025-01-12 22:01:34 +01:00
Wojtek Figat
f10404a948 Merge branch 'fix-run-cooked-game' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-run-cooked-game 2025-01-12 22:01:29 +01:00
Wojtek Figat
a9580b9b46 Merge branch 'Tryibion-anim-param-warn-type' 2025-01-12 22:00:35 +01:00
Wojtek Figat
3d76a99c9b Merge branch 'anim-param-warn-type' of https://github.com/Tryibion/FlaxEngine into Tryibion-anim-param-warn-type 2025-01-12 22:00:30 +01:00
Wojtek Figat
eaeeea6a81 Merge branch 'Tryibion-import-ui-spacing' 2025-01-12 21:59:43 +01:00
Wojtek Figat
b546e4a332 Merge branch 'import-ui-spacing' of https://github.com/Tryibion/FlaxEngine into Tryibion-import-ui-spacing 2025-01-12 21:59:28 +01:00
Wojtek Figat
281e13b42c Merge branch 'xxSeys1-EditPrefabNoContentPanelChange' 2025-01-12 21:58:23 +01:00
Wojtek Figat
8451439abb Merge branch 'EditPrefabNoContentPanelChange' of https://github.com/xxSeys1/FlaxEngine into xxSeys1-EditPrefabNoContentPanelChange 2025-01-12 21:58:19 +01:00
Wojtek Figat
95c9df2581 Merge branch 'Tryibion-no-params-ui' 2025-01-12 21:57:17 +01:00
Wojtek Figat
2699755581 Merge branch 'no-params-ui' of https://github.com/Tryibion/FlaxEngine into Tryibion-no-params-ui 2025-01-12 21:57:12 +01:00
Wojtek Figat
99b0fbee07 Merge branch 'Tryibion-fix-multiblend-exception' 2025-01-12 21:56:32 +01:00
Wojtek Figat
f153c67c0e Merge branch 'fix-multiblend-exception' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-multiblend-exception 2025-01-12 21:56:28 +01:00
Wojtek Figat
fa8857be0e Merge branch 'Tryibion-fix-cpu-profiler-crash' 2025-01-12 21:55:44 +01:00
Wojtek Figat
ea96418764 Update old Float1010102 to FloatR10G10B10A2 2025-01-12 21:22:53 +01:00
Wojtek Figat
d751c6a6c6 Add PackNormal/UnpackNormal and GetInt/SetInt to MeshAccessor 2025-01-12 21:22:35 +01:00
Wojtek Figat
344d342610 Update assets 2025-01-12 20:31:00 +01:00
Wojtek Figat
e75d7ad257 Fix compilation warnings 2025-01-12 20:30:43 +01:00
Wojtek Figat
54869f1da0 Adjust label height 2025-01-12 17:59:08 +01:00
Wojtek Figat
02df6bafac Update engine assets 2025-01-12 01:33:18 +01:00
Wojtek Figat
d60f3bdfb1 Add mesh vertex layout and GPU memory size display in model window 2025-01-12 01:30:58 +01:00
Wojtek Figat
506efb7538 Merge model and skinned model windows code into shared base class 2025-01-12 01:04:56 +01:00
Wojtek Figat
1b97e49ed9 Fix shadow maps rendering regression bug 2025-01-11 22:45:18 +01:00
Wojtek Figat
b71f803554 Fix regression in particles 2025-01-11 22:45:04 +01:00
Wojtek Figat
647d74af0d Fixes for vertex layouts binding into graphics backend 2025-01-11 22:44:38 +01:00
Wojtek Figat
237ea121be Add vertex colors to skinned meshes 2025-01-11 22:43:15 +01:00
Wojtek Figat
a1c46d2e6e Add support for up to 4 texture channels when importing meshes
#2667
2025-01-11 22:40:20 +01:00
Chandler Cox
2260236fa6 Fix CPU profiler crash on conversion to ulong. 2025-01-09 20:55:30 -06:00
Chandler Cox
cb7fc6141d Fix crash in multiblend 2d node when first created. 2025-01-09 19:40:36 -06:00
Chandler Cox
77c48c037e Add No parameters UI to particle effect and animated model 2025-01-09 19:19:30 -06:00
Wojtek Figat
756ba0a533 Fix crash on shadows when using D3D10 2025-01-09 21:46:41 +01:00
Wojtek Figat
99788e4743 More fixes for Vulkan rendering to be on pair with DirectX when it comes to accessing missing vertex buffer components 2025-01-09 21:46:22 +01:00
Chandler Cox
ccbcab9793 Fix android build on .net9 and use DotNet version that is found by build tool path. 2025-01-08 22:11:21 -06:00
Wojtek Figat
3505b8971b Add support for up to 65536 skeleton bones in skinned meshes
https://forum.flaxengine.com/t/import-fbx-with-bones-more-than-256/1196
2025-01-08 18:48:50 +01:00
Wojtek Figat
1f294605a3 Add more Vulkan memory layout safety stages 2025-01-08 18:11:47 +01:00
Wojtek Figat
9264db8317 Simplify vertex colors debug draw mode 2025-01-08 18:10:48 +01:00
Wojtek Figat
2b2ace0d00 Fixes for Vulkan backend after recent changes 2025-01-08 18:09:45 +01:00
Wojtek Figat
7e165d6127 Allow vertex colors on skinned meshes
#3044
2025-01-08 09:39:19 +01:00
Chandler Cox
e1dbaebe8e Add instructions for list populating. 2025-01-07 21:40:05 -06:00
Chandler Cox
21f1a46c05 Small wording changes 2025-01-07 21:29:27 -06:00
Chandler Cox
6fbb5548b9 Small code clean up. 2025-01-07 21:15:35 -06:00
Chandler Cox
fa17c49eb1 Add starting adb log collecting button. 2025-01-07 21:11:37 -06:00
Chandler Cox
e87bb2325b Standardize spacing for import path ui in assets. add import path ui to model prefab. 2025-01-07 20:43:57 -06:00
Chandler Cox
13863344d2 Warn if value is the wrong type for the animation graph parameter trying to be set. 2025-01-07 20:26:25 -06:00
Wojtek Figat
7aa240e5eb Add vertex shader input layout reading via shader compiler reflection to handle missing vertex elements binding when explicit layout got deprecated 2025-01-07 23:26:06 +01:00
Wojtek Figat
7f0d852f49 Fix minor shader compilation warnings 2025-01-07 21:55:31 +01:00
Wojtek Figat
edaed7bda1 Add missing layout for ribbon vertex buffer 2025-01-07 16:12:11 +01:00
Wojtek Figat
3133ebbd83 Merge branch 'Tryibion-mat-warn-wrong-type' 2025-01-06 23:58:04 +01:00
Wojtek Figat
bff25a8dd8 Merge branch 'mat-warn-wrong-type' of https://github.com/Tryibion/FlaxEngine into Tryibion-mat-warn-wrong-type 2025-01-06 23:57:59 +01:00
Wojtek Figat
a9d0f62039 Merge branch 'Tryibion-import-path-ui' 2025-01-06 23:55:09 +01:00
Wojtek Figat
5335594cb5 Merge branch 'import-path-ui' of https://github.com/Tryibion/FlaxEngine into Tryibion-import-path-ui 2025-01-06 23:55:04 +01:00
Wojtek Figat
3f201c3863 Resave terrain material
#3115
2025-01-06 23:53:27 +01:00
Wojtek Figat
3dc3406230 Merge branch 'Tryibion-fix-size-handles-rotation' 2025-01-06 23:47:25 +01:00
Wojtek Figat
0b99cb6de5 Merge branch 'fix-size-handles-rotation' of https://github.com/Tryibion/FlaxEngine into Tryibion-fix-size-handles-rotation 2025-01-06 23:47:17 +01:00
Wojtek Figat
deab78d6b1 Merge branch 'Tryibion-text-box-ui' 2025-01-06 23:46:35 +01:00
Wojtek Figat
45c01e7ada Merge branch 'text-box-ui' of https://github.com/Tryibion/FlaxEngine into Tryibion-text-box-ui 2025-01-06 23:46:28 +01:00
Wojtek Figat
bcc8544c46 Merge branch 'Duroxxigar-add-confirmation-dialog-for-editor' 2025-01-06 23:46:21 +01:00
Wojtek Figat
597bbf1f30 Merge branch 'add-confirmation-dialog-for-editor' of https://github.com/Duroxxigar/FlaxEngine into Duroxxigar-add-confirmation-dialog-for-editor 2025-01-06 23:46:03 +01:00
Wojtek Figat
67b5b74588 Merge branch 'Duroxxigar-load-product-typo-fix' 2025-01-06 23:45:44 +01:00
Wojtek Figat
39f2f0ccdf Merge branch 'load-product-typo-fix' of https://github.com/Duroxxigar/FlaxEngine into Duroxxigar-load-product-typo-fix 2025-01-06 23:45:39 +01:00
Wojtek Figat
6ad2cd0697 Merge branch 'Tryibion-gameplugin-template' 2025-01-06 23:45:15 +01:00
Wojtek Figat
ef01a4afeb Merge branch 'gameplugin-template' of https://github.com/Tryibion/FlaxEngine into Tryibion-gameplugin-template 2025-01-06 23:45:10 +01:00
Wojtek Figat
12b98f2df1 Migrate to actions/upload-artifact@v4
https://github.blog/changelog/2024-04-16-deprecation-notice-v3-of-the-artifact-actions/
2025-01-06 23:44:34 +01:00
Chandler Cox
99ba59d02a Change to use static method for import path ui. 2025-01-06 15:58:09 -06:00
Wojtek Figat
3b4d4d234d Fix LOD Preview regression due to new instancing logic 2025-01-06 22:49:27 +01:00
Wojtek Figat
bc73d38d34 Reseve engine materials and models 2025-01-06 22:47:44 +01:00
Wojtek Figat
db4d7d2a05 **Refactor meshes format to support custom vertex layouts and new flexible api to access mesh data**
#3044 #2667
2025-01-06 22:47:19 +01:00
Chandler Cox
7eb2088af0 Use Variant::CanCast() for type check. 2025-01-06 15:40:38 -06:00
Wojtek Figat
29bfef677f Add PixelFormatSampler utility to quick read/write operations on various data formats
Moved from `TextureTool` to be used in runtime and with more generic use cases (including C# scripting).
2025-01-05 23:49:44 +01:00
Wojtek Figat
933fac6c13 Add Slice to Span and sue it to make code cleaner 2025-01-05 17:41:27 +01:00
Wojtek Figat
78cf1a4948 Use MeshDataCache in vertex painting tool 2025-01-05 16:45:30 +01:00
Wojtek Figat
792d322818 Missing change for 6f04231b31 2025-01-05 00:17:52 +01:00
Wojtek Figat
6f04231b31 Rename Vertex Shader input semantic ofBLENDWEIGHT to BLENDWEIGHTS 2025-01-04 21:04:18 +01:00
Chandler Cox
04fc118ddf Small fixes. 2025-01-04 11:45:08 -06:00
MrCapy0
5aa5c97e4c Add "root" parameter to Level.GetScripts() 2025-01-04 09:43:33 -04:00
Wojtek Figat
4f42fb2302 Update other graphics apis to match missing vertex shader inputs merging 2025-01-04 10:55:55 +01:00
Jake Young
a66cb4d1b2 Added a confirmation dialog for editors when the reset button is clicked. 2025-01-03 19:18:10 -05:00
Jake Young
22914dc232 Fix typo for error message when trying to load a project file that does not exist. 2025-01-03 17:31:21 -05:00
Chandler Cox
5af13bcc93 Re-enable scale center gizmo. 2025-01-03 13:04:52 -06:00
Wojtek Figat
ea5cb5d83a Minor fixes and improvements 2025-01-03 01:10:31 +01:00
Wojtek Figat
7b7dd9d142 Improve GPU vertex layout binding in case of missing element from the mesh 2025-01-03 01:09:25 +01:00
Wojtek Figat
348f17479d Fix name of BlendWeight to BlendWeights for vertex input to match BlendIndices 2025-01-03 01:07:33 +01:00
Wojtek Figat
1e262b69cc Add Task::WaitAll with a span of tasks and wrap around profiler macro 2025-01-03 01:05:56 +01:00
Chandler Cox
97184c87af Add android emulation options to game cooker android tab. 2025-01-01 23:05:15 -06:00
Chandler Cox
867f7d0143 Add local variables to simplify math. 2024-12-31 14:12:23 -06:00
Chandler Cox
26d0b9a42c Fix rotation of UI size handles. 2024-12-31 14:06:17 -06:00
Chandler Cox
f2e4fe300b Change color for readonly text. Fix selection still showing when text box is not focused. 2024-12-31 12:56:43 -06:00
Chandler Cox
a313db22d2 Add tooltip text for path to let user know it is not editable. 2024-12-31 12:52:54 -06:00
Chandler Cox
e53eddaba5 Add import path UI and button to open folder in asset import settings. 2024-12-31 12:38:29 -06:00
Chandler Cox
757b8ff855 Fix local origin option with multi-mesh import. 2024-12-31 00:50:42 -06:00
Chandler Cox
f71e731e54 Add saving and loading. 2024-12-30 23:42:32 -06:00
Chandler Cox
cb6ab6a647 Fix comment 2024-12-30 22:14:18 -06:00
Chandler Cox
899528e087 Add invert options for texture imports for Red, Blue, and Alpha channels. 2024-12-30 21:27:03 -06:00
Chandler Cox
c79cd82fd4 Fix code warnings. 2024-12-30 18:59:45 -06:00
Chandler Cox
711fc80d8c Fix comment. 2024-12-30 16:46:42 -06:00
Chandler Cox
9219b34dc3 Shorten picker control name. 2024-12-30 16:43:06 -06:00
Chandler Cox
e6450bfc7a Add ControlReference for easier UI referencing. 2024-12-30 16:36:10 -06:00
Chandler Cox
6a8814c99a Fix .exe being deleted when using the "Run cooked build" option. 2024-12-29 17:08:10 -06:00
Wojtek Figat
3151e47722 Fix missing material instance load failure when parameters load fails 2024-12-29 23:21:26 +01:00
Wojtek Figat
ab99a25cee Update mesh config defines to match a single format 2024-12-29 23:03:09 +01:00
Wojtek Figat
e7132086a5 Add displaying asset failed text if it occurs 2024-12-29 23:01:25 +01:00
Wojtek Figat
668f3fa68d Update read and write streaming api to use the newest format 2024-12-29 23:00:40 +01:00
Wojtek Figat
fee0ab74ff Update old doc comments 2024-12-28 21:31:21 +01:00
Chandler Cox
88703d721b Warn if wrong type while setting material parameter. 2024-12-23 16:51:37 -06:00
Wojtek Figat
723a882824 Merge more code together for meshes 2024-12-23 23:28:01 +01:00
Chandler Cox
36d4417905 Add game plugin template. 2024-12-20 09:29:36 -06:00
Wojtek Figat
9f648caac8 Remove deprecated asset data upgrades and old model vertex structures 2024-12-20 00:48:01 +01:00
Wojtek Figat
1bf29c042b Refactor models and meshes to share more code in a base class 2024-12-19 00:20:08 +01:00
Wojtek Figat
8eaa906e0c Remove some redundant code 2024-12-18 18:39:58 +01:00
Wojtek Figat
5b98603c16 Fix incorrect vertex layout stride calculation 2024-12-18 18:38:47 +01:00
Wojtek Figat
80299c8552 Add stride to GPUVertexLayout 2024-12-17 15:58:26 +01:00
Wojtek Figat
d1ac9cd2bc Minor fixes 2024-12-16 20:07:53 +01:00
Wojtek Figat
59b4755379 Move mesh code to shared base class and reordanize files 2024-12-16 20:07:42 +01:00
Wojtek Figat
b3f37ca041 Refactor Vertex Shader input vertex layout to use GPUVertexLayout defined on Vertex Buffer rather than Vertex Shader
#3044 #2667
2024-12-15 22:10:45 +01:00
Wojtek Figat
666efb7675 Fix incorrect dummy GPU Buffer format when binding missing resource to Vulkan descriptor 2024-12-13 14:56:20 +01:00
Wojtek Figat
fc4e6f4972 Add GPUVertexLayout to graphics backends 2024-12-13 09:20:01 +01:00
Chandler Cox
873491eca2 Fix CPU particle code. 2024-12-12 21:07:00 -06:00
Chandler Cox
3ba1ebb847 Add rotate position shape as particle module. 2024-12-12 20:41:11 -06:00
Wojtek Figat
cedf4b1eb5 Remove GPUShaderProgramsContainer to simplify GPUShader 2024-12-11 15:08:13 +01:00
Wojtek Figat
35e9e048f2 Merge remote-tracking branch 'origin/master' into 1.10 2024-12-10 11:07:31 +01:00
Chandler Cox
f9e125f795 Select dropped actors that are reparented. 2024-12-03 17:59:30 -06:00
Chandler Cox
0991628a78 Add UImode switch to prefab window. 2024-11-29 16:47:07 -06:00
Wojtek Figat
ab78314a01 Revert part of 9870d162e4 to support prefab variants creation 2024-11-25 22:39:02 +01:00
Wojtek Figat
0e13173119 Fix actor reference select in prefab editor 2024-11-25 22:13:46 +01:00
Wojtek Figat
a7061a7524 Fix raw scripting object pointers auto-serialization 2024-11-25 22:13:21 +01:00
Wojtek Figat
344595e171 Don't mark surface as edited if none of the nodes were pasted 2024-11-23 20:31:17 +01:00
Wojtek Figat
9d70fd82d6 Merge remote-tracking branch 'origin/master' into 1.10
# Conflicts:
#	Source/Engine/Networking/NetworkReplicator.cpp
2024-11-22 16:31:18 +01:00
Wojtek Figat
914d82a087 Fix Variant enum casting 2024-11-22 16:04:34 +01:00
Wojtek Figat
74993dcf9e Fix animation retargetting to properly handle different skeleton nodes orientation 2024-11-22 12:29:05 +01:00
Wojtek Figat
f8f4edfa76 Fix variious issues 2024-11-21 23:42:05 +01:00
Wojtek Figat
826d37c513 Add option to copy/paste skeleton retargetting between models 2024-11-21 23:40:25 +01:00
Wojtek Figat
377eb78020 Fix output log command history popup to return focus back to input field on arrow left 2024-11-21 23:22:08 +01:00
Wojtek Figat
3de3c1f2c6 Add debug drawing tangent frame of the selected skeleton node 2024-11-06 15:38:27 +01:00
Wojtek Figat
246944f688 Merge remote-tracking branch 'origin/master' into 1.10 2024-11-06 09:29:48 +01:00
Wojtek Figat
e9dcb8a8bb Add option to build editor without profiler 2024-11-06 09:29:26 +01:00
Wojtek Figat
3f50625cc3 Fix proper handling of Scripting.InvokeOnUpdate if called within that callback 2024-10-30 17:26:06 +01:00
Wojtek Figat
35c44d60a4 Add AutoGravity option to CharacterController for logic from 4de9e9d918 2024-10-30 17:25:17 +01:00
Wojtek Figat
6e598ae9f6 Refactor Multi Blend animations sampling length to fix blend spaces with anims of different length 2024-10-30 17:24:47 +01:00
Wojtek Figat
4de9e9d918 Add gravity to CharacterController::AddMovement for proper movement when using Root Motion 2024-10-30 00:01:54 +01:00
Wojtek Figat
c1bd42ff7e Add Vector3.SignedAngle utility method 2024-10-29 23:55:42 +01:00
Wojtek Figat
b1a54d2967 Missing change in 072f7c7e45 2024-10-29 23:34:10 +01:00
Wojtek Figat
2288684950 Fix pasting or duplicating Multi Blend nodes 2024-10-29 23:08:50 +01:00
Wojtek Figat
0c645e8b0c Fix root animation in blend spaces when one of the animations doesn't use root motion but animated root node channel 2024-10-29 21:59:21 +01:00
Wojtek Figat
072f7c7e45 Fix C++ Vector3::Angle to return value in degrees just like C# API (instead of radians) 2024-10-29 20:36:01 +01:00
Wojtek Figat
41a0ccb218 Fix Visject Surface search to check nested surfaces (such as State Machine graphs) 2024-10-28 20:32:17 +01:00
Wojtek Figat
f88eeeb313 Fix missing casting from scalar Variant types to Enum 2024-10-28 14:32:19 +01:00
Wojtek Figat
082d97248d Add unit test for DebugCommands 2024-10-27 15:22:57 +01:00
Wojtek Figat
d88c5f3063 Merge branch 'mtszkarbowiak-fix/nullable' into 1.10 2024-10-25 15:59:44 +02:00
Wojtek Figat
fa9ce1d346 Code formatting
#2969
2024-10-25 15:59:38 +02:00
Wojtek Figat
1c2c010ddc Merge branch 'fix/nullable' of https://github.com/mtszkarbowiak/FlaxEngine into mtszkarbowiak-fix/nullable 2024-10-25 15:38:44 +02:00
Wojtek Figat
46c1cc9a49 Add nested variant printing in debug command output 2024-10-25 13:25:15 +02:00
Wojtek Figat
dcd7b4b6c3 Fix crash when boxing native non-POD structure into managed data 2024-10-25 13:21:40 +02:00
Wojtek Figat
2d371fd05f Fix DebugCommands::InitAsync when called every frame 2024-10-24 23:38:36 +02:00
Wojtek Figat
62ece0d92e Fix crash when using attributes cache after hot-reload in editor 2024-10-24 23:38:25 +02:00
Wojtek Figat
8338ec6076 Fix regression 2024-10-24 22:32:02 +02:00
Wojtek Figat
86e21a53ff Add improved value printing of debug command result 2024-10-24 22:31:07 +02:00
Wojtek Figat
c3e31baa7a Merge remote-tracking branch 'origin/master' into 1.10 2024-10-24 19:35:43 +02:00
Wojtek Figat
302fc2feb1 Add various engine systems to debug commands 2024-10-24 19:35:24 +02:00
Wojtek Figat
e324d32769 Add async init and tint coloring based on type to debug commands 2024-10-24 19:34:42 +02:00
Wojtek Figat
5d7eba05ea Add GetFields and GetMethods to binary module api 2024-10-24 19:33:38 +02:00
Wojtek Figat
9a654f729f Fix context menu to resize instead of flash when showing while already visible 2024-10-24 19:27:53 +02:00
Wojtek Figat
87d35f0314 Add debug commands search popup to Output Log 2024-10-24 19:26:11 +02:00
Wojtek Figat
5904c0eea5 Add debug command history to Output Log in Editor 2024-10-22 21:59:06 +02:00
Wojtek Figat
e5289931c6 Add Alignment option to Vertical and Horizonal Panels
#2599
2024-10-22 21:55:25 +02:00
Wojtek Figat
0b1263a9e2 Disable VK_EXT_tooling_info check for debugger on Linux 2024-10-22 21:54:38 +02:00
Wojtek Figat
16235c21c0 Add optional direction option to context menu 2024-10-22 21:34:28 +02:00
Wojtek Figat
2127961069 Add printing debug command upon execute 2024-10-21 13:05:26 +02:00
Wojtek Figat
b681a03bfb Fix output log window to properly handle copy and other input events 2024-10-21 13:03:40 +02:00
Wojtek Figat
449e988a59 Add workaround for debug command text memory bug due to managed handles gc 2024-10-20 23:25:38 +02:00
Wojtek Figat
a2693fa354 Ignore non-public debug commands from marked classes 2024-10-20 23:24:26 +02:00
Wojtek Figat
5328ea891d Add command line input to Output Log in Editor 2024-10-20 23:23:54 +02:00
Wojtek Figat
91d86552cd Minor cleanup 2024-10-17 23:43:07 +02:00
Mateusz Karbowiak
14a615cd7c Merge branch 'FlaxEngine:master' into fix/nullable 2024-10-17 20:34:32 +02:00
xxSeys1
703e83cd48 improve ray direction not normalized assertion message 2024-10-15 21:25:30 +02:00
Wojtek Figat
c94052513e Add object replication data cache and send via Reliable channel to reduce data transfer 2024-10-15 19:47:09 +02:00
xxSeys1
7e1d6679ce add debug draw clear to game and editor panel 2024-10-15 19:43:08 +02:00
Wojtek Figat
60ed23105d Fix typo 2024-10-15 12:33:51 +02:00
Wojtek Figat
ac832a0e81 Optimize network transform replication 2024-10-15 11:24:10 +02:00
Wojtek Figat
c202a639cf Fix linux 2024-10-15 00:01:10 +02:00
Wojtek Figat
b957733150 Fixes 2024-10-14 23:35:41 +02:00
Wojtek Figat
7e4d7743a4 Add Quaternion quantization for network stream
Reduced send rate by 56% in average. Identity quat is just 8-bits (flags)
Added tests with full-sphere rotation to ensure this works correctly.
2024-10-14 22:32:29 +02:00
Wojtek Figat
a6f1dbbf32 Fix Quaternion error tolerance to be more reasonable due to math optimization enabled in compiler 2024-10-14 22:16:08 +02:00
Wojtek Figat
b38af8fd00 Format code and add debug cmd attributes 2024-10-14 12:12:48 +02:00
Wojtek Figat
4ddf1a2cc8 Another fix for network profiler to properly handle stats updating when recording is disabled
#2815
2024-10-14 12:12:06 +02:00
Wojtek Figat
443fe5dbcb Add network keys table to optimize ids and names sending over network
#2815
2024-10-14 12:11:20 +02:00
Wojtek Figat
23ad24751a Fix editor tables rows coloring to start with darker one 2024-10-12 00:00:02 +02:00
Wojtek Figat
f8371d037b Refactor old ContentLoadingManager into Content for simplicity 2024-10-11 23:05:09 +02:00
Wojtek Figat
ff495e1319 Add safety check to exit game in Release mode when running with graphics debugger attached 2024-10-11 20:15:17 +02:00
Wojtek Figat
575a286e1e Add editor windows to quick actions via Content Finder tool 2024-10-11 20:06:20 +02:00
Wojtek Figat
a72e8f2f65 Merge remote-tracking branch 'origin/master' into 1.10
# Conflicts:
#	Source/Engine/Platform/StringUtils.h
2024-10-11 18:07:41 +02:00
xxSeys1
1fca41b31a code style fix 2024-10-09 18:29:48 +02:00
xxSeys1
8b3f1ca019 make "Edit Prefab" not change content panel file path
If someone still wants to change the Content panel to the file path of the prefab, they can use the "Select Prefab" button
2024-10-09 18:25:04 +02:00
xxSeys1
a50c21cf36 add audio volume and muted in game panel tab rmb menu 2024-10-09 17:19:00 +02:00
Mateusz Karbowiak
863afc065d Merge branch 'FlaxEngine:master' into fix/nullable 2024-10-07 16:34:37 +02:00
Mateusz Karbowiak
eda4f433d0 Update TestNullable.cpp 2024-10-07 12:24:09 +02:00
Mateusz Karbowiak
f56207f1a4 Nullable.Reset fix, killing inlining 2024-10-07 12:17:23 +02:00
Mateusz Karbowiak
541ca67a06 Nullable sfinae fix 2024-10-07 03:59:58 +02:00
Mateusz Karbowiak
44dad402f6 Nullable dependency headers fix 2024-10-07 02:41:07 +02:00
Mateusz Karbowiak
1a588eb9f7 Merge branch 'FlaxEngine:master' into fix/nullable 2024-10-07 01:11:51 +02:00
Mateusz Karbowiak
cda74f5cc4 Nullable tests 2024-10-06 13:50:03 +02:00
Mateusz Karbowiak
077ececcf8 Nullable match 2024-10-06 13:20:00 +02:00
Mateusz Karbowiak
d48a4c4483 Merge branch 'FlaxEngine:master' into fix/nullable 2024-10-06 13:01:16 +02:00
Mateusz Karbowiak
6f6348508a Nullable implicit cast fix 2024-10-06 03:09:04 +02:00
Mateusz Karbowiak
23624aa7f8 Fix type constraints 2024-10-06 02:23:21 +02:00
Mateusz Karbowiak
c9b1f6f516 Nullable fixes 2024-10-06 01:57:12 +02:00
Mateusz Karbowiak
a2874a189e Nullable docs 2024-10-05 23:51:54 +02:00
Mateusz Karbowiak
edfbeea0e6 Nullable utility functions 2024-10-05 23:10:30 +02:00
Mateusz Karbowiak
db06f4f72e Fixed implicit type conversion for type specialization 2024-10-05 21:22:36 +02:00
Mateusz Karbowiak
32b09538ba Hard Nullable<T> refactor * 2024-10-05 21:21:51 +02:00
Wojtek Figat
c6958357c3 Allow placing DebugCommand attribute on fields and properties 2024-10-04 15:58:47 +02:00
Wojtek Figat
74d2f5d115 Fix parsing numbers to support sign 2024-10-04 15:58:27 +02:00
Wojtek Figat
777e65c170 Fix crash when setting static dotnet field from unmanaged code 2024-10-04 15:58:05 +02:00
Wojtek Figat
adbe578aa1 Add attributes support for dotnet interop for methods, fields and properties 2024-10-04 15:57:41 +02:00
Wojtek Figat
85915d787a Add Variant enum parsing by name and fix enum printing to string 2024-10-03 17:10:34 +02:00
Wojtek Figat
2f0518a348 Fix managed interop bug 2024-10-03 17:10:01 +02:00
Wojtek Figat
7f5f1ba938 Merge remote-tracking branch 'origin/1.10' into 1.10 2024-10-03 12:37:00 +02:00
Wojtek Figat
a932d549f4 Debug Commands work in progress 2024-10-03 10:24:15 +02:00
Wojtek Figat
791435ba76 Merge remote-tracking branch 'origin/master' into 1.10 2024-10-03 10:23:13 +02:00
Wojtek Figat
0b3a95e551 Merge commit 'f74694048575160067734cbe27a023ad78a2c727' into 1.10 2024-10-03 10:23:07 +02:00
Wojtek Figat
f746940485 Fix typo 2024-10-03 10:04:18 +02:00
Chandler Cox
ecb80e0f34 Add context to drag drop for object ref editor. 2024-09-27 18:26:37 -05:00
Chandler Cox
aded4bfdeb Add context to object referece control to narrow finding actors and scripts 2024-09-27 17:49:44 -05:00
Wojtek Figat
1161a4114d Minor tweaks to simd codebase 2024-09-26 18:56:22 +02:00
Zode
7ede250403 absolute snapping: actually fix large world this time 2024-06-17 22:59:19 +03:00
Zode
5780fb7392 absolute snapping: large worlds fix 2024-06-17 22:16:10 +03:00
Zode
840abf8cdb absolute snap only in world space 2024-06-17 21:27:13 +03:00
Zode
b57e847916 Add absolute snapping 2024-06-17 21:19:31 +03:00
Chandler Cox
c858b67f2e Try and fix large world issue. 2024-05-13 16:48:45 -05:00
Chandler Cox
6d77d45529 use var and real for sign 2024-03-06 06:42:20 -06:00
Chandler Cox
eed44c14df Simplify code 2024-02-17 19:47:18 -06:00
Chandler Cox
af63858d80 Fix Scale gizmo for multiple directions. 2024-02-17 19:42:38 -06:00
davevanegdom
22764f5362 Improved SceneNodeDoubleClick names 2023-09-23 23:28:59 +02:00
davevanegdom
1b84f57a5b Small optimization 2023-09-23 03:24:19 +02:00
davevanegdom
23f4a82bbc Double click actions + open prefab ctxmenu 2023-09-22 18:31:54 +02:00
davevanegdom
9fbfc83535 Editor order cleanup 2023-09-19 14:19:38 +02:00
davevanegdom
ad8d84bfd7 Revert "Surface node body responds to mouse events"
This reverts commit d9b3443818.
2023-09-19 14:16:40 +02:00
davevanegdom
4257f1e2ac Color settings for Debug and Output log 2023-09-19 14:10:25 +02:00
davevanegdom
8166970038 Merge remote-tracking branch 'upstream/master' into DebugOutputImprovements 2023-09-19 14:09:51 +02:00
davevanegdom
88530606df Merge remote-tracking branch 'upstream/master' into ContentContextCondition 2023-09-19 01:10:51 +02:00
davevanegdom
d9b3443818 Surface node body responds to mouse events 2023-09-19 01:09:05 +02:00
1006 changed files with 120944 additions and 20510 deletions

View File

@@ -16,7 +16,7 @@ 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 install 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 +44,7 @@ jobs:
uses: actions/checkout@v3
- name: Install dependencies
run: |
sudo apt-get install libx11-dev libxcursor-dev libxinerama-dev
sudo apt-get install libx11-dev libxcursor-dev libxinerama-dev libwayland-dev
- name: Setup Vulkan
uses: ./.github/actions/vulkan
- name: Setup .NET

View File

@@ -1,12 +1,13 @@
name: Continuous Deployment
on:
schedule:
- cron: '15 4 * * *'
- cron: '15 6 * * *'
workflow_dispatch:
env:
DOTNET_NOLOGO: true
DOTNET_CLI_TELEMETRY_OPTOUT: false
GIT_LFS_PULL_OPTIONS: '-c lfs.concurrenttransfers=1 -c lfs.transfer.maxretries=2 -c http.version="HTTP/1.1" -c lfs.activitytimeout=60'
jobs:
@@ -20,7 +21,7 @@ jobs:
- name: Checkout LFS
run: |
git lfs version
git lfs pull
git ${{ env.GIT_LFS_PULL_OPTIONS }} lfs pull
- name: Setup Vulkan
uses: ./.github/actions/vulkan
- name: Setup .NET
@@ -35,12 +36,12 @@ jobs:
run: |
.\PackageEditor.bat -arch=x64 -platform=Windows -deployOutput=Output
- name: Upload
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: Windows-Editor
path: Output/Editor.zip
- name: Upload
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: Windows-EditorDebugSymbols
path: Output/EditorDebugSymbols.zip
@@ -53,7 +54,7 @@ jobs:
- name: Checkout LFS
run: |
git lfs version
git lfs pull
git ${{ env.GIT_LFS_PULL_OPTIONS }} lfs pull
- name: Setup Vulkan
uses: ./.github/actions/vulkan
- name: Setup .NET
@@ -68,7 +69,7 @@ jobs:
run: |
.\PackagePlatforms.bat -arch=x64 -platform=Windows -deployOutput=Output
- name: Upload
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: Windows-Game
path: Output/Windows.zip
@@ -83,7 +84,7 @@ jobs:
- name: Checkout LFS
run: |
git lfs version
git lfs pull
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
@@ -101,7 +102,7 @@ jobs:
run: |
./PackageEditor.sh -arch=x64 -platform=Linux -deployOutput=Output
- name: Upload
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: Linux-Editor
path: Output/FlaxEditorLinux.zip
@@ -114,7 +115,7 @@ jobs:
- name: Checkout LFS
run: |
git lfs version
git lfs pull
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
@@ -132,7 +133,7 @@ jobs:
run: |
./PackagePlatforms.sh -arch=x64 -platform=Linux -deployOutput=Output
- name: Upload
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: Linux-Game
path: Output/Linux.zip
@@ -147,7 +148,7 @@ jobs:
- name: Checkout LFS
run: |
git lfs version
git lfs pull
git ${{ env.GIT_LFS_PULL_OPTIONS }} lfs pull
- name: Setup Vulkan
uses: ./.github/actions/vulkan
- name: Setup .NET
@@ -162,7 +163,7 @@ jobs:
run: |
./PackageEditor.command -arch=ARM64 -platform=Mac -deployOutput=Output
- name: Upload
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: Mac-Editor
path: Output/FlaxEditorMac.zip
@@ -175,7 +176,7 @@ jobs:
- name: Checkout LFS
run: |
git lfs version
git lfs pull
git ${{ env.GIT_LFS_PULL_OPTIONS }} lfs pull
- name: Setup Vulkan
uses: ./.github/actions/vulkan
- name: Setup .NET
@@ -190,7 +191,7 @@ jobs:
run: |
./PackagePlatforms.command -arch=ARM64 -platform=Mac -deployOutput=Output
- name: Upload
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: Mac-Game
path: Output/Mac.zip

View File

@@ -28,7 +28,7 @@ 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 install libx11-dev libxcursor-dev libxinerama-dev build-essential gettext libtool libtool-bin libpulse-dev libasound2-dev libjack-dev portaudio19-dev libwayland-dev
- name: Build
run: |
./GenerateProjectFiles.sh -vs2022 -log -verbose -printSDKs -dotnet=8
@@ -73,8 +73,11 @@ jobs:
.\Development\Scripts\Windows\CallBuildTool.bat -build -log -dotnet=8 -arch=x64 -platform=Windows -configuration=Development -buildtargets=FlaxTestsTarget
dotnet msbuild Source\Tools\Flax.Build.Tests\Flax.Build.Tests.csproj /m /t:Restore,Build /p:Configuration=Debug /p:Platform=AnyCPU /nologo
- name: Test
shell: pwsh
run: |
$ErrorActionPreference = "Stop"
.\Binaries\Editor\Win64\Development\FlaxTests.exe
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
xcopy /y Binaries\Editor\Win64\Development\FlaxEngine.CSharp.runtimeconfig.json Binaries\Tests

BIN
Content/Editor/Camera/M_Camera.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Editor/Camera/O_Camera.flax (Stored with Git LFS)

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.

BIN
Content/Editor/DefaultFontMaterial.flax (Stored with Git LFS)

Binary file not shown.

Binary file not shown.

BIN
Content/Editor/Gizmo/Material.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Editor/Gizmo/MaterialWire.flax (Stored with Git LFS)

Binary file not shown.

Binary file not shown.

BIN
Content/Editor/Gizmo/RotationAxis.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Editor/Gizmo/ScaleAxis.flax (Stored with Git LFS)

Binary file not shown.

Binary file not shown.

BIN
Content/Editor/Gizmo/TranslationAxis.flax (Stored with Git LFS)

Binary file not shown.

Binary file not shown.

BIN
Content/Editor/Gizmo/WireBox.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Editor/Highlight Material.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Editor/Icons/AudioListener.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Editor/Icons/AudioSource.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Editor/Icons/Decal.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Editor/Icons/DirectionalLight.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Editor/Icons/EnvironmentProbe.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Editor/Icons/IconsMaterial.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Editor/Icons/ParticleEffect.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Editor/Icons/PointLight.flax (Stored with Git LFS)

Binary file not shown.

Binary file not shown.

BIN
Content/Editor/Icons/SkyLight.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Editor/Icons/Skybox.flax (Stored with Git LFS)

Binary file not shown.

Binary file not shown.

View File

@@ -83,6 +83,12 @@ float3 GetObjectSize(MaterialInput input)
return float3(1, 1, 1);
}
// Gets the current object scale (supports instancing)
float3 GetObjectScale(MaterialInput input)
{
return float3(1, 1, 1);
}
// Get the current object random value supports instancing)
float GetPerInstanceRandom(MaterialInput input)
{

View File

@@ -207,6 +207,20 @@ float3 GetObjectSize(MaterialInput input)
return GeometrySize * float3(world._m00, world._m11, world._m22);
}
// Gets the current object scale (supports instancing)
float3 GetObjectScale(MaterialInput input)
{
float4x4 world = WorldMatrix;
// Extract scale from the world matrix
float3 scale;
scale.x = length(float3(world._11, world._12, world._13));
scale.y = length(float3(world._21, world._22, world._23));
scale.z = length(float3(world._31, world._32, world._33));
return scale;
}
// Get the current object random value
float GetPerInstanceRandom(MaterialInput input)
{
@@ -297,7 +311,7 @@ VertexOutput VS_SplineModel(ModelInput input)
output.Position = mul(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
// Pass vertex attributes
output.Geometry.TexCoord = input.TexCoord;
output.Geometry.TexCoord = input.TexCoord0;
#if USE_VERTEX_COLOR
output.Geometry.VertexColor = input.Color;
#endif

View File

@@ -140,7 +140,7 @@ void SetParticleVec4(uint particleIndex, int offset, float4 value)
bool AddParticle(out uint dstIndex)
{
// Acquire the particle index in the destination buffer
DstParticlesData.InterlockedAdd(ParticleCounterOffset, 1, dstIndex);
DstParticlesData.InterlockedAdd(ParticleCounterOffset, 1u, dstIndex);
// Prevent overflow
return dstIndex >= PARTICLE_CAPACITY;

View File

@@ -163,6 +163,12 @@ float3 GetObjectSize(MaterialInput input)
return float3(1, 1, 1);
}
// Gets the current object scale (supports instancing)
float3 GetObjectScale(MaterialInput input)
{
return float3(1, 1, 1);
}
// Get the current object random value supports instancing)
float GetPerInstanceRandom(MaterialInput input)
{

View File

@@ -299,24 +299,22 @@ half3x3 CalcTangentToLocal(ModelInput input)
float3 normal = input.Normal.xyz * 2.0 - 1.0;
float3 tangent = input.Tangent.xyz * 2.0 - 1.0;
float3 bitangent = cross(normal, tangent) * bitangentSign;
return float3x3(tangent, bitangent, normal);
return (half3x3)float3x3(tangent, bitangent, normal);
}
half3x3 CalcTangentToWorld(in float4x4 world, in half3x3 tangentToLocal)
{
half3x3 localToWorld = RemoveScaleFromLocalToWorld((float3x3)world);
half3x3 localToWorld = (half3x3)RemoveScaleFromLocalToWorld((float3x3)world);
return mul(tangentToLocal, localToWorld);
}
float3 GetParticlePosition(uint ParticleIndex)
float3 GetParticlePosition(uint particleIndex)
{
return TransformParticlePosition(GetParticleVec3(ParticleIndex, PositionOffset));
return TransformParticlePosition(GetParticleVec3(particleIndex, PositionOffset));
}
// Vertex Shader function for Sprite Rendering
META_VS(true, FEATURE_LEVEL_ES2)
META_VS_IN_ELEMENT(POSITION, 0, R32G32_FLOAT, 0, 0, PER_VERTEX, 0, true)
META_VS_IN_ELEMENT(TEXCOORD, 0, R32G32_FLOAT, 0, ALIGN, PER_VERTEX, 0, true)
VertexOutput VS_Sprite(SpriteInput input, uint particleIndex : SV_InstanceID)
{
VertexOutput output;
@@ -407,7 +405,7 @@ VertexOutput VS_Sprite(SpriteInput input, uint particleIndex : SV_InstanceID)
output.InstanceParams = PerInstanceRandom;
// Calculate tanget space to world space transformation matrix for unit vectors
half3x3 tangentToLocal = float3x3(axisX, axisY, axisZ);
half3x3 tangentToLocal = half3x3(axisX, axisY, axisZ);
half3x3 tangentToWorld = CalcTangentToWorld(world, tangentToLocal);
output.TBN = tangentToWorld;
@@ -516,7 +514,7 @@ VertexOutput VS_Model(ModelInput input, uint particleIndex : SV_InstanceID)
output.Position = mul(float4(output.WorldPosition, 1), ViewProjectionMatrix);
// Pass vertex attributes
output.TexCoord = input.TexCoord;
output.TexCoord = input.TexCoord0;
output.ParticleIndex = particleIndex;
#if USE_VERTEX_COLOR
output.VertexColor = input.Color;
@@ -612,7 +610,7 @@ VertexOutput VS_Ribbon(RibbonInput input, uint vertexIndex : SV_VertexID)
{
output.TexCoord.x = (float)input.Order / (float)RibbonSegmentCount;
}
output.TexCoord.y = (vertexIndex + 1) & 0x1;
output.TexCoord.y = (float)((vertexIndex + 1) & 0x1);
output.TexCoord = output.TexCoord * RibbonUVScale + RibbonUVOffset;
// Compute world space vertex position
@@ -631,7 +629,7 @@ VertexOutput VS_Ribbon(RibbonInput input, uint vertexIndex : SV_VertexID)
output.InstanceParams = PerInstanceRandom;
// Calculate tanget space to world space transformation matrix for unit vectors
half3x3 tangentToLocal = float3x3(tangentRight, tangentUp, cross(tangentRight, tangentUp));
half3x3 tangentToLocal = half3x3(tangentRight, tangentUp, cross(tangentRight, tangentUp));
half3x3 tangentToWorld = CalcTangentToWorld(world, tangentToLocal);
output.TBN = tangentToWorld;

View File

@@ -2,6 +2,7 @@
// Version: @0
#define MATERIAL 1
#define MATERIAL_TEXCOORDS 4
#define USE_PER_VIEW_CONSTANTS 1
#define USE_PER_DRAW_CONSTANTS 1
@3
@@ -24,21 +25,29 @@ Buffer<float4> BoneMatrices : register(t1);
Buffer<float4> PrevBoneMatrices : register(t2);
#endif
#endif
// Geometry data passed though the graphics rendering stages up to the pixel shader
struct GeometryData
{
float3 WorldPosition : TEXCOORD0;
float2 TexCoord : TEXCOORD1;
float2 LightmapUV : TEXCOORD2;
float4 TexCoords01 : TEXCOORD1;
float4 TexCoords23 : TEXCOORD2;
float2 LightmapUV : TEXCOORD3;
#if USE_VERTEX_COLOR
half4 VertexColor : COLOR;
#endif
float3 WorldNormal : TEXCOORD3;
float4 WorldTangent : TEXCOORD4;
float3 WorldNormal : TEXCOORD4;
float4 WorldTangent : TEXCOORD5;
float3 PrevWorldPosition : TEXCOORD7;
nointerpolation uint ObjectIndex : TEXCOORD8;
};
float3 DecodeNormal(float4 normalMap)
{
float2 xy = normalMap.rg * 2.0 - 1.0;
return float3(xy, sqrt(1.0 - saturate(dot(xy, xy))));
}
// Interpolants passed from the vertex shader
struct VertexOutput
{
@@ -68,7 +77,7 @@ struct MaterialInput
{
float3 WorldPosition;
float TwoSidedSign;
float2 TexCoord;
float2 TexCoords[MATERIAL_TEXCOORDS];
#if USE_LIGHTMAP
float2 LightmapUV;
#endif
@@ -86,12 +95,18 @@ struct MaterialInput
#endif
};
// Map access to the main texure coordinate channel as UV0
#define TexCoord TexCoords[0]
// Extracts geometry data to the material input
MaterialInput GetGeometryMaterialInput(GeometryData geometry)
{
MaterialInput output = (MaterialInput)0;
output.WorldPosition = geometry.WorldPosition;
output.TexCoord = geometry.TexCoord;
output.TexCoords[0] = geometry.TexCoords01.xy;
output.TexCoords[1] = geometry.TexCoords01.zw;
output.TexCoords[2] = geometry.TexCoords23.xy;
output.TexCoords[3] = geometry.TexCoords23.zw;
#if USE_LIGHTMAP
output.LightmapUV = geometry.LightmapUV;
#endif
@@ -126,8 +141,8 @@ MaterialInput GetGeometryMaterialInput(GeometryData geometry)
GeometryData InterpolateGeometry(GeometryData p0, float w0, GeometryData p1, float w1, GeometryData p2, float w2)
{
GeometryData output = (GeometryData)0;
output.TexCoord = p0.TexCoord * w0 + p1.TexCoord * w1 + p2.TexCoord * w2;
output.LightmapUV = p0.LightmapUV * w0 + p1.LightmapUV * w1 + p2.LightmapUV * w2;
output.TexCoords01 = p0.TexCoords01 * w0 + p1.TexCoords01 * w1 + p2.TexCoords01 * w2;
output.TexCoords23 = p0.TexCoords23 * w0 + p1.TexCoords23 * w1 + p2.TexCoords23 * w2;
#if USE_VERTEX_COLOR
output.VertexColor = p0.VertexColor * w0 + p1.VertexColor * w1 + p2.VertexColor * w2;
#endif
@@ -223,6 +238,24 @@ float3 GetObjectSize(MaterialInput input)
return input.Object.GeometrySize * float3(world._m00, world._m11, world._m22);
}
// Gets the current object scale (supports instancing)
float3 GetObjectScale(MaterialInput input)
{
float4x4 world = input.Object.WorldMatrix;
// Get the squares of the scale factors
float scaleXSquared = dot(world[0].xyz, world[0].xyz);
float scaleYSquared = dot(world[1].xyz, world[1].xyz);
float scaleZSquared = dot(world[2].xyz, world[2].xyz);
// Take square root to get actual scales
return float3(
sqrt(scaleXSquared),
sqrt(scaleYSquared),
sqrt(scaleZSquared)
);
}
// Get the current object random value (supports instancing)
float GetPerInstanceRandom(MaterialInput input)
{
@@ -312,14 +345,15 @@ VertexOutput VS(ModelInput input)
output.Position = mul(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
// Pass vertex attributes
output.Geometry.TexCoord = input.TexCoord;
output.Geometry.TexCoords01 = float4(input.TexCoord0, input.TexCoord1);
output.Geometry.TexCoords23 = float4(input.TexCoord2, input.TexCoord3);
#if USE_VERTEX_COLOR
output.Geometry.VertexColor = input.Color;
#endif
#if CAN_USE_LIGHTMAP
output.Geometry.LightmapUV = input.LightmapUV * object.LightmapArea.zw + object.LightmapArea.xy;
#else
output.Geometry.LightmapUV = input.LightmapUV;
output.Geometry.LightmapUV = float2(0, 0);
#endif
// Calculate tanget space to world space transformation matrix for unit vectors
@@ -459,7 +493,7 @@ META_VS_IN_ELEMENT(TEXCOORD, 0, R16G16_FLOAT, 0, ALIGN, PER_VERTEX, 0,
META_VS_IN_ELEMENT(NORMAL, 0, R10G10B10A2_UNORM, 0, ALIGN, PER_VERTEX, 0, true)
META_VS_IN_ELEMENT(TANGENT, 0, R10G10B10A2_UNORM, 0, ALIGN, PER_VERTEX, 0, true)
META_VS_IN_ELEMENT(BLENDINDICES, 0, R8G8B8A8_UINT, 0, ALIGN, PER_VERTEX, 0, true)
META_VS_IN_ELEMENT(BLENDWEIGHT, 0, R16G16B16A16_FLOAT,0, ALIGN, PER_VERTEX, 0, true)
META_VS_IN_ELEMENT(BLENDWEIGHTS, 0, R16G16B16A16_FLOAT,0, ALIGN, PER_VERTEX, 0, true)
VertexOutput VS_Skinned(ModelInput_Skinned input)
{
VertexOutput output;
@@ -486,9 +520,10 @@ VertexOutput VS_Skinned(ModelInput_Skinned input)
output.Position = mul(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
// Pass vertex attributes
output.Geometry.TexCoord = input.TexCoord;
output.Geometry.TexCoords01 = float4(input.TexCoord0, input.TexCoord1);
output.Geometry.TexCoords23 = float4(input.TexCoord2, input.TexCoord3);
#if USE_VERTEX_COLOR
output.Geometry.VertexColor = float4(0, 0, 0, 1);
output.Geometry.VertexColor = input.Color;
#endif
output.Geometry.LightmapUV = float2(0, 0);

View File

@@ -236,6 +236,12 @@ float3 GetObjectSize(MaterialInput input)
return float3(1, 1, 1);
}
// Gets the current object scale (supports instancing)
float3 GetObjectScale(MaterialInput input)
{
return float3(1, 1, 1);
}
// Get the current object random value
float GetPerInstanceRandom(MaterialInput input)
{
@@ -319,8 +325,6 @@ struct TerrainVertexInput
// Vertex Shader function for terrain rendering
META_VS(true, FEATURE_LEVEL_ES2)
META_VS_IN_ELEMENT(TEXCOORD, 0, R32G32_FLOAT, 0, ALIGN, PER_VERTEX, 0, true)
META_VS_IN_ELEMENT(TEXCOORD, 1, R8G8B8A8_UNORM, 0, ALIGN, PER_VERTEX, 0, true)
VertexOutput VS(TerrainVertexInput input)
{
VertexOutput output;

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Content/Editor/Primitives/Capsule.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Editor/Primitives/Cone.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Editor/Primitives/Cube.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Editor/Primitives/Cylinder.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Editor/Primitives/Plane.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Editor/Primitives/Sphere.flax (Stored with Git LFS)

Binary file not shown.

View File

@@ -0,0 +1,25 @@
%copyright%using System;
using System.Collections.Generic;
using FlaxEngine;
namespace %namespace%;
/// <summary>
/// %class% GamePlugin.
/// </summary>
public class %class% : GamePlugin
{
/// <inheritdoc/>
public override void Initialize()
{
base.Initialize();
}
/// <inheritdoc/>
public override void Deinitialize()
{
base.Deinitialize();
}
}

BIN
Content/Editor/SpriteMaterial.flax (Stored with Git LFS)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Content/Editor/TexturePreviewMaterial.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Editor/Wires Debug Material.flax (Stored with Git LFS)

Binary file not shown.

Binary file not shown.

BIN
Content/Engine/DefaultMaterial.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Engine/DefaultRadialMenu.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Engine/DefaultTerrainMaterial.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Engine/Models/Box.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Engine/Models/Quad.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Engine/Models/SimpleBox.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Engine/Models/Sphere.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Engine/Models/SphereLowPoly.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Engine/SingleColorMaterial.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Engine/SkyboxMaterial.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Engine/WhiteMaterial.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Shaders/BakeLightmap.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Shaders/Editor/Grid.flax (Stored with Git LFS)

Binary file not shown.

Binary file not shown.

BIN
Content/Shaders/GI/GlobalSurfaceAtlas.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Shaders/PostProcessing.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Shaders/Quad.flax (Stored with Git LFS)

Binary file not shown.

BIN
Content/Shaders/Shadows.flax (Stored with Git LFS)

Binary file not shown.

View File

@@ -2,9 +2,9 @@
"Name": "Flax",
"Version": {
"Major": 1,
"Minor": 9,
"Minor": 10,
"Revision": 0,
"Build": 6606
"Build": 6702
},
"Company": "Flax",
"Copyright": "Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.",
@@ -13,6 +13,7 @@
"Configuration": {
"UseCSharp": true,
"UseLargeWorlds": false,
"UseDotNet": true
"UseDotNet": true,
"UseSDL": true
}
}

View File

@@ -237,6 +237,7 @@
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002ECSharpPlaceAttributeOnSameLineMigration/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateBlankLinesAroundFieldToBlankLinesAroundProperty/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateThisQualifierSettings/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/GrammarAndSpelling/GrammarChecking/Exceptions/=Try_0020to_0020scripting/@EntryIndexedValue">True</s:Boolean>
<s:String x:Key="/Default/GrammarAndSpelling/GrammarChecking/RulesStates/=LanguageTool_002EEN_002EE_005FG/@EntryIndexedValue">DisabledByUser</s:String>
<s:Boolean x:Key="/Default/PatternsAndTemplates/Todo/TodoPatterns/=EEA05B0ED8200E4BA9D2D3F1052EBFFD/@KeyIndexDefined">True</s:Boolean>
<s:String x:Key="/Default/PatternsAndTemplates/Todo/TodoPatterns/=EEA05B0ED8200E4BA9D2D3F1052EBFFD/Color/@EntryValue">Blue</s:String>

View File

@@ -31,7 +31,7 @@ Follow the instructions below to compile and run the engine from source.
* Install Visual Studio 2022 or newer
* Install Windows 8.1 SDK or newer (via Visual Studio Installer)
* Install Microsoft Visual C++ 2015 v140 toolset or newer (via Visual Studio Installer)
* Install .NET 8 SDK for **Windows x64** (via Visual Studio Installer or [from web](https://dotnet.microsoft.com/en-us/download/dotnet/8.0))
* Install .NET 8 or 9 SDK for **Windows x64** (via Visual Studio Installer or [from web](https://dotnet.microsoft.com/en-us/download/dotnet/8.0))
* Install Git with LFS
* Clone repo (with LFS)
* Run **GenerateProjectFiles.bat**
@@ -44,8 +44,9 @@ Follow the instructions below to compile and run the engine from source.
## Linux
* Install Visual Studio Code
* Install .NET 8 SDK ([https://dotnet.microsoft.com/en-us/download/dotnet/8.0](https://dotnet.microsoft.com/en-us/download/dotnet/8.0))
* Install .NET 8 or 9 SDK ([https://dotnet.microsoft.com/en-us/download/dotnet/8.0](https://dotnet.microsoft.com/en-us/download/dotnet/8.0))
* Ubuntu: `sudo apt install dotnet-sdk-8.0`
* Arch: `sudo pacman -S dotnet-sdk-8.0 dotnet-runtime-8.0 dotnet-targeting-pack-8.0 dotnet-host`
* Install Vulkan SDK ([https://vulkan.lunarg.com/](https://vulkan.lunarg.com/))
* Ubuntu: `sudo apt install vulkan-sdk`
* Arch: `sudo pacman -S spirv-tools vulkan-headers vulkan-tools vulkan-validation-layers`
@@ -67,12 +68,12 @@ Follow the instructions below to compile and run the engine from source.
## Mac
* Install XCode
* Install .NET 8 SDK ([https://dotnet.microsoft.com/en-us/download/dotnet/8.0](https://dotnet.microsoft.com/en-us/download/dotnet/8.0))
* Install .NET 8 or 9 SDK ([https://dotnet.microsoft.com/en-us/download/dotnet/8.0](https://dotnet.microsoft.com/en-us/download/dotnet/8.0))
* Install Vulkan SDK ([https://vulkan.lunarg.com/](https://vulkan.lunarg.com/))
* Clone repo (with LFS)
* Run `GenerateProjectFiles.command`
* Open workspace with XCode or Visual Studio Code
* Build and run (configuration `Editor.Mac.Development`)
* Build and run (configuration `Editor.Mac.Development`)
#### Troubleshooting

View File

@@ -750,7 +750,8 @@ namespace FlaxEditor.Content
// Draw short name
Render2D.PushClip(ref textRect);
Render2D.DrawText(style.FontMedium, ShowFileExtension || view.ShowFileExtensions ? FileName : ShortName, textRect, style.Foreground, nameAlignment, TextAlignment.Center, TextWrapping.WrapWords, 1f, 0.95f);
var scale = 0.95f * view.ViewScale;
Render2D.DrawText(style.FontMedium, ShowFileExtension || view.ShowFileExtensions ? FileName : ShortName, textRect, style.Foreground, nameAlignment, TextAlignment.Center, TextWrapping.WrapWords, 1f, scale);
Render2D.PopClip();
if (IsBeingCut)

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

@@ -106,6 +106,23 @@ namespace FlaxEditor.Content
}
}
/// <summary>
/// Context proxy object for C# GamePlugin files.
/// </summary>
/// <seealso cref="FlaxEditor.Content.CSharpProxy" />
[ContentContextMenu("New/C#/C# GamePlugin")]
public class CSharpGamePluginProxy : CSharpProxy
{
/// <inheritdoc />
public override string Name => "C# GamePlugin";
/// <inheritdoc />
protected override void GetTemplatePath(out string path)
{
path = StringUtils.CombinePaths(Globals.EngineContentFolder, "Editor/Scripting/GamePluginTemplate.cs");
}
}
/// <summary>
/// Context proxy object for empty C# files.
/// </summary>

View File

@@ -1,9 +1,11 @@
// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
using System;
using System.Linq;
using FlaxEditor.Content.Create;
using FlaxEditor.CustomEditors;
using FlaxEditor.CustomEditors.Editors;
using FlaxEditor.Scripting;
using FlaxEditor.Windows;
using FlaxEditor.Windows.Assets;
using FlaxEngine;
@@ -84,18 +86,67 @@ namespace FlaxEditor.Content
if (_element != null)
{
// Define the rule for the types that can be used to create a json data asset
_element.CustomControl.CheckValid += type =>
type.Type != null &&
type.IsClass &&
type.Type.IsVisible &&
!type.IsAbstract &&
!type.IsGenericType &&
type.Type.GetConstructor(Type.EmptyTypes) != null &&
!typeof(FlaxEngine.GUI.Control).IsAssignableFrom(type.Type) &&
!typeof(FlaxEngine.Object).IsAssignableFrom(type.Type);
_element.CustomControl.CheckValid += OnCheckValidJsonAssetType;
}
}
private static Type[] BlacklistedClasses =
[
typeof(System.Attribute),
typeof(FlaxEngine.Object),
typeof(FlaxEngine.GUI.Control),
];
private static Type[] BlacklistedStructs =
[
typeof(Float2),
typeof(Float3),
typeof(Float4),
typeof(Double2),
typeof(Double3),
typeof(Double4),
typeof(Vector2),
typeof(Vector3),
typeof(Vector4),
typeof(Half2),
typeof(Half3),
typeof(Half4),
typeof(Int2),
typeof(Int3),
typeof(Int4),
typeof(Transform),
typeof(Quaternion),
typeof(BoundingBox),
typeof(BoundingSphere),
typeof(BoundingFrustum),
typeof(Ray),
typeof(Plane),
typeof(Matrix),
typeof(Color),
typeof(Color32),
typeof(FloatR11G11B10),
typeof(FloatR10G10B10A2),
typeof(FlaxEngine.Half),
];
private static bool OnCheckValidJsonAssetType(ScriptType type)
{
// Define the rule for the types that can be used to create a json data asset
var mType = type.Type;
if (mType == null ||
type.IsAbstract ||
type.IsStatic ||
type.IsGenericType ||
!mType.IsVisible)
return false;
if (type.IsClass)
return mType.GetConstructor(Type.EmptyTypes) != null && BlacklistedClasses.FirstOrDefault(x => x.IsAssignableFrom(mType)) == null;
if (type.IsStructure)
return !type.IsPrimitive &&
!type.IsVoid &&
!BlacklistedStructs.Contains(mType);
return false;
}
}
}
@@ -175,7 +226,7 @@ namespace FlaxEditor.Content
{
_thumbnail = SpriteHandle.Invalid;
}
/// <summary>
/// Constructor with overriden thumbnail.
/// </summary>
@@ -196,7 +247,7 @@ namespace FlaxEditor.Content
{
Editor.SaveJsonAsset(outputPath, new T());
}
/// <inheritdoc />
public override AssetItem ConstructItem(string path, string typeName, ref Guid id)
{

View File

@@ -496,7 +496,7 @@ namespace FlaxEditor.Content.Thumbnails
// Prepare requests
bool isAnyReady = false;
int checks = Mathf.Min(10, _requests.Count);
for (int i = 0; i < checks; i++)
for (int i = 0; i < checks && i < _requests.Count; i++)
{
var request = _requests[i];
try

View File

@@ -671,11 +671,14 @@ bool GameCookerImpl::Build()
MCore::Thread::Attach();
// Build Started
CallEvent(GameCooker::EventType::BuildStarted);
data.Tools->OnBuildStarted(data);
for (int32 stepIndex = 0; stepIndex < Steps.Count(); stepIndex++)
Steps[stepIndex]->OnBuildStarted(data);
data.InitProgress(Steps.Count());
if (!EnumHasAnyFlags(data.Options, BuildOptions::NoCook))
{
CallEvent(GameCooker::EventType::BuildStarted);
data.Tools->OnBuildStarted(data);
for (int32 stepIndex = 0; stepIndex < Steps.Count(); stepIndex++)
Steps[stepIndex]->OnBuildStarted(data);
data.InitProgress(Steps.Count());
}
// Execute all steps in a sequence
bool failed = false;
@@ -741,10 +744,13 @@ bool GameCookerImpl::Build()
}
IsRunning = false;
CancelFlag = 0;
for (int32 stepIndex = 0; stepIndex < Steps.Count(); stepIndex++)
Steps[stepIndex]->OnBuildEnded(data, failed);
data.Tools->OnBuildEnded(data, failed);
CallEvent(failed ? GameCooker::EventType::BuildFailed : GameCooker::EventType::BuildDone);
if (!EnumHasAnyFlags(data.Options, BuildOptions::NoCook))
{
for (int32 stepIndex = 0; stepIndex < Steps.Count(); stepIndex++)
Steps[stepIndex]->OnBuildEnded(data, failed);
data.Tools->OnBuildEnded(data, failed);
CallEvent(failed ? GameCooker::EventType::BuildFailed : GameCooker::EventType::BuildDone);
}
Delete(Data);
Data = nullptr;

View File

@@ -364,6 +364,33 @@ bool AndroidPlatformTools::OnPostProcess(CookingData& data)
}
#endif
const bool distributionPackage = buildSettings->ForDistribution || data.Configuration == BuildConfiguration::Release;
if (platformSettings->BuildAAB)
{
// .aab
{
CreateProcessSettings procSettings;
procSettings.FileName = String::Format(TEXT("\"{0}\" {1}"), data.OriginalOutputPath / gradlew, distributionPackage ? TEXT(":app:bundle") : TEXT(":app:bundleDebug"));
procSettings.WorkingDirectory = data.OriginalOutputPath;
const int32 result = Platform::CreateProcess(procSettings);
if (result != 0)
{
data.Error(String::Format(TEXT("Failed to build Gradle project into .aab package (result code: {0}). See log for more info."), result));
return true;
}
}
// Copy result package
const String aab = data.OriginalOutputPath / (distributionPackage ? TEXT("app/build/outputs/bundle/release/app-release.aab") : TEXT("app/build/outputs/bundle/debug/app-debug.aab"));
const String outputAab = data.OriginalOutputPath / EditorUtilities::GetOutputName() + TEXT(".aab");
if (FileSystem::CopyFile(outputAab, aab))
{
LOG(Error, "Failed to copy .aab package from {0} to {1}", aab, outputAab);
return true;
}
LOG(Info, "Output Android AAB application package: {0} (size: {1} MB)", outputAab, FileSystem::GetFileSize(outputAab) / 1024 / 1024);
}
// .apk
{
CreateProcessSettings procSettings;
procSettings.FileName = String::Format(TEXT("\"{0}\" {1}"), data.OriginalOutputPath / gradlew, distributionPackage ? TEXT("assemble") : TEXT("assembleDebug"));
@@ -371,20 +398,20 @@ bool AndroidPlatformTools::OnPostProcess(CookingData& data)
const int32 result = Platform::CreateProcess(procSettings);
if (result != 0)
{
data.Error(String::Format(TEXT("Failed to build Gradle project into package (result code: {0}). See log for more info."), result));
data.Error(String::Format(TEXT("Failed to build Gradle project into .apk package (result code: {0}). See log for more info."), result));
return true;
}
}
// Copy result package
const String apk = data.OriginalOutputPath / (distributionPackage ? TEXT("app/build/outputs/apk/release/app-release-unsigned.apk") : TEXT("app/build/outputs/apk/debug/app-debug.apk"));
const String outputApk = data.OriginalOutputPath / EditorUtilities::GetOutputName() + TEXT(".apk");
if (FileSystem::CopyFile(outputApk, apk))
{
LOG(Error, "Failed to copy package from {0} to {1}", apk, outputApk);
LOG(Error, "Failed to copy .apk package from {0} to {1}", apk, outputApk);
return true;
}
LOG(Info, "Output Android application package: {0} (size: {1} MB)", outputApk, FileSystem::GetFileSize(outputApk) / 1024 / 1024);
LOG(Info, "Output Android APK application package: {0} (size: {1} MB)", outputApk, FileSystem::GetFileSize(outputApk) / 1024 / 1024);
return false;
}

View File

@@ -8,6 +8,7 @@
#include "Engine/Core/Math/Color32.h"
#include "Engine/Core/Config/GameSettings.h"
#include "Editor/Utilities/EditorUtilities.h"
#include "Engine/Graphics/PixelFormatSampler.h"
#include "Engine/Graphics/Textures/TextureData.h"
#include "Engine/Tools/TextureTool/TextureTool.h"
#include "Engine/Content/Content.h"
@@ -240,7 +241,7 @@ void UpdateIconData(uint8* iconData, const TextureData* icon)
const TextureMipData* srcPixels = icon->GetData(0, srcPixelsMip);
const Color32* srcPixelsData = (Color32*)srcPixels->Data.Get();
const Int2 srcPixelsSize(Math::Max(1, icon->Width >> srcPixelsMip), Math::Max(1, icon->Height >> srcPixelsMip));
const auto sampler = TextureTool::GetSampler(icon->Format);
const auto sampler = PixelFormatSampler::Get(icon->Format);
ASSERT_LOW_LAYER(sampler);
// Write colors
@@ -252,7 +253,7 @@ void UpdateIconData(uint8* iconData, const TextureData* icon)
for (uint32 x = 0; x < width; x++)
{
float u = (float)x / width;
const Color c = TextureTool::SampleLinear(sampler, Float2(u, v), srcPixelsData, srcPixelsSize, srcPixels->RowPitch);
const Color c = sampler->SampleLinear(srcPixelsData, Float2(u, v), srcPixelsSize, srcPixels->RowPitch);
colorData[idx++] = Color32(c).GetAsBGRA();
}
}
@@ -271,7 +272,7 @@ void UpdateIconData(uint8* iconData, const TextureData* icon)
{
uint32 x = packedX * 8 + pixelIdx;
float u = (float)x / width;
const Color c = TextureTool::SampleLinear(sampler, Float2(u, v), srcPixelsData, srcPixelsSize, srcPixels->RowPitch);
const Color c = sampler->SampleLinear(srcPixelsData, Float2(u, v), srcPixelsSize, srcPixels->RowPitch);
if (c.A < 0.25f)
mask |= 1 << (7 - pixelIdx);
}
@@ -322,7 +323,7 @@ bool UpdateExeIcon(const String& path, const TextureData& icon)
const TextureData* iconRGBA8 = &icon;
TextureData tmpData1;
//if (icon.Format != PixelFormat::R8G8B8A8_UNorm)
if (TextureTool::GetSampler(icon.Format) == nullptr)
if (PixelFormatSampler::Get(icon.Format) == nullptr)
{
if (TextureTool::Convert(tmpData1, *iconRGBA8, PixelFormat::R8G8B8A8_UNorm))
{

View File

@@ -137,10 +137,7 @@ void CookAssetsStep::CacheData::Load(CookingData& data)
if (!FileSystem::DirectoryExists(CacheFolder))
FileSystem::CreateDirectory(CacheFolder);
if (!FileSystem::FileExists(HeaderFilePath))
{
LOG(Warning, "Missing incremental build cooking assets cache.");
return;
}
auto file = FileReadStream::Open(HeaderFilePath);
if (file == nullptr)
@@ -158,7 +155,7 @@ void CookAssetsStep::CacheData::Load(CookingData& data)
LOG(Info, "Loading incremental build cooking cache (entries count: {0})", entriesCount);
file->ReadBytes(&Settings, sizeof(Settings));
Entries.EnsureCapacity(Math::RoundUpToPowerOf2(static_cast<int32>(entriesCount * 3.0f)));
Entries.EnsureCapacity(entriesCount);
Array<Pair<String, DateTime>> fileDependencies;
for (int32 i = 0; i < entriesCount; i++)
@@ -166,7 +163,7 @@ void CookAssetsStep::CacheData::Load(CookingData& data)
Guid id;
file->Read(id);
String typeName;
file->ReadString(&typeName);
file->Read(typeName);
DateTime fileModified;
file->Read(fileModified);
int32 fileDependenciesCount;
@@ -176,7 +173,7 @@ void CookAssetsStep::CacheData::Load(CookingData& data)
for (int32 j = 0; j < fileDependenciesCount; j++)
{
Pair<String, DateTime>& f = fileDependencies[j];
file->ReadString(&f.First, 10);
file->Read(f.First, 10);
file->Read(f.Second);
}
@@ -311,9 +308,9 @@ void CookAssetsStep::CacheData::Save(CookingData& data)
{
auto& e = i->Value;
file->Write(e.ID);
file->WriteString(e.TypeName);
file->Write(e.TypeName);
file->Write(e.FileModified);
file->WriteInt32(e.FileDependencies.Count());
file->Write(e.FileDependencies.Count());
for (auto& f : e.FileDependencies)
{
file->Write(f.First, 10);
@@ -365,17 +362,27 @@ bool CookAssetsStep::ProcessDefaultAsset(AssetCookData& options)
bool CookAssetsStep::Process(CookingData& data, CacheData& cache, Asset* asset)
{
// Validate asset
PROFILE_CPU_ASSET(asset);
if (asset->IsVirtual())
{
// Virtual assets are not included into the build
return false;
}
const bool wasLoaded = asset->IsLoaded();
if (asset->WaitForLoaded())
{
LOG(Error, "Failed to load asset \'{0}\'", asset->ToString());
return true;
}
if (!wasLoaded)
{
// HACK: give some time to resave any old assets in Asset::onLoad after it's loaded
// This assumes that if Load Thread enters Asset::Save then it will get asset lock and hold it until asset is saved
// So we can take the same lock to wait for save end but first we need to wait for it to get that lock
// (in future try to handle it in a better way)
Platform::Sleep(5);
}
ScopeLock lock(asset->Locker);
// Switch based on an asset type
const auto asBinaryAsset = dynamic_cast<BinaryAsset*>(asset);
@@ -793,7 +800,10 @@ bool CookAssetsStep::Process(CookingData& data, CacheData& cache, BinaryAsset* a
// Prepare asset data
AssetInitData initData;
if (asset->Storage->LoadAssetHeader(asset->GetID(), initData))
{
LOG(Warning, "Failed to load asset {} header from storage '{}'", asset->GetID(), asset->Storage->GetPath());
return true;
}
initData.Header.UnlinkChunks();
initData.Metadata.Release();
for (auto& e : initData.Dependencies)
@@ -1165,7 +1175,7 @@ bool CookAssetsStep::Perform(CookingData& data)
assetRef = Content::LoadAsync<Asset>(assetId);
if (assetRef == nullptr)
{
data.Error(TEXT("Failed to load asset included in build."));
LOG(Error, "Failed to load asset {} included in build", assetId);
return true;
}
e.Info.TypeName = assetRef->GetTypeName();
@@ -1173,6 +1183,7 @@ bool CookAssetsStep::Perform(CookingData& data)
// Cook asset
if (Process(data, cache, assetRef.Get()))
{
LOG(Error, "Failed to process asset {}", assetRef->ToString());
cache.Save(data);
return true;
}
@@ -1205,10 +1216,17 @@ bool CookAssetsStep::Perform(CookingData& data)
// Copy file
if (!FileSystem::FileExists(cookedPath) || FileSystem::GetFileLastEditTime(cookedPath) >= FileSystem::GetFileLastEditTime(filePath))
{
if (FileSystem::CreateDirectory(StringUtils::GetDirectoryName(cookedPath)))
const String cookedFolder = StringUtils::GetDirectoryName(cookedPath);
if (FileSystem::CreateDirectory(cookedFolder))
{
LOG(Error, "Failed to create directory '{}'", cookedFolder);
return true;
}
if (FileSystem::CopyFile(cookedPath, filePath))
{
LOG(Error, "Failed to copy file from '{}' to '{}'", filePath, cookedPath);
return true;
}
}
// Count stats of file extension
@@ -1249,7 +1267,7 @@ bool CookAssetsStep::Perform(CookingData& data)
*(int32*)(bytes.Get() + 804) = contentKey;
*(Guid*)(bytes.Get() + 808) = gameSettings->SplashScreen;
Encryption::EncryptBytes(bytes.Get(), bytes.Count());
stream->WriteArray(bytes);
stream->Write(bytes);
Delete(stream);
}

View File

@@ -213,11 +213,59 @@ bool DeployDataStep::Perform(CookingData& data)
}
FileSystem::NormalizePath(srcDotnet);
LOG(Info, "Using .NET Runtime {} at {}", TEXT("Host"), srcDotnet);
const bool srcDotnetFromEngine = srcDotnet.Contains(TEXT("Source/Platforms"));
String packFolder = srcDotnet / TEXT("../../../");
// Get .NET runtime version
String version;
{
// Detect from path provided by build tool
Array<String> pathParts;
srcDotnet.Split('/', pathParts);
for (int32 i = 1; i < pathParts.Count(); i++)
{
if (pathParts[i] == TEXT("runtimes"))
{
Array<String> versionParts;
pathParts[i - 1].Split('.', versionParts);
if (!versionParts.IsEmpty())
{
const String majorVersion = versionParts[0].TrimTrailing();
int32 versionNum;
StringUtils::Parse(*majorVersion, majorVersion.Length(), &versionNum);
if (Math::IsInRange(versionNum, GAME_BUILD_DOTNET_RUNTIME_MIN_VER, GAME_BUILD_DOTNET_RUNTIME_MAX_VER)) // Check for major part
version = majorVersion;
}
}
}
if (version.IsEmpty())
{
if (srcDotnetFromEngine)
{
// Detect version from runtime files inside Engine Platform folder
for (int32 i = GAME_BUILD_DOTNET_RUNTIME_MAX_VER; i >= GAME_BUILD_DOTNET_RUNTIME_MIN_VER; i--)
{
// Check runtime files inside Engine Platform folder
String testPath1 = srcDotnet / String::Format(TEXT("lib/net{}.0"), i);
String testPath2 = packFolder / String::Format(TEXT("Dotnet/lib/net{}.0"), i);
if ((FileSystem::DirectoryExists(testPath1) && FileSystem::GetDirectorySize(testPath1) > 0) ||
(FileSystem::DirectoryExists(testPath2) && FileSystem::GetDirectorySize(testPath2) > 0))
{
version = StringUtils::ToString(i);
break;
}
}
}
if (version.IsEmpty())
{
data.Error(TEXT("Failed to find supported .NET version for the current host platform."));
return true;
}
}
}
// Deploy runtime files
const Char* corlibPrivateName = TEXT("System.Private.CoreLib.dll");
const bool srcDotnetFromEngine = srcDotnet.Contains(TEXT("Source/Platforms"));
String packFolder = srcDotnet / TEXT("../../../");
String dstDotnetLibs = dstDotnet, srcDotnetLibs = srcDotnet;
StringUtils::PathRemoveRelativeParts(packFolder);
if (usAOT)
@@ -226,14 +274,14 @@ bool DeployDataStep::Perform(CookingData& data)
{
// AOT runtime files inside Engine Platform folder
packFolder /= TEXT("Dotnet");
dstDotnetLibs /= TEXT("lib/net8.0");
srcDotnetLibs = packFolder / TEXT("lib/net8.0");
dstDotnetLibs /= String::Format(TEXT("lib/net{}.0"), version);
srcDotnetLibs = packFolder / String::Format(TEXT("lib/net{}.0"), version);
}
else
{
// Runtime files inside Dotnet SDK folder but placed for AOT
dstDotnetLibs /= TEXT("lib/net8.0");
srcDotnetLibs /= TEXT("../lib/net8.0");
dstDotnetLibs /= String::Format(TEXT("lib/net{}.0"), version);
srcDotnetLibs /= String::Format(TEXT("../lib/net{}.0"), version);
}
}
else
@@ -241,14 +289,14 @@ bool DeployDataStep::Perform(CookingData& data)
if (srcDotnetFromEngine)
{
// Runtime files inside Engine Platform folder
dstDotnetLibs /= TEXT("lib/net8.0");
srcDotnetLibs /= TEXT("lib/net8.0");
dstDotnetLibs /= String::Format(TEXT("lib/net{}.0"), version);
srcDotnetLibs /= String::Format(TEXT("lib/net{}.0"), version);
}
else
{
// Runtime files inside Dotnet SDK folder
dstDotnetLibs /= TEXT("shared/Microsoft.NETCore.App");
srcDotnetLibs /= TEXT("../lib/net8.0");
srcDotnetLibs /= String::Format(TEXT("../lib/net{}.0"), version);
}
}
LOG(Info, "Copying .NET files from {} to {}", packFolder, dstDotnet);
@@ -273,6 +321,7 @@ bool DeployDataStep::Perform(CookingData& data)
DEPLOY_NATIVE_FILE("libmonosgen-2.0.so");
DEPLOY_NATIVE_FILE("libSystem.IO.Compression.Native.so");
DEPLOY_NATIVE_FILE("libSystem.Native.so");
DEPLOY_NATIVE_FILE("libSystem.Globalization.Native.so");
DEPLOY_NATIVE_FILE("libSystem.Security.Cryptography.Native.Android.so");
break;
case BuildPlatform::iOSARM64:

View File

@@ -883,7 +883,7 @@ namespace FlaxEditor.CustomEditors
/// </summary>
protected virtual void ClearToken()
{
ParentEditor.ClearToken();
ParentEditor?.ClearToken();
}
}
}

View File

@@ -39,14 +39,9 @@ CustomEditorsUtilService CustomEditorsUtilServiceInstance;
struct Entry
{
MClass* DefaultEditor;
MClass* CustomEditor;
Entry()
{
DefaultEditor = nullptr;
CustomEditor = nullptr;
}
MClass* DefaultEditor = nullptr;
MClass* CustomEditor = nullptr;
MType* CustomEditorType = nullptr;
};
Dictionary<MType*, Entry> Cache(512);
@@ -63,11 +58,11 @@ MTypeObject* CustomEditorsUtil::GetCustomEditor(MTypeObject* refType)
Entry result;
if (Cache.TryGet(type, result))
{
if (result.CustomEditorType)
return INTERNAL_TYPE_GET_OBJECT(result.CustomEditorType);
MClass* editor = result.CustomEditor ? result.CustomEditor : result.DefaultEditor;
if (editor)
{
return MUtils::GetType(editor);
}
}
return nullptr;
}
@@ -157,7 +152,7 @@ void OnAssemblyLoaded(MAssembly* assembly)
else if (typeClass)
{
auto& entry = Cache[mclass->GetType()];
entry.CustomEditor = typeClass;
entry.CustomEditorType = type;
//LOG(Info, "Custom Editor {0} for type {1}", String(typeClass->GetFullName()), String(mclass->GetFullName()));
}

View File

@@ -9,6 +9,7 @@ using FlaxEditor.CustomEditors.Elements;
using FlaxEditor.GUI;
using FlaxEditor.GUI.ContextMenu;
using FlaxEditor.GUI.Tree;
using FlaxEditor.Modules;
using FlaxEditor.Scripting;
using FlaxEditor.Windows;
using FlaxEditor.Windows.Assets;
@@ -67,12 +68,15 @@ namespace FlaxEditor.CustomEditors.Dedicated
// Use default prefab instance as a reference for the editor
Values.SetReferenceValue(prefabInstance);
if (Presenter == Editor.Instance.Windows.PropertiesWin.Presenter)
// Display prefab UI (when displaying object inside Prefab Window then display only nested prefabs)
prefab.GetNestedObject(ref prefabObjectId, out var nestedPrefabId, out var nestedPrefabObjectId);
var nestedPrefab = FlaxEngine.Content.Load<Prefab>(nestedPrefabId);
var panel = layout.CustomContainer<UniformGridPanel>();
panel.CustomControl.Height = 20.0f;
panel.CustomControl.SlotsVertically = 1;
if (Presenter == Editor.Instance.Windows.PropertiesWin.Presenter || nestedPrefab)
{
// Add some UI
var panel = layout.CustomContainer<UniformGridPanel>();
panel.CustomControl.Height = 20.0f;
panel.CustomControl.SlotsVertically = 1;
var targetPrefab = nestedPrefab ?? prefab;
panel.CustomControl.SlotsHorizontally = 3;
// Selecting actor prefab asset
@@ -80,22 +84,21 @@ namespace FlaxEditor.CustomEditors.Dedicated
selectPrefab.Button.Clicked += () =>
{
Editor.Instance.Windows.ContentWin.ClearItemsSearch();
Editor.Instance.Windows.ContentWin.Select(prefab);
Editor.Instance.Windows.ContentWin.Select(targetPrefab);
};
// Edit selected prefab asset
var editPrefab = panel.Button("Edit Prefab");
editPrefab.Button.Clicked += () =>
{
Editor.Instance.Windows.ContentWin.ClearItemsSearch();
Editor.Instance.Windows.ContentWin.Select(prefab);
Editor.Instance.Windows.ContentWin.Open(Editor.Instance.Windows.ContentWin.View.Selection[0]);
};
// Viewing changes applied to this actor
var viewChanges = panel.Button("View Changes");
viewChanges.Button.Clicked += () => ViewChanges(viewChanges.Button, new Float2(0.0f, 20.0f));
editPrefab.Button.Clicked += () => Editor.Instance.Windows.ContentWin.Open(Editor.Instance.ContentDatabase.FindAsset(targetPrefab.ID));
}
else
{
panel.CustomControl.SlotsHorizontally = 1;
}
// Viewing changes applied to this actor
var viewChanges = panel.Button("View Changes");
viewChanges.Button.Clicked += () => ViewChanges(viewChanges.Button, new Float2(0.0f, 20.0f));
// Link event to update editor on prefab apply
_linkedPrefabId = prefab.ID;

View File

@@ -1,6 +1,7 @@
// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
using System;
using System.Linq;
using FlaxEditor.CustomEditors.Elements;
using FlaxEditor.Surface;
using FlaxEngine;
@@ -35,6 +36,8 @@ namespace FlaxEditor.CustomEditors.Dedicated
(instance, parameter, tag) => ((AnimatedModel)instance).GetParameterValue(parameter.Identifier),
(instance, value, parameter, tag) => ((AnimatedModel)instance).SetParameterValue(parameter.Identifier, value),
Values);
if (!parameters.Any())
group.Label("No parameters", TextAlignment.Center);
_parametersAdded = true;
}
}

View File

@@ -15,13 +15,23 @@ namespace FlaxEditor.CustomEditors.Dedicated
private int _firstTimeShow;
private BezierCurveEditor<T> _curve;
private Splitter _splitter;
private string _heightCachedPath;
/// <inheritdoc />
public override void Initialize(LayoutElementsContainer layout)
{
var item = layout.CustomContainer<BezierCurveEditor<T>>();
_curve = item.CustomControl;
_curve.Height = 120.0f;
var height = 120.0f;
var presenter = Presenter;
if (presenter != null && (presenter.Features & FeatureFlags.CacheExpandedGroups) != 0)
{
// Try to restore curve height
_heightCachedPath = layout.GetLayoutCachePath("Height");
if (Editor.Instance.ProjectCache.TryGetCustomData(_heightCachedPath, out float cachedHeight) && cachedHeight > 10.0f)
height = cachedHeight;
}
_curve.Height = height;
_curve.Edited += OnCurveEdited;
_firstTimeShow = 4; // For some weird reason it needs several frames of warmup (probably due to sliders smoothing)
_splitter = new Splitter
@@ -45,7 +55,11 @@ namespace FlaxEditor.CustomEditors.Dedicated
private void OnSplitterMoved(Float2 location)
{
_curve.Height = Mathf.Clamp(_splitter.PointToParent(location).Y, 50.0f, 1000.0f);
_curve.Height = Mathf.Clamp(_splitter.PointToParent(location).Y, 50.0f, 1000.0f);
// Cache curve height
if (_heightCachedPath != null)
Editor.Instance.ProjectCache.SetCustomData(_heightCachedPath, _curve.Height);
}
/// <inheritdoc />
@@ -133,13 +147,23 @@ namespace FlaxEditor.CustomEditors.Dedicated
private int _firstTimeShow;
private LinearCurveEditor<T> _curve;
private Splitter _splitter;
private string _heightCachedPath;
/// <inheritdoc />
public override void Initialize(LayoutElementsContainer layout)
{
var item = layout.CustomContainer<LinearCurveEditor<T>>();
_curve = item.CustomControl;
_curve.Height = 120.0f;
var height = 120.0f;
var presenter = Presenter;
if (presenter != null && (presenter.Features & FeatureFlags.CacheExpandedGroups) != 0)
{
// Try to restore curve height
_heightCachedPath = layout.GetLayoutCachePath("Height");
if (Editor.Instance.ProjectCache.TryGetCustomData(_heightCachedPath, out float cachedHeight) && cachedHeight > 10.0f)
height = cachedHeight;
}
_curve.Height = height;
_curve.Edited += OnCurveEdited;
_firstTimeShow = 4; // For some weird reason it needs several frames of warmup (probably due to sliders smoothing)
_splitter = new Splitter
@@ -164,6 +188,10 @@ namespace FlaxEditor.CustomEditors.Dedicated
private void OnSplitterMoved(Float2 location)
{
_curve.Height = Mathf.Clamp(_splitter.PointToParent(location).Y, 50.0f, 1000.0f);
// Cache curve height
if (_heightCachedPath != null)
Editor.Instance.ProjectCache.SetCustomData(_heightCachedPath, _curve.Height);
}
/// <inheritdoc />

View File

@@ -186,12 +186,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

@@ -53,6 +53,9 @@ public class ModelPrefabEditor : GenericEditor
}
}
// Creates the import path UI
Utilities.Utils.CreateImportPathUI(layout, modelPrefab.ImportPath, false);
var button = layout.Button("Reimport", "Reimports the source asset as prefab.");
_reimportButton = button.Button;
_reimportButton.Clicked += OnReimport;

View File

@@ -117,6 +117,9 @@ namespace FlaxEditor.CustomEditors.Dedicated
var data = SurfaceUtils.InitGraphParameters(parametersGroup);
SurfaceUtils.DisplayGraphParameters(group, data, ParameterGet, ParameterSet, Values, ParameterDefaultValue);
}
if (!parameters.Any())
groups.Label("No parameters", TextAlignment.Center);
}
/// <inheritdoc />

View File

@@ -92,7 +92,7 @@ namespace FlaxEditor.CustomEditors.Dedicated
{
if (IsLinearTangentMode(spline, index) || IsSmoothInTangentMode(spline, index) || IsSmoothOutTangentMode(spline, index))
{
SetPointSmooth(spline, index);
SetPointSmooth(Editor, spline, index);
}
}
}
@@ -145,7 +145,7 @@ namespace FlaxEditor.CustomEditors.Dedicated
{
if (!IsAlignedTangentMode(spline, index))
{
SetPointSmooth(spline, index);
SetPointSmooth(Editor, spline, index);
}
}
@@ -176,7 +176,7 @@ namespace FlaxEditor.CustomEditors.Dedicated
/// <inheritdoc/>
public override void OnSetMode(Spline spline, int index)
{
SetTangentSmoothIn(spline, index);
SetTangentSmoothIn(Editor, spline, index);
Editor.SetSelectTangentIn(spline, index);
}
}
@@ -190,7 +190,7 @@ namespace FlaxEditor.CustomEditors.Dedicated
/// <inheritdoc/>
public override void OnSetMode(Spline spline, int index)
{
SetTangentSmoothOut(spline, index);
SetTangentSmoothOut(Editor, spline, index);
Editor.SetSelectTangentOut(spline, index);
}
}
@@ -756,14 +756,15 @@ namespace FlaxEditor.CustomEditors.Dedicated
spline.UpdateSpline();
}
private static void SetTangentSmoothIn(Spline spline, int index)
private static void SetTangentSmoothIn(SplineEditor editor, Spline spline, int index)
{
var keyframe = spline.GetSplineKeyframe(index);
// Auto smooth tangent if's linear
if (keyframe.TangentIn.Translation.Length == 0)
{
var smoothRange = SplineNode.NodeSizeByDistance(spline.GetSplineTangent(index, false).Translation, 10f);
var cameraTransform = editor.Presenter.Owner.PresenterViewport.ViewTransform.Translation;
var smoothRange = SplineNode.NodeSizeByDistance(spline.GetSplineTangent(index, false).Translation, 10f, cameraTransform);
var previousKeyframe = spline.GetSplineKeyframe(index - 1);
var tangentDirection = keyframe.Value.WorldToLocalVector(previousKeyframe.Value.Translation - keyframe.Value.Translation);
tangentDirection = tangentDirection.Normalized * smoothRange;
@@ -775,14 +776,15 @@ namespace FlaxEditor.CustomEditors.Dedicated
spline.UpdateSpline();
}
private static void SetTangentSmoothOut(Spline spline, int index)
private static void SetTangentSmoothOut(SplineEditor editor, Spline spline, int index)
{
var keyframe = spline.GetSplineKeyframe(index);
// Auto smooth tangent if's linear
if (keyframe.TangentOut.Translation.Length == 0)
{
var smoothRange = SplineNode.NodeSizeByDistance(spline.GetSplineTangent(index, false).Translation, 10f);
var cameraTransform = editor.Presenter.Owner.PresenterViewport.ViewTransform.Translation;
var smoothRange = SplineNode.NodeSizeByDistance(spline.GetSplineTangent(index, false).Translation, 10f, cameraTransform);
var nextKeyframe = spline.GetSplineKeyframe(index + 1);
var tangentDirection = keyframe.Value.WorldToLocalVector(nextKeyframe.Value.Translation - keyframe.Value.Translation);
tangentDirection = tangentDirection.Normalized * smoothRange;
@@ -795,7 +797,7 @@ namespace FlaxEditor.CustomEditors.Dedicated
spline.UpdateSpline();
}
private static void SetPointSmooth(Spline spline, int index)
private static void SetPointSmooth(SplineEditor editor, Spline spline, int index)
{
var keyframe = spline.GetSplineKeyframe(index);
var tangentInSize = keyframe.TangentIn.Translation.Length;
@@ -803,7 +805,8 @@ namespace FlaxEditor.CustomEditors.Dedicated
var isLastKeyframe = index >= spline.SplinePointsCount - 1;
var isFirstKeyframe = index <= 0;
var smoothRange = SplineNode.NodeSizeByDistance(spline.GetSplinePoint(index), 10f);
var cameraTransform = editor.Presenter.Owner.PresenterViewport.ViewTransform.Translation;
var smoothRange = SplineNode.NodeSizeByDistance(spline.GetSplinePoint(index), 10f, cameraTransform);
// Force smooth it's linear point
if (tangentInSize == 0f)

View File

@@ -4,6 +4,7 @@ using System;
using System.Linq;
using FlaxEditor.Content;
using FlaxEditor.GUI;
using FlaxEditor.GUI.Drag;
using FlaxEditor.Scripting;
using FlaxEngine;
using FlaxEngine.GUI;
@@ -94,7 +95,7 @@ namespace FlaxEditor.CustomEditors.Editors
if (assetReference != null)
{
if (assetReference.UseSmallPicker)
height = 32;
height = 36;
if (string.IsNullOrEmpty(assetReference.TypeName))
{
}
@@ -122,7 +123,9 @@ namespace FlaxEditor.CustomEditors.Editors
{
base.Refresh();
if (!HasDifferentValues)
var differentValues = HasDifferentValues;
Picker.DifferentValues = differentValues;
if (!differentValues)
{
_isRefreshing = true;
var value = Values[0];
@@ -156,6 +159,17 @@ namespace FlaxEditor.CustomEditors.Editors
private Rectangle DropdownRect => new Rectangle(Width - DropdownIconSize - DropdownIconMargin, DropdownIconMargin, DropdownIconSize, DropdownIconSize);
public Action ShowPicker;
public Action<ContentItem> OnAssetDropped;
private DragItems _dragItems;
private DragHandlers _dragHandlers;
private bool _hasValidDragOver;
private Func<ContentItem, bool> _validate;
public void SetValidationMethod(Func<ContentItem, bool> validate)
{
_validate = validate;
}
public override void Draw()
{
@@ -164,6 +178,14 @@ namespace FlaxEditor.CustomEditors.Editors
var style = FlaxEngine.GUI.Style.Current;
var dropdownRect = DropdownRect;
Render2D.DrawSprite(style.ArrowDown, dropdownRect, Enabled ? (DropdownRect.Contains(PointFromWindow(RootWindow.MousePosition)) ? style.BorderSelected : style.Foreground) : style.ForegroundDisabled);
// Check if drag is over
if (IsDragOver && _hasValidDragOver)
{
var bounds = new Rectangle(Float2.Zero, Size);
Render2D.FillRectangle(bounds, style.Selection);
Render2D.DrawRectangle(bounds, style.SelectionBorder);
}
}
public override bool OnMouseDown(Float2 location, MouseButton button)
@@ -207,6 +229,68 @@ namespace FlaxEditor.CustomEditors.Editors
return result;
}
}
private DragDropEffect DragEffect => _hasValidDragOver ? DragDropEffect.Move : DragDropEffect.None;
/// <inheritdoc />
public override DragDropEffect OnDragEnter(ref Float2 location, DragData data)
{
base.OnDragEnter(ref location, data);
// Ensure to have valid drag helpers (uses lazy init)
if (_dragItems == null)
_dragItems = new DragItems(ValidateDragAsset);
if (_dragHandlers == null)
{
_dragHandlers = new DragHandlers
{
_dragItems,
};
}
_hasValidDragOver = _dragHandlers.OnDragEnter(data) != DragDropEffect.None;
return DragEffect;
}
private bool ValidateDragAsset(ContentItem contentItem)
{
// Load or get asset
return _validate?.Invoke(contentItem) ?? false;
}
/// <inheritdoc />
public override DragDropEffect OnDragMove(ref Float2 location, DragData data)
{
base.OnDragMove(ref location, data);
return DragEffect;
}
/// <inheritdoc />
public override void OnDragLeave()
{
_hasValidDragOver = false;
_dragHandlers.OnDragLeave();
base.OnDragLeave();
}
/// <inheritdoc />
public override DragDropEffect OnDragDrop(ref Float2 location, DragData data)
{
var result = DragEffect;
base.OnDragDrop(ref location, data);
if (_dragItems.HasValidDrag)
{
OnAssetDropped(_dragItems.Objects[0]);
}
return result;
}
}
private TextBoxWithPicker _textBox;
@@ -221,13 +305,21 @@ namespace FlaxEditor.CustomEditors.Editors
{
if (HasDifferentTypes)
return;
_validator = new AssetPickerValidator(ScriptType.Null);
_textBox = layout.Custom<TextBoxWithPicker>().CustomControl;
_textBox.ShowPicker = OnShowPicker;
_textBox.OnAssetDropped = OnItemDropped;
_textBox.EditEnd += OnEditEnd;
_validator = new AssetPickerValidator(ScriptType.Null);
_textBox.SetValidationMethod(_validator.IsValid);
AssetRefEditor.ApplyAssetReferenceAttribute(Values, out _, _validator);
}
private void OnItemDropped(ContentItem item)
{
SetPickerPath(item);
}
private void OnShowPicker()
{
if (_validator.AssetType != ScriptType.Null)
@@ -285,12 +377,9 @@ namespace FlaxEditor.CustomEditors.Editors
{
base.Refresh();
if (!HasDifferentValues)
{
_isRefreshing = true;
_textBox.Text = GetPath();
_isRefreshing = false;
}
_isRefreshing = true;
_textBox.Text = HasDifferentValues ? "Multiple Values" : GetPath();
_isRefreshing = false;
}
/// <inheritdoc />

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