1,023 Commits over 1,127 Days - 0.04cph!
Remove FSR from renderingpipeline ( been gone from settings forever )
ShadingModel: use classes instead of structs where we have member functions
Glass shader: be explicit with Material::lerp usage
Fix ShadingModelStandard not using adjusted alpha to coverage opacity
Soundscapes always transmit, should fix long initial delay
Fix some more questionable crap I did
Fix texture compiles being dark, typoed SrgbGammaToLinear instead of SrgbLinearToGamma 🤦
Fix threading issue in navgen too
Delete some unused tier0 files
Fix threading issue in raytraceenvironment, be more explicit and capture the lambda parameters earlier when the job is queued not executed
New tier0 threadpool code from Valve
* Functor processors removed in favor of std::function jobs (lambdas)
* QueueJob always returns a SmartPtr now
* JF_PER_FRAME flag added for scheduling jobs to be completed this frame
* Improvements to contention by putting stuff on cachelines
* New simple ParallelFor usage:
```cpp
ParallelFor( 0, 10, []( int n )
{
Msg( "%d\n", n );
} );
```
The fun part: replaced all functor thread jobs with lambdas, and make it work with SmartPtrs
This is just done manually by me and isn't from Valve, so there's likely
a few cock ups - but everything I've tested has been good.
Fix all occurences of WaitForFinishAndRelease() on smart ptrs
Delete native saverestore systems
Saved myself a 5 minute change by spending hours deleting code, and I
don't think I even got it all
remove some unused convars cl_team, cl_class, (versus_)stats_highlight_interval, mapcyclefile and some debug concmds
ui: onmousedown triggers from middle mouse too, seems accidental that it wasn't
Add Asset.GetUnrecognizedReferencePaths() - returns a list of paths this asset references that can not be resolved (missing from disk)
Missing asset resolver when loading Hammer maps
If your map contains missing assets when you load your map
(after EditorReferences have been resolved), we will check if there are
matching assets on asset.party and prompt the user to install them.
We don't have to worry about updating EditorReferences here either,
as this is automatically done on save if any asset refs have a linked
package.
After the assets are installed the user will be prompted to reload the
map - this is needed to reload the missing assets.
https://files.facepunch.com/matt/1b1811b1/image%20%281%29.png
Fix Gizmo.Draw.SolidCircle transforms
Hammer: display download progress of cloud assets using gizmos
Can publish shaders & shader graphs
Hammer undos for sndscape and sound drops
Hammer: cloud materials don't stick to everything they've hovered, and can be undone now
History API for Hammer
Hammer: add undos for asset.party models & dragged entities
SceneSunLight transform sets the correct direction now
Add cloud path to CONTENT search path, fixes hotspot rects not working but probably loads of other weird stuff too
Gizmo.Model shouldn't cast shadows
Make sure we have a Filesystem.Content early even though LocalProjects aren't added yet, fixes asset type icons not registering
Rebuild content path and open editor window on PostBootstrap since LocalProject are added in Bootstrap now, otherwise Qt doesn't know where any files are
tools_sprite shader: can use in standard mode
Gizmo.Draw.Sprite correct transform
Gizmo sprites draw the right texture although this generic shader is shit
Update MapEntity.TypeDescription when class is changed from native
Oops not a string, return enum
CMapView m_pToolManager can be nullptr when rendering thumbnail
Add MapNode.Visible property, don't call DrawGizmos for hidden entities
Hammer manipulation mode maps to Gizmo.Settings.EditMode: select, position, rotate, scale, pivot
Hammer Gizmos (#874) ( https://wiki.facepunch.com/sbox/Hammer_Gizmos )
https://files.facepunch.com/matt/1b0511b1/gizmos.mp4
Whitelist some System.Buffer methods
* System.Buffer.BlockCopy( System.Array, System.Int32, System.Array, System.Int32, System.Int32 )
* System.Buffer.ByteLength( System.Array )
* System.Buffer.GetByte( System.Array, System.Int32 )
* System.Buffer.SetByte( System.Array, System.Int32, System.Byte )
interopgen: don't needlessly overwrite subfiles as this would cause c++ rebuilds everytime
Whitelist System.Lazy
Whitelist System.Runtime.CompilerServices.ConditionalWeakTable
Revert "Never recompile symlinked assets, e.g compiled asset from asset.party that you have the source file for"
This was causing more problems then it was solving, need to rethink a better way to do this.
Whitelist System.Collections.Concurrent.ConcurrentDictionary & System.Collections.Concurrent.BlockingCollection
Whitelist System.Buffers.Binary.BinaryPrimitives
Whitelist System.Environment.StackTrace
Shader Graph: Clean up recent files code; make clear recent files show again, only show max 10, re-opening a file moves it to the top of recent files
Fix build failing models, these probably need the same lodding setup as simple_dress too @DanduwFP
PropertySheet { init; } properties are read-only
Fix choppy Input.Pressed outside of Simulate (e.g FrameSimulate or UI Tick) when FPS was lower than tick rate
Whitelist System.Net.Primitives assembly, and HttpStatusCode type
Fix User-Agent typo so none would ever be set
Let you define Content-Type and stuff through the standard headers field
Fix these typos in the HttpHeaders whitelist, but probably will unwhitelist these
Can specify HttpContentHeaders specifically for Content related headers, non-content would still use standard way
Http.CreateJsonContent specifies application/json as default content type
Static Http API (#604)
Add Sandbox.Http static REST methods that run off an allow list in your project settings. Obsoletes Sandbox.Internal.Http.
---------
Co-authored-by: Rohan Singh <rohan-singh@hotmail.com>
Co-authored-by: Garry Newman <garrynewman@users.noreply.github.com>
Set output color to adjusted atoc opacity, recompile foliage shader for this
Recompile citizen animgraph from editor, from contentbuilder cmd line it produces a 9kb file instead of 47kb?
Silly nob left debug msg in
Never recompile symlinked assets, e.g compiled asset from asset.party that you have the source file for
Rebuild content - mainly for removing obsolete shader attributes from materials using blendable/glass/foliage
Get rid of blend mask from non blend material api
Delete ShadingModelStandard, it never really worked but if you were using it for some reason use ShadingModelValveStandard instead as that'll stay backwards compatible.
This probably shouldn't be a break, it's gonna stop remapping normal/rma on old glass materials otherwise
Don't define standard material inputs if S_MULTIBLEND is set, this is the best way I can think of to reduce samplers on blendable without breaking backwards compatability.
I don't see much reason for this stuff to even be in common, it's pretty hyper specific to the blendable shader.
Also will get rid of the bullshit first input from an artist workflow: https://files.facepunch.com/yourname/1b2111b1/sbox-dev_kGyz4UAlhq.png
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.
Whitelist UnreachableException constructors too
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
When finding dependant assets always search the same path first before any other
Fixes a case where the assetsystem would get confused and infinitely recompile an asset if it had a dependancy across 2 addons, e.g:
dm98's dm_crowbar.vmdl depends on crowbar01.fbx which exists in:
1. addons/citizen/models/citizen_props/crowbar01.fbx
2. addons/dm98/models/citizen_props/crowbar01.fbx
Now it'll always favour 2 because it's in the same addon
Hammer: Max lightmap resolution 8k as 16k is impractical and never worked
Hammer: Fix entities from remote packages by using new PackageManager API
Fix swapchain assert when closing editor window
Fix typo in material compiler where it'd keep upgrading materials, provide some feedback too
MET standardize shader to shader_c
Recompile the rest of the materials that were using legacy paths before (hopefully this is all of them now)
Scenes rendered from Sandbox.Tools apply an SVF_TOOL_VIEW flag, primarily this will stop stereo rendering on it