CommonLibSSE NG
GFxPlaceObjectBase.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/G/GASExecuteTag.h"
4 #include "RE/G/GArray.h"
5 #include "RE/G/GFxResourceID.h"
6 #include "RE/G/GMatrix2D.h"
7 #include "RE/G/GRenderer.h"
8 
9 namespace RE
10 {
11  enum class GFxPlaceFlags : std::uint8_t
12  {
13  kNone = 0,
14  kMove = 1 << 0,
15  kHasCharacter = 1 << 1,
16  kHasMatrix = 1 << 2,
17  kHasColorTransform = 1 << 3,
18  kHasRatio = 1 << 4,
19  kHasFilterList = 1 << 5,
20  kHasClipDepth = 1 << 6,
21  kHasBlendMode = 1 << 7,
22  };
23 
25  {
27 
28  enum class FilterType : std::uint8_t
29  {
30  kDropShadow = 0,
31  kBlur = 1,
32  kGlow = 2,
33  kBevel = 3,
34  kGradientGlow = 4,
35  kConvolution = 5,
36  kAdjustColor = 6,
37  kGradientBevel = 7,
38 
39  kFlag_KnockOut = 1 << 5,
40  kFlag_HideObject = 1 << 6,
41  kFlag_FineBlur = 1 << 7,
42  };
43 
44  struct Filter
45  {
47  std::uint8_t pad01; // 01
48  std::uint16_t angle; // 02
49  std::uint16_t distance; // 04
50  std::uint16_t pad06; // 06
52  float colorMatrix[20]; // 4C
53  };
54  static_assert(sizeof(Filter) == 0x9C);
55 
59  float ratio; // 50
60  std::int32_t depth; // 54
62  std::uint16_t clipDepth; // 5C
65  };
66  static_assert(sizeof(GFxPlaceObjectUnpackedData) == 0x60);
67 
69  {
70  enum class ChangeType
71  {
75  };
76 
77  void* clipActions; // 60
78  const char* name; // 68
80  std::uint32_t pad74; // 74
81  };
82 
84  {
85  public:
86  // add
87  virtual void GetPlaceObjectData(GFxPlaceObjectData& a_data); // 08 - pure
88  virtual void* GetClipActions(); // 09 - { return nullptr; }
89  virtual void GetPlaceFlags(GFxPlaceFlags& a_flags); // 0A - pure
90  };
91  static_assert(sizeof(GFxPlaceObjectBase) == 0x8);
92 }
Definition: GASExecuteTag.h:8
Definition: GArray.h:13
Definition: GFxPlaceObjectBase.h:84
virtual void GetPlaceObjectData(GFxPlaceObjectData &a_data)
virtual void * GetClipActions()
virtual void GetPlaceFlags(GFxPlaceFlags &a_flags)
Definition: GFxResourceID.h:6
Definition: GMatrix2D.h:6
Definition: GRenderer.h:226
BlendType
Definition: GRenderer.h:27
Definition: AbsorbEffect.h:6
GFxPlaceFlags
Definition: GFxPlaceObjectBase.h:12
Definition: GFxPlaceObjectBase.h:69
void * clipActions
Definition: GFxPlaceObjectBase.h:77
stl::enumeration< ChangeType, std::int32_t > changeType
Definition: GFxPlaceObjectBase.h:79
ChangeType
Definition: GFxPlaceObjectBase.h:71
std::uint32_t pad74
Definition: GFxPlaceObjectBase.h:80
const char * name
Definition: GFxPlaceObjectBase.h:78
Definition: GFxPlaceObjectBase.h:45
std::uint16_t pad06
Definition: GFxPlaceObjectBase.h:50
GRenderer::BlurFilterParams blurFilterParams
Definition: GFxPlaceObjectBase.h:51
std::uint8_t pad01
Definition: GFxPlaceObjectBase.h:47
std::uint16_t distance
Definition: GFxPlaceObjectBase.h:49
std::uint16_t angle
Definition: GFxPlaceObjectBase.h:48
stl::enumeration< FilterType, std::uint8_t > filterType
Definition: GFxPlaceObjectBase.h:46
float colorMatrix[20]
Definition: GFxPlaceObjectBase.h:52
Definition: GFxPlaceObjectBase.h:25
FilterType
Definition: GFxPlaceObjectBase.h:29
GArray< Filter > filterList
Definition: GFxPlaceObjectBase.h:54
std::int32_t depth
Definition: GFxPlaceObjectBase.h:60
GRenderer::Cxform colorTransform
Definition: GFxPlaceObjectBase.h:57
GMatrix2D matrix
Definition: GFxPlaceObjectBase.h:58
GFxResourceID characterId
Definition: GFxPlaceObjectBase.h:61
float ratio
Definition: GFxPlaceObjectBase.h:59
stl::enumeration< GFxPlaceFlags, std::uint8_t > placeFlags
Definition: GFxPlaceObjectBase.h:64
stl::enumeration< BlendType, std::uint8_t > blendMode
Definition: GFxPlaceObjectBase.h:63
std::uint16_t clipDepth
Definition: GFxPlaceObjectBase.h:62
Definition: GRenderer.h:375