254 Commits over 610 Days - 0.02cph!
Set VR depth resolve & refract textures, fixes glass rendering in VR
Move `vr_depth_submit` convar over to managed
Respect `vr_spectator_show_left_eye` value
VR companion view, render stereo to its own back buffer
https://files.facepunch.com/alexguthrie/1b0111b1/sbox-dev_Z2Mn6GMTLF.png
VR texture submit supports full depth submit (but we're not passing depth just yet)
Pass depth buffer to submit
Rename VRNative CheckError function to Assert
Move assert function for VR overlay errors into VRNative
Remove unused VRNative functions
Support for all types of VR textures (pose, depth+pose, depth, and neither)
Fix VR rendering crash
Disable menu VR overlay
Make VRNative Compositor/System/etc. all properties
TrackedDeviceInfo has battery percentage (cherry-picked from vr-stats branch)
Battery percentage just displays in `vr_info` concommand for now
Change the way we handle VRTextureWithPose - create an initial VRTexture and then (optionally) append pose data, rather than just creating a VRTextureWithPose outright
Reinstate VR overlay code using new internal VR backend
Move FromTransform into Matrix so we can re-use it
Update OpenVR SDK from 1.26.7 to 2.0.10
Use LastBackColorBuffer for VR - should fix spontaneous crash, can't reliably reproduce locally though?
Render VR separately
Rename RenderWithViewport to RenderStereoAndSubmit, clean up SceneCamera stereo rendering code
Set VR controller type (Input.VR.Type)
Remove some CSS logs I forgot about (sorry)
Re-add streaming mode stuff to menu - same as before (would be better in settings imo, but this works for now)
VR - remove vulkan extension list spew, was using this to check something and forgot to remove it
Fix anchor positioning
VR: retrieve and save off HMD position immediately before calling RenderWithViewport
Gives us much better & up-to-date info to put inside VRTextureWithPose,
reprojection becomes much more accurate.
VR: controllers are correctly affected by anchor
Re-add vendor info to TrackedDevice for `vr_info` debug command
VR input system supports device roles (i.e. left hand, right elbow, waist, chest), uses newer IVRInput system (paths etc.)
Submit a VRTextureWithPose_t to compositor
Re-add some VR native submit code, looks like it got removed by mistake
Fix VR stereo camera positioning
VR legacy layer uses real values (don't like this but I don't see any other way, we can remove it later)
Fill device roles for tracked devices
Add Expose attribute to StereoTargetEye
`mask-repeat`: `no-repeat` uses border sampler, `round` acts like `clamp`
sboxgame/issues/issues/4061
Don't enable D_WORLDPANEL combo inside panel layers, avoids multiple uses of worldpanel matrix when a filter is active
sboxgame/issues/issues/4056
Angles, Rotation, Vector2, Vector3, Vector4 all implement IParsable, have both TryParse and Parse + tests
sboxgame/issues/issues/4051
ui_cssbox uses custom samplers for border image
sboxgame/issues/issues/4054
Make StartScreen inside EditorMainWindow, instead of going through an event
Fix text gradients 🤦♂️
Fix keyword-based transform origin values
Don't hide EditorMainWindow on startup if there isn't a StartScreen
e.g. if tools fail to compile
Lettters -> letters (sboxgame/issues/issues/4030)
Fix for transform-origin values not correctly being applied
Sizes passed to ImageRect.Calculate with Undefined unit will correctly use default size
Default text overflow to "None", spec default is clip but ours behaves differently - this will do for now
Give `line-height`, `letter-spacing` and `word-spacing` default values, no need to null check them
Don't implicitly clamp backgrounds if background-size is `cover`
Handle LengthUnit.Undefined gracefully, document
Call GetPixels() on backdrop filter props instead of getting Value directly, fixes percentage/fraction-based filters
CSS: Better Autogen (#1222)
Leaves out nullability changes for a later pain day, but includes layout cascade auto-gen, transition/animation default value handling w/ auto-generated defaults, and guarantees a value for every property in ComputedStyles (although the compiler isn't aware of this yet).
Add Entity.IsPawn
Fixes sboxgame/issues/issues/3927
Stats.GetPlayerStats uses steamid parameter
Fixes sboxgame/issues/issues/3766
Body groups no longer affect hitboxes / hitbox sets
Should fix sboxgame/issues/issues/2922
Add WarningsAsErrors support for projects
Supports a list of errors (e.g. `CS8613;CS8601;CS8625`).
Does not support the `nullable` shorthand yet because of a .NET issue
(would need to expand manually, which is messy)
Mirror UV when sampling inside filter - prevents ugly border around some elements when using `filter: blur()`
Default to using opposite value inside BaseStyles.Lerp functions if a value is null
PanelTransform.Lerp will handle null for us, we don't need to do it inside BaseStyles.Lerp
Pull Styles.FromLerp up to BaseStyles, auto-generate for all properties matching select types
Add auto-generated BaseStyles.LerpProperty
Update transition logic to use new auto-generated functions
Handle box-shadow transitions / animations separately for now
Welcome screen link tweaks: "Wiki" becomes "Getting Started", move to top
UI: Add support for keyframed box shadows - should probably take a look at changing this so that we have consistent property support between transitions and animations
CSS: Flex shorthand support
CSS: Fix nesting inside `background` (fixes devcam)
CSS `background` shorthand no longer requires specific order, more compliant with spec
st&alone: Use test grid texture instead of non-existent burger billboard texture (moved to asset.party)
`background` shorthand color transition
CSS `animation` shorthand, same syntax as web (https://drafts.csswg.org/css-animations/#animation) - any order
Can opt out of drag scrolling with `Panel.CanDragScroll = false;`, enabled by default (sboxgame/issues/issues/3491)
`@readonly` and `@editable` asset browser filters (sboxgame/issues/issues/3205)
Basic parsing support for CSS `background` shorthand
Move position/length shorthand parsing into Parse.TryReadPositionAndSize (used for both mask & background shorthands)
UI: don't clamp UVs in shader when BgRepeat mode is Clamp, fixes angled gradients
Background angles conform to css spec - add offset to match +x as being 0 degrees instead of +y