3,401 Commits over 792 Days - 0.18cph!
Merge: from ui_store_slim_ram
- Bugfix: carousel buttons no longer have garbage textures when opening an store overlay page
Tests: opened an overlay page
Bugfix: HttpImage - when picking nearest mip, use a cpu-side copy
Doing gpu side copy seems to cause garbage if mip isn't streamed in
Tests: made a standalone build and navigated to pack page, carousel buttons were okay
Merge: from ui_store_slim_ram
- Update: store assets are taken from the backend
- Optim: store assets are loaded and unloaded dynamically
Tests: navigated through various store pages with various debug overrides
Bugfix: fix invalid takeover data for crystal ak
Accidentally copied pack even though it hasn't one when manually resolving
Tests: navigated to page, crystal ak displays as intended
Bugfix: store.refresh now restarts the tab
Fixes tab having only default-initialized tiles
Tests: ran refresh while on general tab
█▇▌▊▇▉▅▊ ▋▋▄ █▇▉▊▇▉█ ▋▆▇▇▆▇▇ ▍▅▊▇▍▄▇█▇ ▅▇▇▄▆ ▄▆█▍ ▉▄▌█▇ ▅▅▆ ▄▍▄▌▄▅▉ ▇▇ ▇▉▇▋▋▊▄▄▇▇▄█ ▅▊▄▍█▋▆█▉ ▋█ ▅▊▍███▅▅▌ ▋▍▋ ▊▄▅▋▇ ▌█▄ ▌▅▌▌▇ ▄▍▉█▆▌▋
Update: HttpImage - permit multiple requests for same url
Fixes clurred images for overlay pages where first button shares sprite with full screen image but has different settings
Tests: navigated to coconut underwear page - loaded both
Update: HttpImage - pick a higher mip, seems to look better when downsampled
Tests: navigated to pack overlay page
Update: reimplement shop.unloadAssets convar
Tests: set it to 0, navigated to shop and out, confirmed bundle was still loaded via listdynamic, set to 1, confirmed it was gone via listdynamic
Clean: get rid of icon precaching from store bundle
All bundle assets are now loaded on demand, so this code was both useless and harmful
Tests: navigated through store with failloads 1 - all images present
Clean: remove unnecessary extra unload when DLC tab closes/becomes hidden
Tests: navigated to DLC tab with delay and failloads convars
Optim: lazy load fallback sprite for DLC item view
Tests: opened DLC tab of store with failloads 0 and 1
Update: HttpImage - add support for different configured images from 1 url
Fixes overlay page using downsampled mip for full screen image because 2 httpimage comps share an url
Tests: navigated to crossbow pack overlay and clicked 2nd button
Bugfix: StoreItemOverlayPage - fix invalid refcounting
- also get rid of gallery sprite fallback when loading from url
Tests: inspected refcounts during opening and closing of overlay
Bugfix: HttpImage - avoid duplication of refcount
Tests: inspected refcounts of textures after opening pack overlays
Bugfix: HttpImage - only flush stale texture cache when refcount is 0
Fixes sprites being nuked during some interactions
Tests: navigated to pack overlay and clicked through bottom buttons
Optim: make StoreItemTile lazy load fallback sprite
Tests: navigated to general tab with failload 0 and 1
Update: HttpImage - add option to use a best-fit mip
- move httpimage comp to image on OverlayCarouselButton
Tests: navigated to pack pages
Optim: convert overlay's carousel buttons to lazy load missing sprites
- also cleaned some now-dead properties
Tests: navigated to pack overlay page with both failloads 0 and 1
Optim: have StoreItemOverlayPage load main image from bundle only on fail
Tests: navigated to pack page with failload 1, clicked through buttons
Optim: HttpImage - only load dynamic sprites if HttpImage failed to fetch
- converted UI_StoreBackground to use it
Tests: navigated to general store tab, tested with delay, fail load and fail-then-succeed load
Bugfix: HttpImage prefers sprites for CoverImage, fixes atlas being drawn
Tests: inspected spawned UI tiles, they used sprite instead of texture
Bugfix: if 2 urls get requested and 1 throttled, make sure it goes via cache
Tests: navigated to store -> general tab quickly, no exceptions
Update: ran Update Urls again
Looks like couple blurhashes got missed
Tests: navigated to dlc page with httpimageloaddelay
Optim: convert DLC tab leftovers to httpimage
- ran Assign Bundle and Update Urls
Tests: navigated to it with httpimagedelay and httpimagefailloads and normal - saw expected textures/blurs
Buildfix: missing files
Tests:none
Update: added assetbundles.listdynamic for debugging
Tests: checked output as I navigated through menus and connected/disconnected to server
Clean: get rid of forceOpen hack, use OnBecomeVisible instead
Tests: clicked through store tabs, joined a server and toggled menu and various screens. disconnected
Optim: have HttpImage unload their images when store tabs are hidden
Need to go through all the screens and verify they get unloaded correctly
Tests: inspected general tab's grid contents while being ingame and toggling menu
Update: HttpImage - rewrite rate limiter to control concurrent loads
- conotrlled by store.HttpImageConcurrentLoadingLimit (def 50)
Dunno if placebo, but the small general tab hitch feels smaller (but still there)
Tests: navigated across store
Optim: HttpImage - mode texture decoding to worker threads
- added WebUtil.DownloadTextureTemp that uses DownloadHandlerTexture
- disabled texture activation rate limit
Now only a tiny hitch is present
Tests: navigated to store General tab
Optim: HttpImage - rate limit texture activation rate (2 per frame)
Helps with General tab opening, but feels too limiting
Tests: navigated to general tab of store
Update: Add HttpImage.MissingSprite
- reroute all dynamic sprites to MissingSprite
- added store.HttpImageFailLoads to simulate loading failure
Tests: navigated store with failloads 1, skin tiles need fixing
Bugfix(editor): StoreBundleTool - fix missmatching file extension, part 1/4
- ran Update Urls(force)
Tests: navigated through store tabs, only 1 image failing to download
▍▆▄▅▉▋▆▇▆▅▇▉█▇▍ ▇▉▇▄▄▋▊▍▆▌▍█▇▆▅ ▉ ▋▊▉█▇▍▍▉ ▉▅ ▆▋ ▍▄ ▊█▇▇▍▋ ▌▄▌▊▆▇▌▆ ▊▇▍▄ ▅▉▊▍▌▍▉█▉ ▌█▍▉▌▍▆▆█ ▅▍▇▇ ▋▋▌▍▅▄▄▊▌▆ ▅▅▊▇▇▋ ▉▇▋▉ ▆▄▊▍▄█ ▇▊▄▆▆ ▍▊▌▌▍▅▌▌▉▇▌▄▆▋▇ ▆▉▌█▍ ▋▆▋▄ ▊▅▌ ▍▋▊ █▊▊▄▆█▋██▊ ▊▉▆ ▆▇▄▇▅▋▅▌ ▌▊▆ █▊▍▋▆ ▌▆ ▍▅▌▍▆▇ ▅█▌ █▄▇ ▋▆▆ ▄▉▋▊▋▋▅▉▋▊▍▇ ▉▉▉ ▍▆▊█▊█ ▇▇▄▊ ▅▋▌▋▌█▌▄ ▆▊▇ ▄▉▄ ▉ ▌▉▅▆▆ ▄▊▌▇▉▋▋▇
Clean(editor): StoreBundleTool - get rid of last Task usage
Tests: ran Update Urls (force)
Update: StoreBundleTool - improvements and optims
- add a "force" version of Update Urls, incase we got desync between local and remote states
- only run blurhash generation for invalid(or bypassed) image hashes
- shuffle task scheduling to run as much as possible in the background
- support multiple asset path prefixes for cases not in the store folder
Tests: ran Update Urls (force), most upload tasks timeout (rip)
Update: StoreBundleTool - fill in image upload logic
- changed url format
- ran "Update Urls"
Tests: ran full Update Urls - manifest grabbing works, but uploading gets stuck
Merge: from ui_store_slim_ram/blurhash
- New: HttpImage now know how to render blurhash images as loading placeholders
Tests: navigated through store
Bugfix: if httpimagedelay expires, use results of first request that completed
Tests: navigated store with httpimagedelay 10 and waiting till it expired
Update: generate blur textures of matching aspect ratio to original image
Tests: inspected store with httpimagedelay
Update: StoreBundleTool improvements
- deduplicate serialized objects to reduce number of saves
- deduplicate ProxyPaths to reduce number of field-callback invocations
- document loss of data and why it happens
Tests: ran the script
Bugfix: HttpImage - create blurhash sprite when one is needed
Tests: navigated to store general page, saw the background change to blueish, dlc page is redish