22,418 Commits over 1,614 Days - 0.58cph!
TypeSerializedProperty.TryGetAsContainer should not propogate NoteChanged, commented on this behaviour - Fixes Facepunch/sbox-issues#5174
Can push the gizmo grid all the way down to 0.125 (with the hotkey too)
Make control sheet labels draggable
Start button on gamepad behaves the same way as hitting ESC
Merge property or variable get / set nodes
Accumulate escape presses across all input contexts - Fixes Facepunch/sbox-issues#5314
Create scene lights in default particle system query
Remove physics world creation flags
Remove userdata from physics interface
Remove pre and post solve callbacks from physics interface
Remove OverlapTest_t from physics world query, we don't use it
AMD driver check: 2.0.279 is fine for Polaris/Vega
Fix audio player play thread stomping seek request
Fix PhysicsShape.Triangulate incorrect index count
Add some null checks around lipsync processing
Fix LockCursorToCanvas on monitors with different DPI
Use string lists in ImpactEffectData
Fix music player seek not working before audio has chance to start playing
Add lipsync component for sound components
Run filtering in two passes to eliminate any fireflies, realtime filtering looks as good as baked filtering now
https://files.facepunch.com/sampavlovic/1b2911b1/465thMK9Yq.jpg
big scruffy beard adjustment
hair texture adjustments for colour wheel
ANTLR: Support any dimension arrays
Use fast envmap filtering even for static ones, looks as good if not better than brute forcing if using a few more taps, delete reference_ibl_lighting.fxc (byebye)
Allow lipsync to be enabled on music player
Add SoundHandle.LipSync to opt into lipsync processing https://files.facepunch.com/layla/1b2811b1/sbox-dev_WgcnqBpoUH.mp4
Fix texture filtering inside ui_cssbox.shader
Fix filtering in other UI shaders too
Add SoundHandle.SampleRate
CSS box shader - D_BORDER_IMAGE combo should be range 0..2
Fixes sbox-issues/issues/4874
Removing shape from body will only remove contacts associated with the shape, not all contacts of the body
Use "unknown" key instead of "any" key I was using in testing
Skip driver version check if running under proton
Revert "HotloadManager disposes Hotload instance, was stopping assembly unloading"
This reverts commit 1d83455903d1b9995c5680c933c49738ce22f149.
Revert "LoadContext.Unload also unloads all it's IsolatedAssemblyContext"
This reverts commit 672aabaadd48f649bf3c38068d4efe2e2c55780e.
space outfit texture fixes
HotloadManager disposes Hotload instance, was stopping assembly unloading
Warn for older AMD GPU drivers too, 2.0.283 has a driver crash when child processes are opened
Hook back Preferences.ControllerLook(Yaw/Pitch)Speed for Input.AnalogLook when using a controller
Improve LoadGlyphTexture logic
Remove KeyGlyphLoader, supply all keyboard and mouse glyph files
Let me know if I missed any buttons, I don't have a numpad on my keyboard so tag me!
Avoid collection modified error in NetworkPrune (Fixes Facepunch/sbox-issues#5280)
Expose Input.TriggerVibration (using existing API), hook up SDL_GameControllerRumbleTriggers
Game Controllers using SDL2 (#1509)
Rip out SteamInput and our Controller API
Init SDL_GAMECONTROLLER, add standard mappings file (will move this later), find all of our game controllers on startup, hook up events for handling controller lifetime, button events and analog inputs
Turn off steam overlay in the editor again
Forward controller button events to managed
Forward controller axis events to managed
Simple device instance memory (disconnect and reconnecting the same controller should point to the same device), all events pass controller ID
Delete Input.AnalogInputs/GetAnalog (might re-add later)
GameController -> CGameController, some code refactor, Controller is a handle
Update sdl2 lib
Didn't mean to push this launch setting
Remove legacy sdl haptics code, replace with SDL_GameControllerRumble
Implement default LED colors based on instance, rumble the gamepad on every button press test
Test passing controller input to input context
Parse analog inputs local to each controller, add virtual trigger buttons based from axis result
Hook up AnalogLook/AnalogMove for first controller (test)
Make prints less obnoxious
Re-add Input.UsingController (simpler now)
Temporary generated glyphs for gamepad
Look for input glyph svgs
Plug in a bunch of glyph icons for xbox controller
Add GameControllerType_t, expose ControllerType to managed, add GlyphVendor
LoadGlyphTexture will look for the controller's vendor and fall back to default if not found
Add a few PlayStation glyphs
Documentation
Support analog input glyphs
Add methods for fetching gyroscope and accelerometer readings from specific controllers
Remove controller binding panel (not used)
Forgot to get rid of this method 🤦
Move GameController ctor to implementation
Remove FindControllers, does nothing, was a test for me
Native cleanup, add safety, fixed controller disconnect crashing game
Make Controller internal + sealed
Remove my #ifdef V_COMPILER_MSVC usage
Change InputMotionData to reflect new API
Make sure to set the size of svg glyphs
Keep current glyph API intact, add new version to control outline
Docs, GameControllerExtensions to internal
Why the fuck are you there
LoadContext.Unload also unloads all it's IsolatedAssemblyContext
Multi select move grid snaps handle pivot instead of each selection https://files.facepunch.com/layla/1b2711b1/sbox-dev_LEYJCm0K2B.mp4
Multi select rotates around gizmo handle pivot point https://files.facepunch.com/layla/1b2711b1/sbox-dev_WxhiXwtdBc.mp4
Ignore cubemap precomputed handshakes, we can add and remove cubemaps at will on scene, those do not have handshakes so the entire thing was already deprecated when we implemented maploader, this cache gets built by m_nCachedEnvMap at runtime
This fixes scene cubemaps not showing on static map geometry
Cubemapper tests
Remove all ggx code for now & just copy directly to cubemap array
TextureCube with mipmaps and arrays and mipmaps
Move texture logic from cubemapper to c#
Stub for cubemapper_cs, will calculate both GGX and spherical harmonics all in GPU
Handle all array index stuff in cubemapper
Allow for single sliced cubemap array, needed to be able to render an independent texture in the renderer since it expects a TextureCubeArray, also allow TSPEC_CUBE_CAN_SAMPLE_AS_ARRAY if we want UAV
Also fix a problem where CTextureManagerVulkan::GetImageView wouldn't work with a cubemap array as a rwtexture2darray in compute shaders
Fix cube orientation when copying, do texture per envmap probe instead of a singleton array, this will cause headaches with multiple envmaps intersecting but makes it much simpler
GGX filtering
Don't bother with writing cubemap normalization right now (in fact disable it for now!), reuse previous mip so that we have more quality with less samples
Assert isn't valid anymore in ComputeImageViews since we can pass a cube array
Do cubemapper processing of all faces at once without using intermediary copies, 4-8x speedup (~17ms > ~2.5ms), still needs to be faster
https://i.imgur.com/b61mX1Y.png
Rendersystemvulkan: Alllow binding specific cubemap [ & arrays ] mips if UAV
Remove unsued, clean up
Dynamic cubemap component settings
Remove the old BuildCubeMaps
Add WidgetUtil.CreateSwapChain
NativeRenderingWidget renders in regular render path
Fix RenderDeviceInfo_t wrong size
Add HandlePendingSwapChainResize for explicitly handling swapchain resize events before doing any work, fixes NativeRenderingWidget.RenderScene rendering on a frame with different window size than the actual swapchain ( and then having invalid color/depth buffers)
CI fails building shaders when machine is coming from a branch that was deleted, full checkout action should be enough for pulling?
If cubemap has no normalization set, don't consider it for NormalizeCubeBrightness
Compiled shaders with normalization brightness fixes for cubes without SH, reenable cube normalization
Wip fast cubemap filtering ( 2.5ms > 0.09ms 😱 )
Adjust things on fast envmap filtering, major cleanup, rename shader to envmap_filtering
Use high quality GGX filtering if baking cubemap as OnEnabled
Vulkan: Fix image transition layout when binding a mip of a cubemap that's sampleable as Texture2DArray
Don't fetch render attributes from context, that's composited over, fixes a crash
Assert when UAV Index is invalid
Flag hammer maps to always render cubemaps dynamically & always render at least one frame regardless of distance update settings
Use a fresh PackageLoader when loading new games - fixes Facepunch/sbox-issues#5219
CreateModelFromMeshFile uses modeldoc utils so it does automatic lods etc again