blob: 5d6eed0ed8f706dd30198e36b8cb7d869731731f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
#pragma once
#include "Runtime/GfxDevice/GfxDeviceTypes.h"
#include "Runtime/Math/ColorSpaceConversion.h"
/* Important note about endianess.
Endianess needs to be swapped for the following formats:
kTexFormatARGBFloat, kTexFormatRGB565, kTexFormatARGB4444, (assuming for this too: kTexFormatRGBA4444)
*/
UInt32 GetBytesFromTextureFormat( TextureFormat inFormat );
UInt32 GetMaxBytesPerPixel( TextureFormat inFormat );
int GetRowBytesFromWidthAndFormat( int width, TextureFormat format );
bool IsValidTextureFormat (TextureFormat format);
inline bool IsCompressedDXTTextureFormat( TextureFormat format )
{
return format >= kTexFormatDXT1 && format <= kTexFormatDXT5;
}
inline bool IsCompressedPVRTCTextureFormat( TextureFormat format )
{
return format >= kTexFormatPVRTC_RGB2 && format <= kTexFormatPVRTC_RGBA4;
}
inline bool IsCompressedETCTextureFormat( TextureFormat format )
{
return format == kTexFormatETC_RGB4;
}
inline bool IsCompressedEACTextureFormat( TextureFormat format )
{
return format >= kTexFormatEAC_R && format <= kTexFormatEAC_RG_SIGNED;
}
inline bool IsCompressedETC2TextureFormat( TextureFormat format )
{
return format >= kTexFormatETC2_RGB && format <= kTexFormatETC2_RGBA8;
}
inline bool IsCompressedATCTextureFormat( TextureFormat format )
{
return format == kTexFormatATC_RGB4 || format == kTexFormatATC_RGBA8;
}
inline bool IsCompressedFlashATFTextureFormat( TextureFormat format )
{
return format == kTexFormatFlashATF_RGB_DXT1 || format == kTexFormatFlashATF_RGBA_JPG || format == kTexFormatFlashATF_RGB_JPG;
}
inline bool Is16BitTextureFormat(TextureFormat format )
{
return format == kTexFormatARGB4444 || format == kTexFormatRGBA4444 || format == kTexFormatRGB565;
}
inline bool IsCompressedASTCTextureFormat( TextureFormat format)
{
return format >= kTexFormatASTC_RGB_4x4 && format <= kTexFormatASTC_RGBA_12x12;
}
inline bool IsTextureFormatSupportedOnFlash(TextureFormat format )
{
return IsCompressedFlashATFTextureFormat(format) ||
format == kTexFormatARGB32 ||
format == kTexFormatRGBA32 ||
format == kTexFormatRGB24 ||
format == kTexFormatAlpha8;
}
inline bool IsAnyCompressedTextureFormat( TextureFormat format )
{
return IsCompressedDXTTextureFormat(format) || IsCompressedPVRTCTextureFormat(format)
|| IsCompressedETCTextureFormat(format) || IsCompressedATCTextureFormat(format)
|| IsCompressedFlashATFTextureFormat (format) || IsCompressedEACTextureFormat(format)
|| IsCompressedETC2TextureFormat(format) || IsCompressedASTCTextureFormat(format);
}
bool IsAlphaOnlyTextureFormat( TextureFormat format );
int GetTextureSizeAllowedMultiple( TextureFormat format );
int GetMinimumTextureMipSizeForFormat( TextureFormat format );
bool IsAlphaOnlyTextureFormat( TextureFormat format );
TextureFormat ConvertToAlphaTextureFormat (TextureFormat format);
bool HasAlphaTextureFormat( TextureFormat format );
bool IsDepthRTFormat( RenderTextureFormat format );
bool IsHalfRTFormat( RenderTextureFormat format );
const char* GetCompressionTypeString (TextureFormat format);
const char* GetTextureFormatString (TextureFormat format);
const char* GetTextureColorSpaceString (TextureColorSpace colorSpace);
TextureColorSpace ColorSpaceToTextureColorSpace(BuildTargetPlatform platform, ColorSpace colorSpace);
std::pair<int,int> RoundTextureDimensionsToBlocks (TextureFormat fmt, int w, int h);
|