1,664 Commits over 1,188 Days - 0.06cph!
Materials store the shader version they were compiled against, added Source( ShaderVersion ) for shaders to query what the current material was compiled against for backwards compatability
Blendable: Use hemi octahedron encoded normals same as complex for better quality, remove a redundant texture lookup per layer, remove the 5th unused blend layer because wtf
https://files.facepunch.com/matt/1b1811b1/mspaint_qIv6MYpn8Y.png
2d sdf lines, rects, arcs with analytical anti aliasing (lines are most complicated, other shapes are easy, no instancing yet, can be collapsed into 1 shader for every shape)
Fix failing to start game if VRSystem returns nullptr for extensions
Material.FromShader uses path and not just name - allows shaders of same name in different folders
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
Our shader includes are a cyclic dependent mess, I have no idea how to not make this simple thing simple
Partial backport of ISceneObjectDesc::OnSceneObjectVisibleInView
CSceneObject::GetCTransformUnaligned()
Delete random Hammer shit
Don't use shadercache if we're force recompiling. Output total time.
Leftover log, useless include
Fix race condition with GetTemporaryFolder() where we'd end up with a .source2.source2.source2 folder
Mount cloud maps from snapshot too (repeated logic from MapInstance bleh)
Add referenced resources in the Scene to the vmap. Fixes Facepunch/sbox-issues#6839
Tripmines parent to what they were placed on (moving platforms, doors, etc.)
Explosions mark DamageInfo.IsExplosion = true
Tripmines are damageable, shooting attributes the kill to the shooter, explosions cause a delayed explosion
Look for damageable components in parents instead of children, needed for tripmine children colliders and makes more sense?
Hide/Unhide works on Hammer GameObjects
Resolves Facepunch/sbox-issues#7200
Delete all this dota grass code
Add dump_scene concmd, puts a clone of the current scene onto the clipboard for debugging
MapInstance: Don't delete all our children we've just received from the network snapshot
Mounted VPKs are part of the snapshot, we need these mounted before we deserialize the received scene / networked objects
MapInstance doesn't load networked hammer gameobjects on clients as they'll be in the snapshot
ToolRenderLayer shouldn't force Forward mode as it disables face selection and other crap
Hammer wireframe is just normal render pipeline wireframe now instead of all the special case layer stuff
ci build-menu uses new path
MenuBuild uses ToolAppSystem so everything is set correctly like Application.IsHeadless which was likely stopping it from compiling new menu dlls
Hammer Wireframe Overlay: white wireframe color works again
Wireframe mode is white in game/scene again, fix depth test being disabled in scene, also bind expected lighting constants
Fix invalid depth comparison sampling on well known 16 bit textures by targeting D16 and sampleable flags, these textures are used in place of the shadow depth buffer when shadows are disabled
▌▆▌ ▌▊█▅ ▅▆▆▉▋ █▉ ▍▄▄█▋▌▊▋ ▊▄▆█▇█ ▄▇▋▆▇▍▆▇
▄▄▅▉▊ ▌▆▊▌▅█▅▍▌▆▅▇▊█▊▅ ▄▋▅ ▅▇▍▊▄█▋▇ ▍▋█▌▊▇▇▌▇▌ ▋▅ ▅▆▍▋█▌█▊█▆▍ ▍▆▍▇ ▇▍▉▊'█ █▄▆▆▇▇ █▄ ▇▊▆▆▇▊, ▍▍▇▅▅ ▅▄ ▄▍▋▋█▊▊ ▄# ▍▍▌▆▇▊▅▄▋ ▇▄▇ █▇▌ ▍▊ ▊▉▄▇ ▄▋ ▇▉▇▇▅ ██▍ ▋▌▍▇▊█ ▄▄▍▌ ▌▊▌▄▋▉▋▅▋▄▋
▄▊▊▍▆█ ▊▍▇▄▊▇█▇ ▉█▍▅ █▊▊ ▉▅ `▉▇▍▆.▋▋▊▍▊▇▅▊()` ▅▆ `██▄▇.▄▊▋▆▆▇▋▆()`
▄▋▄▇█▅▉ █▅ ▉▆▅▍▅'▊ ▄▍▍▆▊ `▇▆▉ ▊█▆▉▌█▆▅ = ▉▉▉▋.▌▍▇▍▄▅▋▄; ▌▆▍█▍▍▋▇()`
▄█ ▋▄▋▄▇▊.▊█▍▉▉▌▌▌▉▇█▌▌▉██ ▄▄▆██ ▌▍▌▅▊▋▋▍▄▍▋▌▇▉▍▅▉▆▋▆▊▆▋▍ ▌▉ █▍▆▄▋▌▌▆▋ █▅█▌▄
▅▆▅▍▊▌ ▆▊▍█▍▍█ ▄▆ ▅▉▌█▅▌ ▆▄ ▅▆▉▉▌▍▆ ▍▌▌▋█▄▉▅ █ ▅▊▋▌▊▅ ▄▇▅▉ ▉▋ ▉▇▄▍▍▆▍
! ▊▄▇█▊▊█▅▄▋▉ ▅▊█▇ ▆█▄ ██▄▆▆█ ▆▇█▇█▋▋▉ ▌▉██▌▆▅ (▅▅: ▍▍▊▉█▍▇)
▆▅▉▌▉▋▍█ ▋▍▅▆-▆▅▊▆▍▍▆ ▅▄▍█▆▍▆ ▆▄▆▊ ▌▌█▅ ▄▇▆ -> ▌▄▄ ▊▍▊▌▅ ▌▍ ▄▇▋▋ ▊▅▌▇▇▊▇
Obsolete GpuBuffer.UsageFlags.Counter, Structured and Append both have it automatically, this flag was only for D3D11. Both VK and D3D12 behave the same way for this.
Whitelist System.IParsable
Closes Facepunch/sbox-issues#7253
Whitelist System.UInt128
Closes Facepunch/sbox-issues#6892
Whitelist a few assembly attributes a library was using
▍▄▌▌▅█▍▉█ ▆▊▇ ▊▍▌▊▋▉▄▍▍█▆▄▅ ▅▌▊▉▇▋▅▍ █▇▌█▊▉▊▋ ▇▄▋▊▆▊▇▉▋▋
▇▉▇▌ ▌▄▋▄▌▇▍█.▆▇▇▉▊█▌▄▆▆█▆▊▍▉▉ ▆▇ ▌▌▍▆▉▊▆▆▋▋▌▍▆
Vulkan: Structured buffers also have a UAV hidden counter
Add GpuBuffer.UsageFlags.Counter for usage with structured buffers
Enables IncrementCounter and DecrementCounter in HLSL
Can also use GpuBuffer.SetCounterValue and GpuBuffer.CopyStructureCount
These both previously and still do work with Append buffers
Added default 0 offset parameter to GpuBuffer.CopyStructureCount
█▄▆▇█▍▉█▄ ▅▉▆▍▊▆.▆▅█▅▊▌▌▋.▆▉█▇▉▌.▉▊▆▊▋▉▌▅▇▍ & ▄▉█▅▄▌▇▉▆▌▋ & ▌▉▅▊▍▊▆▄▌▄▊▍▉█▉ - ▇▊▆▄▇ ▅▋▉ ▅▅█ ▊▋█▅ ▌▅▊▄ ▋▅▄▍▋▍▊▄▉▌ ▇▉▌▋▉▉ ▋▇ ▆▉▊▄
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
Adjust contest meta tags, add longer description field
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