Kohi Game Engine
core_render_types.h File Reference
#include "defines.h"
#include "math/math_types.h"
#include "strings/kname.h"

Go to the source code of this file.

Data Structures

struct  shader_attribute
 Represents a single shader vertex attribute. More...
 
struct  shader_binding_config
 
struct  shader_binding_set_config
 
struct  shader_pipeline_config
 
struct  kmaterial_sampler_config
 
struct  kmaterial_texture_input_config
 
struct  kmaterial_instance
 A material instance, which contains handles to both the base material as well as the instance itself. Every time an instance is "acquired", one of these is created, and the instance should be referenced using this going from that point. More...
 
struct  krenderbuffer_render_data
 

Macros

#define KSHADER_INVALID   INVALID_ID_U16
 
#define INVALID_KTEXTURE   INVALID_ID_U16
 
#define KMATERIAL_INVALID   INVALID_ID_U16
 
#define KMATERIAL_INSTANCE_INVALID   INVALID_ID_U16
 

Typedefs

typedef enum projection_matrix_type projection_matrix_type
 
typedef enum face_cull_mode face_cull_mode
 Determines face culling mode during rendering. More...
 
typedef enum primitive_topology_type primitive_topology_type
 
typedef u32 primitive_topology_type_bits
 A combination of topology bit flags. More...
 
typedef enum kpixel_format kpixel_format
 Represents the format of image (or texture) pixel data. More...
 
typedef enum texture_filter texture_filter
 Represents supported texture filtering modes. More...
 
typedef enum texture_repeat texture_repeat
 
typedef enum texture_channel texture_channel
 
typedef enum shader_stage shader_stage
 Shader stages available in the system. More...
 
typedef enum shader_attribute_type shader_attribute_type
 Available attribute types. More...
 
typedef enum ktexture_type ktexture_type
 Represents various types of textures. More...
 
typedef enum shader_sampler_type shader_sampler_type
 
typedef enum shader_generic_sampler shader_generic_sampler
 
typedef u16 kshader
 
typedef enum renderer_default_texture renderer_default_texture
 
typedef struct shader_attribute shader_attribute
 Represents a single shader vertex attribute. More...
 
typedef enum shader_flag_bits shader_flag_bits
 Various shader flag bit fields. More...
 
typedef u32 shader_flags
 A combination of topology bit flags. More...
 
typedef enum shader_state shader_state
 Represents the current state of a given shader. More...
 
typedef enum shader_binding_type shader_binding_type
 
typedef struct shader_binding_config shader_binding_config
 
typedef struct shader_binding_set_config shader_binding_set_config
 
typedef struct shader_pipeline_config shader_pipeline_config
 
typedef u16 ktexture
 Represents a texture to be used for rendering purposes, stored on the GPU (VRAM) More...
 
typedef enum ktexture_flag ktexture_flag
 
typedef u8 ktexture_flag_bits
 Holds bit flags for textures.. More...
 
typedef enum kmaterial_type kmaterial_type
 
typedef enum kmaterial_model kmaterial_model
 
typedef enum kmaterial_texture_map kmaterial_texture_map
 
typedef enum kmaterial_flag_bits kmaterial_flag_bits
 
typedef u32 kmaterial_flags
 
typedef struct kmaterial_sampler_config kmaterial_sampler_config
 
typedef struct kmaterial_texture_input_config kmaterial_texture_input_config
 
typedef u16 kmaterial
 
typedef struct kmaterial_instance kmaterial_instance
 A material instance, which contains handles to both the base material as well as the instance itself. Every time an instance is "acquired", one of these is created, and the instance should be referenced using this going from that point. More...
 
typedef struct krenderbuffer_render_data krenderbuffer_render_data
 

Enumerations

enum  projection_matrix_type { PROJECTION_MATRIX_TYPE_PERSPECTIVE = 0x0 , PROJECTION_MATRIX_TYPE_ORTHOGRAPHIC = 0x1 , PROJECTION_MATRIX_TYPE_ORTHOGRAPHIC_CENTERED = 0x2 }
 
enum  face_cull_mode { FACE_CULL_MODE_NONE = 0x0 , FACE_CULL_MODE_FRONT = 0x1 , FACE_CULL_MODE_BACK = 0x2 , FACE_CULL_MODE_FRONT_AND_BACK = 0x3 }
 Determines face culling mode during rendering. More...
 
