Add Deep Zoom support: DZI/DZC parsing, tile rendering, MAUI control#366
Open
mattleibow wants to merge 3 commits intomainfrom
Open
Add Deep Zoom support: DZI/DZC parsing, tile rendering, MAUI control#366mattleibow wants to merge 3 commits intomainfrom
mattleibow wants to merge 3 commits intomainfrom
Conversation
Collaborator
Author
|
please merge in from main, and then look at feature/deepzoom-pivotviewer to make sure we have correctly included all of the deepzoom code, tests, resources and more. |
Collaborator
Author
|
Merged origin/main into the PR branch, tests passed, and pushed the updated branch. Commit: d71c215 |
d71c215 to
9165b70
Compare
9b2e5a1 to
81d3a86
Compare
9165b70 to
bb44278
Compare
Add DZI/DZC format test data, CXML collection metadata, and pre-generated tile images for Deep Zoom and PivotViewer development and testing: - buxton: CXML collection - collection-dz: Multi-item DZC collection with individual DZI tile pyramids - conceptcars: Large DZC collection with 298 items and full tile images - msdnmagazine: CXML collection - nigeria-state: DZC collection with tile images - sample: Single DZI image with tile files (integration test data) - shapes: DZC collections for area and geometry with tile images - ski-resorts: DZC collection with tile images - stockport: DZC collection with tile images - testgrid: Complete 14-level DZI tile pyramid (1374 tiles) for visual testing - venues: CXML collection - schemas: PivotViewer collection XSD and generated code Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
81d3a86 to
c5a640c
Compare
5683aac to
7b268c4
Compare
Core library (SkiaSharp.Extended.DeepZoom): - DZI and DZC format parsing with full compatibility - Tile pyramid math and viewport coordinate transforms - Spring-based animation system - LRU tile cache with deferred disposal - Priority tile scheduler with parent-level fallback - LOD cross-fade blending renderer - HTTP and file-based tile fetchers with cancellation - Deep zoom sub-image support for collections MAUI layer (SkiaSharp.Extended.UI.Maui.DeepZoom): - SKDeepZoomView with pinch-zoom, pan, double-tap gestures - BindableProperties: Source, ViewportWidth, ViewportOrigin, etc. - Spring animation integration with timer-based rendering - Keyboard navigation support - Debug stats overlay Tests: 489 tests covering all public APIs Sample: MauiDeepZoom app with color-coded test tiles Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Remove standalone MauiDeepZoom sample app - Add Deep Zoom page to SkiaSharpDemo MAUI app (Demos/DeepZoom/) with testgrid tiles bundled as MauiAssets - Add Deep Zoom page to SkiaSharpDemo.Blazor with mouse/wheel interaction driving shared DeepZoomController - Add DeepZoom project references to both sample apps - Add nav link and icon for Deep Zoom in Blazor sidebar The Deep Zoom architecture uses a shared DeepZoomController in the core library with thin platform layers: - MAUI: SKDeepZoomView handles touch gestures + timer - Blazor: DeepZoom.razor handles mouse/wheel events + timer Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
7b268c4 to
b9071da
Compare
mattleibow
added a commit
that referenced
this pull request
Mar 6, 2026
Integrates PR #366 (Deep Zoom) on top of PR #326 (Gestures) branch, replacing all platform-specific gesture code with SKGestureTracker. ## Core library (SkiaSharp.Extended.DeepZoom) - DZI and DZC format parsing with full compatibility - Tile pyramid math and viewport coordinate transforms - Spring-based animation system (ViewportSpring) - LRU tile cache with deferred disposal - Priority tile scheduler with parent-level fallback - LOD cross-fade blending renderer - HTTP and file-based tile fetchers with cancellation - Deep zoom sub-image support for collections ## MAUI control (SkiaSharp.Extended.UI.Maui.DeepZoom) - SKDeepZoomView now uses SKGestureTracker (from SkiaSharp.Extended) instead of PanGestureRecognizer/PinchGestureRecognizer/TapGestureRecognizer - EnableTouchEvents=true on SKCanvasView, feeds SKTouchEventArgs to tracker - Pan/Pinch/DoubleTap/Scroll/Fling all routed through unified gesture system - Fling momentum scrolling added (deep zoom previously had none) - GestureTracker property exposed for advanced configuration ## Blazor sample (SkiaSharpDemo.Blazor) - DeepZoom.razor migrated from raw mouse events to pointer events - Uses SKGestureTracker with same pointer-event pattern as Gestures.razor - Proper multi-touch support (pinch to zoom on touch screens) - Fling momentum scrolling via tracker FlingUpdated events - DPI scaling via _displayScale computed in PaintSurface ## Tests 489 tests covering all deep zoom APIs (unchanged from PR #366) 413 gesture tests (unchanged from PR #326) - all passing Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add Deep Zoom image viewer support for SkiaSharp.
Core library (
SkiaSharp.Extended.DeepZoom)MAUI control (
SkiaSharp.Extended.UI.Maui.DeepZoom)SKDeepZoomViewwith pinch-zoom, pan, double-tap gesturesTests
489 tests covering all public APIs across 24 test files.
Sample
MauiDeepZoom app with color-coded test tiles.
Related