Plasma Engine  2.0
Loading...
Searching...
No Matches
Shader.h
1#pragma once
2
3#include <RendererFoundation/Descriptors/Descriptors.h>
4#include <RendererFoundation/RendererFoundationDLL.h>
5
6class PL_RENDERERFOUNDATION_DLL plGALShader : public plGALObject<plGALShaderCreationDescription>
7{
8public:
9 virtual void SetDebugName(const char* szName) const = 0;
10
12 plArrayPtr<const plShaderResourceBinding> GetBindingMapping() const;
14 const plShaderResourceBinding* GetShaderResourceBinding(const plTempHashedString& sName) const;
15
17 plArrayPtr<const plShaderVertexInputAttribute> GetVertexInputAttributes() const;
18
19protected:
20 friend class plGALDevice;
21
22 virtual plResult InitPlatform(plGALDevice* pDevice) = 0;
23 virtual plResult DeInitPlatform(plGALDevice* pDevice) = 0;
24
25 plResult CreateBindingMapping(bool bAllowMultipleBindingPerName);
26 void DestroyBindingMapping();
27
29 virtual ~plGALShader();
30
31protected:
33};
This class encapsulates an array and it's size. It is recommended to use this class instead of plain ...
Definition ArrayPtr.h:37
Definition DynamicArray.h:81
The plRenderDevice class is the primary interface for interactions with rendering APIs It contains a ...
Definition Device.h:19
Base class for GAL objects, stores a creation description of the object and also allows for reference...
Definition RendererFoundationDLL.h:374
Definition Shader.h:7
A class to use together with plHashedString for quick comparisons with temporary strings that need no...
Definition HashedString.h:151
Definition Descriptors.h:44
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54
Shader reflection of a single shader resource (texture, constant buffer, etc.).
Definition ShaderByteCode.h:77