enum  primitive_topology_type {
  PRIMITIVE_TOPOLOGY_TYPE_NONE_BIT = 0x00 , PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE_LIST_BIT = 0x01 , PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE_STRIP_BIT = 0x02 , PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE_FAN_BIT = 0x04 ,
  PRIMITIVE_TOPOLOGY_TYPE_LINE_LIST_BIT = 0x08 , PRIMITIVE_TOPOLOGY_TYPE_LINE_STRIP_BIT = 0x10 , PRIMITIVE_TOPOLOGY_TYPE_POINT_LIST_BIT = 0x20 , PRIMITIVE_TOPOLOGY_TYPE_MAX_BIT = PRIMITIVE_TOPOLOGY_TYPE_POINT_LIST_BIT << 1
}
 
enum  kpixel_format {
  KPIXEL_FORMAT_UNKNOWN , KPIXEL_FORMAT_RGBA8 , KPIXEL_FORMAT_RGB8 , KPIXEL_FORMAT_RG8 ,
  KPIXEL_FORMAT_R8 , KPIXEL_FORMAT_RGBA16 , KPIXEL_FORMAT_RGB16 , KPIXEL_FORMAT_RG16 ,
  KPIXEL_FORMAT_R16 , KPIXEL_FORMAT_RGBA32 , KPIXEL_FORMAT_RGB32 , KPIXEL_FORMAT_RG32 ,
  KPIXEL_FORMAT_R32 , KPIXEL_FORMAT_D32 , KPIXEL_FORMAT_D24 , KPIXEL_FORMAT_S8
}
 Represents the format of image (or texture) pixel data. More...
 
enum  texture_filter { TEXTURE_FILTER_MODE_NEAREST = 0x0 , TEXTURE_FILTER_MODE_LINEAR = 0x1 }
 Represents supported texture filtering modes. More...
 
enum  texture_repeat {
  TEXTURE_REPEAT_REPEAT = 0x0 , TEXTURE_REPEAT_MIRRORED_REPEAT = 0x1 , TEXTURE_REPEAT_CLAMP_TO_EDGE = 0x2 , TEXTURE_REPEAT_CLAMP_TO_BORDER = 0x3 ,
  TEXTURE_REPEAT_COUNT
}
 
enum  texture_channel { TEXTURE_CHANNEL_R , TEXTURE_CHANNEL_G , TEXTURE_CHANNEL_B , TEXTURE_CHANNEL_A }
 
enum  shader_stage { SHADER_STAGE_VERTEX = 0x00000001 , SHADER_STAGE_GEOMETRY = 0x00000002 , SHADER_STAGE_FRAGMENT = 0x00000004 , SHADER_STAGE_COMPUTE = 0x0000008 }
 Shader stages available in the system. More...
 
enum  shader_attribute_type {
  SHADER_ATTRIB_TYPE_FLOAT32 = 0U , SHADER_ATTRIB_TYPE_FLOAT32_2 = 1U , SHADER_ATTRIB_TYPE_FLOAT32_3 = 2U , SHADER_ATTRIB_TYPE_FLOAT32_4 = 3U ,
  SHADER_ATTRIB_TYPE_MATRIX_4 = 4U , SHADER_ATTRIB_TYPE_INT8 = 5U , SHADER_ATTRIB_TYPE_UINT8 = 6U , SHADER_ATTRIB_TYPE_INT16 = 7U ,
  SHADER_ATTRIB_TYPE_UINT16 = 8U , SHADER_ATTRIB_TYPE_INT32 = 9U , SHADER_ATTRIB_TYPE_INT32_2 = 10U , SHADER_ATTRIB_TYPE_INT32_3 = 11U ,
  SHADER_ATTRIB_TYPE_INT32_4 = 12U , SHADER_ATTRIB_TYPE_UINT32 = 13U , SHADER_ATTRIB_TYPE_UINT32_2 = 14U , SHADER_ATTRIB_TYPE_UINT32_3 = 15U ,
  SHADER_ATTRIB_TYPE_UINT32_4 = 16U
}
 Available attribute types. More...
 
enum  ktexture_type {
  KTEXTURE_TYPE_UNDEFINED , KTEXTURE_TYPE_1D , KTEXTURE_TYPE_2D , KTEXTURE_TYPE_3D ,
  KTEXTURE_TYPE_CUBE , KTEXTURE_TYPE_1D_ARRAY , KTEXTURE_TYPE_2D_ARRAY , KTEXTURE_TYPE_CUBE_ARRAY ,
  KTEXTURE_TYPE_COUNT
}
 Represents various types of textures. More...
 
