Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/xwt.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Ungureanu <marius.ungureanu@xamarin.com>2021-07-28 15:31:46 +0300
committerMarius Ungureanu <maungu@microsoft.com>2021-09-05 22:20:00 +0300
commit959f0cb50bf66dc3620d832f2292005a396e6c23 (patch)
treef864cb7dad1a1163b649331a5201ca9a8ff31547 /Xwt.XamMac
parentfccff06ea812881862d020a3f19df601231ca4dd (diff)
Try using lazy image loading
Also optimize a multiple IEnumerable enumeration path and switch to NSImage.FromStream.
Diffstat (limited to 'Xwt.XamMac')
-rw-r--r--Xwt.XamMac/Xwt.Mac/ImageHandler.cs17
1 files changed, 7 insertions, 10 deletions
diff --git a/Xwt.XamMac/Xwt.Mac/ImageHandler.cs b/Xwt.XamMac/Xwt.Mac/ImageHandler.cs
index a11f86d3..c4f1cfc7 100644
--- a/Xwt.XamMac/Xwt.Mac/ImageHandler.cs
+++ b/Xwt.XamMac/Xwt.Mac/ImageHandler.cs
@@ -51,14 +51,12 @@ namespace Xwt.Mac
public override object LoadFromStream (Stream stream)
{
- using (NSData data = NSData.FromStream (stream)) {
- return new NSImage (data);
- }
+ return NSImage.FromStream (stream);
}
public override object LoadFromFile (string file)
{
- return new NSImage (file);
+ return new NSImage (file, lazy: true);
}
public override object CreateMultiResolutionImage (IEnumerable<object> images)
@@ -71,8 +69,9 @@ namespace Xwt.Mac
public override object CreateMultiSizeIcon (IEnumerable<object> images)
{
- if (images.Count () == 1)
- return images.First ();
+ var singleImage = images.SingleOrDefault ();
+ if (singleImage != null)
+ return singleImage;
NSImage res = new NSImage ();
foreach (NSImage img in images)
@@ -251,10 +250,8 @@ namespace Xwt.Mac
static NSImage FromResource (string res)
{
- var stream = typeof(ImageHandler).Assembly.GetManifestResourceStream (res);
- using (stream)
- using (NSData data = NSData.FromStream (stream)) {
- return new NSImage (data);
+ using (var stream = typeof(ImageHandler).Assembly.GetManifestResourceStream (res)) {
+ return NSImage.FromStream (stream);
}
}