CommonLibSSE NG
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 
7 namespace 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
const NiRTTI * GetRTTI() const override
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
NiSourceTexture * GetBaseTexture() override
std::uint32_t unk134
Definition: BSLightingShaderProperty.h:70
float envmapLODFade
Definition: BSLightingShaderProperty.h:64
std::uint16_t pad15A
Definition: BSLightingShaderProperty.h:75
BSTArray< void * > unk138
Definition: BSLightingShaderProperty.h:71
std::uint8_t unk158
Definition: BSLightingShaderProperty.h:73
NiObject * CreateClone(NiCloningProcess &a_cloning) override
void SaveBinary(NiStream &a_stream) override
void Unk_2C(void) override
bool IsEqual(NiObject *a_object) override
RenderPassArray * GetRenderPasses(BSGeometry *a_geometry, std::uint32_t a_arg2, BSShaderAccumulator *a_accumulator) override
std::uint64_t unk150
Definition: BSLightingShaderProperty.h:72
Data unk088[3]
Definition: BSLightingShaderProperty.h:55
void CopyMembers(BSLightingShaderProperty *a_other)
static auto Ni_RTTI
Definition: BSLightingShaderProperty.h:13
Definition: BSRenderPass.h:11
Type
Definition: BSShaderMaterial.h:38
Definition: BSShaderProperty.h:26
Definition: BSShaderProperty.h:17
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:29
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