704 Commits over 610 Days - 0.05cph!
RenderAttributes: add GetComboInt, GetComboBool, GetComboEnum functions
SceneObject: add getters for ClipPlane and ClipPlaneEnabled
SceneObject.ClipPlane and SceneObject.ClipPlaneEnabled
For sboxgame/issues/2260
Apply mask image & border images in the same way as background images
CSS: Fix parsing multiple filters, add a test for it
Fix order of operations when rendering drop shadows
CSS Drop Shadows (#1069)
https://files.facepunch.com/alexguthrie/1b0511b1/drop_shadow.png
Combine identical SetBoxShadow and SetTextShadow functions into one
Drop shadow property
Drop shadow menu UI test
Initial rendering support for drop-shadow
https://files.facepunch.com/alexguthrie/1b0511b1/devenv_wIlk5l0DF3.mp4
Multiple tests for mask, multiple filter modes, etc.
https://files.facepunch.com/alexguthrie/1b0511b1/sbox-dev_quSj9lxmDS.png
Shader cleanup + optimized compile
Render each shadow separately, means we can have multiple drop shadows if we want
Move drop-shadow stuff into its own shader, makes sense to separate this out now
Minor tweaks + optimized compile for ui_filter and ui_dropshadow
Clean up layer rendering
Remove ExCSS import (???)
Recompile ui_filter.shader
Remove ExCSS import (???)
Render each shadow separately, means we can have multiple drop shadows if we want
Move drop-shadow stuff into its own shader, makes sense to separate this out now
Minor tweaks + optimized compile for ui_filter and ui_dropshadow
Multiple tests for mask, multiple filter modes, etc.
https://files.facepunch.com/alexguthrie/1b0511b1/sbox-dev_quSj9lxmDS.png
Shader cleanup + optimized compile
Combine identical SetBoxShadow and SetTextShadow functions into one
Drop shadow property
Drop shadow menu UI test
Initial rendering support for drop-shadow
https://files.facepunch.com/alexguthrie/1b0511b1/devenv_wIlk5l0DF3.mp4
Disable VR assert handler
Use GetLastPoses instead of WaitGetPoses 🤦♂️
Move menu chord check into a better place, keep track of state change
Interop bindings for OpenVR overlay intersection
Expose VR compositor to managed context
VR - only wait for present if we have a valid swapchain
Bind GetTrackedDeviceIndexForControllerRole
Add GetTipTransformForDevice, use ComputeOverlayIntersection for virtual mouse pos inside VROverlay
Nicer way of doing all this custom input stuff
TryGetInputDataForControllerRole, don't set nPriority manually (it gets overridden by dashboard anyway)
Use dominant hand for VROverlay inputs (for now)
Add bindings for action data
Fetch & use trigger handle for button presses - probably not the best way to do this, but it'll do for now
Managed only menu chord binding
Temp place for menu binding hook up, just wanna make sure it works
Move menu screen test
Forgot to hook up menu chord on right controller, oops
Managed only menu chord binding
Temp place for menu binding hook up, just wanna make sure it works
Move menu screen test
Forgot to hook up menu chord on right controller, oops
Use dominant hand for VROverlay inputs (for now)
Add bindings for action data
Fetch & use trigger handle for button presses - probably not the best way to do this, but it'll do for now
TryGetInputDataForControllerRole, don't set nPriority manually (it gets overridden by dashboard anyway)
Interop bindings for OpenVR overlay intersection
Expose VR compositor to managed context
VR - only wait for present if we have a valid swapchain
Bind GetTrackedDeviceIndexForControllerRole
Add GetTipTransformForDevice, use ComputeOverlayIntersection for virtual mouse pos inside VROverlay
Nicer way of doing all this custom input stuff
Add GetTipTransformForDevice, use ComputeOverlayIntersection for virtual mouse pos inside VROverlay
VR - only wait for present if we have a valid swapchain
Bind GetTrackedDeviceIndexForControllerRole
Expose VR compositor to managed context
Interop bindings for OpenVR overlay intersection
Add Asset.DumpThumbnail, as well as Dump Thumbnail(s) in asset list context menu
Use clamp for texture filtering instead of border inside UI filters, makes blur filter look nicer
https://files.facepunch.com/alexguthrie/1b2411b1/filter.png
Fix mask image test layout
Hide "open menu screen" editor buttons if project isn't active
Don't know if this is permanent. Related to sboxgame/issues/3318
Custom mask-scope property: default for normal masks, filter to apply to any filters
Useful for applying blurs etc. in select areas
https://files.facepunch.com/alexguthrie/1b2311b1/sbox_69UkTGRaTg.mp4
CSS Masks (#1040)
https://files.facepunch.com/alexguthrie/1b2211b1/sbox_fQKTQ4VNsj.mp4
Do optimized compiles for ui_cssbox and ui_filter
Revert temp changes I made to the menu, didn't mean to commit these
Full mask shorthand support - should work with all combinations I think
Fix mask-position
Move image rect calculations into a class shared between background image and mask image
Initial `mask` shorthand support
Initial mask-image implementation
https://files.facepunch.com/alexguthrie/1b1711b1/sbox_YDcpSIrUj9.png
Mask-mode property, supports luminance & alpha
New mask-image tests
Apply css mask in panel layers
https://files.facepunch.com/alexguthrie/1b1811b1/sbox_T4K1fa32Po.png
Tests for mask-position, mask-size
Basic mask-size, mask-position support, use custom alpha texture for tests
We handle proper defaults for mask-size and mask-position, so no need to hack around it
MaskAngle, convert to radians properly after parsing angles
Use dict for angle direction LUT (easier to read)
Fix RotateTexCoord not rotating correctly when given radians as input
Simpler mask image test menu
Simpler mask image test menu
Fix RotateTexCoord not rotating correctly when given radians as input
Basic mask-size, mask-position support, use custom alpha texture for tests
We handle proper defaults for mask-size and mask-position, so no need to hack around it
MaskAngle, convert to radians properly after parsing angles
Use dict for angle direction LUT (easier to read)
Tests for mask-position, mask-size
Apply css mask in panel layers
https://files.facepunch.com/alexguthrie/1b1811b1/sbox_T4K1fa32Po.png
Initial mask-image implementation
https://files.facepunch.com/alexguthrie/1b1711b1/sbox_YDcpSIrUj9.png
Mask-mode property, supports luminance & alpha
Asset list: show padlock on local assets without source content (issues/2364)
Multiple asset browsers (#994)
Refresh cookies when visibility is changed to true rather than inside DoLayout
DoLayout is called every frame in some cases, this fixes flickering caused by that
Make EditorMainWindow default layout more readable, uses a raw string literal
Auto-add widgets created thru DockManager.Create<T> to dock
TryCreate throws exceptions so we'll just make it Create instead
Handle copy/move when dragging from file explorer
When creating widgets by type, pass "this" dockmanager in constructor args instead of calling SetParent manually later
Make widget creation error messages more helpful
Don't append instance count to window titles
Update EditorMainWindow default layout to include managed type data