CommonLibSSE NG
Loading...
Searching...
No Matches
NiAlphaProperty.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/N/NiProperty.h"
4
5namespace RE
6{
8 {
9 public:
10 inline static constexpr auto RTTI = RTTI_NiAlphaProperty;
11 inline static constexpr auto Ni_RTTI = NiRTTI_NiAlphaProperty;
12 inline static constexpr auto VTABLE = VTABLE_NiAlphaProperty;
13
14 enum class AlphaFunction
15 {
16 kOne,
17 kZero,
27 };
28
29 enum class TestFunction
30 {
31 kAlways,
32 kLess,
33 kEqual,
38 kNever
39 };
40
41 ~NiAlphaProperty() override; // 00
42
43 // override (NiProperty)
44 const NiRTTI* GetRTTI() const override; // 02
45 NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17
46 void LoadBinary(NiStream& a_stream) override; // 18
47 void LinkObject(NiStream& a_stream) override; // 19 - { NiProperty::LinkObject(a_stream); }
48 bool RegisterStreamables(NiStream& a_stream) override; // 1A - { return NiProperty::RegisterStreamables(a_stream); }
49 void SaveBinary(NiStream& a_stream) override; // 1B
50 bool IsEqual(NiObject* a_object) override; // 1C
51 [[nodiscard]] Type GetType() const override; // 25 - { return Type::kAlpha; }
52
53 [[nodiscard]] bool GetAlphaBlending() const;
54 [[nodiscard]] bool GetAlphaTesting() const;
55 [[nodiscard]] AlphaFunction GetDestBlendMode() const;
56 [[nodiscard]] AlphaFunction GetSrcBlendMode() const;
57 void SetAlphaBlending(bool a_enable);
58 void SetAlphaTesting(bool a_enable);
61
62 // members
63 std::uint16_t alphaFlags; // 30
64 std::uint8_t alphaThreshold; // 32
65 std::uint8_t pad33; // 33
66 std::uint32_t pad34; // 34
67 };
68 static_assert(sizeof(NiAlphaProperty) == 0x38);
69}
Definition NiAlphaProperty.h:8
std::uint16_t alphaFlags
Definition NiAlphaProperty.h:63
void SetDestBlendMode(AlphaFunction a_mode)
bool GetAlphaBlending() const
void SetSrcBlendMode(AlphaFunction a_mode)
void LinkObject(NiStream &a_stream) override
void LoadBinary(NiStream &a_stream) override
bool RegisterStreamables(NiStream &a_stream) override
AlphaFunction GetSrcBlendMode() const
Type GetType() const override
static constexpr auto Ni_RTTI
Definition NiAlphaProperty.h:11
AlphaFunction
Definition NiAlphaProperty.h:15
AlphaFunction GetDestBlendMode() const
void SetAlphaTesting(bool a_enable)
bool GetAlphaTesting() const
static constexpr auto RTTI
Definition NiAlphaProperty.h:10
std::uint8_t alphaThreshold
Definition NiAlphaProperty.h:64
std::uint32_t pad34
Definition NiAlphaProperty.h:66
const NiRTTI * GetRTTI() const override
std::uint8_t pad33
Definition NiAlphaProperty.h:65
~NiAlphaProperty() override
TestFunction
Definition NiAlphaProperty.h:30
void SaveBinary(NiStream &a_stream) override
NiObject * CreateClone(NiCloningProcess &a_cloning) override
static constexpr auto VTABLE
Definition NiAlphaProperty.h:12
bool IsEqual(NiObject *a_object) override
void SetAlphaBlending(bool a_enable)
Definition NiCloningProcess.h:10
Definition NiObject.h:37
Definition NiProperty.h:8
Type
Definition NiProperty.h:14
Definition NiRTTI.h:6
Definition NiStream.h:27
Definition AbsorbEffect.h:6
constexpr REL::VariantID RTTI_NiAlphaProperty(684913, 392647, 0x1edc2e0)
constexpr REL::VariantID NiRTTI_NiAlphaProperty(523931, 410511, 0x316add8)
constexpr std::array< REL::VariantID, 1 > VTABLE_NiAlphaProperty
Definition Offsets_VTABLE.h:366