20,804 Commits over 1,522 Days - 0.57cph!
ByteStream Rewrite (#1610)
* Added failing ByteStream stress test
* Rewrite ByteStream to use Span / ReadOnlySpan where possible
Start pending components before physics step - fixes physics step running before joints are created
Look for eligible types in ResourceControlWidget, so it works with inherited types (resolves Facepunch/sbox-issues#5609)
https://files.facepunch.com/tony/1b0211b1/sbox-dev_YJS6hP69DC.png
Fix SoundEvent.GetNextSound random not using the full range of sounds
Fix NRE in Collider.RebuildImmediately
DynamicSceneObject can take vertex span instead of one at a time
Process particles in a GameSystem, all at the same time, to benefit from multithreading
Fix NRE in TeleportKeyframeBody
Allow drag drop on ResourceControlWidget if the game resources are assignable
▄██▅ ▄██▍▅▅▆▍▊▋▌▍▍█▊▄▋▌▍
! ▋▄ ▊▋█▇ ▅▍▇▄▌▌▊▇▄▌▋ ▊▅▊▆ █▋█▆▉▊.▅▄▋█.▊▅█▋.▄▇▋
▍▉▄▆▌▌▌▍▆▉▌▊▍▇▊▆▋▆▇▆█▍▊▍▍▊▊ ▅▊▅▊ ▍█▍ ▋▉▊ ▍▊▍▊▇▇▄▇▇▌ ▄▄ ▍▊█ ▋▅▆▄
Fix Component being decorated with IUpdateSubscriber, IFixedUpdateSubscriber (making it useless)
Add start and end loop points to sound meta
Don't do MakeNameUnique() if we have > 100 siblings, don't always create a hashset
Lets cache TypeLibrary.GetTypes( t ) - and invalidate when things change - this significantly improves TypeLibrary performance
Completely remove the locking from Performance.Scope
Fix "Value cannot be null." when ControlWidget cannot be created for property
Benchmark fullscreen is borderless
Optimize performance scope to not lock, not create
Use custom implementation of .HasFlag for mostly unnessecary optimization ( .Contains() )
Micro optimization, use RenderAttributes.SetComboEnum<T> instead of SetCombo (avoid boxing)
Avoid creating a Func when getting friend state
avoid creating an array when iterating CircularBuffer
Fix player count in GameLobbyGroup
Fix warnings
This stops the creation of boxed steamids, somehow
Ensure we properly network ownership changes during network orphaned actions
Enum and List control widgets can't be edited when readonly
Keep project loading stuff together and make sure we load initial collision rules after project settings file system is mounted (Fixes Facepunch/sbox-issues#5739)
Closes Facepunch/sbox-issues#5566
Throw exception when sending RPC on non-networked Game Objects (Closes Facepunch/sbox-issues#5504)
Fixed potential NRE in AudioListener component when scene camera isn't valid (yet)
Added failing ByteStream stress test
Rewrite ByteStream to use Span / ReadOnlySpan where possible
Scene.RunTrace optimization (test)
Add Diagnostics.Allocations
Temporary allocations dock
Send allocation info with benchmarks
Fix some incorrect sound paths in surfaces
Force render settings for benchmark
Actually save the project list when adding a project to it
Add OnParticleDestroy, OnParticleCreate properties for actiongraph
https://files.facepunch.com/garry/6ee12c48-30bf-40f9-a246-301d48cd61a2.mp4
FPArms: shared jump/land/airborne subgraph + fixed _delta missing from some shared names
Fixed "Hidden" banner styling. Resolves Facepunch/sbox-issues#5746
Don't think ControlWidget if it's not visible
Add Style.HasBorder
ComponentEditorWidget default size mode
Margin.GetEdges optimizationj
Add Paint.SetFont, Paint.Rect (from Styles)
Add EditorUtility.Projects.ResolveCompiler( assembly )
TabWidget has a no text mode, icons only
Add experimental StyleWidget
Add custom inspector for Particle Effect
DockManager only looks for types with DockAttribute.
Fixes "Inspector" dock not being created if you had another class named "Inspector", ect.
Prevents errors when loading a project that either doesn't have a startup scene set or has their startup scene deleted
Only get transform once in SpriteRenderer OnPreRender
Set SpriteRenderer bounds to max component of 2D size
ForceFlushGPU before Flush RenderSceneToPixmap - fixes pixmap assert
Delete rendersystem/dx code
Remove phoneme extractor code from the 90s
Do draw opaque objects flagged with no depth prepass, also set correct behaviour for SCENEOBJECTFLAG_NO_Z_PREPASS on actual depth prepass layer
Envmap Ambient Lighting + Sky Envmaps (#1568)
Envmap Ambient Lighting + Sky Envmaps (#1568)
Update shaders with legacy ambient lighting padding
Add padding for LegacyAmbientLightColor, let's not make our lovely existing community games have red ambient color
https://files.facepunch.com/sam/1b2811b1/FLkIjvjdgH.png
Remove AmbientLightSH from lightbinner, Directional Light doesn't control ambient color anymore, this is a visually breaking change, I'll see to put a better replacement to existing things
Set skybox as global cubemap
Be able to sample cubemaps from any resolution, use diffuse cubemap as diffuse indirect illumination if no GI in scene
[Pick] Implement "GGXCubeMapBlur" filter on CPU, previously it did not work at all in CI since require RenderSystem which isn't ideal since it's the only thing that did so and is completely different from our Cubemapper GGX filter, this makes all filters consistent and much cleaner, remove Convolve Envmap shader
I want to start using GGX filtering on skyboxes but this wouldn't work on CI because of that requirement
Skyboxes compile wid GGXCubeMapBlur instead of Box filter, adjustments for GGXCubemapBlurHelper
Cubemap fog just takes material from current skybox
https://files.facepunch.com/sam/1b1511b1/sbox-dev_k6CScBsqcF.mp4
Make CubemapFog material still be configurable, take it straight from the skybox if it's null
Separate Ambient Light into it's own component from Directional Light, add upgrader for it
Use black cube if texture passed to lightbinner is invalid (eg non-sky material from SceneSkybox )
Fix World.AmbientLight, make flat ambient light lerp between IBL and what we have, make it artist accessible with ambientlight component
Delete these skybox vtexes
Remove convolve_environment_map.shader from shader ci
Don't change flTargetLuminanceOfCubemap, it's bullshit
Skybox envmap has lowest priority
https://files.facepunch.com/sam/1b1911b1/yipICq2VMI.jpg
Swap tools stuff that uses DirectionalLight.SkyColor to either IBL or AmbientLight
Better description of obsolecence
update shaders with IBL
Default ambient color on SceneThumbnails
Add padding to buffer
Fix IBL not applying to transmissive
Use faster Scene.GetAllComponents<SkyBox2D>() for fetching skybox texture on CubemapFog to not iterate over all gameobjects
Revert SkyColor to control ambient light on DirectionalLight again, but pipe it to scene's ambient light color
Sun prefab now comes with no skycolor ( Takes from IBL )