14,461 Commits over 1,614 Days - 0.37cph!
ShaderGraph: Open just the node menu when opening from connection drag
Allow tools projects to use unsafe code (#955)
sboxgame/issues/issues/3124
ShaderGraph: Fix comment UI not clamping to min max size in layout
Allow dry suit to be used with rebreather
Update to use new package rate api
Use new favourites api
Failing test involving generics causing EntryPointNotFoundException
Fixed resolving generic methods
Fixed possible stack overflow when fixing references
Expanded GenericReference test to help investigate
Replacing method now thinks it's inside the original assembly
Fixed references to the wrong assembly in fast hotload
Don't need to relink variable types
ShaderGraph: Add Fresnel node
Add option to compile optimized shaders in asset browser context menu (#953)
Add css `border-image-tint` property (#952)
* Add css `border-image-tint` property
sboxgame/issues/issues/3057
* Compile optimized shader
Readme: troubleshooting - vcpkg conflicts
Support for compiling/publishing Library projects
added silencer and raised sights to the USP
more options for modding the USP, lods for these coming soon
Api simplification
Initialize steam sooner in editor mode
Use ManifestUrl instead of Manifest
TV
Gib03 inverted normal fix
Merge branch 'master' of sbox
Support tags for particles collision via traces
Citizen/clothing: added new item, "Diving Rebreather"
This one comes with fancier rigging enabled by item-level animation constraints created entirely in ModelDoc. https://files.facepunch.com/maxlebled/1b1711b1/sbox_2023-04-17_07-19-47.mp4
ShaderGraph: Add Save As menu option
Support faster api auth mode
Pass to shader pipeline if we're rendering on skybox, fix glass reprojection being fucked up on skybox
Fix glass not showing properly on tools view
Just set the max swapchain dimension to be the largest monitor dimension again, causes less problems while in tools mode, guarantees we won't have edge problems
Fix glass depth being fetched incorrectly in MSAA levels
Get the dimension of the biggest used axis for calculating swapchain dimensions, fixes FB copies having wrong dimensions on tools, allow texture downsamples to only downsample a region
Let decals do software-based culling, avoids slow copy of the depth buffer just to do redundant culling, that was also causing problems
Citizen/animgraph: improved sit_offset_height
The feet now pivot up and detach from the ground beyond +3 units, and the arms also follow correctly.
https://files.facepunch.com/maxlebled/1b1411b1/sbox_2023-04-14_21-11-48.mp4
Documentation pass
Update some packages
Code cleanups
Add Package.EditorReferences
Show compile errors when publishing and there are compile errors (!)
When we have multiple gamemanager classes, prioritize the one from the current game package
When publishing don't include package.base if we're referencing another game
When an API deserialization fails, provide some context in the error message
Allow projects to reference any package type
Keep more log files
NeedsLocalBasePackage return false if we're not a game or are referencing a game
Added failing test for changing the body of a lambda
Fixed not being able to resolve private nested types
Fixed #947
Failing test for async methods
#947
Fixed #947 for state machine types
Some safety if ILHotload AST processing throws during Parallel.ForEach
Only run ILHotload AST processing when hotload_fast >= 1
Use well known SCENE_RTSIZE_FRAMEBUFFER instead of manually fetching dimensions that seem to give us a 12k x 2k render target... This was flooding vram and causing errors
I'm not sure what we were trying to fix when changing this, but if SCENE_RTSIZE_FRAMEBUFFER is returning the wrong dimensions for a framebuffer copy, we should fix that instead.
Compilers can reference packages
Add Project/AddGameWithPackageBase unit test
TV
fixed missing face
Merge branch 'master' of sbox
Razor directive errors report the file + location properly in visual studio instead of showing CSC
Fixed access control unable to resolve System.Threading, System.Memory
Fix hardcoded refs path 🤦♂️
Documentation + typo pass
Add TargetFramework attribute to compiles
Add ref dlls for compile
Compiler uses ref dlls
Skip auto-referencing base addon if referencing a gamemode
Rebase fixes
TV
TV prop
Merge branch 'master' of sbox
Fall back to normal hotload if exception is thrown during FixReferences
Fast method body hotload (#931)
* 0ms hotload fast path poc when only method bodies change using MonoMod
* 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
* 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
* 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
* Added failing test of typeof(T) in method body hotloads
* Failing test for static references
* Fix references to members / types in fast-hotloaded method bodies
* Allow debugging ILHotload in Sandbox.Test
* Test for fast-hotloaded methods with parameter / return types defined in the changed module
* Added failing fast hotload test for compiler-generated type changes
* Don't attempt fast hotload if any compiler-generated type definitions change
* Record event when we ILHotload, matches naming of existing hotloads so we can derive % easily
* Remove defunct code about using cecil as the DMDType, not needed since we fix the references ourselves
---------
Co-authored-by: Matt Stevens <matt@mattstevens.co.uk>
Scene culling box (#889)
Scene culling boxes lets users control scene visibility, either everything inside the box is culled or everything outside the box is culled.
Fix framebuffer copies taking wrong dimensions
Revert "Don't dispose of temp rendertarget when trying to resolve it again", This needs more thought and was causing problems
This reverts commit 6ee43b38e629221c8b8faa2c43d6eb3fa81f6afb.
Citizen/animgraph: misc. small fixes
Fixed handling of some special movement transitions, move_style keeps cycle when switching modes, & some comment stuff
Whitelist UnreachableException constructors too
Remap parameters from deprecated shaders still referenced in cloud materials
Glass2 (#936)
* 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
* Add overlay layer and cheap rough refraction
* 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
* Cleanup glass shader, fix VR and Tools preview
* glass.shader_c
* Update glass materials and glass blur range
* 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
* Fix FBCopies showing incorrectly on tools
https://i.imgur.com/1MnEiWe.png
* Fix comment that slipped through experimentation, add more explaination to Cheap Glass and Overlay Layer