10 class BSShaderMaterial;
13 struct ID3D11PixelShader;
14 struct ID3D11VertexShader;
54 namespace BSShaderTechniqueIDMap
59 [[nodiscard]] std::uint32_t
operator()(
const T a_shader)
const noexcept
61 assert(a_shader !=
nullptr);
69 [[nodiscard]]
bool operator()(
const T a_lhs,
const T a_rhs)
const noexcept
71 assert(a_lhs !=
nullptr);
72 assert(a_rhs !=
nullptr);
73 return a_lhs->id == a_rhs->id;
99 virtual void GetTechniqueName(std::uint32_t a_techniqueID,
char* a_buffer, std::uint32_t a_bufferSize);
108 static_assert(
sizeof(
BSShader) == 0x90);
Definition: BSShader.h:19
ID3D11Buffer * buffer
Definition: BSShader.h:22
void * data
Definition: BSShader.h:23
Definition: BSShader.h:28
ID3D11PixelShader * shader
Definition: BSShader.h:32
ConstantGroup constantBuffers[3]
Definition: BSShader.h:33
std::uint32_t id
Definition: BSShader.h:31
std::int8_t constantTable[64]
Definition: BSShader.h:34
Definition: BSShader.h:39
std::uint64_t shaderDesc
Definition: BSShader.h:46
std::uint32_t id
Definition: BSShader.h:42
std::int8_t constantTable[20]
Definition: BSShader.h:47
std::uint8_t rawBytecode[0]
Definition: BSShader.h:49
std::uint32_t pad64
Definition: BSShader.h:48
std::uint32_t byteCodeSize
Definition: BSShader.h:44
ConstantGroup constantBuffers[3]
Definition: BSShader.h:45
ID3D11VertexShader * shader
Definition: BSShader.h:43
Definition: BSReloadShaderI.h:8
Definition: BSRenderPass.h:11
Definition: BSShaderMaterial.h:9
Definition: BSShader.h:85
virtual void SetupGeometry(BSRenderPass *a_currentPass, std::uint32_t a_flags)=0
static constexpr auto RTTI
Definition: BSShader.h:87
BSShaderTechniqueIDMap::MapType< BSGraphics::PixelShader * > pixelShaders
Definition: BSShader.h:105
std::int32_t shaderType
Definition: BSShader.h:103
virtual bool SetupTechnique(std::uint32_t a_technique)=0
BSShaderTechniqueIDMap::MapType< BSGraphics::VertexShader * > vertexShaders
Definition: BSShader.h:104
virtual void GetTechniqueName(std::uint32_t a_techniqueID, char *a_buffer, std::uint32_t a_bufferSize)
virtual void ReloadShaders(bool a_clear)
virtual void RestoreGeometry(BSRenderPass *a_currentPass, std::uint32_t a_renderFlags)=0
const char * fxpFilename
Definition: BSShader.h:106
virtual void RestoreMaterial(const BSShaderMaterial *a_material)
static constexpr auto VTABLE
Definition: BSShader.h:88
virtual void SetupMaterial(const BSShaderMaterial *a_material)
virtual void RestoreTechnique(std::uint32_t a_technique)=0
Definition: BSTHashMap.h:21
Definition: NiBoneMatrixSetterI.h:6
Definition: NiRefObject.h:8
Definition: AbsorbEffect.h:6
constexpr std::array< REL::VariantID, 3 > VTABLE_BSShader
Definition: Offsets_VTABLE.h:7303
constexpr REL::VariantID RTTI_BSShader(691881, 399925, 0x1f7d930)
Definition: BSShader.h:68
bool operator()(const T a_lhs, const T a_rhs) const noexcept
Definition: BSShader.h:69
Definition: BSShader.h:58
std::uint32_t operator()(const T a_shader) const noexcept
Definition: BSShader.h:59