CommonLibSSE NG
Loading...
Searching...
No Matches
BSLightingShaderProperty.h
Go to the documentation of this file.
1#pragma once
2
4#include "RE/B/BSTArray.h"
5#include "RE/N/NiColor.h"
6
7namespace RE
8{
10 {
11 public:
12 inline static constexpr auto RTTI = RTTI_BSLightingShaderProperty;
14
15 struct Data
16 {
17 std::uint64_t unk00; // 00
18 std::uint64_t unk08; // 08
19 };
20 static_assert(sizeof(Data) == 0x10);
21
22 ~BSLightingShaderProperty() override; // 00
23
24 // override (BSShaderProperty)
25 const NiRTTI* GetRTTI() const override; // 02
26 NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17
27 void LoadBinary(NiStream& a_stream) override; // 18
28 void LinkObject(NiStream& a_stream) override; // 19
29 bool RegisterStreamables(NiStream& a_stream) override; // 1A
30 void SaveBinary(NiStream& a_stream) override; // 1B
31 bool IsEqual(NiObject* a_object) override; // 1C - { return false; }
32 void PostLinkObject(NiStream& a_stream) override; // 1E
33 bool SetupGeometry(BSGeometry* a_geometry) override; // 27
34 bool FinishSetupGeometry(BSGeometry* a_geometry) override; // 28
35 RenderPassArray* GetRenderPasses(BSGeometry* a_geometry, std::uint32_t a_arg2, BSShaderAccumulator* a_accumulator) override; // 2A
36 void Unk_2B(void) override; // 2B
37 void Unk_2C(void) override; // 2C
38 void Unk_2D(void) override; // 2D
39 void Unk_2F(void) override; // 2F
40 bool CanMerge(const BSShaderProperty* a_other) override; // 30
41 void SetMaterialAlpha(float a_alpha) override; // 31
42 float QMaterialAlpha() override; // 32
43 std::int32_t ForEachTexture(ForEachVisitor& a_visitor) override; // 33
44 void DoClearRenderPasses() override; // 34
45 std::int32_t QShader() override; // 35 - { return 11; }
46 NiSourceTexture* GetBaseTexture() override; // 37 - { return diffuseTexture }
47 bool AcceptsEffectData() const override; // 39 - { return !(flags & kRefraction) && !(flags & kTempRefraction); }
48 void Unk_3B(void) override; // 3B
49 std::uint32_t DetermineUtilityShaderDecl() override; // 3D
50 BSShaderMaterial::Type GetMaterialType() override; // 3E - { return 2; }
51
53
54 // members
55 Data unk088[3]; // 088
56 Data unk0B8; // 0B8
57 Data unk0C8; // 0C8
58 Data unk0D8; // 0D8
61 float emissiveMult; // 0F8
62 float forcedDarkness; // 0FC - unused
63 float specularLODFade; // 100
64 float envmapLODFade; // 104
65 std::uint32_t unk108; // 108
68 std::int32_t unk12C; // 12C
69 std::uint32_t unk130; // 130
70 std::uint32_t unk134; // 134
72 std::uint64_t unk150; // 150
73 std::uint8_t unk158; // 158
74 std::uint8_t pad159; // 159
75 std::uint16_t pad15A; // 15A
76 std::uint32_t pad15C; // 15C
77 };
78 static_assert(sizeof(BSLightingShaderProperty) == 0x160);
79}
Definition BSGeometry.h:15
Definition BSLightingShaderProperty.h:10
Data unk0D8
Definition BSLightingShaderProperty.h:58
std::int32_t QShader() override
void PostLinkObject(NiStream &a_stream) override
bool SetupGeometry(BSGeometry *a_geometry) override
void SetMaterialAlpha(float a_alpha) override
static constexpr auto RTTI
Definition BSLightingShaderProperty.h:12
bool FinishSetupGeometry(BSGeometry *a_geometry) override
void DoClearRenderPasses() override
std::int32_t ForEachTexture(ForEachVisitor &a_visitor) override
std::uint32_t pad15C
Definition BSLightingShaderProperty.h:76
Data unk0C8
Definition BSLightingShaderProperty.h:57
std::uint8_t pad159
Definition BSLightingShaderProperty.h:74
NiColor * emissiveColor
Definition BSLightingShaderProperty.h:60
std::int32_t unk12C
Definition BSLightingShaderProperty.h:68
float QMaterialAlpha() override
void Unk_2D(void) override
NiColorA projectedUVParams
Definition BSLightingShaderProperty.h:66
bool CanMerge(const BSShaderProperty *a_other) override
bool AcceptsEffectData() const override
bool RegisterStreamables(NiStream &a_stream) override
void Unk_2F(void) override
void Unk_3B(void) override
NiColorA projectedUVColor
Definition BSLightingShaderProperty.h:67
std::uint32_t unk108
Definition BSLightingShaderProperty.h:65
std::uint32_t DetermineUtilityShaderDecl() override
BSShaderMaterial::Type GetMaterialType() override
Data unk0B8
Definition BSLightingShaderProperty.h:56
float forcedDarkness
Definition BSLightingShaderProperty.h:62
void Unk_2B(void) override
BSRenderPass * unk0E8
Definition BSLightingShaderProperty.h:59
float emissiveMult
Definition BSLightingShaderProperty.h:61
float specularLODFade
Definition BSLightingShaderProperty.h:63
std::uint32_t unk130
Definition BSLightingShaderProperty.h:69
void LoadBinary(NiStream &a_stream) override
void LinkObject(NiStream &a_stream) override
std::uint32_t unk134
Definition BSLightingShaderProperty.h:70
float envmapLODFade
Definition BSLightingShaderProperty.h:64
RenderPassArray * GetRenderPasses(BSGeometry *a_geometry, std::uint32_t a_arg2, BSShaderAccumulator *a_accumulator) override
std::uint16_t pad15A
Definition BSLightingShaderProperty.h:75
BSTArray< void * > unk138
Definition BSLightingShaderProperty.h:71
std::uint8_t unk158
Definition BSLightingShaderProperty.h:73
void SaveBinary(NiStream &a_stream) override
void Unk_2C(void) override
bool IsEqual(NiObject *a_object) override
NiObject * CreateClone(NiCloningProcess &a_cloning) override
std::uint64_t unk150
Definition BSLightingShaderProperty.h:72
NiSourceTexture * GetBaseTexture() override
Data unk088[3]
Definition BSLightingShaderProperty.h:55
void CopyMembers(BSLightingShaderProperty *a_other)
static auto Ni_RTTI
Definition BSLightingShaderProperty.h:13
const NiRTTI * GetRTTI() const override
Definition BSRenderPass.h:11
Type
Definition BSShaderMaterial.h:38
Definition BSShaderProperty.h:26
Definition BSShaderProperty.h:17
Definition BSTArray.h:377
Definition NiCloningProcess.h:10
Definition NiColor.h:276
Definition NiColor.h:11
Definition NiObject.h:37
Definition NiRTTI.h:6
Definition NiSourceTexture.h:21
Definition NiStream.h:27
Definition AbsorbEffect.h:6
constexpr REL::VariantID NiRTTI_BSLightingShaderProperty(527752, 414675, 0x3423e20)
constexpr REL::VariantID RTTI_BSLightingShaderProperty(692006, 400050, 0x1f7fa88)
Definition BSLightingShaderProperty.h:16
std::uint64_t unk00
Definition BSLightingShaderProperty.h:17
std::uint64_t unk08
Definition BSLightingShaderProperty.h:18
Definition BSShaderProperty.h:37