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

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVojtech Kral <vojtech@kral.hk>2019-05-17 20:12:52 +0300
committerVojtech Kral <vojtech@kral.hk>2019-05-17 20:16:03 +0300
commitb234a1b7a7cce7f536608b34f67d31ca2bc54f6e (patch)
treecf908f0bf878f24536272c2ee918bc67e28225d3
parent5161dc43d63067f4054ce726d94d75b2cca7c359 (diff)
Use mac_max_scaling_factor() in create_scaled_bitmap()version_2.0.0-rc2
-rw-r--r--src/slic3r/GUI/wxExtensions.cpp12
-rw-r--r--src/slic3r/Utils/MacDarkMode.mm7
2 files changed, 16 insertions, 3 deletions
diff --git a/src/slic3r/GUI/wxExtensions.cpp b/src/slic3r/GUI/wxExtensions.cpp
index fa8942c54..103a9ecf0 100644
--- a/src/slic3r/GUI/wxExtensions.cpp
+++ b/src/slic3r/GUI/wxExtensions.cpp
@@ -1,6 +1,7 @@
#include "wxExtensions.hpp"
#include <stdexcept>
+#include <cmath>
#include "libslic3r/Utils.hpp"
#include "libslic3r/Model.hpp"
@@ -19,6 +20,7 @@
#include "libslic3r/GCode/PreviewData.hpp"
#include "I18N.hpp"
#include "GUI_Utils.hpp"
+#include "../Utils/MacDarkMode.hpp"
using Slic3r::GUI::from_u8;
@@ -389,7 +391,15 @@ wxBitmap create_scaled_bitmap(wxWindow *win, const std::string& bmp_name_in,
static Slic3r::GUI::BitmapCache cache;
#ifdef __APPLE__
- const float scale_factor = win != nullptr ? win->GetContentScaleFactor() : 1.0f;
+ // Note: win->GetContentScaleFactor() is not used anymore here because it tends to
+ // return bogus results quite often (such as 1.0 on Retina or even 0.0).
+ // We're using the max scaling factor across all screens because it's very likely to be good enough.
+
+ static float max_scaling_factor = NAN;
+ if (std::isnan(max_scaling_factor)) {
+ max_scaling_factor = Slic3r::GUI::mac_max_scaling_factor();
+ }
+ const float scale_factor = win != nullptr ? max_scaling_factor : 1.0f;
#else
(void)(win);
const float scale_factor = 1.0f;
diff --git a/src/slic3r/Utils/MacDarkMode.mm b/src/slic3r/Utils/MacDarkMode.mm
index 514b6e7d3..adbd72aab 100644
--- a/src/slic3r/Utils/MacDarkMode.mm
+++ b/src/slic3r/Utils/MacDarkMode.mm
@@ -1,6 +1,9 @@
#import "MacDarkMode.hpp"
+#import <algorithm>
+
#import <Foundation/Foundation.h>
+#import <AppKit/NSScreen.h>
@implementation MacDarkMode
@@ -19,12 +22,12 @@ double mac_max_scaling_factor()
{
double scaling = 1.;
if ([NSScreen screens] == nil) {
- scalign = [[NSScreen mainScreen] backingScaleFactor];
+ scaling = [[NSScreen mainScreen] backingScaleFactor];
} else {
for (int i = 0; i < [[NSScreen screens] count]; ++ i)
scaling = std::max<double>(scaling, [[[NSScreen screens] objectAtIndex:0] backingScaleFactor]);
}
- return scalign;
+ return scaling;
}
}