![]() |
ezEngine
Release 25.03
|
Enum describing the encoding format of the pixels of an image. More...
#include <ImageFormat.h>
Public Types | |
enum | Enum : ezUInt16 { UNKNOWN, R32G32B32A32_FLOAT, R32G32B32A32_UINT, R32G32B32A32_SINT, R32G32B32_FLOAT, R32G32B32_UINT, R32G32B32_SINT, R16G16B16A16_FLOAT, R16G16B16A16_UNORM, R16G16B16A16_UINT, R16G16B16A16_SNORM, R16G16B16A16_SINT, R16G16B16_UNORM, R32G32_FLOAT, R32G32_UINT, R32G32_SINT, D32_FLOAT_S8X24_UINT, R10G10B10A2_UNORM, R10G10B10A2_UINT, R11G11B10_FLOAT, R8G8B8A8_UNORM, R8G8B8A8_UNORM_SRGB, R8G8B8A8_UINT, R8G8B8A8_SNORM, R8G8B8A8_SINT, B8G8R8A8_UNORM, B8G8R8A8_UNORM_SRGB, B8G8R8X8_UNORM, B8G8R8X8_UNORM_SRGB, R16G16_FLOAT, R16G16_UNORM, R16G16_UINT, R16G16_SNORM, R16G16_SINT, D32_FLOAT, R32_FLOAT, R32_UINT, R32_SINT, D24_UNORM_S8_UINT, R8G8B8_UNORM, R8G8B8_UNORM_SRGB, B8G8R8_UNORM, B8G8R8_UNORM_SRGB, R8G8_UNORM, R8G8_UINT, R8G8_SNORM, R8G8_SINT, R16_FLOAT, D16_UNORM, R16_UNORM, R16_UINT, R16_SNORM, R16_SINT, R8_UNORM, R8_UINT, R8_SNORM, R8_SINT, BC1_UNORM, BC1_UNORM_SRGB, BC2_UNORM, BC2_UNORM_SRGB, BC3_UNORM, BC3_UNORM_SRGB, BC4_UNORM, BC4_SNORM, BC5_UNORM, BC5_SNORM, BC6H_UF16, BC6H_SF16, BC7_UNORM, BC7_UNORM_SRGB, ASTC_4x4_UNORM, ASTC_4x4_UNORM_SRGB, ASTC_5x4_UNORM, ASTC_5x4_UNORM_SRGB, ASTC_5x5_UNORM, ASTC_5x5_UNORM_SRGB, ASTC_6x5_UNORM, ASTC_6x5_UNORM_SRGB, ASTC_6x6_UNORM, ASTC_6x6_UNORM_SRGB, ASTC_8x5_UNORM, ASTC_8x5_UNORM_SRGB, ASTC_8x6_UNORM, ASTC_8x6_UNORM_SRGB, ASTC_10x5_UNORM, ASTC_10x5_UNORM_SRGB, ASTC_10x6_UNORM, ASTC_10x6_UNORM_SRGB, ASTC_8x8_UNORM, ASTC_8x8_UNORM_SRGB, ASTC_10x8_UNORM, ASTC_10x8_UNORM_SRGB, ASTC_10x10_UNORM, ASTC_10x10_UNORM_SRGB, ASTC_12x10_UNORM, ASTC_12x10_UNORM_SRGB, ASTC_12x12_UNORM, ASTC_12x12_UNORM_SRGB, B4G4R4A4_UNORM, B4G4R4A4_UNORM_SRGB, A4B4G4R4_UNORM, A4B4G4R4_UNORM_SRGB, B5G6R5_UNORM, B5G6R5_UNORM_SRGB, B5G5R5A1_UNORM, B5G5R5A1_UNORM_SRGB, B5G5R5X1_UNORM, B5G5R5X1_UNORM_SRGB, A1B5G5R5_UNORM, A1B5G5R5_UNORM_SRGB, X1B5G5R5_UNORM, X1B5G5R5_UNORM_SRGB, NV12, P010, NUM_FORMATS, Default = UNKNOWN } |
Enum describing the encoding format of the pixels of an image. More... | |
using | StorageType = ezUInt16 |
Static Public Member Functions | |
static const char * | GetName (Enum format) |
Returns the name of the given format. More... | |
static ezUInt32 | GetPlaneCount (Enum format) |
Returns number of planes in the format, or 1 for non-planar formats. | |
static ezUInt32 | GetBitsPerPixel (Enum format, ezUInt32 uiPlaneIndex=0) |
Returns the number of bits per pixel of the given format. If the format's bpp is non-integral, the returned value rounded up to to the next integer. | |
static float | GetExactBitsPerPixel (Enum format, ezUInt32 uiPlaneIndex=0) |
Exact pixel size in bits. May be non-integral for some compressed formats. | |
static ezUInt32 | GetBitsPerBlock (Enum format, ezUInt32 uiPlaneIndex=0) |
Returns the block size in bits. For uncompressed formats, a block is considered a single pixel. | |
static ezUInt32 | GetNumChannels (Enum format) |
Number of channels (r, g, b, a, depth, stencil) supported by this format. | |
static ezUInt32 | GetChannelMask (Enum format, ezImageFormatChannel::Enum c) |
Bitmask of each channel of the format. This is not defined for some formats, and may return 0. | |
static ezUInt32 | GetBitsPerChannel (Enum format, ezImageFormatChannel::Enum c) |
Returns the number of bits for each channel of the format. | |
static ezUInt32 | GetRedMask (Enum format) |
If applicable, returns a bitmask for the red component of the format. | |
static ezUInt32 | GetGreenMask (Enum format) |
If applicable, returns a bitmask for the green component of the format. | |
static ezUInt32 | GetBlueMask (Enum format) |
If applicable, returns a bitmask for the blue component of the format. | |
static ezUInt32 | GetAlphaMask (Enum format) |
If applicable, returns a bitmask for the alpha component of the format. | |
static ezUInt32 | GetBlockWidth (Enum format, ezUInt32 uiPlaneIndex=0) |
Block width of a compressed format. Defaults to 1 for uncompressed formats. | |
static ezUInt32 | GetBlockHeight (Enum format, ezUInt32 uiPlaneIndex=0) |
Block height of a compressed format. Defaults to 1 for uncompressed formats. | |
static ezUInt32 | GetBlockDepth (Enum format, ezUInt32 uiPlaneIndex=0) |
Block depth of a compressed format. Defaults to 1 for uncompressed formats. | |
static ezImageFormatDataType::Enum | GetDataType (Enum format) |
Returns the data type represented by a format. | |
static bool | IsCompressed (Enum format) |
Returns true if the format is compressed. | |
static bool | IsDepth (Enum format) |
Returns true if the format is a depth format. | |
static bool | IsSrgb (Enum format) |
Returns whether the given format is an sRGB format. | |
static bool | IsStencil (Enum format) |
Returns true if the format is a stencil format. | |
static Enum | AsSrgb (Enum format) |
Returns the corresponding sRGB format if one exists; otherwise returns the unmodified format. | |
static Enum | AsLinear (Enum format) |
Returns the corresponding linear format if one exists; otherwise returns the unmodified format. | |
static ezUInt32 | GetNumBlocksX (Enum format, ezUInt32 uiWidth, ezUInt32 uiPlaneIndex=0) |
Computes the number of blocks in X direction (compressed) or pixels (if uncompressed) for a given width (in pixels). | |
static ezUInt32 | GetNumBlocksY (Enum format, ezUInt32 uiHeight, ezUInt32 uiPlaneIndex=0) |
Computes the number of blocks in Y direction (compressed) or pixels (if uncompressed) for a given height (in pixels). | |
static ezUInt32 | GetNumBlocksZ (Enum format, ezUInt32 uiDepth, ezUInt32 uiPlaneIndex=0) |
Computes the number of blocks in Z direction (compressed) or pixels (if uncompressed) for a given height (in pixels). | |
static ezUInt64 | GetRowPitch (Enum format, ezUInt32 uiWidth, ezUInt32 uiPlaneIndex=0) |
Computes the size in bytes of a row of blocks (compressed) or pixels (if uncompressed) of the given width. | |
static ezUInt64 | GetDepthPitch (Enum format, ezUInt32 uiWidth, ezUInt32 uiHeight, ezUInt32 uiPlaneIndex=0) |
Computes the size in bytes of a 2D slice of blocks (compressed) or pixels (if uncompressed) of the given width and height. | |
static ezImageFormatType::Enum | GetType (Enum format) |
Returns the type of the image format. | |
static ezImageFormat::Enum | FromPixelMask (ezUInt32 uiRedMask, ezUInt32 uiGreenMask, ezUInt32 uiBlueMask, ezUInt32 uiAlphaMask, ezUInt32 uiBitsPerPixel) |
Finds a format matching the given component masks. | |
static ezImageFormat::Enum | GetPlaneSubFormat (ezImageFormat::Enum format, ezUInt32 uiPlaneIndex) |
Returns the format of a subplane of a given format. | |
static bool | IsCompatible (Enum left, Enum right) |
Returns true if the data formats are compatible, i.e. can be copied into one another. | |
static bool | RequiresFirstLevelBlockAlignment (Enum format) |
Returns true if the most high-res miplevel requires block alignment. | |
Enum describing the encoding format of the pixels of an image.
enum ezImageFormat::Enum : ezUInt16 |
Enum describing the encoding format of the pixels of an image.
Image formats can be separated into three types: linear, block compressed, and planar. In linear formats, the various channels of each pixel (such as R, G, B) are stored interleaved in memory [RGBRGBRGB...]. This is in contrast to planar formats, where each channel is stored in a separate slice of memory [RRR...GGG...BBB...]. Planar formats are typically used for video formats with luma and chroma channels, and may also be partially planarized. For example, NV12 has a luma (Y) plane and a chroma (UV) plane, where the chroma plane again stores the two sub-channels linearly interleaved. For these formats, GetPlaneSubFormat() returns a description of the encoding within each plane. Block compressed formats use a different approach, where pixels are arranged in blocks of a fixed format-dependent size (from 4x4 for BC1-7 and up to 12x12 for some ASTC formats), with colors encoded with a fixed ratio compression.
|
static |
Returns the name of the given format.
The returned string is guaranteed to be stable across engine versions and thus suitable for serialization.