using LibationFileManager; using System; namespace LibationUiBase; public static class BaseUtil { /// A delegate that loads image bytes into the the UI framework's image format. public static Func LoadImage => s_LoadImage ?? DefaultLoadImageImpl; /// A delegate that loads a named resource into the the UI framework's image format. public static Func LoadResourceImage => s_LoadResourceImage ?? DefaultLoadResourceImageImpl; public static void SetLoadImageDelegate(Func tryLoadImage) => s_LoadImage = tryLoadImage; public static void SetLoadResourceImageDelegate(Func tryLoadResourceImage) => s_LoadResourceImage = tryLoadResourceImage; private static Func? s_LoadImage; private static Func? s_LoadResourceImage; private static object? DefaultLoadImageImpl(byte[]? imageBytes, PictureSize size) { Serilog.Log.Error("{LoadImage} called without a delegate set. Picture size: {PictureSize}", nameof(LoadImage), size); return null; } private static object? DefaultLoadResourceImageImpl(string resourceName) { Serilog.Log.Error("{LoadResourceImage} called without a delegate set. Resource name: {ResourceName}", nameof(LoadResourceImage), resourceName); return null; } }