Conversation
No more warnings
Offline mii rendering
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (75)
📝 WalkthroughWalkthroughThis PR replaces API-based Mii image rendering with a native rendering system featuring local resource management, new UI components, and improved caching. It introduces rendering infrastructure, configuration, and resource installation capabilities, alongside refactored image handling and expanded null-safety improvements across the codebase. Changes
Sequence Diagram(s)sequenceDiagram
participant App as App Startup
participant Installer as IMiiRenderingResourceInstaller
participant Locator as IMiiRenderingResourceLocator
participant API as IMiiRenderingAssetApi
participant FileSystem as File System
participant Popup as MiiRenderingSetupPopup
App->>Installer: GetResolvedResourcePath()
alt Resource Found & Valid
Installer-->>App: Success
App->>App: Continue to MainWindow
else Resource Missing/Invalid
Installer-->>App: Failure
App->>Popup: ShowAndAwaitCompletionAsync()
Popup->>User: Display Setup Dialog
User->>Popup: Click Download
Popup->>Installer: DownloadAndInstallAsync(progress)
Installer->>API: DownloadArchiveAsync()
API-->>Installer: HTTP Response Stream
Installer->>Installer: Validate ZIP Archive
Installer->>FileSystem: Extract & Validate File
Installer->>FileSystem: Move to ManagedResourcePath
Installer-->>Popup: Success with Progress
Popup-->>App: Complete
App->>App: Continue to MainWindow
end
App->>App: Load MainWindow
sequenceDiagram
participant UI as Mii3DRender Component
participant Renderer as IMiiNativeRenderer
participant Cache as MiiImagesSingletonService
participant Native as Native FFL Library
User->>UI: Interact (drag/zoom/rotate)
UI->>UI: Update Camera State
UI->>UI: Queue Render Request
UI->>Renderer: RenderAsync(Mii, studioData, specs)
alt Cached Result Available
Cache->>Cache: Return Cached Bitmap
Renderer-->>UI: Bitmap (from cache)
else Cache Miss or ExpirationSeconds ≤ 0
Renderer->>Native: Native Render Call
Native-->>Renderer: Pixel Buffer
Renderer->>Renderer: Convert to Bitmap
Renderer->>Cache: Store Result (if cacheable)
Renderer-->>UI: Bitmap
end
UI->>UI: Marshal to WriteableBitmap
UI->>UI: Present Frame with Animation
Estimated code review effort🎯 4 (Complex) | ⏱️ ~75 minutes Possibly related PRs
Poem
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary by CodeRabbit
Release Notes - v2.4.2
New Features
Bug Fixes
Improvements