Add Vulkan quad integration path
This commit is contained in:
@@ -24,8 +24,33 @@ bool VulkanResourceView::InitializeAsRenderTarget(VkDevice device, VulkanTexture
|
||||
VkImageViewCreateInfo viewInfo = {};
|
||||
viewInfo.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
|
||||
viewInfo.image = texture->GetImage();
|
||||
viewInfo.viewType = VK_IMAGE_VIEW_TYPE_2D;
|
||||
viewInfo.format = texture->GetVkFormat();
|
||||
viewInfo.viewType = ToVulkanImageViewType(m_dimension, texture->GetTextureType());
|
||||
viewInfo.format = m_format != Format::Unknown ? ToVulkanFormat(m_format) : texture->GetVkFormat();
|
||||
viewInfo.subresourceRange.aspectMask = GetImageAspectMask(texture->GetFormat());
|
||||
viewInfo.subresourceRange.baseMipLevel = desc.mipLevel;
|
||||
viewInfo.subresourceRange.levelCount = 1;
|
||||
viewInfo.subresourceRange.baseArrayLayer = desc.firstArraySlice;
|
||||
viewInfo.subresourceRange.layerCount = 1;
|
||||
|
||||
return vkCreateImageView(device, &viewInfo, nullptr, &m_imageView) == VK_SUCCESS;
|
||||
}
|
||||
|
||||
bool VulkanResourceView::InitializeAsShaderResource(VkDevice device, VulkanTexture* texture, const ResourceViewDesc& desc) {
|
||||
if (device == VK_NULL_HANDLE || texture == nullptr || texture->GetImage() == VK_NULL_HANDLE) {
|
||||
return false;
|
||||
}
|
||||
|
||||
m_device = device;
|
||||
m_texture = texture;
|
||||
m_viewType = ResourceViewType::ShaderResource;
|
||||
m_dimension = desc.dimension != ResourceViewDimension::Unknown ? desc.dimension : ResourceViewDimension::Texture2D;
|
||||
m_format = desc.format != 0 ? static_cast<Format>(desc.format) : texture->GetFormat();
|
||||
|
||||
VkImageViewCreateInfo viewInfo = {};
|
||||
viewInfo.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
|
||||
viewInfo.image = texture->GetImage();
|
||||
viewInfo.viewType = ToVulkanImageViewType(m_dimension, texture->GetTextureType());
|
||||
viewInfo.format = m_format != Format::Unknown ? ToVulkanFormat(m_format) : texture->GetVkFormat();
|
||||
viewInfo.subresourceRange.aspectMask = GetImageAspectMask(texture->GetFormat());
|
||||
viewInfo.subresourceRange.baseMipLevel = desc.mipLevel;
|
||||
viewInfo.subresourceRange.levelCount = 1;
|
||||
@@ -80,6 +105,7 @@ bool VulkanResourceView::IsValid() const {
|
||||
return m_buffer != nullptr && m_buffer->GetBuffer() != VK_NULL_HANDLE;
|
||||
case ResourceViewType::RenderTarget:
|
||||
case ResourceViewType::DepthStencil:
|
||||
case ResourceViewType::ShaderResource:
|
||||
return m_imageView != VK_NULL_HANDLE;
|
||||
default:
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user