20,855 Commits over 1,522 Days - 0.57cph!
Don't just use ClassName to serialize types in ActionGraph
Fixed Facepunch/sbox-issues#4869
Text tabs quick start
Working fixed with tabs
Work in tab stops during line layout
Tab stops are font width * 4 spaces wide
No need to collapse tabs here, we do it with WhiteSpace
Fix tabs not always lining up, use measured space width
Fix tabs not always lining up, use measured space width
"Reset to Default" in the editor will look for DefaultValueAttribute, then get proper instance default intead of just bailing
No need to collapse tabs here, we do it with WhiteSpace
GatherVisibleLightsGPU
Move depth prepass to be the first pass of everything, we'll use it on lightbinner for light culling from now on
Do lightbinning for light culling on render thread when a layer first wants to request lights, guarantees we have a depth pyramid by then
If we are on a render thread just do a simple flush for ForceFlushGPU(), we just want the GPU to finish it's work, not clean up things
Run lightbinner calculation in render thread & actually on lightbinner layer
Light culling tests with depth & light radius on compute shader
Flush rather than ForceGPUFlush on CReadGPUBuffer::WaitUntilRead()
Finish light visibility test shader, rewrite to be cleaner, temp pass PerViewConstantBuffer_t for g_vDepthPsToVsConversion on layer
Tab stops are font width * 4 spaces wide
Work in tab stops during line layout
Hash view ID to FindOrCreateFrameBufferScratchTexture as well to solve collision when we have multiple views with same resolution, eg with splitscreen
Fix dynamic reflections and AO in viewported views
Add compiled shaders for viewport shading fixes
Texture barriers for SSR in multiple viewports
Remove this for now, sus is later
When OwnerTransfer is Request, make actual requests to the host for Drop/Assign/Take ownership and if host approves, then host will send the messages to everyone to take that action. Each message will then validate if was received from host
Default CanSpawnObjects to true for now
Make sure CanSpawnObjects is synchronized to clients when set from host via ConnectionInfo
Some renaming. Set OwnerTransfer direct on GameObject instead of method on NetworkAccessor
Close context menu on line edit submit
Put all generated component types in one assembly
Fix component weirdness when cloning disabled objects
Add isolated CallbackBatch, use it when cloning. Fixes instances when cloning in OnEnabled etc would cause weirdness
Implement calc for CSS, make it so that dynamic units (vw/vh/expressions/etc.) all update correctly
https://files.facepunch.com/alexguthrie/1b1911b1/sbox-dev_ADiqfZ9hI2.png
For sbox/issues/421, sbox-issues/issues/4753, sbox-issues/issues/723
Can a connection create objects?
Send network destroy even if DestroyImmediate is called
Ownership authority flags
Let GameObject have [Sync] too (test)
Reorder enum, add [Expose]
Change up logic for can create objects - only check if we have a source
Default CanCreateObjects to true for now (this is current behavior)
Initial implementatior for ownership authority
Use NetworkAccessor for changing ownership authority. (Temp? Depending on review) don't use TL for set prop for Sync Vars
Initial implementation of Rpc authority
Remove a test log
CodeGen static array for attributes on a CodeGenerator method/prop now marked as [SkipHotload] and readonly, so they do update when changed
Make it CanSpawnObjects
CanSpawnObjects settable only by the host
Launcher: creating a new project uses Ident as the folder name instead of Title
In-editor property creation: use const value as default
Add some standard map entity definitions that we have loaders for: prop_physics, prop_animated, env_sky, env_gradient_fog, snd_event_*,
I hate this double launch solution
Rename launcher project
Lock project row button when launching
Mixer scales itself based on its own volume, so it is reflected in metering
Context menu text entry cleanup, can edit graph inputs / outputs again
Protect against 0 width/height video modes and assert
CHostedWidget::SizeToParent() don't change the video mode if height() is 0
Some PredictBestType fixes for operators
Fixed legacy Get Game Object node appearing in node list again
Some local instance node grouping cleanup
https://files.facepunch.com/ziks/2024-02-19/O0b83KRmbo.png
Early error when trying to open an invalid project
Forgot to force add this dll
Launcher only launches a single instance of each project
Tweak mixer control
https://files.facepunch.com/garry/30a69c23-fadf-426c-bb78-a4152a2b861d.mp4
Lock the mixing thread when hotloading
We can review this later, since I suspect if we make the active voice list ignore hotload, everything will be fine anyway.. and it would be nice to have sounds keep playing.
Can a connection create objects?
Send network destroy even if DestroyImmediate is called
Ownership authority flags
Let GameObject have [Sync] too (test)
Reorder enum, add [Expose]
Change up logic for can create objects - only check if we have a source
Default CanCreateObjects to true for now (this is current behavior)
Initial implementatior for ownership authority
Use NetworkAccessor for changing ownership authority. (Temp? Depending on review) don't use TL for set prop for Sync Vars
Initial implementation of Rpc authority
Remove a test log
CodeGen static array for attributes on a CodeGenerator method/prop now marked as [SkipHotload] and readonly, so they do update when changed
Make it CanSpawnObjects
CanSpawnObjects settable only by the host
AudioSampler can sample multi-channel
Tweak sound occlusion ignores
Create runtime buffers for dynamically created meshes so they can create trace data, allows them to be scene traced
Forward command line between sbox-dev and sbox-launch
Add Occlusion , OcclusionRadius , DistanceAttenuation to SoundEvent
Early out of CreateToolsTriangleList when there's no runtime buffers but also assert because ideally this should happen
Steam audio debug convars
Add SoundHandle.SpacialBlend, Name and change how they get disposed
Fix sound cutting out when spatial sound played inside head
Fill out Sound.Preload
CMapAssetType::CalculateDependencies suppress pointless upconversion of vmaps so we don't spend 30+ seconds doing so on initial load
Binds
create mixer - can play sounds!
strip vmixtool
Remove unused args
Add some more c# compatible funcs to CAudioMixBuffer
Add AudioBuffers, MixBuffer
Audio processor basics
Route SoundHandle through managed system, use speaker volumes etc
Play sounds from the point of view of the scene camera if we're not playing the game, and this window is focused
Strip as much as I dare right now
Add steam audio
Update steam audio binaries
Add steam audio binds
Add BinauralEffect processor
Steam audio scene system
Apply direct
Create phonon.pdb
Reflection works! 😅
Latest
Clean up
Fix menu sounds not playing
Refactoring, making internal
Fix warning
Fix tests
strip unused
Remove unused
Fix launcher layout to stop people obsessing
Silently ignore delete error when removing unknown cloud file
Fix NRE when setting convar
Fixed file not found when reading asset json
If a model has no meshes, show error model instead
Fix text cannot be empty exception in Graphic.Draw
Assert on AssetType not null
Show stall source to everyone