Plasma Engine  2.0
Loading...
Searching...
No Matches
ShaderDX11.h
1
2#pragma once
3
4#include <RendererDX11/RendererDX11DLL.h>
5#include <RendererFoundation/RendererFoundationDLL.h>
6#include <RendererFoundation/Shader/Shader.h>
7
8struct ID3D11VertexShader;
9struct ID3D11HullShader;
10struct ID3D11DomainShader;
11struct ID3D11GeometryShader;
12struct ID3D11PixelShader;
13struct ID3D11ComputeShader;
14
15class PL_RENDERERDX11_DLL plGALShaderDX11 : public plGALShader
16{
17public:
18 void SetDebugName(const char* szName) const override;
19
20 PL_ALWAYS_INLINE ID3D11VertexShader* GetDXVertexShader() const;
21
22 PL_ALWAYS_INLINE ID3D11HullShader* GetDXHullShader() const;
23
24 PL_ALWAYS_INLINE ID3D11DomainShader* GetDXDomainShader() const;
25
26 PL_ALWAYS_INLINE ID3D11GeometryShader* GetDXGeometryShader() const;
27
28 PL_ALWAYS_INLINE ID3D11PixelShader* GetDXPixelShader() const;
29
30 PL_ALWAYS_INLINE ID3D11ComputeShader* GetDXComputeShader() const;
31
32protected:
33 friend class plGALDeviceDX11;
34 friend class plMemoryUtils;
35
37
38 virtual ~plGALShaderDX11();
39
40 virtual plResult InitPlatform(plGALDevice* pDevice) override;
41
42 virtual plResult DeInitPlatform(plGALDevice* pDevice) override;
43
44 ID3D11VertexShader* m_pVertexShader = nullptr;
45 ID3D11HullShader* m_pHullShader = nullptr;
46 ID3D11DomainShader* m_pDomainShader = nullptr;
47 ID3D11GeometryShader* m_pGeometryShader = nullptr;
48 ID3D11PixelShader* m_pPixelShader = nullptr;
49 ID3D11ComputeShader* m_pComputeShader = nullptr;
50};
51
52#include <RendererDX11/Shader/Implementation/ShaderDX11_inl.h>
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 ShaderDX11.h:16
Definition Shader.h:7
This class provides functions to work on raw memory.
Definition MemoryUtils.h:26
Definition Descriptors.h:44
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54