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 UmbraTextureType { UmbraTextureType_Diffuse = 0, UmbraTextureType_Normal, UmbraTextureType_Specular, UmbraTextureType_MetaIndex }
Texture type.
enum UmbraTextureFormat { UmbraTextureFormat_RGBA32 = 0, UmbraTextureFormat_RGB24 = 1, UmbraTextureFormat_BC1 = 2, UmbraTextureFormat_BC3 = 3, UmbraTextureFormat_BC4 = 4, UmbraTextureFormat_BC5 = 5, UmbraTextureFormat_ETC1_RGB = 6, UmbraTextureFormat_RGBA_FLOAT32 = 7, UmbraTextureFormat_UNC1 = 8 deprecated, UmbraTextureFormat_JPEG = 9, UmbraTextureFormat_PNG = 10, UmbraTextureFormat_BMP = 11, UmbraTextureFormat_PSD = 12, UmbraTextureFormat_TGA = 13, UmbraTextureFormat_GIF = 14, UmbraTextureFormat_HDR = 15, UmbraTextureFormat_PIC = 16, UmbraTextureFormat_PNM = 17, UmbraTextureFormat_ASTC_4X4 = 18, UmbraTextureFormat_ASTC_5X4 = 19, UmbraTextureFormat_ASTC_5X5 = 20, UmbraTextureFormat_ASTC_6X5 = 21, UmbraTextureFormat_ASTC_6X6 = 22, UmbraTextureFormat_ASTC_8X5 = 23, UmbraTextureFormat_ASTC_8X6 = 24, UmbraTextureFormat_ASTC_10X5 = 25, UmbraTextureFormat_ASTC_10X6 = 26, UmbraTextureFormat_ASTC_8X8 = 27, UmbraTextureFormat_ASTC_10X8 = 28, UmbraTextureFormat_ASTC_10X10 = 29, UmbraTextureFormat_ASTC_12X10 = 30, UmbraTextureFormat_ASTC_12X12 = 31, UmbraTextureFormat_ARGB32 = 32, UmbraTextureFormat_R8 = 33, UmbraTextureFormat_PVRTC1_RGB4 = 34, UmbraTextureFormat_PVRTC1_RGBA4 = 35, UmbraTextureFormat_UINT8 = 36, UmbraTextureFormat_UINT16 = 37, UmbraTextureFormat_UINT32 = 38, UmbraTextureFormat_RGB565 = 39, UmbraTextureFormat_RG8 = 40, UmbraTextureFormat_RG16F = 41, UmbraTextureFormat_OPENEXR = 42, UmbraTextureFormat_RGBA_FLOAT16 = 43, UmbraTextureFormat_RGB_FLOAT16 = 44, UmbraTextureFormat_RGB_FLOAT32 = 45, UmbraTextureFormat_BC6H = 46, UmbraTextureFormat_BC7 = 47 }
Texture format.
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 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.