Plasma Engine  2.0
Loading...
Searching...
No Matches
TextureAssetObjects.h
1#pragma once
2
3#include <EditorFramework/Assets/SimpleAssetDocument.h>
4#include <RendererCore/RenderContext/Implementation/RenderContextStructs.h>
5#include <Texture/TexConv/TexConvEnums.h>
6#include <ToolsFoundation/Object/DocumentObjectBase.h>
7
9
11{
12 using StorageType = plInt8;
13
14 enum Enum
15 {
16 R1,
17
18 RG1,
19 R1_G2,
20
21 RGB1,
22 R1_G2_B3,
23
24 RGBA1,
25 RGB1_A2,
26 RGB1_ABLACK,
27 R1_G2_B3_A4,
28
29 Default = RGB1,
30 };
31};
32
33PL_DECLARE_REFLECTABLE_TYPE(PL_NO_LINKAGE, plTexture2DChannelMappingEnum);
34
36{
37 using StorageType = plInt8;
38
39 enum Enum
40 {
41 Fixed64x64,
42 Fixed128x128,
43 Fixed256x256,
44 Fixed512x512,
45 Fixed1024x1024,
46 Fixed2048x2048,
47 CVarRtResolution1,
48 CVarRtResolution2,
49
50 Default = Fixed256x256
51 };
52};
53
54PL_DECLARE_REFLECTABLE_TYPE(PL_NO_LINKAGE, plTexture2DResolution);
55
57{
58 using StorageType = plInt8;
59
60 enum Enum
61 {
62 RGBA8sRgb,
63 RGBA8,
64 RGB10,
65 RGBA16,
66
67 Default = RGBA8sRgb
68 };
69};
70
71PL_DECLARE_REFLECTABLE_TYPE(PL_NO_LINKAGE, plRenderTargetFormat);
72
74{
75 PL_ADD_DYNAMIC_REFLECTION(plTextureAssetProperties, plReflectedClass);
76
77public:
78 static void PropertyMetaStateEventHandler(plPropertyMetaStateEvent& e);
79
80 const char* GetInputFile(plInt32 iInput) const { return m_Input[iInput]; }
81
82 void SetInputFile0(const char* szFile) { m_Input[0] = szFile; }
83 const char* GetInputFile0() const { return m_Input[0]; }
84 void SetInputFile1(const char* szFile) { m_Input[1] = szFile; }
85 const char* GetInputFile1() const { return m_Input[1]; }
86 void SetInputFile2(const char* szFile) { m_Input[2] = szFile; }
87 const char* GetInputFile2() const { return m_Input[2]; }
88 void SetInputFile3(const char* szFile) { m_Input[3] = szFile; }
89 const char* GetInputFile3() const { return m_Input[3]; }
90
91 plString GetAbsoluteInputFilePath(plInt32 iInput) const;
92
93 plTexture2DChannelMappingEnum::Enum GetChannelMapping() const { return m_ChannelMapping; }
94
95 plInt32 GetNumInputFiles() const;
96
97 bool m_bIsRenderTarget = false;
98 bool m_bPremultipliedAlpha = false;
99 bool m_bFlipHorizontal = false;
100 bool m_bDilateColor = false;
101 bool m_bPreserveAlphaCoverage = false;
102 float m_fCVarResolutionScale = 1.0f;
103 float m_fHdrExposureBias = 0;
104 float m_fAlphaThreshold = 0.5f;
105
106 plEnum<plTextureFilterSetting> m_TextureFilter;
107 plEnum<plImageAddressMode> m_AddressModeU;
108 plEnum<plImageAddressMode> m_AddressModeV;
109 plEnum<plImageAddressMode> m_AddressModeW;
111 plEnum<plTexConvUsage> m_TextureUsage;
113
114 plEnum<plTexConvCompressionMode> m_CompressionMode;
115 plEnum<plTexConvMipmapMode> m_MipmapMode;
116
117private:
119 plString m_Input[4];
120};
All classes that should be dynamically reflectable, need to be derived from this base class.
Definition DynamicRTTI.h:86
Definition TextureAssetObjects.h:74
A custom enum implementation that allows to define the underlying storage type to control its memory ...
Definition Enum.h:37
Event that is broadcast whenever information about how to present properties is required.
Definition PropertyMetaState.h:35
Definition TextureAssetObjects.h:57
Definition TextureAssetObjects.h:11
Definition TextureAssetObjects.h:36