LLGL 0.05 Beta
Loading...
Searching...
No Matches
Format.h File Reference
#include <LLGL/Export.h>
#include <cstdint>
#include <cstddef>

Classes

struct  LLGL::FormatFlags
 Format attribute flags enumeration. More...
struct  LLGL::FormatAttributes
 Vertex and texture format attributes structure. More...

Namespaces

namespace  LLGL

Enumerations

enum class  LLGL::Format {
  LLGL::Undefined , LLGL::A8UNorm , LLGL::R8UNorm , LLGL::R8SNorm ,
  LLGL::R8UInt , LLGL::R8SInt , LLGL::R16UNorm , LLGL::R16SNorm ,
  LLGL::R16UInt , LLGL::R16SInt , LLGL::R16Float , LLGL::R32UInt ,
  LLGL::R32SInt , LLGL::R32Float , LLGL::R64Float , LLGL::RG8UNorm ,
  LLGL::RG8SNorm , LLGL::RG8UInt , LLGL::RG8SInt , LLGL::RG16UNorm ,
  LLGL::RG16SNorm , LLGL::RG16UInt , LLGL::RG16SInt , LLGL::RG16Float ,
  LLGL::RG32UInt , LLGL::RG32SInt , LLGL::RG32Float , LLGL::RG64Float ,
  LLGL::RGB8UNorm , LLGL::RGB8UNorm_sRGB , LLGL::RGB8SNorm , LLGL::RGB8UInt ,
  LLGL::RGB8SInt , LLGL::RGB16UNorm , LLGL::RGB16SNorm , LLGL::RGB16UInt ,
  LLGL::RGB16SInt , LLGL::RGB16Float , LLGL::RGB32UInt , LLGL::RGB32SInt ,
  LLGL::RGB32Float , LLGL::RGB64Float , LLGL::RGBA8UNorm , LLGL::RGBA8UNorm_sRGB ,
  LLGL::RGBA8SNorm , LLGL::RGBA8UInt , LLGL::RGBA8SInt , LLGL::RGBA16UNorm ,
  LLGL::RGBA16SNorm , LLGL::RGBA16UInt , LLGL::RGBA16SInt , LLGL::RGBA16Float ,
  LLGL::RGBA32UInt , LLGL::RGBA32SInt , LLGL::RGBA32Float , LLGL::RGBA64Float ,
  LLGL::BGRA8UNorm , LLGL::BGRA8UNorm_sRGB , LLGL::BGRA8SNorm , LLGL::BGRA8UInt ,
  LLGL::BGRA8SInt , LLGL::RGB10A2UNorm , LLGL::RGB10A2UInt , LLGL::RG11B10Float ,
  LLGL::RGB9E5Float , LLGL::BGR5A1UNorm , LLGL::D16UNorm , LLGL::D24UNormS8UInt ,
  LLGL::D32Float , LLGL::D32FloatS8X24UInt , LLGL::BC1UNorm , LLGL::BC1UNorm_sRGB ,
  LLGL::BC2UNorm , LLGL::BC2UNorm_sRGB , LLGL::BC3UNorm , LLGL::BC3UNorm_sRGB ,
  LLGL::BC4UNorm , LLGL::BC4SNorm , LLGL::BC5UNorm , LLGL::BC5SNorm ,
  LLGL::BC6HUFloat , LLGL::BC6HSFloat , LLGL::BC7UNorm , LLGL::BC7UNorm_sRGB ,
  LLGL::ASTC4x4 , LLGL::ASTC4x4_sRGB , LLGL::ASTC5x4 , LLGL::ASTC5x4_sRGB ,
  LLGL::ASTC5x5 , LLGL::ASTC5x5_sRGB , LLGL::ASTC6x5 , LLGL::ASTC6x5_sRGB ,
  LLGL::ASTC6x6 , LLGL::ASTC6x6_sRGB , LLGL::ASTC8x5 , LLGL::ASTC8x5_sRGB ,
  LLGL::ASTC8x6 , LLGL::ASTC8x6_sRGB , LLGL::ASTC8x8 , LLGL::ASTC8x8_sRGB ,
  LLGL::ASTC10x5 , LLGL::ASTC10x5_sRGB , LLGL::ASTC10x6 , LLGL::ASTC10x6_sRGB ,
  LLGL::ASTC10x8 , LLGL::ASTC10x8_sRGB , LLGL::ASTC10x10 , LLGL::ASTC10x10_sRGB ,
  LLGL::ASTC12x10 , LLGL::ASTC12x10_sRGB , LLGL::ASTC12x12 , LLGL::ASTC12x12_sRGB ,
  LLGL::ETC1UNorm , LLGL::ETC2UNorm , LLGL::ETC2UNorm_sRGB
}
 Texture and vertex attribute format enumeration used for GPU side operations. More...