enum  shader_sampler_type {
  SHADER_SAMPLER_TYPE_1D , SHADER_SAMPLER_TYPE_2D , SHADER_SAMPLER_TYPE_3D , SHADER_SAMPLER_TYPE_CUBE ,
  SHADER_SAMPLER_TYPE_1D_ARRAY , SHADER_SAMPLER_TYPE_2D_ARRAY , SHADER_SAMPLER_TYPE_CUBE_ARRAY
}
 
enum  shader_generic_sampler {
  SHADER_GENERIC_SAMPLER_LINEAR_REPEAT , SHADER_GENERIC_SAMPLER_LINEAR_REPEAT_MIRRORED , SHADER_GENERIC_SAMPLER_LINEAR_CLAMP , SHADER_GENERIC_SAMPLER_LINEAR_CLAMP_BORDER ,
  SHADER_GENERIC_SAMPLER_NEAREST_REPEAT , SHADER_GENERIC_SAMPLER_NEAREST_REPEAT_MIRRORED , SHADER_GENERIC_SAMPLER_NEAREST_CLAMP , SHADER_GENERIC_SAMPLER_NEAREST_CLAMP_BORDER ,
  SHADER_GENERIC_SAMPLER_LINEAR_REPEAT_NO_ANISOTROPY , SHADER_GENERIC_SAMPLER_LINEAR_REPEAT_MIRRORED_NO_ANISOTROPY , SHADER_GENERIC_SAMPLER_LINEAR_CLAMP_NO_ANISOTROPY , SHADER_GENERIC_SAMPLER_LINEAR_CLAMP_BORDER_NO_ANISOTROPY ,
  SHADER_GENERIC_SAMPLER_NEAREST_REPEAT_NO_ANISOTROPY , SHADER_GENERIC_SAMPLER_NEAREST_REPEAT_MIRRORED_NO_ANISOTROPY , SHADER_GENERIC_SAMPLER_NEAREST_CLAMP_NO_ANISOTROPY , SHADER_GENERIC_SAMPLER_NEAREST_CLAMP_BORDER_NO_ANISOTROPY ,
  SHADER_GENERIC_SAMPLER_COUNT
}
 
enum  renderer_default_texture {
  RENDERER_DEFAULT_TEXTURE_BASE_COLOUR = 0 , RENDERER_DEFAULT_TEXTURE_ALBEDO = RENDERER_DEFAULT_TEXTURE_BASE_COLOUR , RENDERER_DEFAULT_TEXTURE_DIFFUSE = RENDERER_DEFAULT_TEXTURE_BASE_COLOUR , RENDERER_DEFAULT_TEXTURE_NORMAL = 1 ,
  RENDERER_DEFAULT_TEXTURE_METALLIC = 2 , RENDERER_DEFAULT_TEXTURE_ROUGHNESS = 3 , RENDERER_DEFAULT_TEXTURE_AMBIENT_OCCLUSION = 4 , RENDERER_DEFAULT_TEXTURE_EMISSIVE = 5 ,
  RENDERER_DEFAULT_TEXTURE_DUDV = 6 , RENDERER_DEFAULT_TEXTURE_COUNT
}
 
enum  shader_flag_bits {
  SHADER_FLAG_NONE_BIT = 0x0000 , SHADER_FLAG_DEPTH_TEST_BIT = 0x0001 , SHADER_FLAG_DEPTH_WRITE_BIT = 0x0002 , SHADER_FLAG_WIREFRAME_BIT = 0x0004 ,
  SHADER_FLAG_STENCIL_TEST_BIT = 0x0008 , SHADER_FLAG_STENCIL_WRITE_BIT = 0x0010 , SHADER_FLAG_COLOUR_READ_BIT = 0x0020 , SHADER_FLAG_COLOUR_WRITE_BIT = 0x0040
}
 Various shader flag bit fields. More...
 
enum  shader_state { SHADER_STATE_FREE , SHADER_STATE_NOT_CREATED , SHADER_STATE_UNINITIALIZED , SHADER_STATE_INITIALIZED }
 Represents the current state of a given shader. More...
 
enum  shader_binding_type {
  SHADER_BINDING_TYPE_UBO , SHADER_BINDING_TYPE_SSBO , SHADER_BINDING_TYPE_TEXTURE , SHADER_BINDING_TYPE_SAMPLER ,
  SHADER_BINDING_TYPE_COUNT
}
 
