11 class BSShaderMaterial;
14 struct ID3D11PixelShader;
15 struct ID3D11VertexShader;
16 struct ID3D11ComputeShader;
80 namespace BSShaderTechniqueIDMap
85 [[nodiscard]] std::uint32_t
operator()(
const T a_shader)
const noexcept
87 assert(a_shader !=
nullptr);
95 [[nodiscard]]
bool operator()(
const T a_lhs,
const T a_rhs)
const noexcept
97 assert(a_lhs !=
nullptr);
98 assert(a_rhs !=
nullptr);
99 return a_lhs->id == a_rhs->id;
125 virtual void GetTechniqueName(std::uint32_t a_techniqueID,
char* a_buffer, std::uint32_t a_bufferSize);
132 return func(
this, a_property, a_geometry, a_technique, a_numLights, a_lights);
141 static_assert(
sizeof(
BSShader) == 0x90);
#define RELOCATION_ID(SE, AE)
Definition: PCH.h:505
Definition: Relocation.h:210
Definition: BSGeometry.h:15
Definition: BSShader.h:56
uint32_t byteCodeSize
Definition: BSShader.h:73
uint64_t unk30
Definition: BSShader.h:65
uint8_t rawBytecode[0]
Definition: BSShader.h:75
ID3D11ComputeShader * shader
Definition: BSShader.h:71
uint32_t id
Definition: BSShader.h:72
uint64_t unk00
Definition: BSShader.h:59
uint64_t unk50
Definition: BSShader.h:69
uint32_t unk18
Definition: BSShader.h:62
uint32_t unk38
Definition: BSShader.h:66
uint64_t unk40
Definition: BSShader.h:67
uint64_t unk20
Definition: BSShader.h:63
uint32_t unk58
Definition: BSShader.h:70
uint64_t unk28
Definition: BSShader.h:64
uint64_t unk08
Definition: BSShader.h:60
uint64_t unk48
Definition: BSShader.h:68
uint64_t unk10
Definition: BSShader.h:61
std::array< std::int8_t, 32 > constantTable
Definition: BSShader.h:74
Definition: BSShader.h:21
ID3D11Buffer * buffer
Definition: BSShader.h:24
void * data
Definition: BSShader.h:25
Definition: BSShader.h:30
ID3D11PixelShader * shader
Definition: BSShader.h:34
ConstantGroup constantBuffers[3]
Definition: BSShader.h:35
std::uint32_t id
Definition: BSShader.h:33
std::array< std::int8_t, 64 > constantTable
Definition: BSShader.h:36
Definition: BSShader.h:41
std::uint64_t shaderDesc
Definition: BSShader.h:48
std::uint32_t id
Definition: BSShader.h:44
std::uint8_t rawBytecode[0]
Definition: BSShader.h:51
std::uint32_t pad64
Definition: BSShader.h:50
std::uint32_t byteCodeSize
Definition: BSShader.h:46
ConstantGroup constantBuffers[3]
Definition: BSShader.h:47
ID3D11VertexShader * shader
Definition: BSShader.h:45
std::array< std::int8_t, 20 > constantTable
Definition: BSShader.h:49
Definition: BSReloadShaderI.h:8
Definition: BSRenderPass.h:11
Definition: BSShaderMaterial.h:9
Definition: BSShaderProperty.h:17
Definition: BSShader.h:111
virtual void SetupGeometry(BSRenderPass *a_currentPass, std::uint32_t a_flags)=0
static constexpr auto RTTI
Definition: BSShader.h:113
BSShaderTechniqueIDMap::MapType< BSGraphics::PixelShader * > pixelShaders
Definition: BSShader.h:138
std::int32_t shaderType
Definition: BSShader.h:136
virtual bool SetupTechnique(std::uint32_t a_technique)=0
BSShaderTechniqueIDMap::MapType< BSGraphics::VertexShader * > vertexShaders
Definition: BSShader.h:137
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
RE::BSRenderPass * MakeRenderPass(BSShaderProperty *a_property, BSGeometry *a_geometry, uint32_t a_technique, uint8_t a_numLights, BSLight **a_lights)
Definition: BSShader.h:128
const char * fxpFilename
Definition: BSShader.h:139
virtual void RestoreMaterial(const BSShaderMaterial *a_material)
static constexpr auto VTABLE
Definition: BSShader.h:114
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::ID, 3 > VTABLE_BSShader
Definition: Offsets_VTABLE.h:9833
constexpr REL::ID RTTI_BSShader(static_cast< std::uint64_t >(691881))
Definition: BSShader.h:94
bool operator()(const T a_lhs, const T a_rhs) const noexcept
Definition: BSShader.h:95
Definition: BSShader.h:84
std::uint32_t operator()(const T a_shader) const noexcept
Definition: BSShader.h:85