Plasma Engine  2.0
Loading...
Searching...
No Matches
TexConvDesc.h
1#pragma once
2
3#include <Texture/TexConv/TexConvEnums.h>
4
5#include <Foundation/Containers/DynamicArray.h>
6#include <Foundation/Containers/HybridArray.h>
7#include <Foundation/Strings/String.h>
8#include <Foundation/Types/UniquePtr.h>
9#include <Texture/Image/Image.h>
10#include <Texture/Image/ImageEnums.h>
11
13{
14 plInt8 m_iInputImageIndex = -1;
15 plTexConvChannelValue::Enum m_ChannelValue;
16};
17
29
30class PL_TEXTURE_DLL plTexConvDesc
31{
32 PL_DISALLOW_COPY_AND_ASSIGN(plTexConvDesc);
33
34public:
35 plTexConvDesc() = default;
36
37 plHybridArray<plString, 4> m_InputFiles;
38 plDynamicArray<plImage> m_InputImages;
39
41
42 // output type / platform
43 plEnum<plTexConvOutputType> m_OutputType;
44 plEnum<plTexConvTargetPlatform> m_TargetPlatform; // TODO: implement android
45
46 // low resolution output
47 plUInt32 m_uiLowResMipmaps = 0;
48
49 // thumbnail output
50 plUInt32 m_uiThumbnailOutputResolution = 0;
51
52 // Format / Compression
54 plEnum<plTexConvCompressionMode> m_CompressionMode;
55
56 // resolution clamp and downscale
57 plUInt32 m_uiMinResolution = 16;
58 plUInt32 m_uiMaxResolution = 1024 * 8;
59 plUInt32 m_uiDownscaleSteps = 0;
60
61 // Mipmaps / filtering
62 plEnum<plTexConvMipmapMode> m_MipmapMode;
63 plEnum<plTextureFilterSetting> m_FilterMode; // only used when writing to pl specific formats
64 plEnum<plImageAddressMode> m_AddressModeU;
65 plEnum<plImageAddressMode> m_AddressModeV;
66 plEnum<plImageAddressMode> m_AddressModeW;
67 bool m_bPreserveMipmapCoverage = false;
68 float m_fMipmapAlphaThreshold = 0.5f;
69
70 // Misc options
71 plUInt8 m_uiDilateColor = 0;
72 bool m_bFlipHorizontal = false;
73 bool m_bPremultiplyAlpha = false;
74 float m_fHdrExposureBias = 0.0f;
75 float m_fMaxValue = 64000.f;
76
77 // pl specific
78 plUInt64 m_uiAssetHash = 0;
79 plUInt16 m_uiAssetVersion = 0;
80
81 // Texture Atlas
82 plString m_sTextureAtlasDescFile;
83
84 // Bump map filter
85 plEnum<plTexConvBumpMapFilter> m_BumpMapFilter;
86};
Definition DynamicArray.h:81
A hybrid array uses in-place storage to handle the first few elements without any allocation....
Definition HybridArray.h:12
Definition TexConvDesc.h:31
A custom enum implementation that allows to define the underlying storage type to control its memory ...
Definition Enum.h:37
Definition TexConvDesc.h:13
Enum
Definition TexConvEnums.h:98
@ Red
read the RED channel
Definition TexConvEnums.h:99
@ Blue
read the BLUE channel
Definition TexConvEnums.h:101
@ Green
read the GREEN channel
Definition TexConvEnums.h:100
@ Alpha
read the ALPHA channel
Definition TexConvEnums.h:102
Definition TexConvDesc.h:21