enum  ktexture_flag {
  KTEXTURE_FLAG_HAS_TRANSPARENCY = 0x01 , KTEXTURE_FLAG_IS_WRITEABLE = 0x02 , KTEXTURE_FLAG_IS_WRAPPED = 0x04 , KTEXTURE_FLAG_DEPTH = 0x08 ,
  KTEXTURE_FLAG_STENCIL = 0x10 , KTEXTURE_FLAG_RENDERER_BUFFERING = 0x20
}
 
enum  kmaterial_type {
  KMATERIAL_TYPE_UNKNOWN = 0 , KMATERIAL_TYPE_STANDARD , KMATERIAL_TYPE_WATER , KMATERIAL_TYPE_BLENDED ,
  KMATERIAL_TYPE_COUNT , KMATERIAL_TYPE_CUSTOM = 99
}
 
enum  kmaterial_model {
  KMATERIAL_MODEL_UNLIT = 0 , KMATERIAL_MODEL_PBR , KMATERIAL_MODEL_PHONG , KMATERIAL_MODEL_COUNT ,
  KMATERIAL_MODEL_CUSTOM = 99
}
 
enum  kmaterial_texture_map {
  KMATERIAL_TEXTURE_MAP_BASE_COLOUR , KMATERIAL_TEXTURE_MAP_NORMAL , KMATERIAL_TEXTURE_MAP_METALLIC , KMATERIAL_TEXTURE_MAP_ROUGHNESS ,
  KMATERIAL_TEXTURE_MAP_AO , KMATERIAL_TEXTURE_MAP_MRA , KMATERIAL_TEXTURE_MAP_EMISSIVE
}
 
enum  kmaterial_flag_bits {
  KMATERIAL_FLAG_HAS_TRANSPARENCY_BIT = 0x0001U , KMATERIAL_FLAG_DOUBLE_SIDED_BIT = 0x0002U , KMATERIAL_FLAG_RECIEVES_SHADOW_BIT = 0x0004U , KMATERIAL_FLAG_CASTS_SHADOW_BIT = 0x0008U ,
  KMATERIAL_FLAG_NORMAL_ENABLED_BIT = 0x0010U , KMATERIAL_FLAG_AO_ENABLED_BIT = 0x0020U , KMATERIAL_FLAG_EMISSIVE_ENABLED_BIT = 0x0040U , KMATERIAL_FLAG_MRA_ENABLED_BIT = 0x0080U ,
  KMATERIAL_FLAG_REFRACTION_ENABLED_BIT = 0x0100U , KMATERIAL_FLAG_USE_VERTEX_COLOUR_AS_BASE_COLOUR_BIT = 0x0200U , KMATERIAL_FLAG_MASKED_BIT = 0x0400U
}
 

Macro Definition Documentation

◆ INVALID_KTEXTURE

#define INVALID_KTEXTURE   INVALID_ID_U16

◆ KMATERIAL_INSTANCE_INVALID

#define KMATERIAL_INSTANCE_INVALID   INVALID_ID_U16

◆ KMATERIAL_INVALID

#define KMATERIAL_INVALID   INVALID_ID_U16

◆ KSHADER_INVALID

#define KSHADER_INVALID   INVALID_ID_U16

Typedef Documentation

◆ face_cull_mode

Determines face culling mode during rendering.

◆ kmaterial

typedef u16 kmaterial

◆ kmaterial_flag_bits

◆ kmaterial_flags

◆ kmaterial_instance

A material instance, which contains handles to both the base material as well as the instance itself. Every time an instance is "acquired", one of these is created, and the instance should be referenced using this going from that point.

◆ kmaterial_model

◆ kmaterial_sampler_config

◆ kmaterial_texture_input_config

◆ kmaterial_texture_map

◆ kmaterial_type

◆ kpixel_format

Represents the format of image (or texture) pixel data.

◆ krenderbuffer_render_data

◆ kshader

typedef u16 kshader

◆ ktexture

typedef u16 ktexture

Represents a texture to be used for rendering purposes, stored on the GPU (VRAM)

◆ ktexture_flag

◆ ktexture_flag_bits

Holds bit flags for textures..

◆ ktexture_type

Represents various types of textures.

◆ primitive_topology_type

Various topology type flag bit fields.

◆ primitive_topology_type_bits

