17,194 Commits over 1,308 Days - 0.55cph!
Foliage shader: Add standard vertex color based procedural animation based on http://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch16.html
Some additional changes here to Material API so we don't need to double sample for opacity & removal of dead code.
Documentation: https://wiki.facepunch.com/sbox/Foliage_Shader
https://files.facepunch.com/matt/1b1111b1/sbox-dev_3qi13Ck52s.mp4
Added failing test of typeof(T) in method body hotloads
Undo hack inverting green channel, should be fixed on authored assets
0ms hotload fast path poc when only method bodies change using MonoMod
Biggest flaw of this is detecting the changes, Ziks has some good ideas with comparing the AST
https://files.facepunch.com/matt/1b2611b1/sbox-dev_My23jH4uYG.mp4
Print individual changes during compile, show node paths
WIP check if all changes are in method bodies
Add attributes to package assemblies describing changed methods
* SupportsILHotloadAttribute is added if only method bodies change
* MethodBodyChangeAttribute is added for each changed method
Yet to properly support nested declaring types and methods with overloads.
ILHotload looks for SupportsILHotload and MethodBodyChange attributes
Fixed methods with identical IL not being replaced by ILHotload
ILHotload should never run with a debugger attached
Clean up dead code
Detour using a generated dynamic method copy from the replacing method
Documentation for Compiler.SyntaxTree.cs
Added CompilerSettings.SourcePathFilter predicate
Boilerplate for writing ILHotload tests
Fixed how file changes are emulated in FastPathTest
A bit more flexibility in fast path test case code preprocessing
Added failing fast path hotload test for changing method signatures
ILHotload: changes must be specifically within a BlockSyntax of a method
Added Compiler.UpdateParseOptions() for tests to use
Don't use ILHotload if a preprocessor define changed
Incremental syntax tree parsing
Throw when trying to debug an ILHotload swap during a test
Basic incremental compilation
Make generated code more deterministic, nicer for incremental compile
Keep track of which assembly types are actually loaded from
Re-use compiler options where possible
Changed fast hotload log to a trace
Make OnlyMethodBodiesChanged multithreaded, fixed multiple changes in one file
Failing test for property body changes
Cleanup ILHotload tests, failing test for overloaded method
Refactor AST processing for ILHotload
Moved to Sandbox.Generator, and now tags changed methods with an attribute rather than referencing them from assembly-level attributes
Fixes after refactor, a bit ugly at the moment
Support fast hotload for property accessors
NoticeWidget shows ms if duration < 1s
Call UISystem.OnHotload after an ILHotload
ILHotload test for nested blocks
Fixed ILHotload change detection for nested blocks
Added hotload_fast engine convar to enable / disable IL hotload
Cast a second ray if GGX sample goes below ground for SSR
Add support for declaring BindComponent properties that include disabled components w/ `[BindComponent( IncludeDisabled = true )]`
Editor: When adding a project from file, open editor preferences addon location
Tools: Internalize WidgetGallery static methods
Do not copy gigabytes of .tga files for Sandbox.Test
Documentation pass
Iterate, sort of done.. Need to derive wind params from game
Redo downsample shader to work properly without flickering, right now with just gaussian since we don't use any others right now
Don't dispose of temp rendertarget when trying to resolve it again, GetTemporary gets from dict, fixes multiple ui blur fetches, this solution was causing issues before but seems fine now we're hashing every parameter
Do 1px feathering on CopyFrameBufferCached to avoid sampling without real intersection
Remove hacks from GenerateMips, rewrite downsample_cs to support other mip generation methods
Update compiled skin shader with glow-in-dark fixes
Don't dispose of temp rendertarget when trying to resolve it again, GetTemporary gets from dict, fixes multiple ui blur fetches, this solution was causing issues before but seems fine now we're hashing every parameter
Do 1px feathering on CopyFrameBufferCached to avoid sampling without real intersection
Remove hacks from GenerateMips, rewrite downsample_cs to support other mip generation methods
Update glass materials and glass blur range
Fix skybox tint, skybox expects color to be converted from srgb to linear
Cleanup glass shader, fix VR and Tools preview
Downsample framebuffercopytexture to be used when needed
Translucent shadows for glass
https://i.imgur.com/6KYigbg.png
Redo downsample shader to work properly without flickering, right now with just gaussian since we don't use any others right now
Pass downsample method before ComputeRenderablePassesForContext
Remove collision group from particle collision via traces, this will need to be replaced with tags
Apply environment light ambient color when light isn't baked
Allow Sky.Skyname and Sky.TintColor to be changed after spawn
Documentation pass on Sandbox.UI
Fix documentation updates for base/editorbase dlls
Fix specifc shaders github action job referencing from the shader yml
Add overlay layer and cheap rough refraction
Fix two lobe speculars not normalizing it's brightness (Skin glowing on dark)
https://i.imgur.com/pua5PV8.png
Remove a camera's RenderHooks when it's destroyed - fixes effects lingering in other games
Documentation pass on Sandbox.UI and other stuff
Obsolete more HTML template methods
Fixed UI.DropDown (<select>) not working from Razor
Handle encountering MethodBase operands in GetStackDelta
0ms hotload fast path poc when only method bodies change using MonoMod
Biggest flaw of this is detecting the changes, Ziks has some good ideas with comparing the AST
https://files.facepunch.com/matt/1b2611b1/sbox-dev_My23jH4uYG.mp4
Print individual changes during compile, show node paths
WIP check if all changes are in method bodies
Add attributes to package assemblies describing changed methods
* SupportsILHotloadAttribute is added if only method bodies change
* MethodBodyChangeAttribute is added for each changed method
Yet to properly support nested declaring types and methods with overloads.
ILHotload looks for SupportsILHotload and MethodBodyChange attributes
Fixed methods with identical IL not being replaced by ILHotload
ILHotload should never run with a debugger attached
Clean up dead code
Detour using a generated dynamic method copy from the replacing method
Documentation for Compiler.SyntaxTree.cs
Added CompilerSettings.SourcePathFilter predicate
Boilerplate for writing ILHotload tests
Fixed how file changes are emulated in FastPathTest
A bit more flexibility in fast path test case code preprocessing
Added failing fast path hotload test for changing method signatures
ILHotload: changes must be specifically within a BlockSyntax of a method
Added Compiler.UpdateParseOptions() for tests to use
Don't use ILHotload if a preprocessor define changed
Incremental syntax tree parsing
Throw when trying to debug an ILHotload swap during a test
Basic incremental compilation
Make generated code more deterministic, nicer for incremental compile
Keep track of which assembly types are actually loaded from
Re-use compiler options where possible
Changed fast hotload log to a trace
Make OnlyMethodBodiesChanged multithreaded, fixed multiple changes in one file
Failing test for property body changes
Cleanup ILHotload tests, failing test for overloaded method
Refactor AST processing for ILHotload
Moved to Sandbox.Generator, and now tags changed methods with an attribute rather than referencing them from assembly-level attributes
Fixes after refactor, a bit ugly at the moment
Support fast hotload for property accessors
NoticeWidget shows ms if duration < 1s
Call UISystem.OnHotload after an ILHotload
ILHotload test for nested blocks
Fixed ILHotload change detection for nested blocks
Added hotload_fast engine convar to enable / disable IL hotload
Start recoding the glass shader from scratch
Apply FrameBufferCopyTexture to entire layer rather than batch, fixes some batches returning a null texture
Let Material API handle translucency opacity properly and accounting for specular, still need to account for tint opacity
Iterate on new glass
Randomize shatterglass normals
https://i.imgur.com/8EKzZZ8.mp4
Remove unused PrepareDeletion from physics body
Drag'n'drop is able to find compiled assets
Fixed up Hammer ImagePlane
Use real file extensions for Asset List drag'n'drop
This helps with Hammer's ImagePlane to get the correct file extension, and also just makes sense.
More null checking in broadphase update
Don't purge shapes when removing body
Added toilet_a
Added toilet_a vmdl + physics prefab
Added ceramic.surface property + hooked up ceramic/porcelain soundscape files
Merge branch 'master' of sbox
Rubikon: Null check shape owner in a few places, should fix some crashes but remember to find out why this is happening, because it shouldn't be possible
Remove vr foliage animation from common vs code
Material API shouldn't need to double sample for opacity.. have a look at this @Sam
Update foliage to have basic artist defined animation based on vertex colors
Update tree materials with foliage animation params
When breaking a prop, play breaksound from the root physics body if we have one https://files.facepunch.com/devultj/1b0511b1/sbox_N8dwUF251P.mp4
Rubikon: Use uint32 storage for touching ent pairs, fixes this hashtable from reaching max capacity when many objects are colliding
Rubikon: Add some error checking in broadphase update
Crack down on warnings in Sandbox-Engine
0ms hotload fast path poc when only method bodies change using MonoMod
Biggest flaw of this is detecting the changes, Ziks has some good ideas with comparing the AST
https://files.facepunch.com/matt/1b2611b1/sbox-dev_My23jH4uYG.mp4
Print individual changes during compile, show node paths
WIP check if all changes are in method bodies
Add attributes to package assemblies describing changed methods
* SupportsILHotloadAttribute is added if only method bodies change
* MethodBodyChangeAttribute is added for each changed method
Yet to properly support nested declaring types and methods with overloads.
ILHotload looks for SupportsILHotload and MethodBodyChange attributes
Fixed methods with identical IL not being replaced by ILHotload
ILHotload should never run with a debugger attached
Clean up dead code
Detour using a generated dynamic method copy from the replacing method
Documentation for Compiler.SyntaxTree.cs
Added CompilerSettings.SourcePathFilter predicate
Boilerplate for writing ILHotload tests
Fixed how file changes are emulated in FastPathTest
A bit more flexibility in fast path test case code preprocessing
Added failing fast path hotload test for changing method signatures
ILHotload: changes must be specifically within a BlockSyntax of a method
Added Compiler.UpdateParseOptions() for tests to use
Don't use ILHotload if a preprocessor define changed
Incremental syntax tree parsing
Throw when trying to debug an ILHotload swap during a test
Basic incremental compilation
Make generated code more deterministic, nicer for incremental compile
Keep track of which assembly types are actually loaded from
Re-use compiler options where possible
Changed fast hotload log to a trace
Make OnlyMethodBodiesChanged multithreaded, fixed multiple changes in one file
Failing test for property body changes
Cleanup ILHotload tests, failing test for overloaded method
Refactor AST processing for ILHotload
Moved to Sandbox.Generator, and now tags changed methods with an attribute rather than referencing them from assembly-level attributes
Fixes after refactor, a bit ugly at the moment
Support fast hotload for property accessors
NoticeWidget shows ms if duration < 1s
Call UISystem.OnHotload after an ILHotload
ILHotload test for nested blocks
Fixed ILHotload change detection for nested blocks
More helpful error message when trying to get default value of new field
Warn rather than throw if a dictionary key becomes null
Failing test reproducing #933
Warn when unable to find a scope method, instead of error
Fixed error delegates causing an error themselves on upgrade
Fixes #933
UsingController reports correct info again. remove LastInputWasController
Make obsolete ClearButtons clear actions for now
Add BaseWindow.OnWindowClosed event
Update action when edit window gets closed, add border to actions with no button defined
Don't use tools vis shading mode if we're not using a vis mode, fixes shader graph preview
ShaderGraph: Add vertex color node