include/umbra_defs.h file

Common definitions across all Umbra APIs.

Classes

struct UmbraFloat2
Two floats.
struct UmbraFloat3
Three floats.
struct UmbraFloat3_3
A 3x3 matrix of floats.
struct UmbraFloat3MinMax
A single precision, min-max representation of an axis-aligned bounding box.
struct UmbraFloat4
Four floats.
struct UmbraFloat4_4
A 4x4 matrix of floats.
struct UmbraDouble2
Two doubles.
struct UmbraDouble3
Three doubles.
struct UmbraDouble3_3
A 3x3 matrix of doubles.
struct UmbraDouble3MinMax
A double precision, min-max representation of an axis-aligned bounding box.
struct UmbraDouble4
Four doubles.
struct UmbraDouble4_4
A 4x4 matrix of doubles.
struct UmbraInt2
Two 32-bit integers.
struct UmbraInt3
Three 32-bit integers.
struct UmbraRGBA
Four 8-bit unsigned integer color values.
struct UmbraElementBuffer
A structure describing a buffer of elements stored in memory.
struct UmbraByteBuffer
A structure describing a byte buffer in memory.

Enums

enum UmbraMatrixFormat { UmbraMatrixFormat_ColumnMajor = 0, UmbraMatrixFormat_RowMajor = 1 }
Row or column major matrix format enum.
enum UmbraTextureType { UmbraTextureType_Diffuse = 0, UmbraTextureType_Normal, UmbraTextureType_Specular, UmbraTextureType_MetaIndex }
Texture type enum.
enum UmbraTextureFormat { UmbraTextureFormat_RGBA32 = 0, UmbraTextureFormat_RGB24, UmbraTextureFormat_BC1, UmbraTextureFormat_BC3, UmbraTextureFormat_BC4, UmbraTextureFormat_BC5, UmbraTextureFormat_ETC1_RGB, UmbraTextureFormat_RGBA_FLOAT32, UmbraTextureFormat_UNC1 deprecated, UmbraTextureFormat_JPEG, UmbraTextureFormat_PNG, UmbraTextureFormat_BMP, UmbraTextureFormat_PSD, UmbraTextureFormat_TGA, UmbraTextureFormat_GIF, UmbraTextureFormat_HDR, UmbraTextureFormat_PIC, UmbraTextureFormat_PNM, UmbraTextureFormat_ASTC_4X4, UmbraTextureFormat_ASTC_5X4, UmbraTextureFormat_ASTC_5X5, UmbraTextureFormat_ASTC_6X5, UmbraTextureFormat_ASTC_6X6, UmbraTextureFormat_ASTC_8X5, UmbraTextureFormat_ASTC_8X6, UmbraTextureFormat_ASTC_10X5, UmbraTextureFormat_ASTC_10X6, UmbraTextureFormat_ASTC_8X8, UmbraTextureFormat_ASTC_10X8, UmbraTextureFormat_ASTC_10X10, UmbraTextureFormat_ASTC_12X10, UmbraTextureFormat_ASTC_12X12, UmbraTextureFormat_ARGB32, UmbraTextureFormat_R8, UmbraTextureFormat_PVRTC1_RGB4, UmbraTextureFormat_PVRTC1_RGBA4, UmbraTextureFormat_UINT8, UmbraTextureFormat_UINT16, UmbraTextureFormat_UINT32, UmbraTextureFormat_RGB565, UmbraTextureFormat_RG8, UmbraTextureFormat_RG16F, UmbraTextureFormat_OPENEXR, UmbraTextureFormat_RGBA_FLOAT16, UmbraTextureFormat_RGB_FLOAT16, UmbraTextureFormat_RGB_FLOAT32 }
Texture format enum.
enum UmbraColorSpace { UmbraColorSpace_Linear = 0, UmbraColorSpace_SRGB }
Color space enum.
enum UmbraVertexAttribute { UmbraVertexAttribute_Position = 0, UmbraVertexAttribute_TextureCoordinate, UmbraVertexAttribute_Normal, UmbraVertexAttribute_Tangent }
Vertex attributes.
enum UmbraBufferFlagBits { UmbraBufferFlags_UncachedMemory = 1 << 0 }
Buffer flags.

Typedefs

typedef struct UmbraClient UmbraClient
Opaque client object.
typedef int32_t UmbraBool
A boolean type.
typedef uint32_t UmbraBufferFlags
A bitmask of UmbraBufferFlagBits.

Enum details

enum UmbraTextureType

Texture type enum.

Enumerators
UmbraTextureType_Diffuse
UmbraTextureType_Normal
UmbraTextureType_Specular
UmbraTextureType_MetaIndex