A combination of topology bit flags.

◆ projection_matrix_type

◆ renderer_default_texture

◆ shader_attribute

Represents a single shader vertex attribute.

◆ shader_attribute_type

Available attribute types.

◆ shader_binding_config

◆ shader_binding_set_config

◆ shader_binding_type

◆ shader_flag_bits

Various shader flag bit fields.

◆ shader_flags

typedef u32 shader_flags

A combination of topology bit flags.

◆ shader_generic_sampler

◆ shader_pipeline_config

◆ shader_sampler_type

◆ shader_stage

typedef enum shader_stage shader_stage

Shader stages available in the system.

◆ shader_state

typedef enum shader_state shader_state

Represents the current state of a given shader.

◆ texture_channel

◆ texture_filter

Represents supported texture filtering modes.

◆ texture_repeat

Enumeration Type Documentation

◆ face_cull_mode

Determines face culling mode during rendering.

Enumerator
FACE_CULL_MODE_NONE 

No faces are culled.

FACE_CULL_MODE_FRONT 

Only front faces are culled.

FACE_CULL_MODE_BACK 

Only back faces are culled.

FACE_CULL_MODE_FRONT_AND_BACK 

Both front and back faces are culled.

◆ kmaterial_flag_bits

Enumerator
KMATERIAL_FLAG_HAS_TRANSPARENCY_BIT 
KMATERIAL_FLAG_DOUBLE_SIDED_BIT 
KMATERIAL_FLAG_RECIEVES_SHADOW_BIT 
KMATERIAL_FLAG_CASTS_SHADOW_BIT 
KMATERIAL_FLAG_NORMAL_ENABLED_BIT 
KMATERIAL_FLAG_AO_ENABLED_BIT 
KMATERIAL_FLAG_EMISSIVE_ENABLED_BIT 
KMATERIAL_FLAG_MRA_ENABLED_BIT 
KMATERIAL_FLAG_REFRACTION_ENABLED_BIT 
KMATERIAL_FLAG_USE_VERTEX_COLOUR_AS_BASE_COLOUR_BIT 
KMATERIAL_FLAG_MASKED_BIT 

◆ kmaterial_model

Enumerator
KMATERIAL_MODEL_UNLIT 
KMATERIAL_MODEL_PBR 
KMATERIAL_MODEL_PHONG 
KMATERIAL_MODEL_COUNT 
KMATERIAL_MODEL_CUSTOM 

◆ kmaterial_texture_map

Enumerator
KMATERIAL_TEXTURE_MAP_BASE_COLOUR 
KMATERIAL_TEXTURE_MAP_NORMAL 
KMATERIAL_TEXTURE_MAP_METALLIC 
KMATERIAL_TEXTURE_MAP_ROUGHNESS 
KMATERIAL_TEXTURE_MAP_AO 
KMATERIAL_TEXTURE_MAP_MRA 
KMATERIAL_TEXTURE_MAP_EMISSIVE 

◆ kmaterial_type

Enumerator
KMATERIAL_TYPE_UNKNOWN 
KMATERIAL_TYPE_STANDARD 
KMATERIAL_TYPE_WATER 
KMATERIAL_TYPE_BLENDED 
KMATERIAL_TYPE_COUNT 
KMATERIAL_TYPE_CUSTOM 

◆ kpixel_format

Represents the format of image (or texture) pixel data.

Enumerator
KPIXEL_FORMAT_UNKNOWN 
KPIXEL_FORMAT_RGBA8 
KPIXEL_FORMAT_RGB8 
KPIXEL_FORMAT_RG8 
KPIXEL_FORMAT_R8 
KPIXEL_FORMAT_RGBA16 
KPIXEL_FORMAT_RGB16 
KPIXEL_FORMAT_RG16 
KPIXEL_FORMAT_R16 
KPIXEL_FORMAT_RGBA32 
KPIXEL_FORMAT_RGB32 
KPIXEL_FORMAT_RG32 
KPIXEL_FORMAT_R32 
KPIXEL_FORMAT_D32 
KPIXEL_FORMAT_D24 
KPIXEL_FORMAT_S8 

◆ ktexture_flag

Enumerator
KTEXTURE_FLAG_HAS_TRANSPARENCY 

Indicates if the texture has transparency.

KTEXTURE_FLAG_IS_WRITEABLE 

Indicates if the texture can be written (rendered) to.

KTEXTURE_FLAG_IS_WRAPPED 

