|
@@ -2996,6 +2996,24 @@ Error RenderingDeviceDriverVulkan::swap_chain_resize(CommandQueueID p_cmd_queue,
|
|
|
swap_create_info.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
|
|
|
swap_create_info.imageSharingMode = VK_SHARING_MODE_EXCLUSIVE;
|
|
|
swap_create_info.preTransform = surface_transform_bits;
|
|
|
+ switch (swap_create_info.preTransform) {
|
|
|
+ case VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR:
|
|
|
+ swap_chain->pre_transform_rotation_degrees = 0;
|
|
|
+ break;
|
|
|
+ case VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR:
|
|
|
+ swap_chain->pre_transform_rotation_degrees = 90;
|
|
|
+ break;
|
|
|
+ case VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR:
|
|
|
+ swap_chain->pre_transform_rotation_degrees = 180;
|
|
|
+ break;
|
|
|
+ case VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR:
|
|
|
+ swap_chain->pre_transform_rotation_degrees = 270;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ WARN_PRINT("Unexpected swap_create_info.preTransform = " + itos(swap_create_info.preTransform) + ".");
|
|
|
+ swap_chain->pre_transform_rotation_degrees = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
swap_create_info.compositeAlpha = composite_alpha;
|
|
|
swap_create_info.presentMode = present_mode;
|
|
|
swap_create_info.clipped = true;
|
|
@@ -3167,6 +3185,13 @@ RDD::RenderPassID RenderingDeviceDriverVulkan::swap_chain_get_render_pass(SwapCh
|
|
|
return swap_chain->render_pass;
|
|
|
}
|
|
|
|
|
|
+int RenderingDeviceDriverVulkan::swap_chain_get_pre_rotation_degrees(SwapChainID p_swap_chain) {
|
|
|
+ DEV_ASSERT(p_swap_chain.id != 0);
|
|
|
+
|
|
|
+ SwapChain *swap_chain = (SwapChain *)(p_swap_chain.id);
|
|
|
+ return swap_chain->pre_transform_rotation_degrees;
|
|
|
+}
|
|
|
+
|
|
|
RDD::DataFormat RenderingDeviceDriverVulkan::swap_chain_get_format(SwapChainID p_swap_chain) {
|
|
|
DEV_ASSERT(p_swap_chain.id != 0);
|
|
|
|