CommonLibSSE NG
BSTextureSet.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/N/NiObject.h"
4 #include "RE/N/NiSourceTexture.h"
5 
6 namespace RE
7 {
8  class BSTextureSet : public NiObject
9  {
10  public:
11  inline static constexpr auto RTTI = RTTI_BSTextureSet;
12  inline static auto Ni_RTTI = NiRTTI_BSTextureSet;
13 
14  struct Textures
15  {
16  enum Texture : std::uint32_t
17  {
18  kDiffuse = 0,
32 
33  kTotal
34  };
35  };
37 
38  ~BSTextureSet() override; // 00
39 
40  // override (NiObject)
41  const NiRTTI* GetRTTI() const override; // 02
42  void LoadBinary(NiStream& a_stream) override; // 18
43  void LinkObject(NiStream& a_stream) override; // 19
44  bool RegisterStreamables(NiStream& a_stream) override; // 1A
45  void SaveBinary(NiStream& a_stream) override; // 1B
46  bool IsEqual(NiObject* a_object) override; // 1C
47 
48  // add
49  virtual const char* GetTexturePath(Texture a_texture) = 0; // 25
50  virtual void SetTexture(Texture a_texture, NiSourceTexture* a_srcTexture) = 0; // 26
51  virtual void SetTexturePath(Texture a_texture, const char* a_path) = 0; // 27
52  };
53  static_assert(sizeof(BSTextureSet) == 0x10);
54 }
Definition: BSTextureSet.h:9
void SaveBinary(NiStream &a_stream) override
virtual const char * GetTexturePath(Texture a_texture)=0
static auto Ni_RTTI
Definition: BSTextureSet.h:12
const NiRTTI * GetRTTI() const override
virtual void SetTexturePath(Texture a_texture, const char *a_path)=0
void LoadBinary(NiStream &a_stream) override
bool RegisterStreamables(NiStream &a_stream) override
void LinkObject(NiStream &a_stream) override
~BSTextureSet() override
bool IsEqual(NiObject *a_object) override
static constexpr auto RTTI
Definition: BSTextureSet.h:11
virtual void SetTexture(Texture a_texture, NiSourceTexture *a_srcTexture)=0
Definition: NiObject.h:37
Definition: NiRTTI.h:6
Definition: NiSourceTexture.h:21
Definition: NiStream.h:29
Definition: AbsorbEffect.h:6
constexpr REL::VariantID NiRTTI_BSTextureSet(528103, 415048, 0x3485b88)
constexpr REL::VariantID RTTI_BSTextureSet(685302, 393079, 0x1ee3618)
Definition: BSTextureSet.h:15
Texture
Definition: BSTextureSet.h:17
@ kMultilayer
Definition: BSTextureSet.h:27
@ kSubsurfaceTint
Definition: BSTextureSet.h:22
@ kHeight
Definition: BSTextureSet.h:25
@ kDetailMap
Definition: BSTextureSet.h:24
@ kEnvironmentMask
Definition: BSTextureSet.h:21
@ kTotal
Definition: BSTextureSet.h:33
@ kEnvironment
Definition: BSTextureSet.h:26
@ kBacklightMask
Definition: BSTextureSet.h:28
@ kDiffuse
Definition: BSTextureSet.h:18
@ kGlowMap
Definition: BSTextureSet.h:23
@ kUnused08
Definition: BSTextureSet.h:30
@ kNormal
Definition: BSTextureSet.h:19
@ kGloss
Definition: BSTextureSet.h:20
@ kUsedTotal
Definition: BSTextureSet.h:31
@ kSpecular
Definition: BSTextureSet.h:29