1,495 Commits over 1,157 Days - 0.05cph!
█▄▆▇█▍▉█▄ ▅▉▆▍▊▆.▆▅█▅▊▌▌▋.▆▉█▇▉▌.▉▊▆▊▋▉▌▅▇▍ & ▄▉█▅▄▌▇▉▆▌▋ & ▌▉▅▊▍▊▆▄▌▄▊▍▉█▉ - ▇▊▆▄▇ ▅▋▉ ▅▅█ ▊▋█▅ ▌▅▊▄ ▋▅▄▍▋▍▊▄▉▌ ▇▉▌▋▉▉ ▋▇ ▆▉▊▄
Make wireframe models work in Hammer again, colored without a combo. Fixes Facepunch/sbox-issues#7215
Build shaders
Add needed modes to template shaders, this ToolsVis combo is the plague
Restore two layer depth prepass behaviour which seems to reduce draw calls somehow
vmdl will add animations as a proper source dependency, so they get uploaded ( #1741 )
Make sure turning direct/indirect lighting off still works on managed lightbinner layer
memdbgon.h doesn't belong in a .h file
Lightbinner layer managed
Fix ObjectHighlight.shader
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
Fix TreeView not passing skipEvents fully, trigger ItemsSelected at end - fixes Facepunch/sbox-issues#6845
Remove last few cloud references from core files
Make Join Game work through Steam
Depth downsampling -> managed render pipeline
Set TSPEC_TEXTURE_GEN_MIP_MAPS on RenderTargets with mips
Whitelist error event analytics
[ThreadStatic] AccessControl.Location because we test types in multiple threads and this was gibberish
Fix CameraComponent.ScreenNormalToRay
Always define vTexCoord2 by default
Shader rebuild
Expose category tree and package properties to package find results
Package category tree
WIP filter, allow discovering WIP games
Explicitly set fields/props to null when deserializing (#1728)
Obsolete HostSync, add SyncFlag, add code upgrade / fix (#1729)
This stuff shouldn't be public
Move Qt.Orientation to Editor namespace, LinkableSplitter uses it
Citizen/animgraph: add character_type enum & branches so that Citizen & Humans can use the same animgraph. Ongoing work.
Humans: convert Citizen animations on the ModelDoc side rather than graph side
Start using SceneRenderingWidget instead of NativeRenderingWidget for shadergraph https://files.facepunch.com/layla/1b1311b1/sbox-dev_v8vsdE0JhV.png
Only add query flag is property was set to true - otherwise remove the query flag
Fix SceneRenderingWidget not calling PreRender
Shadergraph: Fix preview ShowSkybox option
Fix undo for convert to prefab (#1730)
We need to explicitly unset PrefabSource by calling BreakFromPrefab if __Prefab is not specified.
Give some hitbox depth bias to capsule collider gizmo
Fix parsing <see> with langword / href
More unused render pipeline
Remove SceneSystemStats (snapshots for external debugger)
Begin migrating CRenderingPipelineStandard to managed RenderPipeline with RenderLayer & ProceduralRenderLayer (w/ callback). Starting with depth prepass layer.
Use custom mip filter that samples from neighbors for cubemapper
https://i.imgur.com/nn23dRG.png
Fixed NRE in code upgrader for HostSync in scenario where no sibling Sync is found
Citizen/animgraph: fixed broken crouch states (oops)
Remove legacy loop
Add ControlSheet.AddProperty for expression to easily add static properties
Add code editor control widget
delete preferences.build event
Title current code editor so it can show up titled in settings
Page general uses control sheets
Set tooltips for static control sheet properties
Page networking uses control sheets
ActionBasedSerializedProperty can provide attributes
Page scene view uses control sheets
Page notifications uses control sheets
Don't adapt ActionBasedSerializedProperty for this, create a ReflectionSerializedProperty instead
OpenPropertySheet -> OpenControlSheet
Shadergraph: Use control sheet for preview settings popup
Get rid of property sheet usage in widget gallery
CompilerPage uses control sheet
Move InputAction and enums from sandbox.system to sandbox.engine so they can be exposed
Add CustomEditor for NamedEditor "keybind"
InputActionPanel modal uses control sheet
Expose ControlModeSettings
Supported Control Modes uses control sheet
Move input actions back to sandbox.system
InputAction can't use control sheet yet, it exists sandbox.system and now it can't be moved from there to be exposed
Package references uses control sheet
Add FolderControlWidget
Standalone review page uses control sheet
Publish finalize page uses control sheet
Delete RuntimeAddonPage, not used anymore?
Project page uses control sheet
InputActionPanel uses input action proxy for now because we can't move the fucker
Block tool uses control sheet
Path tool uses control sheet
Delete property sheet cya
Fix exception in TreeNode.SetChildren
Order block tools, select current tool in combo box
Use WorldTransform instead of Transform.World in engine code
Remove remaining usage of Transform.World/Local
Add simulation space option for particle force https://files.facepunch.com/layla/1b1511b1/sbox-dev_wMFfk99UTS.mp4
Add Scene.Trace.Rotated to allow for tracing rotated boxes or capsules (this already worked with FromTo( Transform, Vector ) but it's not obvious enough because no one knew it was there
Drop model as static prop based on model archetype
Allow for inner feathering for EnvmapProbe in UI, same defaults for hammer equivalents of this
ggxcubemaphelper (cpu) is equivalent to cubemapper (gpu), increase sample count but use faster sampling and sample from first mip always
https://i.imgur.com/5UuaG0b.mp4
Sample from mips again and decrease sample count to not be absurd for our budget
More beards - human versions + malehead02 texture adjustments
Merge branch 'master' into SantaOutfit24-2
More unused render pipeline
Remove SceneSystemStats (snapshots for external debugger)
Begin migrating CRenderingPipelineStandard to managed RenderPipeline with RenderLayer & ProceduralRenderLayer (w/ callback). Starting with depth prepass layer.
Skybox material preview
https://files.facepunch.com/matt/1b1211b1/sbox-dev_M57SmAq1uF.png
Remove LAYERFLAGS_NO_APP_TILING (did nothing)
Remove r_kick_dependent_views_early
Remove "VrMonitor" attribute, this might add bloom to ScenePanel - if thats something we dont want it should be exposed in a more explicit way
OffscreenParticleView isn't a thing
Update help url
Fix toolrenderlayers having wireframe inverted on every layer
Remove ToolsWireframe from all shaders, delete vr_tools_wireframe.shader - shaders dont need special code to render as a wireframe now
Hammer/ToolScene wireframe overlays uses state override instead of ToolsWireframe
Hammer wireframe uses new state override and not ToolsWireframe
Drop r_show_hipoly_draw_calls
Remove ToolsWireframe mode
Don't repeat the same thing 6 times to wireframe a layer
Update developer help url
Remove r_use_fullsort_for_opaque, we always depth prepass
Add FillMode render state override on scene layers
Remove this hidden dynamic objects stencil
mat_wireframe doesn't use ToolsWireframe but overrides renderstate on standard forward pass, this should obsolete the mode
Drop IL verification since we compile every assembly from source on clients now
Dead cubemap rendering code
Remove unused r_tiled_rendering_depth_cull
Unused VR rendering layers (probably)
Keep version, we'll use it in a different way
vfx: remove unused HEADER { } carp
vfx: remove GetDefaultBlock which is randomly not used for any but MODES block, default modes = just Default() everything else is too magic bullshit
This seems bad
GpuBuffer obsoletes ComputeBuffer to prevent confusion that it's compute exclusive
* Non templated version because sometimes your buffer will have various types
* Usage flags can be combined now, e.g a buffer can be used as an IndexBuffer but also ByteAddress for compute shader
* Added additional error checking, exposed readonly properties for count/size/usage
* Added CodeUpgrader for ComputeBuffer -> GpuBuffer
* Fix Terrain materials buffer overflowing its gpu buffer
Be explicit AmbientOcclusion is ScreenSpaceAmbientOcclusion, attribute AmbientOcclusionIndex -> ScreenSpaceAmbientOcclusionTexture
Bindless shader API class
Shader functions can specify storage class (static) and specify inline without erroring now
GpuBuffer obsoletes ComputeBuffer to prevent confusion that it's compute exclusive, non templated variant added, additional flags can be combined, debug names, error checking added
GpuBuffer CodeUpgrader
Fix Terrain materials buffer overflowing its gpu buffer
Partial backport of ISceneObjectDesc::OnSceneObjectVisibleInView (Don't merge this, hacky temp allocation)
CSceneObject::GetCTransformUnaligned()
Forward+ Decals
* Decals get binned by the lightbinner from OnSceneObjectVisibleInView (all lights should start using this callback too)
* Tiled culling checks decals within each tiles frustum
* Decal::Apply( ... ) is used to mix decal's albedo, normal, etc. into surface
Add missing XeGTAO headers
Partial backport of ISceneObjectDesc::OnSceneObjectVisibleInView (Don't merge this, hacky temp allocation)
Forward+ Decals
* Decals get binned by the lightbinner from OnSceneObjectVisibleInView (all lights should start using this callback too)
* Tiled culling checks decals within each tiles frustum
* Decal::Apply( ... ) is used to mix decal's albedo, normal, etc. into surface
blendable: vertex paint tint masks apply per layer
https://files.facepunch.com/matt/1b2711b1/sbox-dev_GItra2hhLI.png
https://files.facepunch.com/matt/1b2711b1/sbox-dev_hO2CNKhDzx.png
Partial backport of ISceneObjectDesc::OnSceneObjectVisibleInView
Forward+ Decals
* Decals get binned by the lightbinner from OnSceneObjectVisibleInView (all lights should start using this callback too)
* Tiled culling checks decals within each tiles frustum
* Decal::Apply( ... ) is used to mix decal's albedo, normal, etc. into surface
fix nre, cleanup unused, order, CommandList.Release -> CommandList.ReleaseRenderTarget
Add Graphics.ResourceBarrierTransition supports transitioning Textures and ComputeBuffers states currently, e.g if you wanted to signal a resource should be readable in fragment after a compute write to it
Add Graphics.DrawModelInstanced with count for procedural instancing, document other instanced methods
Add DrawModelInstanced methods to CommandList
Add CommandList.Set for ComputeBuffer<T>
Can DrawInstanced a number of instances without uploading data
Need to download cloud asset references after we've imported resources not before
Fix GameResource assets not registering before loading startup scenes (and also compile assets), remove stupid Task.Delay hack?
Fixes Facepunch/sbox-issues#6942
Prebuild the menu package