Plasma Engine
2.0
Loading...
Searching...
No Matches
TextureDX11.h
1
#pragma once
2
3
#include <RendererFoundation/Resources/Texture.h>
4
5
struct
ID3D11Resource;
6
struct
D3D11_TEXTURE2D_DESC;
7
struct
D3D11_TEXTURE3D_DESC;
8
struct
D3D11_SUBRESOURCE_DATA;
9
class
plGALDeviceDX11
;
10
11
PL_DEFINE_AS_POD_TYPE(D3D11_SUBRESOURCE_DATA);
12
13
class
plGALTextureDX11
:
public
plGALTexture
14
{
15
public
:
16
PL_ALWAYS_INLINE ID3D11Resource* GetDXTexture()
const
;
17
18
PL_ALWAYS_INLINE ID3D11Resource* GetDXStagingTexture()
const
;
19
20
protected
:
21
friend
class
plGALDeviceDX11
;
22
friend
class
plMemoryUtils
;
23
friend
class
plGALSharedTextureDX11
;
24
25
plGALTextureDX11
(
const
plGALTextureCreationDescription
& Description);
26
~plGALTextureDX11
();
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
32
plResult
InitFromNativeObject
(
plGALDeviceDX11
* pDXDevice);
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
38
protected
:
39
ID3D11Resource* m_pDXTexture =
nullptr
;
40
ID3D11Resource* m_pDXStagingTexture =
nullptr
;
41
};
42
43
44
45
#include <RendererDX11/Resources/Implementation/TextureDX11_inl.h>
plArrayPtr
This class encapsulates an array and it's size. It is recommended to use this class instead of plain ...
Definition
ArrayPtr.h:37
plGALDeviceDX11
The DX11 device implementation of the graphics abstraction layer.
Definition
DeviceDX11.h:32
plGALDevice
The plRenderDevice class is the primary interface for interactions with rendering APIs It contains a ...
Definition
Device.h:19
plGALSharedTextureDX11
Definition
SharedTextureDX11.h:8
plGALTextureDX11
Definition
TextureDX11.h:14
plGALTextureDX11::InitFromNativeObject
plResult InitFromNativeObject(plGALDeviceDX11 *pDXDevice)
Definition
TextureDX11.cpp:69
plGALTexture
Definition
Texture.h:8
plHybridArray
A hybrid array uses in-place storage to handle the first few elements without any allocation....
Definition
HybridArray.h:12
plMemoryUtils
This class provides functions to work on raw memory.
Definition
MemoryUtils.h:26
plGALTextureCreationDescription
Definition
Descriptors.h:177
plResult
Default enum for returning failure or success, instead of using a bool.
Definition
Types.h:54
Code
Engine
RendererDX11
Resources
TextureDX11.h
Generated by
1.11.0