enum UmbraTextureFormat

Texture format enum.

A list of formats either accepted as input by the Umbra importer, or produced as output for use in the Umbra runtime.

Enumerators
UmbraTextureFormat_RGBA32

Four 8-bit unsigned integers.

Can be used as an input or output.

UmbraTextureFormat_RGB24

Three 8-bit unsigned integers.

Can be used as an input or output.

UmbraTextureFormat_BC1

A compressed RGB (or RGB with 1-bit alpha) format.

Can only be used as an output.

UmbraTextureFormat_BC3

A compressed RGBA format.

Can only be used as an output.

UmbraTextureFormat_BC4

A compressed single channel format.

Can only be used as an output.

UmbraTextureFormat_BC5

A compressed dual channel format.

Can only be used as an output.

UmbraTextureFormat_ETC1_RGB

A compressed RGB format.

Can only be used as an output.

UmbraTextureFormat_RGBA_FLOAT32

Four floats.

Can be used as input or output.

UmbraTextureFormat_UNC1
UmbraTextureFormat_JPEG

Standard image formats.

Can only be used as inputs.

UmbraTextureFormat_PNG
UmbraTextureFormat_BMP
UmbraTextureFormat_PSD
UmbraTextureFormat_TGA
UmbraTextureFormat_GIF
UmbraTextureFormat_HDR
UmbraTextureFormat_PIC
UmbraTextureFormat_PNM
UmbraTextureFormat_ASTC_4X4

A flexible compressed format.

Can only be used as outputs.

UmbraTextureFormat_ASTC_5X4
UmbraTextureFormat_ASTC_5X5
UmbraTextureFormat_ASTC_6X5
UmbraTextureFormat_ASTC_6X6
UmbraTextureFormat_ASTC_8X5
UmbraTextureFormat_ASTC_8X6
UmbraTextureFormat_ASTC_10X5
UmbraTextureFormat_ASTC_10X6
UmbraTextureFormat_ASTC_8X8
UmbraTextureFormat_ASTC_10X8
UmbraTextureFormat_ASTC_10X10
UmbraTextureFormat_ASTC_12X10
UmbraTextureFormat_ASTC_12X12
UmbraTextureFormat_ARGB32

Four 8-bit unsigned integers, with alpha in the first channel.

Can only be used as an input.

UmbraTextureFormat_R8

A single 8-bit unsigned integer greyscale channel.

Can only be used as an input.

UmbraTextureFormat_PVRTC1_RGB4

A compressed RGB format.

Can only be used as an output.

UmbraTextureFormat_PVRTC1_RGBA4

A compressed RGBA format.

Can only be used as an output.

UmbraTextureFormat_UINT8

Umbra internal use only.

UmbraTextureFormat_UINT16

Umbra internal use only.

UmbraTextureFormat_UINT32

Umbra internal use only.

UmbraTextureFormat_RGB565

Low precision RGB format.

Only used by Umbra internally. Cannot be used as an input or output.

UmbraTextureFormat_RG8

Two 8-bit unsigned integers.

Only used by Umbra internally. Cannot be used as an input or output.

UmbraTextureFormat_RG16F

Two halfs.

Only used by Umbra internally. Cannot be used as an input or output.

UmbraTextureFormat_OPENEXR

An HDR format.

Can only be used as an input.

UmbraTextureFormat_RGBA_FLOAT16

Four halfs.

Can only be used as an output.

UmbraTextureFormat_RGB_FLOAT16

Three halfs.

Can only be used as an output.

UmbraTextureFormat_RGB_FLOAT32

Three floats.

Can only be used as an output.

enum UmbraColorSpace

Color space enum.

Enumerators
UmbraColorSpace_Linear

Linear color space.

UmbraColorSpace_SRGB

sRGB color space.

enum UmbraVertexAttribute

Vertex attributes.

Enumerators
UmbraVertexAttribute_Position

Vertex position, of the type UmbraFloat3.

UmbraVertexAttribute_TextureCoordinate

Texture coordinate, of the type UmbraFloat2.

UmbraVertexAttribute_Normal

Unit length normal vector, of the type UmbraFloat3.

UmbraVertexAttribute_Tangent

Unit length tangent vector, of the type UmbraFloat3.

enum UmbraBufferFlagBits

Buffer flags.

Enumerators
UmbraBufferFlags_UncachedMemory

Set this flag when decoding into write-combined/uncached memory, such as mapped GPU buffers.

Reading from such memory is slow, and some of the asset decoders re-read the data they write in their decompression routines.

This flag causes affected decoders to allocate a temporary buffer to decode into, then copy it all at once to your buffer.