CommonLibSSE (Parapets fork)
Loading...
Searching...
No Matches
TESImageSpaceModifier.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/B/BSString.h"
4#include "RE/F/FormTypes.h"
6#include "RE/N/NiPoint2.h"
7#include "RE/T/TESForm.h"
8
9namespace RE
10{
11 class NiColorInterpolator;
12 class NiFloatInterpolator;
13
15 {
16 public:
17 template <typename T>
18 struct MultAdd
19 {
20 public:
21 // members
23 T add;
24 };
25
26 template <typename T>
27 struct MinMax
28 {
29 public:
30 // members
33 };
34
35 struct HDR
36 {
37 public:
38 // members
47 };
48 static_assert(sizeof(HDR) == 0x70);
49
50 struct Bloom
51 {
52 public:
53 // members
55 };
56 static_assert(sizeof(Bloom) == 0x18);
57
58 struct Cinematic
59 {
60 public:
61 // members
66 };
67 static_assert(sizeof(Cinematic) == 0x20);
68
69 struct DOF
70 {
71 public:
73
74 // members
75 std::uint32_t strength; // 00
76 std::uint32_t distance; // 04
77 std::uint32_t range; // 08
78 bool useTarget; // 0C
80 std::uint16_t pad0E; // 0E
81 };
82 static_assert(sizeof(DOF) == 0x10);
83
84 // members
85 bool animatable; // 00
86 std::uint8_t pad01; // 01
87 std::uint16_t pad02; // 01
88 float duration; // 04
89 HDR hdr; // 08
90 Bloom bloom; // 78
92 std::uint32_t tintColor; // B0
93 std::uint32_t blurRadius; // B4
94 std::uint32_t doubleVisionStrength; // B8
95 std::uint32_t radialBlurStrength; // BC
96 std::uint32_t radialBlurRampUp; // C0
97 std::uint32_t radialBlurStart; // C4
99 std::uint8_t padC9; // C9
100 std::uint16_t padCA; // CA
102 DOF dof; // D4
103 std::uint32_t radialBlurRampDown; // E4
104 std::uint32_t radialBlurDownStart; // E8
105 std::uint32_t fadeColor; // EC
106 std::uint32_t motionBlurStrength; // F0
107 };
108 static_assert(sizeof(ImageSpaceModifierData) == 0xF4);
109
111 {
112 public:
113 inline static constexpr auto RTTI = RTTI_TESImageSpaceModifier;
114 inline static constexpr auto FORMTYPE = FormType::ImageAdapter;
115
117 {
118 enum RecordFlag : std::uint32_t
119 {
120 kDeleted = 1 << 5,
121 kIgnored = 1 << 12
122 };
123 };
124
125 template <typename T>
126 struct MultAdd
127 {
130 };
131
132 template <typename T>
133 struct MinMax
134 {
137 };
138
139 struct HDR
140 {
149 };
150 static_assert(sizeof(HDR) == 0xE0);
151
152 struct Bloom
153 {
155 };
156 static_assert(sizeof(Bloom) == 0x30);
157
159 {
164 };
165 static_assert(sizeof(Cinematic) == 0x40);
166
168 {
174 };
175 static_assert(sizeof(RadialBlur) == 0x28);
176
177 struct DOF
178 {
182 };
183 static_assert(sizeof(DOF) == 0x18);
184
185 ~TESImageSpaceModifier() override; // 00
186
187 // override (TESForm)
188 void InitializeData() override; // 04
189 void ClearData() override; // 05
190 bool Load(TESFile* a_mod) override; // 06
191 const char* GetFormEditorID() const override; // 32 - { return formEditorID.c_str(); }
192 bool SetFormEditorID(const char* a_str) override; // 33 - { formEditorID = a_str; }
193
194 // members
196 std::uint32_t pad114; // 114
197 HDR hdr; // 118
198 Bloom bloom; // 1F8
205 DOF dof; // 2B0
207 BSString formEditorID; // 2D0 - EDID
208 };
209 static_assert(sizeof(TESImageSpaceModifier) == 0x2E0);
210}
DepthOfFieldMode
Definition: ImageSpaceModifierInstanceDOF.h:45
Definition: NiPoint2.h:6
Definition: NiSmartPointer.h:9
Definition: TESFile.h:14
Definition: TESForm.h:34
Definition: TESImageSpaceModifier.h:111
bool SetFormEditorID(const char *a_str) override
NiPointer< NiFloatInterpolator > doubleVisionStrength
Definition: TESImageSpaceModifier.h:201
ImageSpaceModifierData data
Definition: TESImageSpaceModifier.h:195
Cinematic cinematic
Definition: TESImageSpaceModifier.h:199
std::uint32_t pad114
Definition: TESImageSpaceModifier.h:196
bool Load(TESFile *a_mod) override
DOF dof
Definition: TESImageSpaceModifier.h:205
static constexpr auto RTTI
Definition: TESImageSpaceModifier.h:113
NiPointer< NiColorInterpolator > motionBlurStrength
Definition: TESImageSpaceModifier.h:206
~TESImageSpaceModifier() override
static constexpr auto FORMTYPE
Definition: TESImageSpaceModifier.h:114
const char * GetFormEditorID() const override
NiPointer< NiFloatInterpolator > blurRadius
Definition: TESImageSpaceModifier.h:200
NiPointer< NiColorInterpolator > tintColor
Definition: TESImageSpaceModifier.h:202
void ClearData() override
Bloom bloom
Definition: TESImageSpaceModifier.h:198
RadialBlur radialBlur
Definition: TESImageSpaceModifier.h:204
HDR hdr
Definition: TESImageSpaceModifier.h:197
void InitializeData() override
BSString formEditorID
Definition: TESImageSpaceModifier.h:207
NiPointer< NiColorInterpolator > fadeColor
Definition: TESImageSpaceModifier.h:203
Definition: PCH.h:216
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_TESImageSpaceModifier
Definition: Offsets_RTTI.h:6007
Definition: TESImageSpaceModifier.h:51
MultAdd< float > empty[3]
Definition: TESImageSpaceModifier.h:54
Definition: TESImageSpaceModifier.h:59
MultAdd< float > saturation
Definition: TESImageSpaceModifier.h:62
MultAdd< float > empty
Definition: TESImageSpaceModifier.h:65
MultAdd< float > brightness
Definition: TESImageSpaceModifier.h:63
MultAdd< float > contrast
Definition: TESImageSpaceModifier.h:64
Definition: TESImageSpaceModifier.h:70
bool useTarget
Definition: TESImageSpaceModifier.h:78
std::uint32_t strength
Definition: TESImageSpaceModifier.h:75
std::uint32_t distance
Definition: TESImageSpaceModifier.h:76
std::uint16_t pad0E
Definition: TESImageSpaceModifier.h:80
std::uint32_t range
Definition: TESImageSpaceModifier.h:77
stl::enumeration< Mode, std::uint8_t > flags
Definition: TESImageSpaceModifier.h:79
Definition: TESImageSpaceModifier.h:36
MultAdd< float > bloomBlurRadius
Definition: TESImageSpaceModifier.h:40
MultAdd< float > skyScale
Definition: TESImageSpaceModifier.h:45
MinMax< float > targetLum
Definition: TESImageSpaceModifier.h:43
MultAdd< float > eyeAdaptSpeed
Definition: TESImageSpaceModifier.h:39
MultAdd< float > sunlightScale
Definition: TESImageSpaceModifier.h:44
MultAdd< float > empty[6]
Definition: TESImageSpaceModifier.h:46
MultAdd< float > bloomThreshold
Definition: TESImageSpaceModifier.h:41
MultAdd< float > bloomScale
Definition: TESImageSpaceModifier.h:42
Definition: TESImageSpaceModifier.h:28
MultAdd< T > min
Definition: TESImageSpaceModifier.h:31
MultAdd< T > max
Definition: TESImageSpaceModifier.h:32
Definition: TESImageSpaceModifier.h:19
T mult
Definition: TESImageSpaceModifier.h:22
T add
Definition: TESImageSpaceModifier.h:23
Definition: TESImageSpaceModifier.h:15
std::uint8_t pad01
Definition: TESImageSpaceModifier.h:86
std::uint32_t blurRadius
Definition: TESImageSpaceModifier.h:93
std::uint32_t tintColor
Definition: TESImageSpaceModifier.h:92
Bloom bloom
Definition: TESImageSpaceModifier.h:90
std::uint32_t radialBlurDownStart
Definition: TESImageSpaceModifier.h:104
DOF dof
Definition: TESImageSpaceModifier.h:102
std::uint32_t motionBlurStrength
Definition: TESImageSpaceModifier.h:106
float duration
Definition: TESImageSpaceModifier.h:88
Cinematic cinematic
Definition: TESImageSpaceModifier.h:91
std::uint16_t padCA
Definition: TESImageSpaceModifier.h:100
std::uint32_t radialBlurRampUp
Definition: TESImageSpaceModifier.h:96
bool animatable
Definition: TESImageSpaceModifier.h:85
std::uint16_t pad02
Definition: TESImageSpaceModifier.h:87
std::uint32_t radialBlurRampDown
Definition: TESImageSpaceModifier.h:103
std::uint32_t fadeColor
Definition: TESImageSpaceModifier.h:105
std::uint32_t radialBlurStart
Definition: TESImageSpaceModifier.h:97
NiPoint2 radialBlurCenter
Definition: TESImageSpaceModifier.h:101
std::uint8_t padC9
Definition: TESImageSpaceModifier.h:99
HDR hdr
Definition: TESImageSpaceModifier.h:89
bool useTargetForRadialBlur
Definition: TESImageSpaceModifier.h:98
std::uint32_t radialBlurStrength
Definition: TESImageSpaceModifier.h:95
std::uint32_t doubleVisionStrength
Definition: TESImageSpaceModifier.h:94
Definition: TESImageSpaceModifier.h:153
MultAdd< NiPointer< NiFloatInterpolator > > empty[3]
Definition: TESImageSpaceModifier.h:154
Definition: TESImageSpaceModifier.h:159
MultAdd< NiPointer< NiFloatInterpolator > > saturation
Definition: TESImageSpaceModifier.h:160
MultAdd< NiPointer< NiFloatInterpolator > > empty
Definition: TESImageSpaceModifier.h:163
MultAdd< NiPointer< NiFloatInterpolator > > brightness
Definition: TESImageSpaceModifier.h:161
MultAdd< NiPointer< NiFloatInterpolator > > contrast
Definition: TESImageSpaceModifier.h:162
Definition: TESImageSpaceModifier.h:178
NiPointer< NiFloatInterpolator > distance
Definition: TESImageSpaceModifier.h:180
NiPointer< NiFloatInterpolator > range
Definition: TESImageSpaceModifier.h:181
NiPointer< NiFloatInterpolator > strength
Definition: TESImageSpaceModifier.h:179
Definition: TESImageSpaceModifier.h:140
MultAdd< NiPointer< NiFloatInterpolator > > sunlightScale
Definition: TESImageSpaceModifier.h:146
MultAdd< NiPointer< NiFloatInterpolator > > skyScale
Definition: TESImageSpaceModifier.h:147
MultAdd< NiPointer< NiFloatInterpolator > > bloomThreshold
Definition: TESImageSpaceModifier.h:143
MultAdd< NiPointer< NiFloatInterpolator > > bloomBlurRadius
Definition: TESImageSpaceModifier.h:142
MinMax< NiPointer< NiFloatInterpolator > > targetLum
Definition: TESImageSpaceModifier.h:145
MultAdd< NiPointer< NiFloatInterpolator > > bloomScale
Definition: TESImageSpaceModifier.h:144
MultAdd< NiPointer< NiFloatInterpolator > > empty[6]
Definition: TESImageSpaceModifier.h:148
MultAdd< NiPointer< NiFloatInterpolator > > eyeAdaptSpeed
Definition: TESImageSpaceModifier.h:141
Definition: TESImageSpaceModifier.h:134
MultAdd< T > max
Definition: TESImageSpaceModifier.h:136
MultAdd< T > min
Definition: TESImageSpaceModifier.h:135
Definition: TESImageSpaceModifier.h:127
T add
Definition: TESImageSpaceModifier.h:129
T mult
Definition: TESImageSpaceModifier.h:128
Definition: TESImageSpaceModifier.h:168
NiPointer< NiFloatInterpolator > start
Definition: TESImageSpaceModifier.h:171
NiPointer< NiFloatInterpolator > rampUp
Definition: TESImageSpaceModifier.h:170
NiPointer< NiFloatInterpolator > rampDown
Definition: TESImageSpaceModifier.h:172
NiPointer< NiFloatInterpolator > downStart
Definition: TESImageSpaceModifier.h:173
NiPointer< NiFloatInterpolator > strength
Definition: TESImageSpaceModifier.h:169
Definition: TESImageSpaceModifier.h:117
RecordFlag
Definition: TESImageSpaceModifier.h:119
@ kIgnored
Definition: TESImageSpaceModifier.h:121
@ kDeleted
Definition: TESImageSpaceModifier.h:120