From bb7d681dc3b869208a0e47730339eb359e8b6b59 Mon Sep 17 00:00:00 2001 From: omigamedev Date: Thu, 15 Aug 2019 22:52:14 +0200 Subject: [PATCH] fix zoom detection issue in old OSX versions --- PanoPainter-OSX/main.cpp | 4 +++- src/app_events.cpp | 7 +++++++ src/app_layout.cpp | 2 +- src/node_canvas.cpp | 1 + 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/PanoPainter-OSX/main.cpp b/PanoPainter-OSX/main.cpp index 6b76e96..637d07b 100644 --- a/PanoPainter-OSX/main.cpp +++ b/PanoPainter-OSX/main.cpp @@ -467,7 +467,9 @@ view = [[View alloc] initWithFrame:r]; controller = [[Controller alloc] initWithWindow:window]; App::I->osx_view = view; - App::I->zoom = Settings::value_or("ui-scale", (float)view.layer.contentsScale); + + float z = (float)window.backingScaleFactor; + App::I->zoom = Settings::value_or("ui-scale", (z > 0.f) ? z : 1.f); auto style = NSTitledWindowMask|NSMiniaturizableWindowMask|NSResizableWindowMask|NSClosableWindowMask; window = [[Window alloc] initWithContentRect:r styleMask:style backing:NSBackingStoreBuffered defer:NO]; diff --git a/src/app_events.cpp b/src/app_events.cpp index 105630c..7929db8 100644 --- a/src/app_events.cpp +++ b/src/app_events.cpp @@ -41,6 +41,13 @@ bool App::clipboard_set_text(const std::string& s) #endif } +void App::stacktrace() +{ +#if __OSX__ + NSString* callstack = [[NSThread callStackSymbols] componentsJoinedByString:@"\n"]; + LOG("callstack:\n%s", [callstack cStringUsingEncoding:NSUTF8StringEncoding]); +#endif +} void App::crash_test() { diff --git a/src/app_layout.cpp b/src/app_layout.cpp index 20d5fc4..4e43ad5 100644 --- a/src/app_layout.cpp +++ b/src/app_layout.cpp @@ -1248,7 +1248,7 @@ void App::initLayout() }; layout.on_loaded = [&] (bool reloaded) { - LOG("initializing layout updating after load"); + LOG("initializing layout updating after load %d x %d zoom %f", (int)width, (int)height, zoom); layout[main_id]->update(width, height, zoom); LOG("initializing layout components"); diff --git a/src/node_canvas.cpp b/src/node_canvas.cpp index 599cdf4..bacff9b 100644 --- a/src/node_canvas.cpp +++ b/src/node_canvas.cpp @@ -621,6 +621,7 @@ void NodeCanvas::reset_camera() void NodeCanvas::create_buffers() { auto new_size = GetSize() * m_density; + LOG("NodeCanvas::create_buffers size: %d x %d density %f", (int)new_size.x, (int)new_size.y, m_density); m_canvas->m_mixer.create((int)new_size.x * m_canvas->m_mixer_scale, (int)new_size.y * m_canvas->m_mixer_scale, -1, GL_RGBA8); m_blender_rtt.create((int)new_size.x, (int)new_size.y, -1, GL_RGBA8);