From c9c0b8505615cb16a770d66650e89c0f41d00dc8 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Sat, 19 Jan 2019 00:35:00 +1000 Subject: VideoBackends: Store a backbuffer 'scale' This is a scaling factor, used for hi-dpi configurations. --- Source/Core/VideoBackends/Vulkan/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source/Core/VideoBackends/Vulkan/main.cpp') diff --git a/Source/Core/VideoBackends/Vulkan/main.cpp b/Source/Core/VideoBackends/Vulkan/main.cpp index 63d61c9d01..af3a7b56d8 100644 --- a/Source/Core/VideoBackends/Vulkan/main.cpp +++ b/Source/Core/VideoBackends/Vulkan/main.cpp @@ -225,7 +225,7 @@ bool VideoBackend::Initialize(const WindowSystemInfo& wsi) // Create main wrapper instances. g_framebuffer_manager = std::make_unique(); - g_renderer = std::make_unique(std::move(swap_chain)); + g_renderer = std::make_unique(std::move(swap_chain), wsi.render_surface_scale); g_vertex_manager = std::make_unique(); g_texture_cache = std::make_unique(); ::g_shader_cache = std::make_unique(); -- cgit v1.2.3 From 774480ba234c788d2973cf6a3ccd1cd4c3fcc673 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Sat, 26 Jan 2019 00:02:02 +1000 Subject: Vulkan: Set contents scale of Metal layer to screen factor This gives us a native resolution framebuffer. --- Source/Core/VideoBackends/Vulkan/main.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'Source/Core/VideoBackends/Vulkan/main.cpp') diff --git a/Source/Core/VideoBackends/Vulkan/main.cpp b/Source/Core/VideoBackends/Vulkan/main.cpp index af3a7b56d8..53c04c4e37 100644 --- a/Source/Core/VideoBackends/Vulkan/main.cpp +++ b/Source/Core/VideoBackends/Vulkan/main.cpp @@ -303,6 +303,18 @@ void VideoBackend::PrepareWindow(const WindowSystemInfo& wsi) // [view setLayer:layer] reinterpret_cast(objc_msgSend)(view, sel_getUid("setLayer:"), layer); + + // NSScreen* screen = [NSScreen mainScreen] + id screen = reinterpret_cast(objc_msgSend)(objc_getClass("NSScreen"), + sel_getUid("mainScreen")); + + // CGFloat factor = [screen backingScaleFactor] + double factor = + reinterpret_cast(objc_msgSend)(screen, sel_getUid("backingScaleFactor")); + + // layer.contentsScale = factor + reinterpret_cast(objc_msgSend)(layer, sel_getUid("setContentsScale:"), + factor); #endif } } // namespace Vulkan -- cgit v1.2.3