3#include "Containers/Array.h"
17#define UE_DXGI_FORMAT_LIST \
18 RGBFMT(UNKNOWN, 0, 0) \
19 RGBFMT(R32G32B32A32_TYPELESS, 1, 16) \
20 RGBFMT(R32G32B32A32_FLOAT, 2, 16) \
21 RGBFMT(R32G32B32A32_UINT, 3, 16) \
22 RGBFMT(R32G32B32A32_SINT, 4, 16) \
23 RGBFMT(R32G32B32_TYPELESS, 5, 12) \
24 RGBFMT(R32G32B32_FLOAT, 6, 12) \
25 RGBFMT(R32G32B32_UINT, 7, 12) \
26 RGBFMT(R32G32B32_SINT, 8, 12) \
27 RGBFMT(R16G16B16A16_TYPELESS, 9, 8) \
28 RGBFMT(R16G16B16A16_FLOAT, 10, 8) \
29 RGBFMT(R16G16B16A16_UNORM, 11, 8) \
30 RGBFMT(R16G16B16A16_UINT, 12, 8) \
31 RGBFMT(R16G16B16A16_SNORM, 13, 8) \
32 RGBFMT(R16G16B16A16_SINT, 14, 8) \
33 RGBFMT(R32G32_TYPELESS, 15, 8) \
34 RGBFMT(R32G32_FLOAT, 16, 8) \
35 RGBFMT(R32G32_UINT, 17, 8) \
36 RGBFMT(R32G32_SINT, 18, 8) \
37 RGBFMT(R32G8X24_TYPELESS, 19, 8) \
38 RGBFMT(D32_FLOAT_S8X24_UINT, 20, 8) \
39 RGBFMT(R32_FLOAT_X8X24_TYPELESS, 21, 8) \
40 RGBFMT(X32_TYPELESS_G8X24_UINT, 22, 8) \
41 RGBFMT(R10G10B10A2_TYPELESS, 23, 4) \
42 RGBFMT(R10G10B10A2_UNORM, 24, 4) \
43 RGBFMT(R10G10B10A2_UINT, 25, 4) \
44 RGBFMT(R11G11B10_FLOAT, 26, 4) \
45 RGBFMT(R8G8B8A8_TYPELESS, 27, 4) \
46 RGBFMT(R8G8B8A8_UNORM, 28, 4) \
47 RGBFMT(R8G8B8A8_UNORM_SRGB, 29, 4) \
48 RGBFMT(R8G8B8A8_UINT, 30, 4) \
49 RGBFMT(R8G8B8A8_SNORM, 31, 4) \
50 RGBFMT(R8G8B8A8_SINT, 32, 4) \
51 RGBFMT(R16G16_TYPELESS, 33, 4) \
52 RGBFMT(R16G16_FLOAT, 34, 4) \
53 RGBFMT(R16G16_UNORM, 35, 4) \
54 RGBFMT(R16G16_UINT, 36, 4) \
55 RGBFMT(R16G16_SNORM, 37, 4) \
56 RGBFMT(R16G16_SINT, 38, 4) \
57 RGBFMT(R32_TYPELESS, 39, 4) \
58 RGBFMT(D32_FLOAT, 40, 4) \
59 RGBFMT(R32_FLOAT, 41, 4) \
60 RGBFMT(R32_UINT, 42, 4) \
61 RGBFMT(R32_SINT, 43, 4) \
62 RGBFMT(R24G8_TYPELESS, 44, 4) \
63 RGBFMT(D24_UNORM_S8_UINT, 45, 4) \
64 RGBFMT(R24_UNORM_X8_TYPELESS, 46, 4) \
65 RGBFMT(X24_TYPELESS_G8_UINT, 47, 4) \
66 RGBFMT(R8G8_TYPELESS, 48, 2) \
67 RGBFMT(R8G8_UNORM, 49, 2) \
68 RGBFMT(R8G8_UINT, 50, 2) \
69 RGBFMT(R8G8_SNORM, 51, 2) \
70 RGBFMT(R8G8_SINT, 52, 2) \
71 RGBFMT(R16_TYPELESS, 53, 2) \
72 RGBFMT(R16_FLOAT, 54, 2) \
73 RGBFMT(D16_UNORM, 55, 2) \
74 RGBFMT(R16_UNORM, 56, 2) \
75 RGBFMT(R16_UINT, 57, 2) \
76 RGBFMT(R16_SNORM, 58, 2) \
77 RGBFMT(R16_SINT, 59, 2) \
78 RGBFMT(R8_TYPELESS, 60, 1) \
79 RGBFMT(R8_UNORM, 61, 1) \
80 RGBFMT(R8_UINT, 62, 1) \
81 RGBFMT(R8_SNORM, 63, 1) \
82 RGBFMT(R8_SINT, 64, 1) \
83 RGBFMT(A8_UNORM, 65, 1) \
84 ODDFMT(R1_UNORM, 66) \
85 RGBFMT(R9G9B9E5_SHAREDEXP, 67, 4) \
86 ODDFMT(R8G8_B8G8_UNORM, 68) \
87 ODDFMT(G8R8_G8B8_UNORM, 69) \
88 BCNFMT(BC1_TYPELESS, 70, 8) \
89 BCNFMT(BC1_UNORM, 71, 8) \
90 BCNFMT(BC1_UNORM_SRGB, 72, 8) \
91 BCNFMT(BC2_TYPELESS, 73, 16) \
92 BCNFMT(BC2_UNORM, 74, 16) \
93 BCNFMT(BC2_UNORM_SRGB, 75, 16) \
94 BCNFMT(BC3_TYPELESS, 76, 16) \
95 BCNFMT(BC3_UNORM, 77, 16) \
96 BCNFMT(BC3_UNORM_SRGB, 78, 16) \
97 BCNFMT(BC4_TYPELESS, 79, 8) \
98 BCNFMT(BC4_UNORM, 80, 8) \
99 BCNFMT(BC4_SNORM, 81, 8) \
100 BCNFMT(BC5_TYPELESS, 82, 16) \
101 BCNFMT(BC5_UNORM, 83, 16) \
102 BCNFMT(BC5_SNORM, 84, 16) \
103 RGBFMT(B5G6R5_UNORM, 85, 2) \
104 RGBFMT(B5G5R5A1_UNORM, 86, 2) \
105 RGBFMT(B8G8R8A8_UNORM, 87, 4) \
106 RGBFMT(B8G8R8X8_UNORM, 88, 4) \
107 RGBFMT(R10G10B10_XR_BIAS_A2_UNORM, 89, 4) \
108 RGBFMT(B8G8R8A8_TYPELESS, 90, 4) \
109 RGBFMT(B8G8R8A8_UNORM_SRGB, 91, 4) \
110 RGBFMT(B8G8R8X8_TYPELESS, 92, 4) \
111 RGBFMT(B8G8R8X8_UNORM_SRGB, 93, 4) \
112 BCNFMT(BC6H_TYPELESS, 94, 16) \
113 BCNFMT(BC6H_UF16, 95, 16) \
114 BCNFMT(BC6H_SF16, 96, 16) \
115 BCNFMT(BC7_TYPELESS, 97, 16) \
116 BCNFMT(BC7_UNORM, 98, 16) \
117 BCNFMT(BC7_UNORM_SRGB, 99, 16) \
124 ODDFMT(_420_OPAQUE, 106) \
133 RGBFMT(B4G4R4A4_UNORM, 115,2) \
137 RGBFMT(B8G8R8, 1001,3) \
138 RGBFMT(R8G8B8, 1002,3) \
139 RGBFMT(R8G8B8X8, 1003,4) \
142namespace UE {
namespace DDS
147 #define RGBFMT(name,id,bypu) name = id,
148 #define BCNFMT(name,id,bypu) name = id,
149 #define ODDFMT(name,id) name = id,
297 UE_DEPRECATED(5.6,
"This function is now deprecated, please use CreateFromDDSInMemory with EDDSReadMipMode instead.")
OODEFFUNC typedef const char int const char * fmt
Definition oodle2.h:678
EGammaSpace
Definition Color.h:32
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
ERawImageFormat::Type DXGIFormatGetClosestRawFormat(EDXGIFormat fmt, bool *pIsExactMatch)
Definition DDSFile.cpp:1350
EDDSReadMipMode
Definition DDSFile.h:166
EDXGIFormat DXGIFormatRemoveSRGB(EDXGIFormat fmt)
Definition DDSFile.cpp:171
int64 GetDDSHeaderMinimalSize()
Definition DDSFile.cpp:752
const TCHAR * DXGIFormatGetName(EDXGIFormat fmt)
Definition DDSFile.cpp:91
EChannelOrder
Definition DDSFile.h:190
int64 GetDDSHeaderMaximalSize()
Definition DDSFile.cpp:747
EDXGIFormat
Definition DDSFile.h:146
EDDSFormatVersion
Definition DDSFile.h:158
bool DXGIFormatIsSRGB(EDXGIFormat Format)
Definition DDSFile.cpp:159
EDXGIFormat DXGIFormatFromRawFormat(ERawImageFormat::Type RawFormat, EGammaSpace GammaSpace)
Definition DDSFile.cpp:1367
bool DXGIFormatHasLinearAndSRGBForm(EDXGIFormat Format)
Definition DDSFile.cpp:165
EDXGIFormat DXGIFormatAddSRGB(EDXGIFormat fmt)
Definition DDSFile.cpp:184
EDDSError
Definition DDSFile.h:174
Definition AdvancedWidgetsModule.cpp:13
Definition ImageCore.h:264
uint32 Depth
Definition DDSFile.h:232
uint32 MipCount
Definition DDSFile.h:233
IMAGECORE_API bool IsValidTextureVolume() const
Definition DDSFile.cpp:570
uint32 Height
Definition DDSFile.h:231
static IMAGECORE_API FDDSFile * CreateEmpty(int32 InDimension, uint32 InWidth, uint32 InHeight, uint32 InDepth, uint32 InMipCount, uint32 InArraySize, EDXGIFormat InFormat, uint32 InCreateFlags, EDDSError *OutError=nullptr)
Definition DDSFile.cpp:616
static constexpr uint32 CREATE_FLAG_WAS_D3D9
Definition DDSFile.h:332
TArray64< uint8 > MipRawData
Definition DDSFile.h:250
uint32 CreateFlags
Definition DDSFile.h:239
EDXGIFormat DXGIFormat
Definition DDSFile.h:238
IMAGECORE_API bool GetMipImage(const FImageView &ToImage, int MipIndex) const
Definition DDSFile.cpp:1175
static IMAGECORE_API bool IsADDS(const uint8 *InDDS, int64 InDDSSize)
Definition DDSFile.cpp:845
TArray< FDDSMip > Mips
Definition DDSFile.h:244
static IMAGECORE_API FDDSFile * CreateFromDDSInMemory(const uint8 *InDDS, int64 InDDSSize, EDDSError *OutError, bool bHeaderOnly)
Definition DDSFile.cpp:758
uint32 ArraySize
Definition DDSFile.h:237
IMAGECORE_API bool IsValidTextureArray() const
Definition DDSFile.cpp:546
static constexpr uint32 CREATE_FLAG_CUBEMAP
Definition DDSFile.h:330
static constexpr uint32 MAX_MIPS_SUPPORTED
Definition DDSFile.h:268
int32 Dimension
Definition DDSFile.h:229
IMAGECORE_API void FillMip(const FImageView &FromImage, int MipIndex)
Definition DDSFile.cpp:1162
static constexpr uint32 CREATE_FLAG_NONE
Definition DDSFile.h:329
IMAGECORE_API void ConvertRGBXtoRGBA()
Definition DDSFile.cpp:1085
static constexpr uint32 CREATE_FLAG_NO_MIP_STORAGE_ALLOC
Definition DDSFile.h:331
IMAGECORE_API EDDSError Validate() const
Definition DDSFile.cpp:393
static IMAGECORE_API FDDSFile * CreateEmpty2D(uint32 InWidth, uint32 InHeight, uint32 InMipCount, EDXGIFormat InFormat, uint32 InCreateFlags, EDDSError *OutError=nullptr)
Definition DDSFile.cpp:662
IMAGECORE_API bool IsValidTextureCube() const
Definition DDSFile.cpp:531
uint32 Width
Definition DDSFile.h:230
IMAGECORE_API void ConvertChannelOrder(EChannelOrder InTargetOrder)
Definition DDSFile.cpp:1123
IMAGECORE_API EDDSError WriteDDS(TArray64< uint8 > &OutDDS, EDDSFormatVersion InFormatVersion=EDDSFormatVersion::D3D10)
Definition DDSFile.cpp:890
IMAGECORE_API bool IsValidTexture2D() const
Definition DDSFile.cpp:513
uint32 Width
Definition DDSFile.h:198
uint32 Depth
Definition DDSFile.h:198
uint32 Height
Definition DDSFile.h:198
int64 SliceStride
Definition DDSFile.h:202
int64 RowStride
Definition DDSFile.h:201
int64 DataSize
Definition DDSFile.h:203
uint8 * Data
Definition DDSFile.h:204