13,941 Commits over 1,583 Days - 0.37cph!
Set InputState.Ignore if game isn't being played
CMaterialSystem2::GetVfxPlatformType default to SPIRV
Remove HLSL/GLSL compatibility funcs
Delete unused Gather4Red macros
Use normal precise keyword
Piss off Dx9Sampler
What the fuck is SV_ScreenPosition, delete pre SM 4.0 semantics
Unused tessellation macros
vr_cubemap_fog include common_samplers
Fuck these Front/BackFace macros
Useless redefines
vfx_vulkan: actually fail if any of this validation fails, add another validation check for binding ids
vfx_vulkan: improve error feedback
Remove domain/hull shaders (they weren't working, Valve already deleted them, compute better)
vfx_vulkan: never disable optimizations, this was fucking spirv-reflect and the compile time difference is minuscule
Don't have a different fastMode shader compile, it doesn't do anything now
Matching register offset check in AddSamplerStateVariableToCommandBuffer, same as SetSamplerStateValueFromVariable (prevent oob write)
Bind some default shader resources to prevent crashes, this stuff shouldn't be hit normally so warn/assert it's likely solved by a shader recompile otherwise yell at me
Add BodyGroups and MaterialGroups in Prop Component
If collision source can't get game object from collider, try to get it from body
Add collision events to ModelPhysics
Mesh Editor: Add snap to vertex
Mesh Editor: Add edit logs to face operations
Mesh Editor: Clear selection on tool disable
Mesh Editor: Add new faces to selection on DetachFaces
Mesh Editor: Add snap edge to edge https://files.facepunch.com/layla/1b2311b1/sbox-dev_47gpBlC2me-00.00.00.000-00.00.21.192.mp4
Don't switch to object tool after creating block
Block tool saves last material used
Add PrimitiveBuilder.Material
Mesh tool selection and block tool are inspector widgets like they should have been in the first place
Clean up mesh control widget
CreateModelFromPolygonMesh add mesh collision automatically
Add modeldoc PhysicsMeshFromRender
Physics hull from render works on render primitive meshes
Add RenderPrimitiveMesh to modeldoc (not created in editor) that can serialize a CModelMesh to allow for inline meshes in vmdl
Add SaveToKV3 and LoadFromKV3 to CModelMesh
Add EditorUtility.CreateModelFromPolygonMesh
Add button to MeshComponent to convert to vmdl
Allow alpha on MeshComponent
ActionControlWidget: show graph errors in widget
https://files.facepunch.com/ziks/1b2211b1/sbox-dev_DUsekC8GAK.png
Even nicer stack traces for logs / exceptions in Action Graphs
https://files.facepunch.com/ziks/1b2211b1/sbox-dev_pFRBSK1ykL.png
Whitelist common_samplers.fxc (hate this)
PresentYUV420Texture sets its sampler state (this whole func is manual?), fix random crash from using an unbound sampler
Revert verifying bound samplers & images until I fix these bad bindings
Debug string for CTextureManagerVulkan::GetTextureResource
Whitelist some more common exception types
Vulkan: Verify bound samplers and images
Nicer exception logging / stack trace for Action Graph exceptions
Push EditorNodeLibrary in Asset.TryLoadGameResource()
Clean up opening editor for a given action graph
Implement inspecting action graph elements
Make sure ActionGraph GUIDs are unique too
Make sure embedded expression graphs have an input node
Fixes Facepunch/sbox-issues#5253
Hide input node for expression graphs with no inputs
Push NodeLibrary scope for ActionGraphResource
Facepunch/sbox-issues#5244
Make sure NodeLibrary scope is pushed when deserializing components
Facepunch/sbox-issues#5244
VFX_MAX_SAMPLERS is 16 (matches VFX_MAX_SAMPLERS_PER_STAGE and RENDERSYSTEM_MAX_SAMPLERS ) - there is no reason a shader should have more samplers than this
These sanity checks aren't sane, textures aren't samplerstates. A proper sanity check already exists in CVfxVulkan::CompileSource
Use more common samplers for volume fog, vr lighting. Add g_sBilinearClamp & g_sPointClamp common samplers
Fix error texture spam by making sure "EnvironmentMap" is always valid
Dark mode non editor window
Vulkan: Aftermath is opt-in with -aftermath, costly callstack info with -aftermath_full
Recompile sprite shader
CreateModelFromMeshFile uses modeldoc directly to create the document and save instead of using a vmdl template. This has huge potential now that I know it works.
Don't check require component while deserializing, wait until post deserialize
Warn Nvidia driver 551.23 for known issues
Stop compiling rendersystemdx11, remove -dx11 switch
Clean up IRenderHardwareConfig no need for all this DX8/360 crap, remove dxsupport.cfg override
vfxcompile: stop compiling dxbc, remove vfx_dx11
Remove "Compile Optimized Shaders", spirv-opt always runs
Set bindpose transforms before applying physics bones
ModelBoneTransformProxy.SetWorldTransform needs to set the bone transform local to the renderer transform, fixes bones blowing up when moving them in editor
Parse commandline properly to prevent projects with `-test` in the name breaking
sbox-issues/issues/5208
Test for multiple keyframe percentages (sbox-issues/issues/5168)
Support multiple keyframe percentages
e.g.
```scss
@keyframes tilt {
0%, 10% {
transform: rotate(0deg) scale(1);
transform-origin: center;
}
}
```
sbox-issues/issues/5168
Vector2Int, Vector3Int
sbox-issues/issues/4995
Allow avatar tint editing
Temp comment out this line to fix tests
Object Snapshot Refresh (#1500)
* Initial commit
* Component id + prune those for refresh as well
* Serialize id properly
* OnRefresh
* Fix refresh for bones
* Revert comp ids on this branch
* Use Id not __id as that is what was settled with for Component Ids
* When a component is added to a GameObject after it has been network spawned, and it has Sync vars we should register them with the network table
* Don't do on the root though save that for the multi-comp PR
* Include latest table snapshot with full refresh. Update to support __guid
* Undo this bit
* Added Connection.CanRefreshObjects permission (def: true)
* Add checks for CanRefreshObjects to Network.Refresh() and when OnObjectRefresh is called
* Register properties recursively when sending network refresh or receiving one
* Test to re-register Sync props after Network.Refresh
* Make docs clearer
* If a Component isn't valid then just set the property anyway for a Sync var
* By default, clients (except host) can NOT refresh network objects. Host can change this with Connection.CanRefreshObjects
* Some additional validation checks
* Better logic
* Fix issue with nested types not having correct identity hash for wrapped property codegen
Can switch between variants
Remove unused
Remove buttons
Show icon if item has alternates
Clothing container stores height
SkinnedModelRenderer stores animgraph params, applies them OnEnabled
CitizenAnimationHelper - make Height nullable
Height option on avatar, can mess with and annoy citizen
Normalize clothing before applying
Reset input config in menu
Remove unused
UI system gets game buttons when no game is loaded
VSync menu option
Change Json.PushNodeLibrary() to NodeLibrary.Push()
Call NodeLibrary.Push() instead of Scene.Push() if HostScene is null
Fixes Facepunch/sbox-issues#5244
ModelCollider uses mass and damping properties from model physics parts
Check if aaquality is a valid enum, users are likely to have outdated settings
Don't give gizmo mouse focus when it orbit mode
Better warning if we can't find ITagset
Fixed ManualHitbox.HitboxTags being uneditable in the inspector (fixes Facepunch/sbox-issues#5231)