protected Bitmap LoadBitmapFromResourceWithScaling(string name) { var assembly = Assembly.GetExecutingAssembly(); bool needsScaling = false; Bitmap bmp; if (windowScaling == 1.5f && assembly.GetManifestResourceInfo($"FamiStudio.Resources.{name}@15x.png") != null) { bmp = PlatformUtils.LoadBitmapFromResource($"FamiStudio.Resources.{name}@15x.png"); } else if (windowScaling > 1.0f && assembly.GetManifestResourceInfo($"FamiStudio.Resources.{name}@2x.png") != null) { bmp = PlatformUtils.LoadBitmapFromResource($"FamiStudio.Resources.{name}@2x.png"); needsScaling = windowScaling != 2.0f; } else { bmp = PlatformUtils.LoadBitmapFromResource($"FamiStudio.Resources.{name}.png"); } // Pre-resize all images so we dont have to deal with scaling later. if (needsScaling) { var newWidth = Math.Max(1, (int)(bmp.Width * (windowScaling / 2.0f))); var newHeight = Math.Max(1, (int)(bmp.Height * (windowScaling / 2.0f))); #if FAMISTUDIO_WINDOWS bmp = new System.Drawing.Bitmap(bmp, newWidth, newHeight); #else bmp = bmp.ScaleSimple(newWidth, newHeight, Gdk.InterpType.Bilinear); #endif } return(bmp); }