@@ -98,6 +98,10 @@ public static void copyImageToBufferCmd(MemoryStack stack, VkCommandBuffer comma
9898 }
9999
100100 public static void blitFramebuffer (VulkanImage srcImage , VulkanImage dstImage ) {
101+ blitFramebuffer (srcImage , dstImage , VK_FILTER_NEAREST );
102+ }
103+
104+ public static void blitFramebuffer (VulkanImage srcImage , VulkanImage dstImage , int filtering ) {
101105 try (MemoryStack stack = stackPush ()) {
102106 VkCommandBuffer commandBuffer = Renderer .getCommandBuffer ();
103107
@@ -110,18 +114,21 @@ public static void blitFramebuffer(VulkanImage srcImage, VulkanImage dstImage) {
110114 blit .srcOffsets (0 , VkOffset3D .calloc (stack ).set (0 , 0 , 0 ));
111115 blit .srcOffsets (1 , VkOffset3D .calloc (stack ).set (srcImage .width , srcImage .height , 1 ));
112116 blit .srcSubresource ()
113- .aspectMask (VK_IMAGE_ASPECT_COLOR_BIT )
117+ .aspectMask (srcImage . aspect )
114118 .mipLevel (0 )
115119 .baseArrayLayer (0 )
116120 .layerCount (1 );
117121
118122 blit .dstOffsets (0 , VkOffset3D .calloc (stack ).set (0 , 0 , 0 ));
119123 blit .dstOffsets (1 , VkOffset3D .calloc (stack ).set (dstImage .width , dstImage .height , 1 ));
120- blit .dstSubresource ().aspectMask (VK_IMAGE_ASPECT_COLOR_BIT ).mipLevel (0 ).baseArrayLayer (0 )
124+ blit .dstSubresource ()
125+ .aspectMask (dstImage .aspect )
126+ .mipLevel (0 )
127+ .baseArrayLayer (0 )
121128 .layerCount (1 );
122129
123130 vkCmdBlitImage (commandBuffer , srcImage .getId (), VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL ,
124- dstImage .getId (), VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL , blit , VK_FILTER_LINEAR );
131+ dstImage .getId (), VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL , blit , filtering );
125132
126133 dstImage .transitionImageLayout (stack , commandBuffer , VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL );
127134 }
0 commit comments