From 7cb7d81f15e4a0694c62f309e0535645e7647d26 Mon Sep 17 00:00:00 2001 From: ClemensFischer Date: Fri, 17 Jan 2025 07:05:03 +0100 Subject: [PATCH] Moved method from TileImageLoader to TileSource --- MapControl/Shared/TileImageLoader.cs | 6 ++---- MapControl/Shared/TileSource.cs | 8 +++++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/MapControl/Shared/TileImageLoader.cs b/MapControl/Shared/TileImageLoader.cs index 97317fc8..4b9a2bd9 100644 --- a/MapControl/Shared/TileImageLoader.cs +++ b/MapControl/Shared/TileImageLoader.cs @@ -119,9 +119,7 @@ namespace MapControl } } - protected virtual Task LoadImageAsync(byte[] buffer) => ImageLoader.LoadImageAsync(buffer); - - private async Task LoadTileAsync(Tile tile, TileSource tileSource, string cacheName) + private static async Task LoadTileAsync(Tile tile, TileSource tileSource, string cacheName) { Func> loadImageFunc; @@ -139,7 +137,7 @@ namespace MapControl if (buffer == null || buffer.Length == 0) return; - loadImageFunc = () => LoadImageAsync(buffer); + loadImageFunc = () => tileSource.LoadImageAsync(buffer); } await LoadTileAsync(tile, loadImageFunc).ConfigureAwait(false); // loadImageFunc runs in UI thread in WinUI/UWP diff --git a/MapControl/Shared/TileSource.cs b/MapControl/Shared/TileSource.cs index 4291b014..fabda3e3 100644 --- a/MapControl/Shared/TileSource.cs +++ b/MapControl/Shared/TileSource.cs @@ -75,7 +75,7 @@ namespace MapControl /// /// Loads a tile ImageSource asynchronously from GetUri(column, row, zoomLevel). - /// This method is called by TileImageLoader for TileSources without caching. + /// This method is called by TileImageLoader when caching is disabled. /// public virtual Task LoadImageAsync(int column, int row, int zoomLevel) { @@ -84,6 +84,12 @@ namespace MapControl return uri != null ? ImageLoader.LoadImageAsync(uri) : Task.FromResult((ImageSource)null); } + /// + /// Loads a tile ImageSource asynchronously from an encoded frame buffer in a byte array. + /// This method is called by TileImageLoader when caching is enabled. + /// + public virtual Task LoadImageAsync(byte[] buffer) => ImageLoader.LoadImageAsync(buffer); + /// /// Creates a TileSource instance from an Uri template string. ///