29 #include "TextureD3D12.h" 30 #include "RenderDeviceD3D12.h" 31 #include "TextureBase.h" 32 #include "TextureViewD3D12Impl.h" 33 #include "D3D12ResourceBase.h" 39 class FixedBlockMemoryAllocator;
58 ID3D12Resource *pTexture);
61 virtual void QueryInterface(
const Diligent::INTERFACE_ID &IID, IObject **ppInterface )
override;
66 virtual void Map(
IDeviceContext *pContext, Uint32 Subresource,
MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData )
override;
86 D3D12_CPU_DESCRIPTOR_HANDLE GetMipLevelUAV(Uint32 Mip)
88 return m_MipUAVs.GetCpuHandle(Mip);
91 D3D12_CPU_DESCRIPTOR_HANDLE GetTexArraySRV()
93 return m_TexArraySRV.GetCpuHandle();
97 void CreateViewInternal(
const struct TextureViewDesc &ViewDesc, ITextureView **ppView,
bool bIsDefaultView )
override;
100 void CreateSRV( TextureViewDesc &SRVDesc, D3D12_CPU_DESCRIPTOR_HANDLE SRVHandle );
101 void CreateRTV( TextureViewDesc &RTVDesc, D3D12_CPU_DESCRIPTOR_HANDLE RTVHandle );
102 void CreateDSV( TextureViewDesc &DSVDesc, D3D12_CPU_DESCRIPTOR_HANDLE DSVHandle );
103 void CreateUAV( TextureViewDesc &UAVDesc, D3D12_CPU_DESCRIPTOR_HANDLE UAVHandle );
106 DescriptorHeapAllocation m_MipUAVs;
108 DescriptorHeapAllocation m_TexArraySRV;
110 friend class RenderDeviceD3D12Impl;
void CopyData(IDeviceContext *pContext, ITexture *pSrcTexture, Uint32 SrcMipLevel, Uint32 SrcSlice, const Box *pSrcBox, Uint32 DstMipLevel, Uint32 DstSlice, Uint32 DstX, Uint32 DstY, Uint32 DstZ)
Base implementaiton of ITexture::CopyData(); validates input parameters.
Definition: TextureD3D12Impl.cpp:422
void CreateViewInternal(const struct TextureViewDesc &ViewDesc, ITextureView **ppView, bool bIsDefaultView) override
Pure virtual function that creates texture view for the specific engine implementation.
Definition: TextureD3D12Impl.cpp:326
Texture description.
Definition: Texture.h:82
virtual void * GetNativeHandle() override final
Returns native texture handle specific to the underlying graphics API.
Definition: TextureD3D12Impl.h:71
virtual void SetD3D12ResourceState(D3D12_RESOURCE_STATES state) override final
Sets the texture usage state.
Definition: TextureD3D12Impl.h:73
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34
Base implementation of a D3D12 resource.
Definition: D3D12ResourceBase.h:33
virtual void Unmap(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags) override
Base implementaiton of ITexture::Unmap()
Definition: TextureD3D12Impl.cpp:465
Describes data for one subresource.
Definition: Texture.h:193
virtual void UpdateData(IDeviceContext *pContext, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData) override
Base implementaiton of ITexture::UpdateData(); validates input parameters.
Definition: TextureD3D12Impl.cpp:404
virtual void Map(IDeviceContext *pContext, Uint32 Subresource, MAP_TYPE MapType, Uint32 MapFlags, MappedTextureSubresource &MappedData) override
Base implementaiton of ITexture::Map()
Definition: TextureD3D12Impl.cpp:456
Describes the initial data to store in the texture.
Definition: Texture.h:243
Device context interface.
Definition: DeviceContext.h:443
Box.
Definition: GraphicsTypes.h:1005
virtual ID3D12Resource * GetD3D12Texture()
Returns a pointer to the ID3D12Resource interface of the internal Direct3D12 object.
Definition: TextureD3D12Impl.h:69
Memory allocator that allocates memory in a fixed-size chunks.
Definition: FixedBlockMemoryAllocator.h:50
Base implementation of the Diligent::ITextureD3D12 interface.
Definition: TextureD3D12Impl.h:42
Base implementation of the ITexture interface.
Definition: TextureBase.h:52
MAP_TYPE
Resource mapping type.
Definition: GraphicsTypes.h:125
Texture inteface.
Definition: Texture.h:276
virtual void QueryInterface(const Diligent::INTERFACE_ID &IID, IObject **ppInterface) override
Queries the specific interface, see IObject::QueryInterface() for details.
Implementation of the Diligent::IRenderDeviceD3D12 interface.
Definition: RenderDeviceD3D12Impl.h:43