1,460 Commits over 1,157 Days - 0.05cph!
Don't call Asset.Compile in parallel 🤦
Set saved gizmo settings way earlier, protect against stomping the settings instance
Fixes sbox-issues/issues/4888
Add some standard map entity definitions that we have loaders for: prop_physics, prop_animated, env_sky, env_gradient_fog, snd_event_*,
Protect against 0 width/height video modes and assert
CHostedWidget::SizeToParent() don't change the video mode if height() is 0
Early error when trying to open an invalid project
Forgot to force add this dll
Launcher only launches a single instance of each project
CMapAssetType::CalculateDependencies suppress pointless upconversion of vmaps so we don't spend 30+ seconds doing so on initial load
Show stall source to everyone
ProjectList own file
Run Asset.UpdateInternals() in parallel, empty project initial scan goes from 770ms -> 200ms
Don't scan project filesystem twice
Remove broken (deleted) projects from the ProjectList
ProjectList: fix NRE on Project.Current
Fix InputRouter not passing to game when no menudll is loaded
Fix launch settings, remove bullshit ones
Treat warnings as errors so I stop pushing shit code and having CI fail
Fix warning
Initialize these engine classes outside of MenuDll now that editor doesn't run menu dll
Null check a bunch of IMenuDll.Current calls
Fix a couple of invalid cases for compute shaders when viewport is very small but not zero
Nicer assert for invalid vk compute shaders, and don't actually dispatch invalid ones otherwise we'll probably crash
Fuck this test for now, a full end to end test for opening a project would be better
Fix empty test warning. Test OpenProject directly
Remove File -> New Game Project...
Make project opening code more predictable, move to Sandbox.Tools, fix compiling before dependant packages are installed, kill more content mode shit.
Terrain: 4 layer paintable splatmap, weighted blending, better normals, better tooling
Shitty layer selection, need to GetPixels on a mip or something instead
Import heightmap dialog, support different resolutions
Put all terrain editor code in its own namespace
Auto shading by slope
Ao texture is excessive
Delete CMaterialSystem2AppSystemDict::CreateMainConsoleWindow (dx9 hack)
Whitelist Delegate.GetInvocationList() and Delegate.DynamicInvoke( System.Object[] )
Import heightmap dialog, support different resolutions
Put all terrain editor code in its own namespace
Terrain tool selection
Splatting tool & compute shader, balances weights automatically
Artist defined splats (albedo, normal, roughness, more is probably overkill) - use summed control map
Nicer brush defaults
Don't use VirtualWidgets for terrain tool selection, they're the most simple buttons + tooltips
Better behaved brush preview, don't destroy/create every frame, can destroy on disable or invalid tool
more normal normals
default first layer for any missing weight
Terrible performing Texture -> Pixmap, but only because of GetPixels on a 4k texture
Add adjusting camera speed with mouse wheel in editor first person camera
ShaderGraph preview target spir-v only properly
Fix GetSearchPathArgs fucking up after more than 1 usage, fixes failing shader compiles
Fix vkCmdPipelineBarrier-dstStageMask-07949
tools_wireframe.shader: strip S_MOBILE properly and remove unused vertex input
Fix Asset.CompileIfNeededAsync() not failing early for assets that don't compile via asset system: maps, anim subgraphs and shaders
Fix ToolScene fullbright, used by blend channel pickers in Hammer
Standardize SceneMap.MapName same way native does, fix world physics when using local world name
Fix "could not find ConVar attribute" spam - should just silently set the backing value
Warning -> Trace Unable to determine package
Demote a bunch of vulkan debug logs to verbose only
Holding shift/ctrl disables clearing selection by clicking nothing
Fix inverse multiselect logic
Gizmo.Select: allow unselect of object selections
Shift allows multi select too but without deselecting
SceneViewWidget.UpdateHovered: Just because we're already selected doesn't mean we can't be hovered, otherwise how will you deselect me
Deselect game object when nothing is clicked
SceneCamera viewport caps size properly
Bail out of CameraRenderer if no valid viewport
Unused resource glue
Log_Detailed these rendersystemvulkan messages
Fix crash with symlink resident resource reloading
Foliage: Fix depth alpha tests
Foliage: fmod phase to avoid jittering imprecision at high time/world offsets
Fix tests from non fully init engine
PackageManager Mount/Unmount reloads symlinked resident resources
Whine about very old nvidia drivers to the user
Vulkan: Always allow mutable swapchain format
Vulkan: Update swapchain texture spec if overridden swapchain format
videorecorder: convert image format if not RGBA
Disable a couple more crappy Vulkan overlays in editor mode
Project creator: doesn't matter if directory doesn't exist becuase we're gonna make it
Disable some commonly bad third party overlays in editor mode - we can finally disable Steam overlay too in editor
Fix infinite recursion crash with prefabs when the root object has bone proxies
Fix trailing backslash escaping quoted search paths
Dead auto mount vpk code
-outroot has to be specified before
Only need to pass user project search paths & maintain mod names
Fix downloading cloud assets
Pass search paths to external spawned processes resourcecompiler and vfxcompile
Remove multiple editor instance nag
Prefer -editor to -tools
Remove native "Startup Tools"
Don't create native splashscreen pixmap that we don't use
Remove bs "Starting Asset Browser" line
Unused -tool -asset command line
ToolsDll remove dead gameloop code
Don't add inactive projects to filesystem
Don't get fucked by removed projects
Native doesn't automatically mount everything from config/addons.json
Menu shouldn't care about local packages/projects - non-editor doesn't load any of that
Remove JumpList - we can try this again when we have a concrete idea of project workflow
Remove "Content Mode", remove skip start screen - all content should be in a project, so why wouldn't you create/open a project
New Game Project -> New Project - these are workspaces for any content really
AssetSystem: Defer scanning new projects until they've all been added, and fix the counter
Remove Change Project - there's not much sanity in trying to reset the entire engine state when we could simply restart the process
-project command line is part of editor bootstrap not engine
Hacky mark all games as inactive on bootstrap
Consolidate project filesystem logic, call native directly instead of saving json and relying on it reading it
File -> Quit prompts unsaved changes
Dirty editor window title when scene modified, add renderer
Move editor only code out of engine Project class
Make sure we still mount content projects on startup
Support opening non-game projects
Batch rebuild content path / update assetsystem on bootstrap