21,419 Commits over 1,552 Days - 0.58cph!
Reenable rendersystem for console apps for map compilation
Invert logic of bSupportsLightmapping, make explicit flag of "NoLightmapping", doesn't feel right to apply that flag in every shader when it all should just support it
Simplify AudioDistanceFloatControlWidget and don't rely on FloatSliderProperty for it
Delete FloatSliderProperty
Allow slider paint override on FloatControlWidget with function override or action
Use FloatControlWidget for color picker HSV sliders
Fix indirect IBL fog not working
https://files.facepunch.com/sampavlovic/1b1911b1/jVWTMafLaa.png
Do view vector TAA jitter for fog on native instead off shader, proper way to handle this specially on thin surfaces
https://files.facepunch.com/sampavlovic/1b1911b1/B2DSaqPTHe.jpg
Be able to fetch all light information with Light::Count() and Light::From(), while doing all optimization from tiled lighting etc
Move light.hlsl to common/classes/Light.hlsl, start unfucking it, make it have same structure as everything else
DynamicLight refactor
Refactor StaticLight class, can do Light::From() to get all lights (static/dynamic) at once
https://i.imgur.com/jqko5ON.mp4
Fuck of with light.environment, light.dynamic and light.static are just in Light.hlsl instead of own internal files
Move shadow functions to Shadow.hlsl, much like BRDF.hlsl, will make it easy for us to upgrade, move LightMap definitions to Light.hlsl
Vr_lighting never directly referenced from any of our hlsls now, tonemaps in lighting.fxc never used and even if used shouldn't be there
Untangle this stuff
Use ProbeLight::UsesProbes() and LightmappedLight::UsesLightmaps() to see if drawcall is using these instead of insane combo ifdefs directly, makes it easy to remove a combo too
Remove lightmapping combos from sbox_pixel (should fuck that file off entirely), move to shadingmodel.hlsl, keep D_BAKED_LIGHTING_FROM_LIGHTMAP for vertex.hlsl, SupportsLightmapping attribute seems unused
Asset browser: Combine file and asset context menus, make non-asset context menus not useless
Show code editor title for 'Open in X' code file context menu
Rename/duplicate uses full file names (including extensions) for non-assets because that's handy
Fix typo
Revert "Lightmapping combos go on shadingmodel, Lightmapping definiton should be in shadingmodel.hlsl not Material.hlsl, material should be only a contract to shadingmodels"
Fucked, need to get rid of this stupid SupportsLightmapping attribute and just do it directly
Safer interop, threaded string handling
Rewrite AmbientLight into a class, stub
Handle AmbientLightKind::LightMapProbeVolume and AmbientLightKind::EnvMap
Move BRDF stuff to BRDF.hlsl, organizes it and makes it easier to move to CS2's one with multiscatter
Adjustments for AmbientLight, disable subsurface scattering for this class for now
ToolsVis ambient occlusion doesn't take AmbientLight
Lightmapping combos go on shadingmodel, Lightmapping definiton should be in shadingmodel.hlsl not Material.hlsl, material should be only a contract to shadingmodels
Clean this code up - help diagnose the string crash
Create AssetPicker in control widgets with no parent - control widgets could be on a popup and we don't want the asset picker window to be deleted from under us
GameObjectNode does TreeNode.HasChildren, resolves Facepunch/sbox-issues#7167
Add namespace_name to antlr grammar so that we can do "type Class::Function()" definition instead of defining all in class itself, we should just let it accept any HLSL
SendRateMin/SendRateMax tweaks
Tweak default encryption settings
Tweak delta snapshot send mode
This should have same treatment as SteamLobbySocket to be thread safe
Fix Shaders-Build.bat actually rebuilding all
Start using EditorUtility.CompileShader
Error instead of warning, docs
Fix loop
Format these shader compile errors better so they don't start with a newline, so we can see them in our console
Take CancellationTokens, do mat_reloadshaders automatically after a successful compile
Refactor output so we can deduplicate outputs from multiple combos
Humans: improved WalkFast_N
Humans: renamed source files from "Human_Male" to "Human" + split off Run_N into gendered variants
Fix mesh component export
Drop a breadcrum when playing audioplayer to get a clue on what's being played if there's a crash trying to open it
Use ResourceControlWidget for Animgraph
Delete ResourceProperty
Log shader warnings and errors back to c#
Clean up and optimize shader
Clamp to viewport again
Fix sort mode on publish page
Delete EnumProperty
Get rid of -nwthread, use Channels instead of ConcurrentQueue
Fix undo for envmap probe bounds
Fixes sbox-issues/issues/7181
Fix TreeView not passing skipEvents fully, trigger ItemsSelected at end - fixes Facepunch/sbox-issues#6845
Santa Outfit (#1743)
Wipe my ass layer doing nothing
Unused Occlusion query layer
Remove r_tiled_rendering toggle, it is a requirement of any forward+ pipeline
Tiled culling in managed render pipeline
Depth only prepass very likely doesn't need lighting constants
Lightbinner layer managed
Fix ObjectHighlight.shader
Make sure turning direct/indirect lighting off still works on managed lightbinner layer
memdbgon.h doesn't belong in a .h file
Santa jacket/trousers lods (citizen version)
Searching by filename with extension will test correctly with assets too, fixes Facepunch/sbox-issues#7174
Navigate to project root instead of selecting engine asset when ShowBaseContent is disabled, fixes Facepunch/sbox-issues#7175
Move 'Show Base Content' toggle to asset browser toolbar so people stop acting like I've stolen their car keys
https://files.facepunch.com/solw/2024/December/17_16-46-AquamarineHound.png
Humans: add temporary intercardinal movement animations derived from offset cardinal directions + use new mixed animgraph setup
Santa jacket/trousers lods (human version)
Allow AssetType to get all file extensions, primary and additional
Remove hacky fix for image extension tags, do it properly
Make this readonly list so it can't be fucked with
Santa jacket uses neck_clothing bone to minimise twist deformation
Get safer sceneobject bounds, return zero size bounds for infinite sceneobject bounds - getting infinite bounds is not desired
There's a typo here in ModelRenderer.LocalBounds
Add TagsControlWidget
Don't use bind system for these control widgets, feels like the old way of doing things
Can now drag one or multiple entries directly onto the "+" button in a List instead of having to create the entries and drag individually. Resolves Facepunch/sbox-issues#7197
https://files.facepunch.com/CarsonKompon/2024/December/18_08-58-FocusedMassasauga.mp4
Support non-array drags on ListControlWidget since not all widgets use arrays for single asset drags
vmdl will add animations as a proper source dependency, so they get uploaded ( #1741 )
Fix possible NRE in PathWidget
ListControlWidget now supports multiedit, only showing matching indexes
Add and Remove buttons now work when MultiEditing a List
Added support for re-ordering lists during a Multiselect
https://files.facepunch.com/CarsonKompon/2024/December/18_11-03-AjarBaiji.mp4
Right Click -> Duplicate now works on Multiselect Lists
Merge branch 'master' into gpu-occlusion-culling2
Move shader compiling to engine
Recompile shaders directly, instead of out of process
ListControlWidget now supports multiedit, only showing matching indexes
Add and Remove buttons now work when MultiEditing a List
Added support for re-ordering lists during a Multiselect
https://files.facepunch.com/CarsonKompon/2024/December/18_11-03-AjarBaiji.mp4
Right Click -> Duplicate now works on Multiselect Lists
Method name change + some docs
Threaded use of Steam networking API - enable with -nwthread command line switch for live testing
Make culling faster & more accurate by bailing early if we know any corner is visible, use local model bounds converted to world
https://files.facepunch.com/alexguthrie/1b1811b1/sbox-dev_zt7IOESilA.mp4
Move -searchpaths logic to ToolAppSystem
Refactor
Results, async
Fix possible NRE in PathWidget