14,054 Commits over 1,583 Days - 0.37cph!
Morph shapes for the Decorated Beard
Modeldoc: Compile skeleton with ALL bones no matter if they're used in skinning or not
Directly write to Logger during hotloads
Include path and member in hotload log messages
Allow nested FormattableStrings in log messages
So that their args can be inspected too
Fix order of operations when rendering drop shadows
Fix func_voxelsurface to the new way of getting the surface face
ShaderGraph: Fix formatting on generated code
Add blendmodes.hlsl until shadergraph just generates these functions
ShaderGraph: Fix NRE when identing generated code
procedural.hlsl isnt in common anymore
ShaderGraph: Only find nodes derived from ShaderNode
ShaderGraph: common/proceedural ->common/procedural
Video player (#1050)
VideoPlayer class that decodes mp4 and webm from paths or urls and provides the texture and audio.
CSS Drop Shadows (#1069)
https://files.facepunch.com/alexguthrie/1b0511b1/drop_shadow.png
Implement IsMatchingType for generic type definitions
Fixed IsMatchingType for required modifier types
Don't warn about attempted fast hotload of generic method
Stop all sounds when leaving game(menu)
Load GameResources from menu filesystem (allows sounds to load)
We don't need to access the soundsystem via interfaces, we can live in the dll
New Beard + Adjustments to the zombie skin
Hitboxes added to zombie skin, plus a new WIP Beard, will have quite a few adjustments in the future, also needs skinning adjustments and morphs, currently is just static on the face.
Failing test reproducing #1063
Fixed #1063
Games can define their own main menus
Shadingmodel Declutter (#1041)
* Start cleaning up material and shadingapi
* Allow using functions inside of HLSL structs
https://i.imgur.com/t1AwQzr.png
* Replace all GatherMaterial bullshit with Material::From()
* Remove Material parameter references to things that aren't implemented yet, put TransformNormal in normals file
* Cut everything from ShadingModel too and let's start from a static class
* Redo light api on shaders, start implementing new dynamic light under this structure, move raytracing shit to it's own folder, add sample shadingmodel
* Allow structs in structs ( HLSL 2021 and forwards )
* Most of static light with the new api
* Fix shadowing on indexed lights on new light api
* Move shadingmodel structures to shadingmodel.hlsl
* Fix light static assignment for lighting api, fix shadowing for them too
* Stub for EnvironmentMapLight
* Implement cubemap light
* ShadingModelValve
* light.envmap.hlsl becomes light.environment.hlsl for better readability, add debug views to material api, CUSTOM_MATERIAL_INPUTS preprocessor
* AmbientLight
* Sane implementation atmospherics and debug vis postprocessing for shadingmodel api
* Finish debug vis, rename ShadingModelValve to ShadingModelStandard
* Start rewriting blendable with new api, port glass to new api
* Rewritten blendable shader
* Refactor remaining shaders to new shadingmodel api, fix shadergraph not working, readd procedural.hlsl for shadergraph but fix typo on title
New Skin Variations for the Muscley body
FPArms: fixed left arm IKchain
Soundscapes always transmit, should fix long initial delay
FPArms: add notes on IKChain nodes
FPArms: explicitly reject weapon_root from existing weightlists
Networkable Component References (#1056)
* add componentid to IComponent
* make component id public - add internal findbyid method, add lookup dict for comp by id
* add/remove components from lookup where appropriate
* Add VarIComponent to support [Net] IComponent types
* Add replicate codegen
* VarIComponent -> VarEntityComponent, make ComponentId internal again, remove from IComponent interface. in Replicate..Component search for derived types from EntityComponent
* FindById should just return an EntityComponent now
Fix skin material not being applied to SceneModel clothes
Muscley Citizen Skin (Work in Progress)
https://files.facepunch.com/daniel/1b0111b1/Photoshop_BTmDLMnH03.jpg
Initial asset for the Muscley Citizen. In need of some general adjustments and fixes. A more defined set of legs and hairy back coming ASAP.
As well as skin colour variations.
Ship game templates from sboxgame/templates manually for now, need to consider about fetching from the repo soon
intruder alarms - metal bins
removed from core as they are now on asset party
Merge branch 'master' of sbox
Zombie Head Variation 02
https://files.facepunch.com/daniel/1b3011b1/sbox-dev_BN7EsqGgcy.mp4
https://files.facepunch.com/daniel/1b3011b1/chrome_uVsnZinHzp.png
https://files.facepunch.com/daniel/1b3011b1/sbox-dev_pgwwUWwijV.jpg
Another zombie variant, slight different head, should be great for creation multiple variations for hordes of zombies, rather than every zombie having the same face.
Razor generics and renderfragments
* Support for creating generic razor components
* RenderFragment support
* RenderFragment<T> support
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
Update first_person_arms_adjustments.vsubgrph
Allow area light size to be changed in runtime
Fix crash in particle system when using SetParticleControlComponent with an invalid CP value. If the CP passed is higher than function read limit, log warning and return origin vector in GetControlPointPosition
Let's just limit RpcHistory.Storage to 1024 elements by removing the first element if we go over that. RpcHistory.Purge is called when a net message (rpc) is received, but if one isn't received for a while the rpc history can build up to insane amounts and cause issues with hotloading
Fixed wrong workers count in package.download stat
File download progress is more reliable
SVG support in ui (#1030)
* Adds basic support for drawing pixel perfect SVG 1.2 images in UI
* Sample usage: <svg src="path/to/file.svg" /> (also see SvgTests.razor)
Lets try mirroring here instead of copying, seems more like what we want
Cleaner game menu system
* When reporting a panel event error give its name
* When setting up a panel bind - try to set its value immediately
* Assert Panel.StateHasChanged is called in the main thread
* Don't touch drag if MouseDown stopped propogation
* Remove TextPanel/InternalLabel - move it all to Label
* If we're a label then razor should add child content to us, not a new label
* <i> is an IconPanel
* Optimize PackageCard panel count
* Defer adding child panels until the start of the parent's tick - fixes problems with :intro not playing, incorrect styles
* Fix styles not always updating when editing stylesheet
* Delete template unit tests
* Don't autogen line numbers in .razor generated source
* Generate razor source in parallel
* Map razor files to relative paths for compilergen
* Add a [ClassFileLocation] attribute to every class with its relative path location
* [StyleSheet] attribute needs no args, relative paths will be relative to the class file
* Stylesheet with no argument looks for <filename>.scss
* Add TypeLibrary variants with bool inherited option
* Generated csproj files fold in .razor.cs and razor.scss files properly
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
Support for ConCmd ParamArray arguments
Fix compile time bomb when checking big methods for fast hotload support
Add Panel.GetTransformPosition( Vector2 )
Range check Model.GetMaterials, Add Model.Materials to iterate through all mesh materials