13,182 Commits over 1,522 Days - 0.36cph!
LineEdit for creating new actions instead of having to edit the action afterwards
https://files.facepunch.com/tony/1b0411b1/sbox-dev_duZ3bhoZdb.png
When adding an input action, add it to the final group, not "Other", less annoying
Fix Depth::GetWorldPosition dividing by zero on skyboxes, pass epsilon to it
use Depth::GetWorldPosition on Motion Blur, fix darkening/overbrightening of it based on sample count
Don't try to compile shaders that have missing source files
Add ListControlWidget handle context menu with duplicate option
Reverse Z (#1581)
Every other modern engine uses a reversed depth buffer,
Unity DX11+
UE4+
Godot
It brings a massive improvement to depth buffer precision helping to prevent z-fighting and other depth precision issues.
Source 2 has always had support for it but was not forced because of DX9.
We should have turned this on long ago and will have to rip the band aid off at some point. It will break peoples custom shaders.
The other ways their shaders would break that I'm unsure if we could provide compatability are rare:
Interact with the depth buffer directly or through Depth::Get etc.
Perform operations in clip space like gizmo_grid.shader does.
I don't see why we'd ever change clip space direction again after this.
Add binds we'll need for sceneobject serialization
Bind light desc so we can create a light directly from desc
Make sure any scene light properties ask native for their value so they can never go out of sync
Preview animgraph parameters on model preview https://files.facepunch.com/layla/1b0311b1/sbox-dev_orVYPmENxI.mp4
Fix GetParameterInt and GetParameterFloat not working for ANIMPARAM_ENUM
Package.Type.Gamemode becomes Package.Type.Game
Can publish any asset, scene + prefab previewers
Published assets can optionally include source files
Fix incorrect min max for int AnimParam
Add option names to enum AnimParam
Restore Toggle Gizmos shortcut (not sure if this was done on purpose)
Add algorithmVersion to vtex crc if GGXCubeMapBlur
Increment sky shader version, forces material rebuild, which forces a texture rebuild
Remove SceneFile.LastSaved, use existing hash check to check for external changes for scenes, much cleaner
Terrain can import splatmap from png, tga, jpg, psd
Simplify scene ref gizmos, fix leak when closing scene
Fix some files (.razor) not opening in code editor from compile status window
Hotload: Skip some System.Text.Json types
Dictionary control widgets can't be edited when readonly
Allow model inspector to preview animations https://files.facepunch.com/layla/1b0211b1/sbox-dev_fdrQka7PNG.mp4
Fix OnComponentUpdate / OnComponentFixedUpdate not running
Fixed Facepunch/sbox-issues#5752
Update Facepunch.ActionGraphs
* Optimization when cloning
* Nicer error messages with invalid pure methods (Facepunch/sbox-issues#5743)
Add basic support for using right CTRL/SHIFT keys for input actions, I didn't include RALT because my keyboard doesn't seem to work with it (resolves Facepunch/sbox-issues#5506)
ByteStream Rewrite (#1610)
* Added failing ByteStream stress test
* Rewrite ByteStream to use Span / ReadOnlySpan where possible
Start pending components before physics step - fixes physics step running before joints are created
Look for eligible types in ResourceControlWidget, so it works with inherited types (resolves Facepunch/sbox-issues#5609)
https://files.facepunch.com/tony/1b0211b1/sbox-dev_YJS6hP69DC.png
Fix SoundEvent.GetNextSound random not using the full range of sounds
Fix NRE in Collider.RebuildImmediately
DynamicSceneObject can take vertex span instead of one at a time
Process particles in a GameSystem, all at the same time, to benefit from multithreading
Fix NRE in TeleportKeyframeBody
Allow drag drop on ResourceControlWidget if the game resources are assignable
▄██▅ ▄██▍▅▅▆▍▊▋▌▍▍█▊▄▋▌▍
! ▋▄ ▊▋█▇ ▅▍▇▄▌▌▊▇▄▌▋ ▊▅▊▆ █▋█▆▉▊.▅▄▋█.▊▅█▋.▄▇▋
▍▉▄▆▌▌▌▍▆▉▌▊▍▇▊▆▋▆▇▆█▍▊▍▍▊▊ ▅▊▅▊ ▍█▍ ▋▉▊ ▍▊▍▊▇▇▄▇▇▌ ▄▄ ▍▊█ ▋▅▆▄
Fix Component being decorated with IUpdateSubscriber, IFixedUpdateSubscriber (making it useless)
Add start and end loop points to sound meta
Don't do MakeNameUnique() if we have > 100 siblings, don't always create a hashset
Lets cache TypeLibrary.GetTypes( t ) - and invalidate when things change - this significantly improves TypeLibrary performance
Completely remove the locking from Performance.Scope
Fix "Value cannot be null." when ControlWidget cannot be created for property
Benchmark fullscreen is borderless
Optimize performance scope to not lock, not create
Use custom implementation of .HasFlag for mostly unnessecary optimization ( .Contains() )
Micro optimization, use RenderAttributes.SetComboEnum<T> instead of SetCombo (avoid boxing)
Avoid creating a Func when getting friend state
avoid creating an array when iterating CircularBuffer
Fix player count in GameLobbyGroup
Fix warnings
This stops the creation of boxed steamids, somehow
Ensure we properly network ownership changes during network orphaned actions
Enum and List control widgets can't be edited when readonly
Keep project loading stuff together and make sure we load initial collision rules after project settings file system is mounted (Fixes Facepunch/sbox-issues#5739)