20,844 Commits over 1,522 Days - 0.57cph!
Cascade color interpolation
Default to linear RGB gradients for spec
This can be changed with `color-interpolation: auto;` or `color-interpolation: lab;`
Added editor icon to "ent_logic" and editor model for "info_target"
Ignore uncompiled texture .jpg when sending files to client
Parse CSS floats / ints with InvariantCulture in generated code too, should fix remaining issues with odd regional setups
Initial support for color-interpolation on gradients
```scss
color-interpolation: linearRGB; // Old method
color-interpolation: auto; // Auto pick best method(default)
color-interpolation: lab; // New method
```
Introduce new gradient generator for softer/smoother results
Before: https://files.facepunch.com/ognik/1b3011b1/2021-12-19_27-54-bd323c25-6f85-48ec-96a8-35595829d12c-HvsjGFLB.png
After: https://files.facepunch.com/ognik/1b3011b1/2021-12-19_26-43-0861d68b-f9b6-46f5-bd46-33e91fe7e2f4-V5x7aG7c.png
Add + and - operator for colors
Add ColorXYZ Lerp, Add ToLab conversion and fix results from XYZ->Color
Add ISteamInput interface from Facepunch.Steamworks
Initialize Steam Input from managed
Add dispatch events to SteamInput for device callbacks dis/connected, these are always called for already connected controllers
Update Steamworks 1.53 for Steam Input improvements including Steam Deck support
Update networksystem to resolve removal of deprecated funcs / renaming in Steamworks 1.58
SteamInput.EnableDeviceCallbacks() - should be giving us controller connected / disconnected events but isn't, steamworks bug?
Basic action manifest with menu & ingame controls sets, in future we could provide a lot more versatile sets for different genres
Start exposing a Controller class in Sandbox.Game, let's make them easily grabbable so we can do UI or BuildInput with them directly
Chuck up some debug panels in the input settings menu for each connected controller to debug features
Async steam input glyph texture loader
Generalize Steam Input into a Controller API, abstract all actions into enums close to our pre-existing IN_ actions
Quick button prompt panel e.g `<ControllerActionHint ActionName="Jump">`, uses relevant user's bound controller glyphs.
Forward SteamInput callbacks to C# Steamworks properly
Poll action handles until they're non zero, workaround for a known bug where we shouldn't be needing to do this
Update IGA file to match enums and action manifest, add a basic PS4 controller manifest
Remove dead code
Manage controller connected with callbacks and add events for connected / disconnected, this should keep handles in place too on reconnects
Controller.TriggerVibration: accept normalized floats instead of 0 <-> ushort.MaxValue and support Xbox trigger impusle rumble.
Disable XInput init / polling in inputsystem, handle it all in managed via Steam Input
Controller API Init/Poll in Sandbox.Client too
Iterate more on Controller API, replicate Down/Pressed/Up methods of InputBuilder, document more shit
Create controller input in InputBuilder from managed Controller API ( maybe this should be in base instead so the user can override it for whatever reason? )
Initial work on UI navigation with controller
Hammer: Block tool remembers last height https://files.facepunch.com/layla/1b2811b1/58745.mp4
Introduce RealTimeUntil.Fraction
Add preprocessor definitions to project generator which are used
SANDBOX, DEBUG and TRACE are now defined
Introduce white reference converters for XYZ, Accept xyz-d50 & xyz-d65 for SCSS
`ColorXYZ.ToD50();`
`ColorXYZ.ToD65();`
`background-color: color(xyz-d50 0.2005 0.14089 0.4472)`
`background-color: color(xyz-d65 0.21661 0.14602 0.59452)`
Introduce Lab color space for SCSS
`background-color: color(lab 83.2141% -129.1072 87.1718);`
or
`background-color: lab(83.2141%, -129.1072, 87.1718);`
Introduce ColorXYZ, Allow usage of a98-rgb color space in RGB, Allow setting color based on index
`background-color: color(a98-rgb 0.281363 0.498012 0.116746);`
`Color[0] = 1.0f; // sets red to 1.0`
Introduce initial support for `color()`
`background-color: color(rgb 30 40 60);`
Bring rgb/rgba up to spec
RGBA is just an alias for RGB
RGB now accepts percentages
Support for spaced and `/` parameters
Allow float parser to parse scientific notation
Support for HSL hue units
Deg, Grad, Rad and Turn are now support:
`background-color: hsla(120deg, 75%, 50%, 0.4);`
Fix ColorOverlay not being able to get reenabled
Reduce strictness of HSL including alpha value
Web standards let this happen
`background-color: hsl(120, 75%, 50%, 40%);`
`background-color: hsl(120 75% 50% / 0.6);`
`background-color: hsl(120 75% 50% / 80%);`
are all considered valid
SCSS HLSA Color Parser changes for CSS4
Functional syntax support with HSLA( `/` for alpha )
Alpha is now optional in HLSA
Fix divide by 0 and don't recreate multiple RTs when we hit our min scale
Downscale remaining scratch render targets
Initial support for resolution rescaling
Basic support for rendering to a lower or higher resolution
Hammer: Write surface property names to temp file so it's not in game dir
Hammer: Write surface property names to file so map builder can add them back, fixes static props losing their surface properties
Use InvariantCulture when parsing time in scss too
Fix initial fgd autogen needing config folder to exist
Hammer: CToolPhysics::IsTargetSelected also checks the target parent, fixes grabbing map meshes that were box selected
Hammer: Fix physics simulation selection for map entities that have child map meshes
ModelDoc: Make ConvertPhysicsShapesToAoProxies work on box physics shapes
ModelDoc: Fix new animgraph save path
Add developer shader builder to workflows
Add compilation scripts for debug info
Introduce debug info flag for vfxcompiler
Introduce new header flag in shaders, "DebugInfo"
`DebugInfo = true;` in the shader header will now ship debug info with the header
Revert debug information when building shaders
We have a lot of "DevShader" flags internally, I don't think it's a good idea to ship 5gb of shaders
Fix model path spacing not being copied over
Hammer: Rework how model path data gets provided to world renderer builder and physics builder
Iterate on AOProxy batching
Add option to orientate to path
Add option for model path spacing
Draw panel hovered in panel tree
Made Paint a global static
Added EngineOverlay and "paintoverlay" event
Added Widget.NoSystemBackground, Widget.IsFramelessWindow
PanelList highlights selected panel on engine view
VoxelSurface: Don't add mesh to builder until mesh is fully created
qt update (with pdb this time)