1,025 Commits over 1,127 Days - 0.04cph!
Fix asset spray tool model selection not working
Native can set managed asset picker initial search filter, material editor uses this for _color shit filtering
fuck off mysql_wrapper
Can right click textures for managed asset menu in met
info_cull_triangles .fgd -> c# editoronly def
Fix oopsie on info_overlay
visibility_hint .fgd -> c# editoronly def
Clear a bunch of these native -> nice conversions
info_overlay editor only c# definition, remove .fgd entry
info_notepad editor only c# definition, remove .fgd entry
remove func_instance fgd, unused
Trim some fat from the .fgd
Delete info_spawngroup_landmark & info_spawngroup_load_unload, never worked and we'll think of something better after meld
Delete info_dynamic_shadow_hint & info_dynamic_shadow_hint_box - unused
Delete env_spherical_vignette
Update Microsoft.CodeAnalysis.CSharp 4.6.0 -> 4.7.0
Allow C# ref returns
Delete vmpi completely, hastily removed from vrad2 (should be replaced with vrad3 really)
Restore AssetBrowser property attribute editor
Remove native assetbrowser and replace all instances with our own asset picker ( orgs/sboxgame/discussions/3940 )
Hammer: asset spray randomize material groups
Model path collapse can be undone
Fix AmbiguousMatchException in string.ToType
TriggerTeleport: retain scale
Warning for ambiguous GameResources
Remove reference type check from NetWrite.Write<T>( T[] ), we handle it in the call to NetWrite.Write<T>( T ) whilst handling strings and shit
Fix error in VROverlay dispose
Fix FGDCurve with ToType
Hammer: move particle drop target to C# support cloud particles too
Don't use partial package for map view drops, unreliable package type
Add Editor.MapDoc.MapStaticOverlay
RenderAttributes.GetInt return type should be int not float
Hammer material drop target can do static overlays, rework so you don't need explicit tags on asset.party
Dragged static overlays use material mapping size
Fix crap overlay angles from normal
Hammer: Add extended box gizmo handles as a saved option
https://files.facepunch.com/matt/1b1611b1/sbox-dev_aoNTlauVjt.png
▆▄▍▉▆▋ ▊██▄█▄▆ █▄▊▊▅▌▍▉█ ▆▌▇▊▊▅▋▇▋▋▉ ▍▉ ▌▅▋▄▍▊▉▌▅▆▍▆▅▅█▋▅█▌▆▋▋▄.▅▉▅▉▊▄, ▇▊▉▇▍ ▅▉ ▌▄▌▆▍▊▅▊ ███ ▍▇▊▊▆▊▊ ▋▅▄▊█▌ ▅▌ ▋▌▉▇▌▆▄▍
▋▋▆▇▌▌▅▍▆▊▊ ▆▉ ▍▇▄ ▅▉▋▉▇▆ ▅▉▆▄▋▉▉ ▉▇█▅ ▌▅▌▇▅▍ █▍▆ ▆▄ ▋▄▌▅▄▇▊ ( ▊▋▊▄▉▊▋/▄▋▄▊█▋▇▆ ▅▋▋█▋▄▊ ▇▊ ▅▍▄-▌▆▅▊█▅▍ ▊▋█▋▊▆▊▄▅▇ )
Make sure CPipelineCacheManagerVulkan::PreShutdown() is called
Vulkan: Stylistic code updates, make diffs easier
Hammer: Remove legacy asset browser 👋
Revert "Fix AddBlitTextureToTargetLayer not blitting correctly if dimensions are different"
This reverts commit 076e225cae9b15bffce9a6c45e37a4ec49cb89b4.
RenderTools::Draw don't reset the bound transform, but make sure it's set in CManagedRenderLayer before passing to UI.. Not great solution overall
vulkan: more VK_EXT_extended_dynamic_state fixes
UI VertexInput should only have nInstanceID with D_MULTIVIEW_INSTANCING
VK_EXT_graphics_pipeline: validate pipeline descriptor sets before draw
Vulkan: Remove AMDBindVertexBuffersWorkaround (fixed in 2018)
RenderTools::Draw: Add BindTransformSlot for an identity transform ( In future this should probably be CSceneSystem::BindIdentityTransformAndInstanceIDBuffer )
CRenderContextVulkan::BindVertexBuffer - mark it as used
vulkan: set primitive topology when using VK_EXT_extended_dynamic_state
Tool vis works in ScenePanel and anything else that uses Graphics.RenderToTexture
https://files.facepunch.com/matt/1b0111b1/sbox-dev_gjSS0HmRRF.png
Fix Mouse.Delta not working causing dragging in UI not to work too
▍▊▅▄ ▄▍▉█▆█.▌▋▉▋▅▇▇▆▇▌▆█▉▋▌▇▇▍▇▉▆▍▆<▉> ▋██ ▉▊▍▉▋▋▍▌▄▅█▆▊.▆▉▋▋<█> █▅▇▆▊▊▉ ▄▊ ▆▌█▍▍▋▍.▌▉▇▇█▋▉▌▋▅▌▋▊▇<▋> ▆▉▅ ▆▇▄▆▄▇▍▊▅▋▄ ▊▅ ▉▉▋█▍█▇▍▋ ▉▉█▉▌
▌▇▇█▉▌▌▊▇▌ ▉▉▍█▌▉▌▌▅▍ ▆▆▍▌▋▌▆▆█ ▌▉▌, ▉▉▅▆ ▋▆█▋▇▍ ▅▌▍██▍▄▅▊▊▆▉▉.▉██▋ ▋▊▉▅ ▉▇▊ ▄▇▆▊▌▉ ██▉▇ ▄▅ ▍▇█▆▆'▆ ▅▌▊▍▄▉▌ ▇▉▋ ▅▌▋▊█▆▇▄ ▊█▇▅ ▆▌▍▆
ComputeShader.Dispatch: Remark about thread group size being automatic
CRenderThreadDx11::OnReadBuffer: staging buffer needs to be the same size as the buffer to read, otherwise partial or offset reads silently fail
SceneModel.SetMaterialGroup -> SceneObject.SetMaterialGroup - dunno how I'd fucked this
ILHotload runs hotloaded event
foliage shader: transmissive features (transmissive in general seems fucked though, one for sam though)
If -project was already added but inactive, make it active
Stop opening cloud menu for -project launched games
ComputeShader use Material.FromShader, support using resource paths e.g new ComputeShader( "shaders/cs_compress.shader" );
Don't call Environment.Exit on ProcessExit, but make sure we still flush managed SentrySdk just before TerminateProcess
Add ComputeBuffer<T> class for creating, reading and writing GPU buffers for usage with ComputeShader
Structured buffers, byte address buffers and append structured buffers are all supported.
https://wiki.facepunch.com/sbox/Compute_Shaders
Ignore some mega early IME WM events until the engine is initialized, should fix Proton crashing at startup
Handle exceptions when using -project
Native Plat_ExitProcess calls managed Environment.Exit, this way AppDomain.ProcessExit events will always execute such as to flush Sentry events
Move bootstrap error dialogs to managed, display exception and make sure it lands in Sentry
Remove default pitch * 1.5f from Entity.BuildInput, just something we kept moving around from Source native
Make Package.IsMounted() work clientside on listen server hosts
Update all entities network hash after a server package has been installed - sboxgame/issues#3635
Adding a new server package would correctly change the DynamicAssemblyHash
on both server and client, however all current entities would still have
the old DynamicAssemblyHash.
This would mean the clients would receive no [Net] updates for this entity.
So to fix this we explicitly reset all entities network hash with
Entity.UpdateAllNetworkHash() on OnServerPackageInstalled.
Reinitializing the network tables would've also worked but would be
wasteful since we know all our exisiting entities have not been changed
unlike if the DynamicAssemblyHash were changed from hotload
Make !activator work for target entity on outputs
Remove unimplemented procedural entities !caller, !player, !game_mode from combo box
Entity IO: !game targets the GameManager so you can have [Input]s on it
Make sure log files use process path since CurrentDirectory is too early from getting set here
All the stuff I just missed with .addon -> .sbproj, can still add inactive .addon and have it rename, don't do -project content projects as if they're games
.addon becomes .sbproj (auto renames), editor creates file association, rework -project make it simpler
https://files.facepunch.com/matt/1b1911b1/explorer_Os0Tf2Y8l7.png
Fix crash when dragging cloud models quickly in/out of MapView
Don't spam Draw: No Material Mode? from RenderTools::Draw, it's valid for there to be no valid mode when you're under tool vis modes
Trace.RunAll() - return empty array instead of null for no results
Fix copying text throwing exception
Don't release jump list object unless it's succeeded (should fix crashes on Proton and maybe weird Windows setups), release another thing too
Shadergraph: only compile preview shader for the current render API
ShaderGraph: Use .source2/temp folder that is actually mounted instead of absolute path shaders, these go properly through the ShaderTypeManager and get the right offsets then
Can compile Vulkan shaders on shadergraph / shaderhook now without crashes on DX11 🤯