20,903 Commits over 1,522 Days - 0.57cph!
Lobby data is case insensitive
Fix console exception on close
Lobbies have names
Can move these object messages of the main network system now
More BytePack tests
Simplify message handling
Fix tcp sending out of order
Citizen/animgraph: improved sprinting animation & handling of the locomotion 'wish' layer
BytePack support TypeLibrary types
Fix PropertyDescription sometimes setting twice
Remove NetworkSerializer, build it into NetworkSystem
Remove MemoryPack
Clear Typelibrary's BytePack on assembly changed
Fix incorrect adding of prismatic joint
Enable limits on prismatic and revolute when limits are valid
Update output connections too in GraphView.UpdateConnections
BoolControlWidget support custom icons
Add descriptions to tooltips on ControlSheet
Don't try to load local packages when joining server
Fix potentially adding null NativeMemoryBlock to pool
Material::Init initializes TextureCoords too
Update new shader template
Remove stereo multiview instancing from debug menu
Add Texture.Update<T>( ReadOnlySpan<T> data ) & Texture2DBuilder.WithData<T>( ReadOnlySpan<T> data )
Stop using PixelInput for everything (#1336)
* PS_InitFinalCombiner( PS_INPUT ) -> PS_InitFinalCombiner() so it works without COMMON_PS_INPUT_DEFINED - this is just for default values anyway
PS_CommonTransformNormal should be wrapped in COMMON_PS_INPUT_DEFINED too
* Material shading API can be used without common PixelInput
Internals rewritten to remove reliance on a commonly defined PixelInput
instead every function just takes what it needs.
The only public methods you may have been using were changed like so:
```diff
- float3 TransformNormal( const PixelInput i, float3 vNormalTs )
+ float3 TransformNormal( float3 vNormalTs, float3 vGeometricNormalWs, float3 vTangentUWs, float3 vTangentVWs )
- float3 NormalWorldToTangent( PS_INPUT i, float3 vNormalWs )
+ float3 NormalWorldToTangent( float3 vNormalWs, float3 vGeometricNormalWs, float3 vTangentUWs, float3 vTangentVWs )
```
Material::From( PixelInput ... ), ShadingModelStandard::Shade( PixelInput ... )
stil exist but are wrapped in ifdef COMMON_PS_INPUT_DEFINED, so only work
with the common PixelInput include.
Material::Init() added to initialize a Material with default values
Geometric normals are now distinctive from normals in Material too, this
is important for the lighting model: https://files.facepunch.com/matt/1b1711b1/beforeafter.png
And a lot of tool vis modes were fixed too.
* Material.AmbientOcclusion float3 -> float
Change stack trace style a bit to show file path on a separate line if we have one
https://files.facepunch.com/tony/1b2211b1/parsecd_LAii24egtt.png
Adjust StackTraceProperty style more, copy to clipboard by clicking any part of the header, add tooltip
Update ActionGraphs, NodeLibrary restructuring
* Now one NodeLibrary per TypeLibrary instead of per ResourceLibrary
* No need to have a JsonSerializerOptions per ResourceLibrary any more
ActionGraphResource serialization fixes
Exposing some stuff in GraphView for derived types
Fix ActionGraph serialization test
Got rid of some debug logging
Make VRNative Compositor/System/etc. all properties
TrackedDeviceInfo has battery percentage (cherry-picked from vr-stats branch)
Battery percentage just displays in `vr_info` concommand for now
Change the way we handle VRTextureWithPose - create an initial VRTexture and then (optionally) append pose data, rather than just creating a VRTextureWithPose outright
Reinstate VR overlay code using new internal VR backend
Move FromTransform into Matrix so we can re-use it
Change linear slop instead of convex radius
Update OpenVR SDK from 1.26.7 to 2.0.10
Fix warning
Make BytePack internal, expose functionality via TypeLibrary
Add a LocalChannel for local Rpc calls
Clear out any log entries that are from diagnostics on hotload (to prevent duplicate logs when hotloading often)
Raise the console when clicking status toggle buttons
Sort out padding for stack trace "copy to clipboard"
Set convex radius to what rubikon used (should we change linear slop instead?)
Don't throw if we fail to create dock widgets (error when loading editor layout that has nonexistent managed types, i.e error list, game project editor docks)
Console Window Improvements (#1332)
* Added Status Bar console output
* Moved log counts to the Status Bar
* Moved stack trace to be inline with the Console
* Removed Error List
* Show all code editors in Preferences window, but disable editors that are not installed
Move ConsoleWidget to addon so I can hotload it (move it back when done), add splitter window for stack trace viewer instead of using main inspector window
https://files.facepunch.com/tony/1b0911b1/sbox_LIfiBOFDPg.png
StatusBarLog experiments https://files.facepunch.com/tony/1b0911b1/pfmbUSg70M.png
Kill StatusBarLog after some time, based on LogEvent level
Give StackTraceProperty a MinimumWidth so it pops out at a readable size
Clear current stack trace entry when clearing the console
On compile, store diagnostics in console and display warnings/errors. When clearing console, always show important diagnostics
Progress on supporting showing 'simple' stacks for diagnostics
ConsoleEntry refactor, can read simple stack of diagnostic messages now
Refactor
More cleanup
Sort diagnostics by severity / project, so errors are output last on compile
Clear status bar on compile, remove test button
Delete Error List
Move some code back to Engine, raise console dock when clicking status bar log
Move ICodeEditor, CodeEditor to Sandbox.Tools (code editor implementations and events are still in base addon)
StackTraceProperty row clicks can use CodeEditor again
Add setItemEnabled to NativeEngine.QComboBox
Add enabled parameter to ComboBox.AddItem
Show all code editors, even if they're not installed, but disable the button
Add try catch to compile.complete event, any exception that gets thrown in that event will halt the compile forever
Experiment moving log counts to status bar
Would be good if I actually clamped this value
Use ToolTip instead of StatusTip in a bunch of places
Don't delete StatusBarLog unless we're killing the console entirely. Re-use existing Widget where possible. Only run Update if last log was >10ms ago.
Fix running EmptyAsync every time a log would come through even if it wouldn't display
Replace async shit with frame event, forgot this existed
Re-add icon def
Fix visual studio not opening to the file & line on first launch
PS_InitFinalCombiner( PS_INPUT ) -> PS_InitFinalCombiner() so it works without COMMON_PS_INPUT_DEFINED - this is just for default values anyway
PS_CommonTransformNormal should be wrapped in COMMON_PS_INPUT_DEFINED too
Material shading API can be used without common PixelInput
Internals rewritten to remove reliance on a commonly defined PixelInput
instead every function just takes what it needs.
The only public methods you may have been using were changed like so:
```diff
- float3 TransformNormal( const PixelInput i, float3 vNormalTs )
+ float3 TransformNormal( float3 vNormalTs, float3 vGeometricNormalWs, float3 vTangentUWs, float3 vTangentVWs )
- float3 NormalWorldToTangent( PS_INPUT i, float3 vNormalWs )
+ float3 NormalWorldToTangent( float3 vNormalWs, float3 vGeometricNormalWs, float3 vTangentUWs, float3 vTangentVWs )
```
Material::From( PixelInput ... ), ShadingModelStandard::Shade( PixelInput ... )
stil exist but are wrapped in ifdef COMMON_PS_INPUT_DEFINED, so only work
with the common PixelInput include.
Material::Init() added to initialize a Material with default values
Geometric normals are now distinctive from normals in Material too, this
is important for the lighting model: https://files.facepunch.com/matt/1b1711b1/beforeafter.png
And a lot of tool vis modes were fixed too.
Material.AmbientOcclusion float3 -> float
ShaderGraph fixes
Fix
Fix directional light farz https://files.facepunch.com/sam/1b2111b1/Jn16Ruj0ub.png
Fog lights support, remove second buffer that's meant for fog lights, remove bullshit code to support old directional light from it that was just meant to be tools-only, all light types just works now https://files.facepunch.com/sam/1b2111b1/C3pY5Q7jq9.png
Replace async shit with frame event, forgot this existed
Re-add icon def
PhysicsTraceBuilder ignores ITagSet if null
Tweak TcpChannel so it doesn't choke
Replace NamedPipe with Tcp, which I should have probably done in the first place and would have saved me about 6 hours of bullshitting around
Make sure maps set the world reference body
Change view "Restore to Default" to "Reset Layout"
Fix running EmptyAsync every time a log would come through even if it wouldn't display
Add GameNetworkSystem.IsHost, IsClient
Only actually add attribute members if they'd be used (target function accepts them)
Don't delete StatusBarLog unless we're killing the console entirely. Re-use existing Widget where possible. Only run Update if last log was >10ms ago.
Use ToolTip instead of StatusTip in a bunch of places
Move ConsoleWidget to addon so I can hotload it (move it back when done), add splitter window for stack trace viewer instead of using main inspector window
https://files.facepunch.com/tony/1b0911b1/sbox_LIfiBOFDPg.png
StatusBarLog experiments https://files.facepunch.com/tony/1b0911b1/pfmbUSg70M.png
Kill StatusBarLog after some time, based on LogEvent level
Give StackTraceProperty a MinimumWidth so it pops out at a readable size
Clear current stack trace entry when clearing the console
On compile, store diagnostics in console and display warnings/errors. When clearing console, always show important diagnostics
Progress on supporting showing 'simple' stacks for diagnostics
ConsoleEntry refactor, can read simple stack of diagnostic messages now
Refactor
More cleanup
Sort diagnostics by severity / project, so errors are output last on compile
Clear status bar on compile, remove test button
Delete Error List
Move some code back to Engine, raise console dock when clicking status bar log
Move ICodeEditor, CodeEditor to Sandbox.Tools (code editor implementations and events are still in base addon)
StackTraceProperty row clicks can use CodeEditor again
Add setItemEnabled to NativeEngine.QComboBox
Add enabled parameter to ComboBox.AddItem
Show all code editors, even if they're not installed, but disable the button
Add try catch to compile.complete event, any exception that gets thrown in that event will halt the compile forever
Experiment moving log counts to status bar
Would be good if I actually clamped this value
Add delete option to editor window layout manager
CodeGen method wrap target function can (optionally) have first parameter be the specific wrapping attribute or an array of Attribute[] which would contain all CodeGen attributes on the method being wrapped
Should fix startup errors some people are suffering
Fix flags on lightbinner gpu include, oops
Refactor tiled rendering builder to be compatible with new lightbinner, make it implicit under lightbinner.hlsl
Rename lightconstants.hlsl to lightbinner.hlsl and call the data there BinnedLight/BinnedEnvMap, make baked lights only cast shadows if mixed lights are enabled on them
Remove limitations to not have mixed point light shadows, it just works now https://files.facepunch.com/sam/1b1911b1/SNSMgfgkxR.png