Indicates if the texture was created via wrapping vs traditional creation.

KTEXTURE_FLAG_DEPTH 

Indicates the texture is a depth texture.

KTEXTURE_FLAG_STENCIL 

Indicates the texture is a stencil texture.

KTEXTURE_FLAG_RENDERER_BUFFERING 

Indicates that this texture should account for renderer buffering (i.e. double/triple buffering)

◆ ktexture_type

Represents various types of textures.

Enumerator
KTEXTURE_TYPE_UNDEFINED 

Undefined texture type as the default, useful for catching default-zero scenarios.

KTEXTURE_TYPE_1D 

A one-dimensional texture.

KTEXTURE_TYPE_2D 

A standard two-dimensional texture.

KTEXTURE_TYPE_3D 

A three-dimensional texture.

KTEXTURE_TYPE_CUBE 

A cube texture, used for cubemaps.

KTEXTURE_TYPE_1D_ARRAY 

A 1d array texture.

KTEXTURE_TYPE_2D_ARRAY 

A 2d array texture.

KTEXTURE_TYPE_CUBE_ARRAY 

A cube array texture, used for arrays of cubemaps.

KTEXTURE_TYPE_COUNT 

◆ primitive_topology_type

Various topology type flag bit fields.

Enumerator
PRIMITIVE_TOPOLOGY_TYPE_NONE_BIT 

Topology type not defined. Not valid for shader creation.

PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE_LIST_BIT 

A list of triangles. The default if nothing is defined.

PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE_STRIP_BIT 
PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE_FAN_BIT 
PRIMITIVE_TOPOLOGY_TYPE_LINE_LIST_BIT 
PRIMITIVE_TOPOLOGY_TYPE_LINE_STRIP_BIT 
PRIMITIVE_TOPOLOGY_TYPE_POINT_LIST_BIT 
PRIMITIVE_TOPOLOGY_TYPE_MAX_BIT 

◆ projection_matrix_type

Enumerator
PROJECTION_MATRIX_TYPE_PERSPECTIVE 
PROJECTION_MATRIX_TYPE_ORTHOGRAPHIC 

An orthographic matrix that is zero-based on the top left.

PROJECTION_MATRIX_TYPE_ORTHOGRAPHIC_CENTERED 

An orthographic matrix that is centered around width/height instead of zero-based. Uses fov as a "zoom".

◆ renderer_default_texture

Enumerator
RENDERER_DEFAULT_TEXTURE_BASE_COLOUR 
RENDERER_DEFAULT_TEXTURE_ALBEDO 
RENDERER_DEFAULT_TEXTURE_DIFFUSE 
RENDERER_DEFAULT_TEXTURE_NORMAL 
RENDERER_DEFAULT_TEXTURE_METALLIC 
RENDERER_DEFAULT_TEXTURE_ROUGHNESS 
RENDERER_DEFAULT_TEXTURE_AMBIENT_OCCLUSION 
RENDERER_DEFAULT_TEXTURE_EMISSIVE 
RENDERER_DEFAULT_TEXTURE_DUDV 
RENDERER_DEFAULT_TEXTURE_COUNT 

◆ shader_attribute_type

Available attribute types.

Enumerator
SHADER_ATTRIB_TYPE_FLOAT32 
SHADER_ATTRIB_TYPE_FLOAT32_2 
SHADER_ATTRIB_TYPE_FLOAT32_3 
SHADER_ATTRIB_TYPE_FLOAT32_4 
SHADER_ATTRIB_TYPE_MATRIX_4 
SHADER_ATTRIB_TYPE_INT8 
SHADER_ATTRIB_TYPE_UINT8 
SHADER_ATTRIB_TYPE_INT16 
SHADER_ATTRIB_TYPE_UINT16 
SHADER_ATTRIB_TYPE_INT32 
SHADER_ATTRIB_TYPE_INT32_2 
SHADER_ATTRIB_TYPE_INT32_3 
SHADER_ATTRIB_TYPE_INT32_4 
SHADER_ATTRIB_TYPE_UINT32 
SHADER_ATTRIB_TYPE_UINT32_2 
SHADER_ATTRIB_TYPE_UINT32_3 
SHADER_ATTRIB_TYPE_UINT32_4 

◆ shader_binding_type

Enumerator
SHADER_BINDING_TYPE_UBO 
SHADER_BINDING_TYPE_SSBO 
SHADER_BINDING_TYPE_TEXTURE 
SHADER_BINDING_TYPE_SAMPLER 
SHADER_BINDING_TYPE_COUNT 

