Browse Source

Improve HiDPI handling, fix incorrect window viewport clipping.

bruvzg 5 years ago
parent
commit
d5df1b651c
2 changed files with 7 additions and 1 deletions
  1. 1 1
      drivers/vulkan/rendering_device_vulkan.cpp
  2. 6 0
      platform/osx/os_osx.mm

+ 1 - 1
drivers/vulkan/rendering_device_vulkan.cpp

@@ -5277,7 +5277,7 @@ RenderingDevice::DrawListID RenderingDeviceVulkan::draw_list_begin_for_screen(in
 	scissor.offset.x = 0;
 	scissor.offset.y = 0;
 	scissor.extent.width = size_x;
-	scissor.extent.height = size_x;
+	scissor.extent.height = size_y;
 
 	vkCmdSetScissor(command_buffer, 0, 1, &scissor);
 

+ 6 - 0
platform/osx/os_osx.mm

@@ -345,6 +345,12 @@ static NSCursor *cursorFromSelector(SEL selector, SEL fallback = nil) {
 		OS_OSX::singleton->window_size.width = fbRect.size.width * newDisplayScale;
 		OS_OSX::singleton->window_size.height = fbRect.size.height * newDisplayScale;
 
+#if defined(VULKAN_ENABLED)
+		if (OS_OSX::singleton->video_driver_index == OS::VIDEO_DRIVER_VULKAN) {
+			CALayer* layer = [OS_OSX::singleton->window_view layer];
+			layer.contentsScale = OS_OSX::singleton->_display_scale();
+		}
+#endif
 		//Update context
 		if (OS_OSX::singleton->main_loop) {
 			//Force window resize event