MCPcopy Create free account
hub / github.com/crosire/reshade / create_default_view

Function create_default_view

source/vulkan/vulkan_hooks_device.cpp:27–51  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

25
26#if RESHADE_ADDON
27void create_default_view(reshade::vulkan::device_impl *device_impl, VkImage image)
28{
29 if (image == VK_NULL_HANDLE)
30 return;
31
32 const auto data = device_impl->get_private_data_for_object<VK_OBJECT_TYPE_IMAGE>(image);
33 assert(data->default_view == VK_NULL_HANDLE);
34
35 // Need to create a default view that is used in 'vkCmdClearColorImage' and 'vkCmdClearDepthStencilImage'
36 if ((data->create_info.usage & (VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT)) != 0 &&
37 (data->create_info.usage & (VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT)) != 0)
38 {
39 VkImageViewCreateInfo default_view_info { VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO };
40 default_view_info.image = image;
41 default_view_info.viewType = static_cast<VkImageViewType>(data->create_info.imageType); // Map 'VK_IMAGE_TYPE_1D' to VK_IMAGE_VIEW_TYPE_1D' and so on
42 default_view_info.format = data->create_info.format;
43 default_view_info.subresourceRange.aspectMask = reshade::vulkan::aspect_flags_from_format(data->create_info.format);
44 default_view_info.subresourceRange.baseMipLevel = 0;
45 default_view_info.subresourceRange.levelCount = VK_REMAINING_MIP_LEVELS;
46 default_view_info.subresourceRange.baseArrayLayer = 0;
47 default_view_info.subresourceRange.layerCount = 1; // Non-array image view types can only contain a single layer
48
49 vkCreateImageView(device_impl->_orig, &default_view_info, nullptr, &data->default_view);
50 }
51}
52void destroy_default_view(reshade::vulkan::device_impl *device_impl, VkImage image)
53{
54 if (image == VK_NULL_HANDLE)

Calls 1

aspect_flags_from_formatFunction · 0.85

Tested by

no test coverage detected