294 Commits over 700 Days - 0.02cph!
Correctly preserve worldpanel combo when popping UI layers
Almost fixes worldpanel filters, but there's still some issues with depth
Worldpanel backdrop filters correctly sample from the framebuffer
https://files.facepunch.com/alexguthrie/1b2211b1/sbox_SEP7KjTrRh.png
For sbox-issues/issues/3520
Motion blur post-processing component
Color adjustments post-processing component (saturation, hue rotate, brightness, contrast)
Blur post-processing component
Adjust new post-process component orders
Remove unused attributes & clean up post-processing shaders
Don't stomp sceneobject flags if passed an invalid override material
Fixes glass etc.
sbox-issues/issues/4461
Only run DXT compute on platforms with full support
Re-add DXT compute staging texture for platforms that don't support block texel views (dx11)
Allocate output & intermediate textures right before dispatching DXT compute
Minor fix for GetMemRequired call, was giving it the wrong parameters 🤦♂️
Re-write dxt compute upload/read to not crash
Run DXT5 on CPU for mips > 1 until I can figure out why this isn't working
VR: Don't crash inside ControllerTypeFromString if we weren't able to fetch an index for the device
Blur LineEdit on escape pressed
sbox-issues/issues/4438
Only change ident field inside project creator window if necessary
Fixes sbox-issues/issues/4433
Add compiled cs_compress_dxt material
Texture Compression Speed Improvements (#1430)
Improves DXT5 compression by moving it to GPU, other algorithms that still run on CPU also benefit (DXT1 etc.).
Additionally fixes DXT crash (sbox-issues/issues/4165).
GetAuthToken returns string without quotes
Fixes sbox-issues/issues/4381
UI: Apply `image-rendering` mode to masks
Add support for `white-space: pre;`
Fixes sbox-issues/issues/4345, can see this being useful for rich text,
syntax highlighting, etc.
VR: when saving off the HMD matrix, use the one we get directly from openvr - don't do any processing or bullshit
VR: Delete VRSkeleton, unused
VR: Rename VRControllerType -> TrackedControllerType
VR: Experimental fast function for storing reprojected HMD matrix
VR: Separate out stereo render/submit/blit, don't submit editor SceneCameras
(We still render and blit companion while in the editor, we just don't
submit a texture to the compositor while not in play mode)
https://files.facepunch.com/alexguthrie/1b2011b1/rsIQEZV0nc.mp4
VR: Fix out-of-editor rendering
VR: stop NoOpPostprocess layer trying to clear again in stereo mode
VR: Clean up stereo rendering logic, fixes aoproxy rendering, reduces memory requirements
VR: TrackedDevice defaults
Horizontal scroll (#1236)
Hold shift + mouse wheel to perform a horizontal scroll, if your mouse
has a horizontally scrolling wheel then that will work too.
https://files.facepunch.com/alexguthrie/1b1511b1/sbox_4y8iF5jVHk.mp4
Add separate Matrix test for converting from a transform, verify manually
Make `Matrix.FromTransform` more generalized, move steamvr specific one into `VROverlay` where it's used
Matrix test for converting to/from transforms
VR: Don't call GetPerformanceStats if VR isn't running (sorry)
VR: Lets be honest, nobody is using an xbox 360 controller or knuckles ev1 anymore
VR: fix minor docs blunder
VR: IsVive etc. now handled per-controller (was detecting controller type anyway before)
Might be useful for anyone that likes to mix controller types (e.g. one
vive controller and one knuckles) but the use case for this seems quite
niche?
sbox-issues/issues/994
VR: Basic internal HMD type detection
VR: More HMD types, move controller type & hmd type conversion into relevant files
VR: these should be internal, oops 🤦♂️
VR: Initial performance stats window
Just basic stuff for now, will evolve over time
VR: Move all render model related stuff into VRNative.RenderModel.cs
VR: Fix some minor input discrepancies, use ArgumentOutOfRangeException for anything out of range
VR: Clean up render model code, make everything non-blocking
VR: Hook up IVRRenderModels interface
VR: Add render model support for controllers, VR Model Renderer component (sbox-issues/issues/1001)
Uses `vr_controller_01_mrhat` if no model available
VR: Render model textures, fix axes
VR: Model renderer component is separate, takes a model renderer as property, doesn't run in non-vr
VR: More docs for `VROverlay` and `VROverlayPanel`
VR: VrInput -> VRInput, extra docs for VRController
VR: Docs, rename Input VrHand to VRController
VR: Normalize prefix casing to `VR` instead of mixing `Vr` and `VR`
VR: VRHand component doesn't fetch skinned model renderer automatically, match behaviour of all other components instead
Make `Matrix` numerics value internal, similar to the one on `Vector3`
VR: Move `VROverlayPanel`, `VROverlay`, `VROverlayInput` into `Sandbox.VR` namespace
VR: Generate extra `GetXActionData` functions with `ulRestrictToDevice` = `k_ulInvalidInputValueHandle`
VR: Menu chord bindings / action
VR: Remove legacy layer, move VR stuff into Sandbox.VR namespace
VR: Hook up WorldScale
VR: Do a reset whenever GameMenuDll.ResetEnvironment is called, just resets world scale for now
VR: Shorten Sandbox.Engine.VR to Engine.VR, maybe we should rename this class entirely
VR: Move `VR` class into Sandbox.VR
VR: Remove `VR` class, move any relevant properties over to `Input.VR`
All of this was input-related anyway, this feels like a better place to
have it. Modifying the anchor is done through `Input.VR.Anchor` now.
The only exception to this is checking if we're running in VR; use
`Game.IsRunningInVR` instead.
This avoids us clashing with the `Sandbox.VR` namespace and causing a
bunch of problems. Shouldn't be too different anyway as most things
should be covered by our components.
VR: Components don't update if VR isn't running
VR: fix some stereo-related render warnings
VR: perform copy before adding layers & don't create temporary back color buffer
VR: overlays don't block input if there's a game running, use high quality rendering now that works again
Render menu
Fix rendering `RootPanel`s in VR: separate out `IsWorldPanel` from `RenderedManually`
Clear attributes after popping a layer when rendering UI
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