◆ shader_flag_bits

Various shader flag bit fields.

Enumerator
SHADER_FLAG_NONE_BIT 
SHADER_FLAG_DEPTH_TEST_BIT 
SHADER_FLAG_DEPTH_WRITE_BIT 
SHADER_FLAG_WIREFRAME_BIT 
SHADER_FLAG_STENCIL_TEST_BIT 
SHADER_FLAG_STENCIL_WRITE_BIT 
SHADER_FLAG_COLOUR_READ_BIT 
SHADER_FLAG_COLOUR_WRITE_BIT 

◆ shader_generic_sampler

Enumerator
SHADER_GENERIC_SAMPLER_LINEAR_REPEAT 
SHADER_GENERIC_SAMPLER_LINEAR_REPEAT_MIRRORED 
SHADER_GENERIC_SAMPLER_LINEAR_CLAMP 
SHADER_GENERIC_SAMPLER_LINEAR_CLAMP_BORDER 
SHADER_GENERIC_SAMPLER_NEAREST_REPEAT 
SHADER_GENERIC_SAMPLER_NEAREST_REPEAT_MIRRORED 
SHADER_GENERIC_SAMPLER_NEAREST_CLAMP 
SHADER_GENERIC_SAMPLER_NEAREST_CLAMP_BORDER 
SHADER_GENERIC_SAMPLER_LINEAR_REPEAT_NO_ANISOTROPY 
SHADER_GENERIC_SAMPLER_LINEAR_REPEAT_MIRRORED_NO_ANISOTROPY 
SHADER_GENERIC_SAMPLER_LINEAR_CLAMP_NO_ANISOTROPY 
SHADER_GENERIC_SAMPLER_LINEAR_CLAMP_BORDER_NO_ANISOTROPY 
SHADER_GENERIC_SAMPLER_NEAREST_REPEAT_NO_ANISOTROPY 
SHADER_GENERIC_SAMPLER_NEAREST_REPEAT_MIRRORED_NO_ANISOTROPY 
SHADER_GENERIC_SAMPLER_NEAREST_CLAMP_NO_ANISOTROPY 
SHADER_GENERIC_SAMPLER_NEAREST_CLAMP_BORDER_NO_ANISOTROPY 
SHADER_GENERIC_SAMPLER_COUNT 

◆ shader_sampler_type

Enumerator
SHADER_SAMPLER_TYPE_1D 
SHADER_SAMPLER_TYPE_2D 
SHADER_SAMPLER_TYPE_3D 
SHADER_SAMPLER_TYPE_CUBE 
SHADER_SAMPLER_TYPE_1D_ARRAY 
SHADER_SAMPLER_TYPE_2D_ARRAY 
SHADER_SAMPLER_TYPE_CUBE_ARRAY 

◆ shader_stage

Shader stages available in the system.

Enumerator
SHADER_STAGE_VERTEX 
SHADER_STAGE_GEOMETRY 
SHADER_STAGE_FRAGMENT 
SHADER_STAGE_COMPUTE 

◆ shader_state

Represents the current state of a given shader.

Enumerator
SHADER_STATE_FREE 

The shader is "free", and is thus unusable.

SHADER_STATE_NOT_CREATED 

The shader has not yet gone through the creation process, and is unusable.

SHADER_STATE_UNINITIALIZED 

The shader has gone through the creation process, but not initialization. It is unusable.

SHADER_STATE_INITIALIZED 

The shader is created and initialized, and is ready for use.

◆ texture_channel

Enumerator
TEXTURE_CHANNEL_R 
TEXTURE_CHANNEL_G 
TEXTURE_CHANNEL_B 
TEXTURE_CHANNEL_A 

◆ texture_filter

Represents supported texture filtering modes.

Enumerator
TEXTURE_FILTER_MODE_NEAREST 

Nearest-neighbor filtering.

TEXTURE_FILTER_MODE_LINEAR 

Linear (i.e. bilinear) filtering.

◆ texture_repeat

Enumerator
TEXTURE_REPEAT_REPEAT 
TEXTURE_REPEAT_MIRRORED_REPEAT 
TEXTURE_REPEAT_CLAMP_TO_EDGE 
TEXTURE_REPEAT_CLAMP_TO_BORDER 
TEXTURE_REPEAT_COUNT