|
| enum | RendererType { RENDERER_DUMMY
, RENDERER_OPENGL_3x
, MAX_RENDERER_TYPE
} |
| |
| enum | EffectType {
EFFECT_DEFAULT
, EFFECT_VTXCOLOR
, EFFECT_UI
, EFFECT_STARFIELD
,
EFFECT_PLANETRING
, EFFECT_GEOSPHERE_TERRAIN
, EFFECT_GEOSPHERE_TERRAIN_WITH_LAVA
, EFFECT_GEOSPHERE_TERRAIN_WITH_WATER
,
EFFECT_GEOSPHERE_SKY
, EFFECT_GEOSPHERE_STAR
, EFFECT_GASSPHERE_TERRAIN
, EFFECT_FRESNEL_SPHERE
,
EFFECT_SHIELD
, EFFECT_SKYBOX
, EFFECT_SPHEREIMPOSTOR
, EFFECT_GEN_GASGIANT_TEXTURE
,
EFFECT_BILLBOARD_ATLAS
, EFFECT_BILLBOARD
} |
| |
| enum | MaterialQuality { HAS_ATMOSPHERE = 1 << 0
, HAS_ECLIPSES = 1 << 1
, HAS_HEAT_GRADIENT = 1 << 2
, HAS_OCTAVES = 1 << 15
} |
| |
| enum | TextureFormat {
TEXTURE_NONE
, TEXTURE_RGBA_8888
, TEXTURE_RGB_888
, TEXTURE_LUMINANCE_ALPHA_88
,
TEXTURE_INTENSITY_8
, TEXTURE_DXT1
, TEXTURE_DXT5
, TEXTURE_DEPTH
} |
| |
| enum | TextureSampleMode { LINEAR_CLAMP
, NEAREST_CLAMP
, LINEAR_REPEAT
, NEAREST_REPEAT
} |
| |
| enum | TextureType { TEXTURE_2D
, TEXTURE_CUBE_MAP
, TEXTURE_2D_ARRAY
} |
| |
| enum | VertexAttrib : uint8_t {
ATTRIB_NONE = 0
, ATTRIB_POSITION = (1u << 0)
, ATTRIB_NORMAL = (1u << 1)
, ATTRIB_DIFFUSE = (1u << 2)
,
ATTRIB_UV0 = (1u << 3)
, ATTRIB_TANGENT = (1u << 5)
, ATTRIB_POSITION2D = (1u << 7)
} |
| |
| enum | VertexAttribFormat : uint8_t {
ATTRIB_FORMAT_NONE = 0
, ATTRIB_FORMAT_FLOAT2
, ATTRIB_FORMAT_FLOAT3
, ATTRIB_FORMAT_FLOAT4
,
ATTRIB_FORMAT_UBYTE4
} |
| |
| enum | ConstantDataFormat : uint8_t {
DATA_FORMAT_NONE = 0
, DATA_FORMAT_INT
, DATA_FORMAT_FLOAT
, DATA_FORMAT_FLOAT3
,
DATA_FORMAT_FLOAT4
, DATA_FORMAT_MAT3
, DATA_FORMAT_MAT4
} |
| |
| enum | BufferUsage { BUFFER_USAGE_STATIC
, BUFFER_USAGE_DYNAMIC
} |
| |
| enum | BufferMapMode { BUFFER_MAP_NONE
, BUFFER_MAP_WRITE
, BUFFER_MAP_READ
} |
| |
| enum | IndexBufferSize { INDEX_BUFFER_16BIT
, INDEX_BUFFER_32BIT
} |
| |
| enum | PrimitiveType {
POINTS = 0
, LINE_SINGLE
, LINE_LOOP
, LINE_STRIP
,
TRIANGLES
, TRIANGLE_STRIP
, TRIANGLE_FAN
} |
| |
| enum | BlendMode : uint32_t {
BLEND_SOLID
, BLEND_ADDITIVE
, BLEND_ALPHA
, BLEND_ALPHA_ONE
,
BLEND_ALPHA_PREMULT
, BLEND_SET_ALPHA
, BLEND_DEST_ALPHA
} |
| |
| enum | FaceCullMode : uint32_t { CULL_BACK
, CULL_FRONT
, CULL_NONE
} |
| |
A Vertex Buffer is created by filling out a description struct with desired vertex attributes and calling renderer->CreateVertexBuffer. Can be used in combination with IndexBuffer, for optimal rendering of complex geometry.
Call Map to write/read from the buffer, and Unmap to commit the changes. Buffers come in two usage flavors, static and dynamic.
- Use a Static buffer when the geometry never changes.
- Use a Dynamic buffer if you'll be uploading data regularly.
Strictly avoid mapping a buffer for reading unless you have no choice, as it may be extremely slow, especially with static buffers.
Expansion possibilities: range-based Map