Plasma Engine  2.0
Loading...
Searching...
No Matches
TextureDX11.h
1#pragma once
2
3#include <RendererFoundation/Resources/Texture.h>
4
5struct ID3D11Resource;
6struct D3D11_TEXTURE2D_DESC;
7struct D3D11_TEXTURE3D_DESC;
8struct D3D11_SUBRESOURCE_DATA;
10
11PL_DEFINE_AS_POD_TYPE(D3D11_SUBRESOURCE_DATA);
12
14{
15public:
16 PL_ALWAYS_INLINE ID3D11Resource* GetDXTexture() const;
17
18 PL_ALWAYS_INLINE ID3D11Resource* GetDXStagingTexture() const;
19
20protected:
21 friend class plGALDeviceDX11;
22 friend class plMemoryUtils;
23 friend class plGALSharedTextureDX11;
24
27
28 virtual plResult InitPlatform(plGALDevice* pDevice, plArrayPtr<plGALSystemMemoryDescription> pInitialData) override;
29 virtual plResult DeInitPlatform(plGALDevice* pDevice) override;
30 virtual void SetDebugNamePlatform(const char* szName) const override;
31
33 static plResult Create2DDesc(const plGALTextureCreationDescription& description, plGALDeviceDX11* pDXDevice, D3D11_TEXTURE2D_DESC& out_Tex2DDesc);
34 static plResult Create3DDesc(const plGALTextureCreationDescription& description, plGALDeviceDX11* pDXDevice, D3D11_TEXTURE3D_DESC& out_Tex3DDesc);
35 static void ConvertInitialData(const plGALTextureCreationDescription& description, plArrayPtr<plGALSystemMemoryDescription> pInitialData, plHybridArray<D3D11_SUBRESOURCE_DATA, 16>& out_InitialData);
36 plResult CreateStagingTexture(plGALDeviceDX11* pDevice);
37
38protected:
39 ID3D11Resource* m_pDXTexture = nullptr;
40 ID3D11Resource* m_pDXStagingTexture = nullptr;
41};
42
43
44
45#include <RendererDX11/Resources/Implementation/TextureDX11_inl.h>
This class encapsulates an array and it's size. It is recommended to use this class instead of plain ...
Definition ArrayPtr.h:37
The DX11 device implementation of the graphics abstraction layer.
Definition DeviceDX11.h:32
The plRenderDevice class is the primary interface for interactions with rendering APIs It contains a ...
Definition Device.h:19
Definition SharedTextureDX11.h:8
Definition TextureDX11.h:14
plResult InitFromNativeObject(plGALDeviceDX11 *pDXDevice)
Definition TextureDX11.cpp:69
Definition Texture.h:8
A hybrid array uses in-place storage to handle the first few elements without any allocation....
Definition HybridArray.h:12
This class provides functions to work on raw memory.
Definition MemoryUtils.h:26
Definition Descriptors.h:177
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54