CommonLibSSE NG
BSEffectShaderProperty.h
Go to the documentation of this file.
1 #pragma once
2 
4 
5 namespace RE
6 {
7  class NiColor;
8 
10  {
11  public:
12  inline static constexpr auto RTTI = RTTI_BSEffectShaderProperty;
13  inline static auto Ni_RTTI = NiRTTI_BSEffectShaderProperty;
14 
15  ~BSEffectShaderProperty() override; // 00
16 
17  // override (BSShaderProperty)
18  const NiRTTI* GetRTTI() const override; // 02
19  NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17 - { return 0; }
20  void LoadBinary(NiStream& a_stream) override; // 18
21  void LinkObject(NiStream& a_stream) override; // 19 - { NiShadeProperty::LinkObject(a_stream); }
22  void SaveBinary(NiStream& a_stream) override; // 1B
23  void PostLinkObject(NiStream& a_stream) override; // 1E - { NiObjectNET::PostLinkObject(a_stream); }
24  bool SetupGeometry(BSGeometry* a_geometry) override; // 27
25  RenderPassArray* GetRenderPasses(BSGeometry* a_geometry, std::uint32_t a_arg2, BSShaderAccumulator* a_accumulator) override; // 2A
26  void Unk_2B(void) override; // 2B - { return 0; }
27  void SetMaterialAlpha(float a_alpha) override; // 31 - { baseColor->alpha = a_alpha }
28  float QMaterialAlpha() override; // 32 - { baseColor->alpha }
29  std::int32_t ForEachTexture(ForEachVisitor& a_visitor) override; // 33
30  std::int32_t QShader() override; // 35 - { return 1; }
31  NiSourceTexture* GetBaseTexture() override; // 37 - { return material->sourceTexture }
32  void Unk_3B(void) override; // 3B - { return; }
33  void Unk_3C(void) override; // 3C - { return 1; }
34  BSShaderMaterial::Type GetMaterialType() override; // 3E - { return 1; }
35 
36  // members
37  NiColor* unk88; // 88
38  std::uint64_t unk90; // 90
39  std::uint64_t unk98; // 98
40  };
41  static_assert(sizeof(BSEffectShaderProperty) == 0xA0);
42 }
Definition: BSEffectShaderProperty.h:10
void Unk_3C(void) override
NiColor * unk88
Definition: BSEffectShaderProperty.h:37
const NiRTTI * GetRTTI() const override
RenderPassArray * GetRenderPasses(BSGeometry *a_geometry, std::uint32_t a_arg2, BSShaderAccumulator *a_accumulator) override
std::int32_t ForEachTexture(ForEachVisitor &a_visitor) override
std::uint64_t unk90
Definition: BSEffectShaderProperty.h:38
std::uint64_t unk98
Definition: BSEffectShaderProperty.h:39
void LinkObject(NiStream &a_stream) override
bool SetupGeometry(BSGeometry *a_geometry) override
void LoadBinary(NiStream &a_stream) override
NiSourceTexture * GetBaseTexture() override
float QMaterialAlpha() override
void PostLinkObject(NiStream &a_stream) override
void Unk_2B(void) override
static auto Ni_RTTI
Definition: BSEffectShaderProperty.h:13
void SaveBinary(NiStream &a_stream) override
NiObject * CreateClone(NiCloningProcess &a_cloning) override
BSShaderMaterial::Type GetMaterialType() override
void Unk_3B(void) override
static constexpr auto RTTI
Definition: BSEffectShaderProperty.h:12
std::int32_t QShader() override
void SetMaterialAlpha(float a_alpha) override
~BSEffectShaderProperty() override
Definition: BSGeometry.h:15
Type
Definition: BSShaderMaterial.h:38
Definition: BSShaderProperty.h:26
Definition: BSShaderProperty.h:17
Definition: NiCloningProcess.h:10
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_BSEffectShaderProperty(527834, 414781, 0x3424340)
constexpr REL::VariantID RTTI_BSEffectShaderProperty(692024, 400068, 0x1f7fe78)
Definition: BSShaderProperty.h:37