19 Microsoft::WRL::ComPtr<ID3D12Resource> texture;
20 const std::shared_ptr<DeviceD3D12> owningDevice;
21 D3D12MA::Allocation* allocation =
nullptr;
23 constexpr static UINT unallocated = std::numeric_limits<UINT>::max();
25 UINT dsvIDX = unallocated, rtvIDX = unallocated, srvIDX = unallocated, uavIDX = unallocated;
28 bool dsvAllocated()
const{
29 return dsvIDX != unallocated;
31 bool rtvAllocated()
const{
32 return rtvIDX != unallocated;
34 bool srvAllocated()
const{
35 return srvIDX != unallocated;
37 bool uavAllocated()
const {
38 return uavIDX != unallocated;
41 std::vector<UINT> mipHeapIndicesSRV, mipHeapIndicesUAV, mipHeapIndicesRTV;
43 uint32_t numLayers = 1;
45 TextureD3D12(
decltype(texture) image,
const Dimension& size,
decltype(rtvIDX),
decltype(owningDevice));
46 TextureD3D12(
decltype(texture) image,
const TextureConfig& config, std::shared_ptr<IDevice> device, D3D12_RESOURCE_STATES nativeStateOverride = D3D12_RESOURCE_STATE_COMMON);
50 void PlaceInHeaps(
const std::shared_ptr<RGL::DeviceD3D12>& owningDevice, DXGI_FORMAT format,
const RGL::TextureConfig& config);
52 uint32_t SubresourceIndexForMipLayer(uint32_t mip, uint32_t layer)
const;
55 TextureView GetViewForMip(uint32_t mip)
const final;
62 uint8_t GetNumMips()
const final {
66 ID3D12Resource* GetResource()
const final {
70 std::string debugName;
72 DXGI_FORMAT textureFormat = DXGI_FORMAT_UNKNOWN;
Definition Texture.hpp:152
Definition Texture.hpp:168
Definition Texture.hpp:157
Definition D3D12Texture.hpp:75
Definition Texture.hpp:138
Definition D3D12Texture.hpp:17
Definition Texture.hpp:162
Definition Texture.hpp:43