enum class  LLGL::ImageFormat {
  LLGL::Alpha , LLGL::R , LLGL::RG , LLGL::RGB ,
  LLGL::BGR , LLGL::RGBA , LLGL::BGRA , LLGL::ARGB ,
  LLGL::ABGR , LLGL::Depth , LLGL::DepthStencil , LLGL::Stencil ,
  LLGL::Compressed
}
 Image format enumeration that applies to each pixel of an image. More...
enum class  LLGL::DataType {
  LLGL::Undefined , LLGL::Int8 , LLGL::UInt8 , LLGL::Int16 ,
  LLGL::UInt16 , LLGL::Int32 , LLGL::UInt32 , LLGL::Float16 ,
  LLGL::Float32 , LLGL::Float64
}
 Data types enumeration used for CPU side operations. More...

Functions

LLGL_EXPORT const FormatAttributes & LLGL::GetFormatAttribs (const Format format)
 Returns the attributes for the specified hardware format or a zero-initialized structure in case of an invalid argument.
LLGL_EXPORT std::uint32_t LLGL::ImageFormatSize (const ImageFormat imageFormat)
 Returns the size (in number of components) of the specified image format.
LLGL_EXPORT std::size_t LLGL::GetMemoryFootprint (const Format format, std::size_t numTexels)
 Returns the memory footprint (in bytes) of a texture or buffer with the specified hardware format and number of elements.
LLGL_EXPORT std::size_t LLGL::GetMemoryFootprint (const ImageFormat imageFormat, const DataType dataType, std::size_t numTexels)
 Returns the memory footprint (in bytes) of an image with the specified format, data type, and number of elements.
LLGL_EXPORT bool LLGL::IsCompressedFormat (const Format format)
 Returns true if the specified hardware format is a compressed format, e.g. Format::BC1UNorm, Format::BC2UNorm_sRGB, Format::BC4SNorm, etc.
LLGL_EXPORT bool LLGL::IsDepthOrStencilFormat (const Format format)
 Returns true if the specified hardware format is a depth or depth-stencil format, i.e. Format::D16UNorm, Format::D24UNormS8UInt, Format::D32Float, or Format::D32FloatS8X24UInt.
LLGL_EXPORT bool LLGL::IsDepthAndStencilFormat (const Format format)
 Returns true if the specified hardware format is a depth and stencil format, i.e. Format::D24UNormS8UInt or Format::D32FloatS8X24UInt.
LLGL_EXPORT bool LLGL::IsDepthOrStencilFormat (const ImageFormat imageFormat)
 Returns true if the specified color format is a depth-stencil format, i.e. either ImageFormat::Depth or ImageFormat::DepthStencil.
LLGL_EXPORT bool LLGL::IsDepthFormat (const Format format)
 Returns true if the specified hardware format is a depth format, i.e. Format::D16UNorm, Format::D24UNormS8UInt, Format::D32Float, or Format::D32FloatS8X24UInt.
LLGL_EXPORT bool LLGL::IsStencilFormat (const Format format)
 Returns true if the specified hardware format is a stencil format, i.e. Format::D24UNormS8UInt or Format::D32FloatS8X24UInt.
LLGL_EXPORT bool LLGL::IsColorFormat (const Format format)
 Returns true if the specified hardware format is a color format.
LLGL_EXPORT bool LLGL::IsNormalizedFormat (const Format format)
 Returns true if the specified hardware format is a normalized format (like Format::RGBA8UNorm, Format::R8SNorm etc.).
LLGL_EXPORT bool LLGL::IsIntegerFormat (const Format format)
 Returns true if the specified hardware format is a strict integer format (like Format::RGBA8UInt, Format::R8SInt etc.).
LLGL_EXPORT bool LLGL::IsFloatFormat (const Format format)
 Returns true if the specified hardware format is a strict floating-point format (like Format::RGBA32Float, Format::R32Float etc.).
LLGL_EXPORT std::uint32_t LLGL::DataTypeSize (const DataType dataType)
 Returns the size (in bytes) of the specified data type.
LLGL_EXPORT bool LLGL::IsSIntDataType (const DataType dataType)
 Determines if the argument refers to a signed integer data type.
LLGL_EXPORT bool LLGL::IsUIntDataType (const DataType dataType)
 Determines if the argument refers to an unsigned integer data type.
LLGL_EXPORT bool LLGL::IsFloatDataType (const DataType dataType)
 Determines if the argument refers to a floating-pointer data type.