17,138 Commits over 1,308 Days - 0.55cph!
gaussian_bloom_blur compiled material to fix bloom on dev builds
hunch satisfied, fuck steamworks
Upload to default branch (not staging)
Fix NRE
more NetworkTable unit tests
Lift restrictions on Sync var types (it'll error now instead of silently ignoring)
Add GameObject.NetworkSpawn, obsolete Network.Spawn (redirect)
Fix NRE
Split heartbeat message into ping and pong
Exception wrap INetworkListener calls
Move FriendsListModal
Map list right click menu
Fix NRE in ClothingContainer.Apply
Transition cards in
Remove unused
These updated after a full resource build
Package updates
Update packages
Fix loading screen not being interactive
Fix imprecise degrees <-> radians which was causing bad quat <-> euler
Rotation.Angles(): at singularities pitch should always be +-(π/2)
A few more tests around euler angles at singularities
Time out if we can't connect to a host when joining a lobby
Delete all vmat_c except a few required ones - should build correctly on CI since contentbuilder fixes
Registering textures here shouldn't be needed anymore
Layout and some functionality
Renames + new rect view
Translate view based on zoom factor
Focus point zooming
Apply factor to zoom
Grid toggle + size, Preview
Temp properties
Active Material window
Material Reference > Active Material
Scaling preview better
Center better
Do grid and material in a less stupid way
Clean up Active material panel
Short cuts for grid
better focusing
context menu
preview plane sized to material size
Open + GetDependants from rect
Align preview better
Control mode
Preview window
Less spaghetti on project initialization: only load user projects in editor mode, add & compile built-in first and only error then, remove dead code paths
ActionGraph: Automatically mark record properties as expanded
Update Facepunch.ActionGraphs
Add IRenderContext::GetSubContext() to get or create a sub context for a new thread, use it in managedsceneobject
Render contexts can never be passed between threads; they can only be used on the thread that created them. The thread index will be set in the constructor and can't change after that.
This causes a problem in our current implementation of SceneCustomObject that reuses the threaded render context on the main thread and expects we can add things,modify and render it from there, for D3D11 it is not a problem since the implementation or driver seems to have a mutex for command lists, but on Vulkan that gives validation errors and causes crashes.
Valve has the concept of Secondary RenderContexts but doesn't fit what we need
This implements the concept of SubThreads to RenderContext, a very simple way to pass the render context around and consume it in a timely manner, it creates a new render context with the same characteristics as the parent one in a new thread and submits it when the parent context is released
Remove pragma optimize off
Only override states if target layer wants it so, otherwise subcontext just uses the default rasterizer and depth stencil state, fixes worldpanels with depth test, pass attributes from rendercontext rather than layer
Fix issues with loading compiled resource json in editor space
Only override states if target layer wants it so, otherwise subcontext just uses the default rasterizer and depth stencil state, fixes worldpanels with depth test, pass attributes from rendercontext rather than layer
ActionGraph: Double-click on an input to start editing it
https://files.facepunch.com/ziks/1b1811b1/sbox-dev_Gea8n5mihG.mp4
Remove pragma optimize off
Add IRenderContext::GetSubContext() to get or create a sub context for a new thread, use it in managedsceneobject
Render contexts can never be passed between threads; they can only be used on the thread that created them. The thread index will be set in the constructor and can't change after that.
This causes a problem in our current implementation of SceneCustomObject that reuses the threaded render context on the main thread and expects we can add things,modify and render it from there, for D3D11 it is not a problem since the implementation or driver seems to have a mutex for command lists, but on Vulkan that gives validation errors and causes crashes.
Valve has the concept of Secondary RenderContexts but doesn't fit what we need
This implements the concept of SubThreads to RenderContext, a very simple way to pass the render context around and consume it in a timely manner, it creates a new render context with the same characteristics as the parent one in a new thread and submits it when the parent context is released
EditorSplashScreen remove StaysOnTopHint - intrusive to all other OS windows and hides exception dialogs
Bail starting tools if our base projects fail to compile because nothing will work and it's impossible to recover
String table, empty entry unit test
Handle empty entry in StringTable
Don't try to multiple Term GameObjects
Differentiate between Network Root objects and network objects in tree
Fix network object serialization
Better errors when component deserialize errors
Don't network spawn disabled objects
Actually use the sky_camera offset/angle/scale in native
Delete unused 2d skybox tracking CSceneWorld::m_skyboxes
Restore deleted 3d skybox view layers
Delete SceneCamera.Skybox - this was a stupid way to do it
Add internal SceneSkybox3D, create this from skybox_reference in SceneMapLoader using its own MapLoader
SkyboxMapLoader loads 2d skybox
When serializing network objects, don't include child network objects
Updated Facepunch.ActionGraph
Handle exceptions in Panel.FinalLayout
Add Model.Cube, Sphere, Error
Add Particle.Get, Set for storing extra data
Add ParticleEffect.OnParticleCreated, OnParticleDestroyed
Fix panel NRE
Send ClientReady after snapshot load
Fix not waiting for OnLoad when joining server
Trim debug output
Refactor SteamLobby
Update SteamLobbyConnection id from ConnectionInfo
Fix NRE when reporting project errors
Remove some unused properties from voice
All sounds can compute amplitude now, add Voice.Amplitude and SoundHandle.Amplitude
ActionGraph: Output plug labelling
https://files.facepunch.com/ziks/1b1711b1/sbox-dev_U6sndV7yzy.mp4
Expose Editor.Application.FocusWidget
Update Facepunch.ActionGraph
Simplify ActionPlug<T>
Split up ActionNode.cs
Implement EnumControlWidget.IsControlActive
ControlSheet: return created widgets
ActionGraph: Fix some undo edge cases
Initial experiment to see if we can turn shaders into a normal compiled resource
Clean up
Always spew info for now
Don't need ShaderHooks stuff anymore
We will need another way to selectively compile in fast mode in future
Remove useless asserts