1,023 Commits over 1,127 Days - 0.04cph!
Update yoga src to latest HEAD (adds gap support and some opt-in experimental fixes for making absolute positioning behave more like web)
Get rid of old nuget yoga 1.5.0-pre1, replace with latest .net6 binary built from yoga#1207
Update yoga.vpc to build a DLL + build with /fp:precise otherwise the NaNs Yoga uses won't work
Compile yoga with $NO_STANDARD_VALVE_CODE so we can use our yoga.dll in tests without tier0 dependency
Fix Sandbox.UI.Test native dependency yoga.dll
Yoga sanity unit test
Fix Sandbox.UI.PositionMode not matching new YogaPositionType which has Static at the start now
Might as well support `position: static`
Default position is static and not relative, might break some ui where left/right/top/bottom have been misused w/o position: relative/absolute
Hook up row-gap, column-gap and gap css properties
Fix partydeck styles
glass styles can use gap !
Delete yoga.dll now it's compiled
Move Managed Tests to after native build - because we likely want some of the dlls to test
Build native before managed
Edited the wrong yaml
Merge pull request #716 from Facepunch/update-yoga
Whitelist `System.Type.Equals( System.Type )`
Whitelist compiler attributes required for C#11 required modifier
Keep box-shadow within the original scissor so it doesn't overflow
ui test: transform rotated + border-radius scissor test
ui: when rendering box-shadow never render under the box itself (using an inverse scissor rect) so transparent backgrounds look as they should
before: https://files.facepunch.com/matt/1b0811b1/sbox_l0kQbIIJ1c.png
after: https://files.facepunch.com/matt/1b0811b1/sbox_jVYco6DRg8.png
ui: scissor rects can have a transform matrix, scissor panels post transform position too - fixes lots of oddities with overflow: hidden and transforms
before: https://files.facepunch.com/matt/1b0811b1/sbox_6te0egX6cg.png
after: https://files.facepunch.com/matt/1b0811b1/sbox_BMeWLJ6w79.png
ui: add rounded corner scissoring (border-radius works with overflow: hidden)
https://files.facepunch.com/matt/1b0811b1/sbox_gnbMdfYYuJ.png
ClothingContainer.DressEntity disable trace and queries on clothing entities
Make sure symlink reload queue actually gets cleared, accidentally returned ref instead of ptr
Reload symlinked resident resources after loading runtime packages too
Fix Material ResourceId not being set so it networks properly
Never try to precache procedural models
Fix bad race on procedural models invoking OnModelLoaded without being properly set to procedural yet
Do standard weakref cache for each native resource class (repeated code isn't really avoidable here sadly), seal these classes, private constructors so you have to use e.g Model.FromNative( IModel )
Garbage collect on Client LoopEnd, eligable Resource classes were never getting collected and leaking their native handles
fix NRE on map uploads when the map addon contains skyboxes or prefabs
Force a reload of any resident resources that are or were symlinked, this is especially required for streamed resources to avoid a mismatch between header and file data
Store GameResources in ResourceLibrary instead of all Resources in Sandbox.Engine so resources get released properly on game shutdown
Every native resource (model, material, textures...) was getting held indefinitely even after game shutdown, this commit solves that by:
* ResourceLibrary will only hold strong references to GameResource, native resources will only have a weak reference internally this way they get unloaded properly.
* Sandbox.Tools gets it's own ResourceLibrary, doesn't piggy back from GameHost.Menu anymore
* Get rid of GameHost from Resources
Model.Loaded uses WeakReference to not keep models that have no references loaded
Cleanup coreclr patch a bit
Strip xbox code from filesystem
Strip all this whitelist bullshit from basefilesystem
Fix strong handle leak in Model.Get( IModel ) - you could get ref counts on a model resource over a million from 5 minutes of gameplay
Fix strong handle leak on Material.Get( IMaterial ), ParticleSystem.Get( HParticleSystemDefinition ), AnimationGraph.Get( HAnimationGraph )
Add -noamsi command line parameter for testing
Revert "Only create resource dependency on texture .meta if it exists"
This reverts commit 55e57df69e0f6335962a5923ef956b658e9e7393.
Only create resource dependency on texture .meta if it exists
Fix VR.Anchor not setting anchor angles
Remove this ancient source behaviour we've been keeping around that amplifies the Input.AnalogLook pitch by 1.5
Make Input serverside asserts a bit more clear
Input.AnalogLook and Input.AnalogMove are accessible serverside like everthing else in Input
Use CircularBuffer for InputHistory
Hammer remote packages use new .bin path, remove all the legacy support
Parallelize MapClass parsing
Only default VR.Anchor to Local.Pawn.Transform unless it's been explicitly set from a game - that way games can set VR.Anchor whenever and whereever they want
Make PerformanceStats.Timings.History use a circular buffer, this was starting to take a small amount of time as we collected more and more perf stats
Camera.FieldOfView is actually horizontal and not vertical 😳
Add a couple of events to [ToolEvent.MapEditor] for discoverability
SceneCamera.IsOrtho is SceneCamera.Ortho
Clarify Camera.FieldOfView is vertical and Screen.CreateVerticalFieldOfView converts horizontal -> vertical
Only suppress texture deletion and not texture loading during managed render layers, fixes hangs
Backport latest texture manager changes from Valve, fixes for race conditions in async hookup jobs
Suppress texture frame updates for render hooks, fixes bound textures with no references getting deleted before the frame fully ended
Revert ScreenEffects workaround from not being able to Material.Load within RenderHook
Fix leaky strong handle from RenderTools.RenderScene on unused returned ITexture
Cleanup and strip native postprocess pipeline and shader, fix dx11 validation error, remove unused combos, features & attribute - remove unused convars: r_post_fxaa, r_post_vignette, r_post_film_grain, r_post_mirror_horizontal, r_post_mirror_vertical
Maps can use entities from addons tagged "map entity", these addons are mounted for the map independent of game and are accessible from Hammer entity tool
CShapeManager: all of this should be const auto&
Can we stop pushing `#pragma optimize("",off)` to master
aoproxies: fix crash when a non-anim sceneobject has bones and aoproxies, the game used to override sceneobjects to be anim so this code made assumptions
aoproxies: optimize loop over aoProxies by ref instead of copying
Give Hammer asset browser object name and icon again
Make Window.StatusBar able to handle late initialization of statusBar() - fixes Hammer asset browser assets disappearing due to native ptr in StatusBar being null
Remove DisplayInfo.For cache, it sucked hard under parallelization - after thinking about the best way to do it, it doesn't need to be done really.. Can use TypeLibrary.GetDescription<T>() instead where it's already cached
Fix Hammer Asset Browser not creating
Update Facepunch.SymStore to .NET 7
More diagnostics for TestAccessControl and OnAddonsCompile with scopes of each stage
Hammer: Selection API only supports object mode currently, fixes crashes using it when the active selection mode is non-object
Fix compiler refs to System.Security.Cryptography, in .NET 7 they've merged the 5 dlls into 1
Fix handle leak in RenderTools.ResolveDepth/FrameBuffer causing huge vram leaks when using glow
Actually hook up a count for TextureArrayBuilder to work..
Don't obsolete Texture.CreateArray, 2d texture arrays and 3d textures aren't the same thing
Fix SceneSunLight using invalid native pointer
Fix not being able to load maps by path, usually from launching map with Hammer or building cubemaps
Don't cock up MainAssetBrowser with double spacing
Hammer: Make default Asset Browser the C# one, label legacy as legacy and tuck it away in View -> Toolbars
Add Hammer specific locations to asset browser for Selected, In Map, Prefabs
https://files.facepunch.com/matt/1b2911b1/sbox_CTSLP9Ccz5.png
Hammer API: Add event Selection.OnChanged which fires when your selection set changes
Fix crash with Hammer.MapAsset when there's no map asset
Hammer Asset Browser: Add @selected and @inmap tag filters
https://files.facepunch.com/matt/1b2911b1/sbox_zPl9iqmF1Z.png
@selected shows map mesh materials too
Clarify addon's PrimaryType field