|
|
@@ -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 {
|