254 Commits over 610 Days - 0.02cph!
Networked scene load (#1648)
Loading a scene over the network now just sends a fresh snapshot and re-handshakes with clients, rather than telling them to reconnect later and disconnecting them all.
UI: Layered backdrop filters require different UVs (because they render in a different space)
Fixes broken rendering when both filters/masks and backdrop filters are used in conjunction with each other
Add `position: relative` to devui console (fixes sbox-issues/issues/5817)
Split out VR input into multiple files, delete Finger
VR: Calculate tracked object velocities
VR: Call UpdateHaptics() on VR controller
VR: Only offset for skeletal hand poses - not for raw /input/grip/pose data
VR: Add Delta to DigitalInput - WasPressed works as intended, but isn't the same as a delta, so maybe this is helpful?
VR: Might as well obsolete these while I'm here
VR: Get skeletal data from OpenXR
VR: Match controller positions with SteamVR ones, which better represent where the controller is
VR Input cleanup
Update Facepunch.XR to d7212d3, fixes broken digital actions
VR: revert back to using grip pose because it's closer to what we want
VR haptic bindings
VR: Use aim instead of grip pose for controller positions + update fpxr to 8839c8e
Update Facepunch.XR to 8d9bfbf, re-work pose submit
Save off the exact same poses we get from Facepunch.XR when syncing + only call beginframe/endframe/sync if we're rendering in VR
Use local space for VR render poses, update Facepunch.XR to c537b77
Update Facepunch.XR to e0d5682, makes it so that we use local space for headset view/projection rather than stage space
Might help fix things on SteamVR headsets that use SteamVR for room-scale tracking?
Update poses for Facepunch.XR submit, prevents jittery and spongey tracking
OpenXR backend for VR (#1600)
Attempt to make gradients match their web counterparts a little more
This isn't perfect and we should really investigate the root cause
for this: sbox-issues/issues/5477
VR: Fix render models loading improperly
VR: Don't submit or wait for poses if the headset is in standby (prevents editor stalling when headset goes idle)
VR: Fix angular velocity & velocity coordinate conversion
VR: keep track of input deltas manually
Move ControlModeSettings into Sandbox.Engine (from tools addon)
Launcher displays VR button for projects with VR support
Add quick editor option to enable/disable VR without restarting the editor
VR: Hide menu when in-game
VR: Keep track of whether we want new poses or not
VR: don't use explicit timing, causes issues w/ sync and latency
Don't update scene view camera input if the editor window isn't active (sbox-issues/issues/5383)
Haptics NRE fix
Clamp haptic motor values where appropriate, matching existing behaviour
Basic controller haptics (#1498)
Allows for controller haptics based on haptic events.
```cs
public static void TriggerHaptics( HapticEffect pattern, float lengthScale = 1.0f, float frequencyScale = 1.0f, float amplitudeScale = 1.0f )
```
e.g.
```cs
Input.TriggerHaptics( HapticEffect.HardImpact );
```
Fix crash when drag-dropping .sbproj into launcher
Update stereo-related camera properties explicitly, rather than bundling in with UpdateSceneCamera
Editor scene camera ignores VR settings, only blit for stereo cameras - prevents weird ghostly stereo blit
Don't stop shadow animations/transitions when building final style
sbox-issues/issues/5122, sbox-issues/issues/4679
Clean up UI lerp functions
AnimationIterationCount uses float infinity instead of -1 for "infinite"
Fixes sbox-issues/issues/5306
Add index setter to SegmentedControl
Fixes sbox-issues/issues/5300
Refresh editor title on project update
Give primary buttons more feedback on click
Project settings window updates title etc. correctly when project is modified
sbox-issues/issues/4862
Fix texture filtering inside ui_cssbox.shader
Fix filtering in other UI shaders too
CSS box shader - D_BORDER_IMAGE combo should be range 0..2
Fixes sbox-issues/issues/4874
SCSS: Don't apply animation styles before/after if fill mode is none
sbox-issues/issues/5273
SCSS: Implement rem and em
https://files.facepunch.com/alexguthrie/1b2611b1/sbox-dev_f5t9eFrLSk.png
Parse commandline properly to prevent projects with `-test` in the name breaking
sbox-issues/issues/5208
Test for multiple keyframe percentages (sbox-issues/issues/5168)
Support multiple keyframe percentages
e.g.
```scss
@keyframes tilt {
0%, 10% {
transform: rotate(0deg) scale(1);
transform-origin: center;
}
}
```
sbox-issues/issues/5168
Vector2Int, Vector3Int
sbox-issues/issues/4995
Fix build (we don't support "display: inline", not sure if this was done on purpose?)
Improved style parser errors (sbox-issues/issues/4541)
https://files.facepunch.com/alexguthrie/1b2911b1/sbox-dev_vMdiBVFnHU.png
Don't clear all attributes when popping a layer
Preserve everything (so we keep scissor attributes etc)
Fixes sbox-issues/issues/4971.
Correct text-decoration thickness default value
Clear dirty framebuffer region when popping a UI layer
sbox/issues/1461
Add RenderAttributes.GetMatrix
Save off and restore clipping values before/after drawing box shadows
Should fix sbox/issues/1453
Remove log
Add support for CSS `font-smooth`
https://files.facepunch.com/alexguthrie/1b2011b1/sbox-dev_oYg0ytkmSm.png
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
Stomp cursor delta if we're locking to canvas in scene view, should hopefully prevent camera going wild when wrapping?
Add support for editor pixmap cursors from managed, use it for custom eye cursor inside scene view
Add margin to LockCursorToCanvas, clean up
Tidy up AfterUI render stage and use that for after-UI post-processing effects, rename to `AddHookAfterUI`
Add `CameraComponent.AddHookAfterOverlay`, supports running post-processing effects after UI is drawn
Show mouse cursors inside scene view, wrap them to canvas rather than locking to center, panning follows same direction as other engines
If you preferred the previous panning behaviour there's an option for inverting it
https://files.facepunch.com/alexguthrie/1b3111b1/sbox_MUEzCxyWs7.mp4
Scene view orbit camera: account for mouse X axis, add invert options to editor preferences
sbox-issues/issues/4663
DoF doesn't need to grab depth buffer, we can use the depth prepass (thanks Matt)
Don't need to grab depth for any other post processing effects either (because they don't use them)
Compile shaders
Undo changes to Graphics.GrabDepthTexture to avoid problems