22 PL_DECLARE_POD_TYPE();
25 plUInt32 m_uiRowLength;
26 plUInt32 m_uiImageHeight;
29 PL_ALWAYS_INLINE vk::Image GetImage()
const;
30 PL_ALWAYS_INLINE vk::Format GetImageFormat()
const {
return m_imageFormat; }
31 PL_ALWAYS_INLINE vk::ImageLayout GetPreferredLayout()
const;
32 PL_ALWAYS_INLINE vk::ImageLayout GetPreferredLayout(vk::ImageLayout targetLayout)
const;
33 PL_ALWAYS_INLINE vk::PipelineStageFlags GetUsedByPipelineStage()
const;
34 PL_ALWAYS_INLINE vk::AccessFlags GetAccessMask()
const;
36 PL_ALWAYS_INLINE plVulkanAllocation GetAllocation()
const;
39 PL_ALWAYS_INLINE
bool IsLinearLayout()
const;
41 vk::Extent3D GetMipLevelSize(plUInt32 uiMipLevel)
const;
42 vk::ImageSubresourceRange GetFullRange()
const;
43 vk::ImageAspectFlags GetAspectMask()
const;
46 PL_ALWAYS_INLINE
StagingMode GetStagingMode()
const;
61 virtual void SetDebugNamePlatform(
const char* szName)
const override;
64 static void ComputeCreateInfo(
plGALDeviceVulkan* pDevice,
const plGALTextureCreationDescription& description, vk::ImageCreateInfo& ref_createInfo, vk::PipelineStageFlags& ref_stages, vk::AccessFlags& ref_access, vk::ImageLayout& ref_preferredLayout);
65 static void ComputeCreateInfoLinear(vk::ImageCreateInfo& ref_createInfo, vk::PipelineStageFlags& ref_stages, vk::AccessFlags& ref_access);
69 plResult CreateStagingBuffer(
const vk::ImageCreateInfo& createInfo);
72 vk::Format m_imageFormat = vk::Format::eUndefined;
73 vk::ImageLayout m_preferredLayout = vk::ImageLayout::eUndefined;
74 vk::PipelineStageFlags m_stages = {};
75 vk::AccessFlags m_access = {};
77 plVulkanAllocation m_alloc =
nullptr;
82 bool m_bLinearCPU =
false;
83 bool m_bStaging =
false;
Definition RendererFoundationDLL.h:411
Definition TextureVulkan.h:11
StagingMode
Definition TextureVulkan.h:14
@ TextureAndBuffer
Formats differ and linear texture can't be rendered to. Render to optimal layout GPU texture and then...
@ Buffer
We can use vkCopyImageToBuffer to a CPU buffer.
@ Texture
Formats differ and we need to render to a linear CPU texture to do the conversion.
Definition Descriptors.h:177
Definition TextureVulkan.h:21