@@ -2996,6 +2996,24 @@ Error RenderingDeviceDriverVulkan::swap_chain_resize(CommandQueueID p_cmd_queue,
29962996 swap_create_info.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
29972997 swap_create_info.imageSharingMode = VK_SHARING_MODE_EXCLUSIVE;
29982998 swap_create_info.preTransform = surface_transform_bits;
2999+ switch (swap_create_info.preTransform ) {
3000+ case VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR:
3001+ swap_chain->pre_transform_rotation_degrees = 0 ;
3002+ break ;
3003+ case VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR:
3004+ swap_chain->pre_transform_rotation_degrees = 90 ;
3005+ break ;
3006+ case VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR:
3007+ swap_chain->pre_transform_rotation_degrees = 180 ;
3008+ break ;
3009+ case VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR:
3010+ swap_chain->pre_transform_rotation_degrees = 270 ;
3011+ break ;
3012+ default :
3013+ WARN_PRINT (" Unexpected swap_create_info.preTransform = " + itos (swap_create_info.preTransform ) + " ." );
3014+ swap_chain->pre_transform_rotation_degrees = 0 ;
3015+ break ;
3016+ }
29993017 swap_create_info.compositeAlpha = composite_alpha;
30003018 swap_create_info.presentMode = present_mode;
30013019 swap_create_info.clipped = true ;
@@ -3167,6 +3185,13 @@ RDD::RenderPassID RenderingDeviceDriverVulkan::swap_chain_get_render_pass(SwapCh
31673185 return swap_chain->render_pass ;
31683186}
31693187
3188+ int RenderingDeviceDriverVulkan::swap_chain_get_pre_rotation_degrees (SwapChainID p_swap_chain) {
3189+ DEV_ASSERT (p_swap_chain.id != 0 );
3190+
3191+ SwapChain *swap_chain = (SwapChain *)(p_swap_chain.id );
3192+ return swap_chain->pre_transform_rotation_degrees ;
3193+ }
3194+
31703195RDD::DataFormat RenderingDeviceDriverVulkan::swap_chain_get_format (SwapChainID p_swap_chain) {
31713196 DEV_ASSERT (p_swap_chain.id != 0 );
31723197
0 commit comments