|
|
|
@ -102,21 +102,29 @@ bool VKImage::HasChanged(u32 base_layer, u32 num_layers, u32 base_level, u32 num |
|
|
|
|
|
|
|
void VKImage::CreatePresentView() { |
|
|
|
// Image type has to be 2D to be presented.
|
|
|
|
VkImageViewCreateInfo image_view_ci; |
|
|
|
image_view_ci.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO; |
|
|
|
image_view_ci.pNext = nullptr; |
|
|
|
image_view_ci.flags = 0; |
|
|
|
image_view_ci.image = *image; |
|
|
|
image_view_ci.viewType = VK_IMAGE_VIEW_TYPE_2D; |
|
|
|
image_view_ci.format = format; |
|
|
|
image_view_ci.components = {VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_IDENTITY, |
|
|
|
VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_IDENTITY}; |
|
|
|
image_view_ci.subresourceRange.aspectMask = aspect_mask; |
|
|
|
image_view_ci.subresourceRange.baseMipLevel = 0; |
|
|
|
image_view_ci.subresourceRange.levelCount = 1; |
|
|
|
image_view_ci.subresourceRange.baseArrayLayer = 0; |
|
|
|
image_view_ci.subresourceRange.layerCount = 1; |
|
|
|
present_view = device.GetLogical().CreateImageView(image_view_ci); |
|
|
|
present_view = device.GetLogical().CreateImageView({ |
|
|
|
.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, |
|
|
|
.pNext = nullptr, |
|
|
|
.flags = 0, |
|
|
|
.image = *image, |
|
|
|
.viewType = VK_IMAGE_VIEW_TYPE_2D, |
|
|
|
.format = format, |
|
|
|
.components = |
|
|
|
{ |
|
|
|
.r = VK_COMPONENT_SWIZZLE_IDENTITY, |
|
|
|
.g = VK_COMPONENT_SWIZZLE_IDENTITY, |
|
|
|
.b = VK_COMPONENT_SWIZZLE_IDENTITY, |
|
|
|
.a = VK_COMPONENT_SWIZZLE_IDENTITY, |
|
|
|
}, |
|
|
|
.subresourceRange = |
|
|
|
{ |
|
|
|
.aspectMask = aspect_mask, |
|
|
|
.baseMipLevel = 0, |
|
|
|
.levelCount = 1, |
|
|
|
.baseArrayLayer = 0, |
|
|
|
.layerCount = 1, |
|
|
|
}, |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
VKImage::SubrangeState& VKImage::GetSubrangeState(u32 layer, u32 level) noexcept { |
|
|
|
|