Saga3D API Documentation  1.0-RC4
saga::video Namespace Reference

The video namespace contains classes for accessing the video driver. All 2d and 3d rendering is done here. More...

Classes

class  IImageLoader
 Class which is able to create a image from a file. More...
 
class  IImageWriter
 Interface for writing software image data. More...
 
class  ITexture
 Interface of a Video Driver dependent Texture. More...
 
class  IVideoDriver
 
struct  SBlendAttachmentState
 
struct  SBlendState
 
class  SColor
 Class representing a 32 bit ARGB color. More...
 
struct  SColorAttachmentInitialState
 
class  SColorf
 Class representing a color with four floats. More...
 
class  SColorHSL
 Class representing a color in HSL format. More...
 
struct  SDepthAttachmentInitialState
 
struct  SDepthStencilState
 
struct  SDrawCommand
 
struct  SGPUResource
 
struct  SIndexedIndirectBuffer
 
struct  SIndexedIndirectCommand
 
struct  SIndirectBuffer
 
struct  SIndirectCommand
 
struct  SPipeline
 
struct  SPipelineLayout
 
struct  SPushConstant
 
struct  SRasterizerState
 
struct  SRenderPass
 
struct  SRenderPassState
 
struct  SShader
 
struct  SShaderBuffer
 
struct  SShaderUniform
 
struct  SStencilAttachmentInitialState
 
struct  STexture
 
struct  STextureContent
 
struct  SVertexAttribute
 

Typedefs

using IndirectBufferHandle = SGPUResource::HandleType
 
using IndexedIndirectBufferHandle = SGPUResource::HandleType
 
using DrawCommandList = std::vector< SDrawCommand >
 
using PipelineHandle = SGPUResource::HandleType
 
using PushConstantHandle = SGPUResource::HandleType
 
using RenderPassHandle = SGPUResource::HandleType
 
using ShaderHandle = SGPUResource::HandleType
 
using ShaderBufferHandle = SGPUResource::HandleType
 
using ShaderUniformHandle = SGPUResource::HandleType
 
using TextureHandle = SGPUResource::HandleType
 

Enumerations

enum  E_ATTRIBUTE_FORMAT {
  E_ATTRIBUTE_FORMAT::FLOAT, E_ATTRIBUTE_FORMAT::FLOAT2, E_ATTRIBUTE_FORMAT::FLOAT3, E_ATTRIBUTE_FORMAT::FLOAT4,
  E_ATTRIBUTE_FORMAT::BYTE4, E_ATTRIBUTE_FORMAT::BYTE4N, E_ATTRIBUTE_FORMAT::UBYTE4, E_ATTRIBUTE_FORMAT::UBYTE4N,
  E_ATTRIBUTE_FORMAT::SHORT2, E_ATTRIBUTE_FORMAT::SHORT2N, E_ATTRIBUTE_FORMAT::SHORT4, E_ATTRIBUTE_FORMAT::SHORT4N,
  E_ATTRIBUTE_FORMAT::UINT10_N2
}
 
enum  E_ATTRIBUTE_TYPE {
  E_ATTRIBUTE_TYPE::INVALID, E_ATTRIBUTE_TYPE::POSITION, E_ATTRIBUTE_TYPE::NORMAL, E_ATTRIBUTE_TYPE::COLOR,
  E_ATTRIBUTE_TYPE::TEXTURE_COORDINATE, E_ATTRIBUTE_TYPE::TANGENT, E_ATTRIBUTE_TYPE::BITANGENT, E_ATTRIBUTE_TYPE::BONE_WEIGHT,
  E_ATTRIBUTE_TYPE::BONE_ID, E_ATTRIBUTE_TYPE::CUSTOM
}
 
enum  E_BLEND_FACTOR {
  E_BLEND_FACTOR::ZERO, E_BLEND_FACTOR::ONE, E_BLEND_FACTOR::SRC_COLOR, E_BLEND_FACTOR::ONE_MINUS_SRC_COLOR,
  E_BLEND_FACTOR::DST_COLOR, E_BLEND_FACTOR::ONE_MINUS_DST_COLOR, E_BLEND_FACTOR::SRC_ALPHA, E_BLEND_FACTOR::ONE_MINUS_SRC_ALPHA,
  E_BLEND_FACTOR::DST_ALPHA, E_BLEND_FACTOR::ONE_MINUS_DST_ALPHA, E_BLEND_FACTOR::CONSTANT_COLOR, E_BLEND_FACTOR::ONE_MINUS_CONSTANT_COLOR,
  E_BLEND_FACTOR::CONSTANT_ALPHA, E_BLEND_FACTOR::ONE_MINUS_CONSTANT_ALPHA, E_BLEND_FACTOR::SRC_ALPHA_SATURATE, E_BLEND_FACTOR::SRC1_COLOR,
  E_BLEND_FACTOR::ONE_MINUS_SRC1_COLOR, E_BLEND_FACTOR::SRC1_ALPHA, E_BLEND_FACTOR::ONE_MINUS_SRC1_ALPHA
}
 
enum  E_BLEND_OP {
  E_BLEND_OP::ADD, E_BLEND_OP::SUBTRACT, E_BLEND_OP::REVERSE_SUBTRACT, E_BLEND_OP::MIN,
  E_BLEND_OP::MAX
}
 
enum  E_COMPARE_FUNC {
  NEVER, LESS_EQUAL, EQUAL, LESS,
  NOT_EQUAL, GREATER_EQUAL, GREATER, ALWAYS
}
 Comparison function, e.g. for depth buffer test. More...
 
enum  E_CULL_MODE { NONE, BACK_FACE, FRONT_FACE, FRONT_BACK_FACE }
 
enum  E_DRIVER_FEATURE {
  E_DRIVER_FEATURE::ROBUST_BUFFER_ACCESS, E_DRIVER_FEATURE::FULL_DRAW_INDEX_UINT32, E_DRIVER_FEATURE::IMAGE_CUBE_ARRAY, E_DRIVER_FEATURE::INDEPENDENT_BLEND,
  E_DRIVER_FEATURE::GEOMETRY_SHADER, E_DRIVER_FEATURE::TESSELLATION_SHADER, E_DRIVER_FEATURE::SAMPLE_RATE_SHADING, E_DRIVER_FEATURE::DUAL_SRC_BLEND,
  E_DRIVER_FEATURE::LOGI_COP, E_DRIVER_FEATURE::MULTIDRAW_INDIRECT, E_DRIVER_FEATURE::DRAW_INDIRECT_FIRST_INSTANCE, E_DRIVER_FEATURE::DEPTH_CLAMP,
  E_DRIVER_FEATURE::DEPTH_BIAS_CLAMP, E_DRIVER_FEATURE::FILL_MODE_NON_SOLID, E_DRIVER_FEATURE::DEPTH_BOUNDS, E_DRIVER_FEATURE::WIDE_LINES,
  E_DRIVER_FEATURE::LARGE_POINTS, E_DRIVER_FEATURE::ALPHA_TO_ONE, E_DRIVER_FEATURE::MULTI_VIEWPORT, E_DRIVER_FEATURE::SAMPLER_ANISOTROPY,
  E_DRIVER_FEATURE::TEXTURE_COMPRESSION_ETC2, E_DRIVER_FEATURE::TEXTURE_COMPRESSION_ASTC_LDR, E_DRIVER_FEATURE::TEXTURE_COMPRESSION_BC, E_DRIVER_FEATURE::OCCLUSION_QUERY_PRECISE,
  E_DRIVER_FEATURE::PIPELINE_STATISTICS_QUERY, E_DRIVER_FEATURE::VERTEX_PIPELINE_STORES_AND_ATOMICS, E_DRIVER_FEATURE::FRAGMENT_STORES_AND_ATOMICS, E_DRIVER_FEATURE::SHADER_TESSELLATION_AND_GEOMETRY_POINT_SIZE,
  E_DRIVER_FEATURE::SHADER_IMAGE_GATHER_EXTENDED, E_DRIVER_FEATURE::SHADER_STORAGE_IMAGE_EXTENDED_FORMATS, E_DRIVER_FEATURE::SHADER_STORAGE_IMAGE_MULTISAMPLE, E_DRIVER_FEATURE::SHADER_STORAGE_IMAGE_READ_WITHOUT_FORMAT,
  E_DRIVER_FEATURE::SHADER_STORAGE_IMAGE_WRITEW_ITHOUT_FORMAT, E_DRIVER_FEATURE::SHADER_UNIFORM_BUFFER_ARRAY_DYNAMIC_INDEXING, E_DRIVER_FEATURE::SHADER_SAMPLED_IMAGE_ARRAY_DYNAMIC_INDEXING, E_DRIVER_FEATURE::SHADER_STORAGE_BUFFER_ARRAY_DYNAMIC_INDEXING,
  E_DRIVER_FEATURE::SHADER_STORAGE_IMAGE_ARRAY_DYNAMIC_INDEXING, E_DRIVER_FEATURE::SHADER_CLIP_DISTANCE, E_DRIVER_FEATURE::SHADER_CULL_DISTANCE, E_DRIVER_FEATURE::SHADER_FLOAT64,
  E_DRIVER_FEATURE::SHADER_INT64, E_DRIVER_FEATURE::SHADER_INT16, E_DRIVER_FEATURE::SHADER_RESOURCE_RESIDENCY, E_DRIVER_FEATURE::SHADER_RESOURCE_MIN_LOD,
  E_DRIVER_FEATURE::SPARSE_BINDING, E_DRIVER_FEATURE::SPARSE_RESIDENCY_BUFFER, E_DRIVER_FEATURE::SPARSE_RESIDENCY_IMAGE2D, E_DRIVER_FEATURE::SPARSE_RESIDENCY_IMAGE3D,
  E_DRIVER_FEATURE::SPARSE_RESIDENCY_2SAMPLES, E_DRIVER_FEATURE::SPARSE_RESIDENCY_4SAMPLES, E_DRIVER_FEATURE::SPARSE_RESIDENCY_8SAMPLES, E_DRIVER_FEATURE::SPARSE_RESIDENCY_16SAMPLES,
  E_DRIVER_FEATURE::SPARSE_RESIDENCY_ALIASED, E_DRIVER_FEATURE::VARIABLE_MULTI_SAMPLE_RATE, E_DRIVER_FEATURE::INHERITED_QUERIES
}
 enumeration for querying features of the video driver. More...
 
enum  E_DRIVER_TYPE { E_DRIVER_TYPE::VULKAN, E_DRIVER_TYPE::VULKAN_HEADLESS, E_DRIVER_TYPE::VULKAN_OVERLAY, E_DRIVER_TYPE::WEB_GPU }
 An enum class for all types of drivers Saga3D supports. More...
 
enum  E_FILTER_TYPE { E_FILTER_TYPE::NEAREST, E_FILTER_TYPE::LINEAR, E_FILTER_TYPE::CUBIC }
 
enum  E_FRONT_FACE_MODE { CLOCKWISE, COUNTER_CLOCKWISE }
 
enum  E_MIPMAP_MODE { E_MIPMAP_MODE::NEAREST, E_MIPMAP_MODE::LINEAR, E_MIPMAP_MODE::CUBIC }
 
enum  E_PIXEL_FORMAT {
  E_PIXEL_FORMAT::INVALID, E_PIXEL_FORMAT::BGRA8, E_PIXEL_FORMAT::RGBA8, E_PIXEL_FORMAT::RGB8,
  E_PIXEL_FORMAT::RGBA4, E_PIXEL_FORMAT::R5G6B5, E_PIXEL_FORMAT::A1R5G5B5, E_PIXEL_FORMAT::A2R10G10B10,
  E_PIXEL_FORMAT::RGBA32F, E_PIXEL_FORMAT::RGB16F, E_PIXEL_FORMAT::RGBA16F, E_PIXEL_FORMAT::RGBA16,
  E_PIXEL_FORMAT::R8_UNORM, E_PIXEL_FORMAT::R16F, E_PIXEL_FORMAT::R16G16_UINT, E_PIXEL_FORMAT::R32_UINT,
  E_PIXEL_FORMAT::R32_SINT, E_PIXEL_FORMAT::R32F, E_PIXEL_FORMAT::R32G32_UINT, E_PIXEL_FORMAT::R32G32_SINT,
  E_PIXEL_FORMAT::L8, E_PIXEL_FORMAT::DXT1, E_PIXEL_FORMAT::DXT3, E_PIXEL_FORMAT::DXT5,
  E_PIXEL_FORMAT::STENCIL8, E_PIXEL_FORMAT::DEPTH_16, E_PIXEL_FORMAT::DEPTH_24, E_PIXEL_FORMAT::DEPTH_32,
  E_PIXEL_FORMAT::DEPTH_16_STENCIL8, E_PIXEL_FORMAT::DEPTH_24_STENCIL8, E_PIXEL_FORMAT::DEPTH_32_STENCIL8, E_PIXEL_FORMAT::PVRTC2_RGB,
  E_PIXEL_FORMAT::PVRTC4_RGB, E_PIXEL_FORMAT::PVRTC2_RGBA, E_PIXEL_FORMAT::PVRTC4_RGBA, E_PIXEL_FORMAT::ETC2_RGB8,
  E_PIXEL_FORMAT::ETC2_SRGB8, E_PIXEL_FORMAT::UNKNOWN
}
 Enumeration for all primitive types there are. More...
 
enum  E_SAMPLER_ADDRESS_MODE {
  E_SAMPLER_ADDRESS_MODE::REPEAT, E_SAMPLER_ADDRESS_MODE::MIRRORED_REPEAT, E_SAMPLER_ADDRESS_MODE::CLAMP_TO_EDGE, E_SAMPLER_ADDRESS_MODE::CLAMP_TO_BORDER,
  E_SAMPLER_ADDRESS_MODE::MIRROR_CLAMP_TO_EDGE
}
 
enum  E_SHADER_TYPE {
  E_SHADER_TYPE::UNKNOWN, E_SHADER_TYPE::VERTEX, E_SHADER_TYPE::GEOMETRY, E_SHADER_TYPE::FRAGMENT,
  E_SHADER_TYPE::COMPUTE
}
 
enum  E_TEXTURE_TYPE { E_TEXTURE_TYPE::TEXTURE_2D, E_TEXTURE_TYPE::CUBE_MAP, E_TEXTURE_TYPE::TEXTURE_2D_ARRAY }
 Enumeration for all primitive types there are. More...
 
enum  E_TRANSFORM_STATE {
  E_TRANSFORM_STATE::VIEW = 0, E_TRANSFORM_STATE::PROJECTION, E_TRANSFORM_STATE::WORLD, E_TRANSFORM_STATE::TEXTURE_0,
  E_TRANSFORM_STATE::TEXTURE_1, E_TRANSFORM_STATE::TEXTURE_2, E_TRANSFORM_STATE::TEXTURE_3
}
 enumeration for geometry transformation states More...
 
enum  E_RENDER_TARGET_TYPE {
  E_RENDER_TARGET_TYPE::FRAME_BUFFER = 0, E_RENDER_TARGET_TYPE::RENDER_TEXTURE, E_RENDER_TARGET_TYPE::MULTI_RENDER_TEXTURES, E_RENDER_TARGET_TYPE::STEREO_LEFT_BUFFER,
  E_RENDER_TARGET_TYPE::STEREO_RIGHT_BUFFER, E_RENDER_TARGET_TYPE::STEREO_BOTH_BUFFERS, E_RENDER_TARGET_TYPE::AUX_BUFFER0, E_RENDER_TARGET_TYPE::AUX_BUFFER1,
  E_RENDER_TARGET_TYPE::AUX_BUFFER2, E_RENDER_TARGET_TYPE::AUX_BUFFER3, E_RENDER_TARGET_TYPE::AUX_BUFFER4
}
 Special render targets, which usually map to dedicated hardware. More...
 
enum  E_FOG_TYPE { E_FOG_TYPE::EXP, E_FOG_TYPE::LINEAR, E_FOG_TYPE::EXP2 }
 enum class for the types of fog distributions to choose from More...
 
enum  E_COLOR_COMPONENT {
  R = 1 << 0, G = 1 << 1, B = 1 << 2, A = 1 << 3,
  RGB = E_COLOR_COMPONENT::R | E_COLOR_COMPONENT::G | E_COLOR_COMPONENT::B, RGBA = E_COLOR_COMPONENT::RGB | E_COLOR_COMPONENT::A
}
 
enum  E_ATTACHMENT_STATE { CLEAR, LOAD }
 

Functions

uint32_t GetAttributeSize (const E_ATTRIBUTE_FORMAT format)
 
uint32_t GetAttributeComponentSize (const E_ATTRIBUTE_FORMAT format)
 
std::uint16_t RGBA16 (std::uint32_t r, std::uint32_t g, std::uint32_t b, std::uint32_t a=0xFF)
 Creates a 16 bit A1R5G5B5 color. More...
 
std::uint16_t RGB16 (std::uint32_t r, std::uint32_t g, std::uint32_t b)
 Creates a 16 bit A1R5G5B5 color. More...
 
std::uint16_t RGB16from16 (std::uint16_t r, std::uint16_t g, std::uint16_t b)
 Creates a 16bit A1R5G5B5 color, based on 16bit input values. More...
 
std::uint16_t X8RGB8toA1R5G5B5 (std::uint32_t color)
 Converts a 32bit (X8RGB8) color to a 16bit A1R5G5B5 color. More...
 
std::uint16_t A8RGB8toA1R5G5B5 (std::uint32_t color)
 Converts a 32bit (A8RGB8) color to a 16bit A1R5G5B5 color. More...
 
std::uint16_t A8RGB8toR5G6B5 (std::uint32_t color)
 Converts a 32bit (A8RGB8) color to a 16bit R5G6B5 color. More...
 
std::uint32_t A1R5G5B5toA8RGB8 (std::uint16_t color)
 Convert A8RGB8 Color from A1R5G5B5 color. More...
 
std::uint32_t R5G6B5toA8RGB8 (std::uint16_t color)
 Returns A8RGB8 Color from R5G6B5 color. More...
 
std::uint16_t R5G6B5toA1R5G5B5 (std::uint16_t color)
 Returns A1R5G5B5 Color from R5G6B5 color. More...
 
std::uint16_t A1R5G5B5toR5G6B5 (std::uint16_t color)
 Returns R5G6B5 Color from A1R5G5B5 color. More...
 
std::uint32_t getAlpha (std::uint16_t color)
 Returns the alpha component from A1R5G5B5 color. More...
 
std::uint32_t getRed (std::uint16_t color)
 Returns the red component from A1R5G5B5 color. More...
 
std::uint32_t getGreen (std::uint16_t color)
 Returns the green component from A1R5G5B5 color. More...
 
std::uint32_t getBlue (std::uint16_t color)
 Returns the blue component from A1R5G5B5 color. More...
 
std::int32_t getAverage (std::int16_t color)
 Returns the average from a 16 bit A1R5G5B5 color. More...
 

Variables

const char *const DRIVER_TYPE_NAMES []
 
const char *const DRIVER_TYPE_NAMES_SHORT []
 
constexpr auto MAX_MIPMAPS = 16
 
constexpr auto MAX_IMAGE_LAYERS = 16
 
constexpr auto MAX_NODE_TEXTURES = 16
 
constexpr auto MAX_COLOR_ATTACHMENTS = 4
 
constexpr auto MAX_VERTEX_BUFFERS = 4
 
constexpr auto MAX_VERTEX_ATTRIBUTES = 4
 
const char *const ColorFormatNames [saga::core::enumToPOD(E_PIXEL_FORMAT::UNKNOWN)+2]
 An enum class for the color format of textures used by the Irrlicht Engine. More...
 
constexpr SGPUResource::HandleType NULL_GPU_RESOURCE_HANDLE = 0
 

Detailed Description

The video namespace contains classes for accessing the video driver. All 2d and 3d rendering is done here.

Typedef Documentation

◆ DrawCommandList

using saga::video::DrawCommandList = typedef std::vector<SDrawCommand>

Definition at line 40 of file SIndirectCommand.h.

◆ IndexedIndirectBufferHandle

◆ IndirectBufferHandle

◆ PipelineHandle

Definition at line 27 of file SPipeline.h.

◆ PushConstantHandle

Definition at line 17 of file SPushConstant.h.

◆ RenderPassHandle

Definition at line 27 of file SRenderPass.h.

◆ ShaderBufferHandle

Definition at line 23 of file SShaderBuffer.h.

◆ ShaderHandle

Definition at line 22 of file SShader.h.

◆ ShaderUniformHandle

◆ TextureHandle

Definition at line 52 of file STexture.h.

Enumeration Type Documentation

◆ E_ATTACHMENT_STATE

Enumerator
CLEAR 
LOAD 

Definition at line 13 of file SRenderPassState.h.

◆ E_ATTRIBUTE_FORMAT

Enumerator
FLOAT 
FLOAT2 
FLOAT3 
FLOAT4 
BYTE4 
BYTE4N 
UBYTE4 
UBYTE4N 
SHORT2 
SHORT2N 
SHORT4 
SHORT4N 
UINT10_N2 

Definition at line 10 of file EAttributeFormats.h.

◆ E_ATTRIBUTE_TYPE

Enumerator
INVALID 
POSITION 
NORMAL 
COLOR 
TEXTURE_COORDINATE 
TANGENT 
BITANGENT 
BONE_WEIGHT 
BONE_ID 
CUSTOM 

Definition at line 9 of file EAttributeTypes.h.

◆ E_BLEND_FACTOR

Enumerator
ZERO 
ONE 
SRC_COLOR 
ONE_MINUS_SRC_COLOR 
DST_COLOR 
ONE_MINUS_DST_COLOR 
SRC_ALPHA 
ONE_MINUS_SRC_ALPHA 
DST_ALPHA 
ONE_MINUS_DST_ALPHA 
CONSTANT_COLOR 
ONE_MINUS_CONSTANT_COLOR 
CONSTANT_ALPHA 
ONE_MINUS_CONSTANT_ALPHA 
SRC_ALPHA_SATURATE 
SRC1_COLOR 
ONE_MINUS_SRC1_COLOR 
SRC1_ALPHA 
ONE_MINUS_SRC1_ALPHA 

Definition at line 9 of file EBlendFactor.h.

◆ E_BLEND_OP

Enumerator
ADD 
SUBTRACT 
REVERSE_SUBTRACT 
MIN 
MAX 

Definition at line 9 of file EBlendOp.h.

◆ E_COLOR_COMPONENT

Enumerator
RGB 
RGBA 

Definition at line 14 of file SBlendState.h.

◆ E_COMPARE_FUNC

Comparison function, e.g. for depth buffer test.

Enumerator
NEVER 

Test never succeeds, this equals disable.

LESS_EQUAL 

<= test, default for e.g. depth test

EQUAL 

Exact equality.

LESS 

exclusive less comparison, i.e. <

NOT_EQUAL 

Succeeds almost always, except for exact equality.

GREATER_EQUAL 

>= test

GREATER 

inverse of <=

ALWAYS 

test succeeds always

Definition at line 10 of file ECompareFunc.h.

◆ E_CULL_MODE

Enumerator
NONE 
BACK_FACE 
FRONT_FACE 
FRONT_BACK_FACE 

Definition at line 9 of file ECullMode.h.

◆ E_DRIVER_FEATURE

enumeration for querying features of the video driver.

Enumerator
ROBUST_BUFFER_ACCESS 
FULL_DRAW_INDEX_UINT32 
IMAGE_CUBE_ARRAY 
INDEPENDENT_BLEND 
GEOMETRY_SHADER 
TESSELLATION_SHADER 
SAMPLE_RATE_SHADING 
DUAL_SRC_BLEND 
LOGI_COP 
MULTIDRAW_INDIRECT 
DRAW_INDIRECT_FIRST_INSTANCE 
DEPTH_CLAMP 
DEPTH_BIAS_CLAMP 
FILL_MODE_NON_SOLID 
DEPTH_BOUNDS 
WIDE_LINES 
LARGE_POINTS 
ALPHA_TO_ONE 
MULTI_VIEWPORT 
SAMPLER_ANISOTROPY 
TEXTURE_COMPRESSION_ETC2 
TEXTURE_COMPRESSION_ASTC_LDR 
TEXTURE_COMPRESSION_BC 
OCCLUSION_QUERY_PRECISE 
PIPELINE_STATISTICS_QUERY 
VERTEX_PIPELINE_STORES_AND_ATOMICS 
FRAGMENT_STORES_AND_ATOMICS 
SHADER_TESSELLATION_AND_GEOMETRY_POINT_SIZE 
SHADER_IMAGE_GATHER_EXTENDED 
SHADER_STORAGE_IMAGE_EXTENDED_FORMATS 
SHADER_STORAGE_IMAGE_MULTISAMPLE 
SHADER_STORAGE_IMAGE_READ_WITHOUT_FORMAT 
SHADER_STORAGE_IMAGE_WRITEW_ITHOUT_FORMAT 
SHADER_UNIFORM_BUFFER_ARRAY_DYNAMIC_INDEXING 
SHADER_SAMPLED_IMAGE_ARRAY_DYNAMIC_INDEXING 
SHADER_STORAGE_BUFFER_ARRAY_DYNAMIC_INDEXING 
SHADER_STORAGE_IMAGE_ARRAY_DYNAMIC_INDEXING 
SHADER_CLIP_DISTANCE 
SHADER_CULL_DISTANCE 
SHADER_FLOAT64 
SHADER_INT64 
SHADER_INT16 
SHADER_RESOURCE_RESIDENCY 
SHADER_RESOURCE_MIN_LOD 
SPARSE_BINDING 
SPARSE_RESIDENCY_BUFFER 
SPARSE_RESIDENCY_IMAGE2D 
SPARSE_RESIDENCY_IMAGE3D 
SPARSE_RESIDENCY_2SAMPLES 
SPARSE_RESIDENCY_4SAMPLES 
SPARSE_RESIDENCY_8SAMPLES 
SPARSE_RESIDENCY_16SAMPLES 
SPARSE_RESIDENCY_ALIASED 
VARIABLE_MULTI_SAMPLE_RATE 
INHERITED_QUERIES 

Definition at line 10 of file EDriverFeatures.h.

◆ E_DRIVER_TYPE

An enum class for all types of drivers Saga3D supports.

Enumerator
VULKAN 

Vulkan driver, available on most desktop platforms.

Performs hardware accelerated rendering of 3D and 2D.

VULKAN_HEADLESS 

Vulkan headless driver, useful for applications to run graphics tasks without creating application window.

This driver is able to render to texture or compute, but will not presenting anything, can be used in an environment where windowing system is not available, i.e.: cloud server.

VULKAN_OVERLAY 

Vulkan driver, similar to E_DRIVER_TYPE::VULKAN but render and present to a window.

Use this when you want to overlay graphics on other application. Notes for iOS (and other platforms that can display Vulkan texture directly): use VULKAN_HEADLESS and send your texture handle instead.

WEB_GPU 

WebGPU driver for rendering on Website.

Definition at line 9 of file EDriverTypes.h.

◆ E_FILTER_TYPE

Enumerator
NEAREST 
LINEAR 
CUBIC 

Definition at line 9 of file EFilterTypes.h.

◆ E_FOG_TYPE

enum class for the types of fog distributions to choose from

Enumerator
EXP 
LINEAR 
EXP2 

Definition at line 59 of file IVideoDriver.h.

◆ E_FRONT_FACE_MODE

Enumerator
CLOCKWISE 
COUNTER_CLOCKWISE 

Definition at line 9 of file EFrontFaceMode.h.

◆ E_MIPMAP_MODE

Enumerator
NEAREST 
LINEAR 
CUBIC 

Definition at line 9 of file EMipMapModes.h.

◆ E_PIXEL_FORMAT

Enumeration for all primitive types there are.

Enumerator
INVALID 
BGRA8 
RGBA8 

Vulkan swapchain format.

RGB8 
RGBA4 
R5G6B5 
A1R5G5B5 
A2R10G10B10 
RGBA32F 
RGB16F 
RGBA16F 
RGBA16 
R8_UNORM 
R16F 
R16G16_UINT 
R32_UINT 
R32_SINT 
R32F 
R32G32_UINT 
R32G32_SINT 
L8 
DXT1 
DXT3 
DXT5 
STENCIL8 
DEPTH_16 
DEPTH_24 
DEPTH_32 
DEPTH_16_STENCIL8 
DEPTH_24_STENCIL8 
DEPTH_32_STENCIL8 
PVRTC2_RGB 
PVRTC4_RGB 
PVRTC2_RGBA 
PVRTC4_RGBA 
ETC2_RGB8 
ETC2_SRGB8 
UNKNOWN 

Definition at line 10 of file EPixelFormat.h.

◆ E_RENDER_TARGET_TYPE

Special render targets, which usually map to dedicated hardware.

These render targets (besides 0 and 1) need not be supported by gfx cards

Enumerator
FRAME_BUFFER 

Render target is the main color frame buffer.

RENDER_TEXTURE 

Render target is a render texture.

MULTI_RENDER_TEXTURES 

Multi-Render target textures.

STEREO_LEFT_BUFFER 

Render target is the main color frame buffer.

STEREO_RIGHT_BUFFER 

Render target is the right color buffer (left is the main buffer)

STEREO_BOTH_BUFFERS 

Render to both stereo buffers at once.

AUX_BUFFER0 

Auxiliary buffer 0.

AUX_BUFFER1 

Auxiliary buffer 1.

AUX_BUFFER2 

Auxiliary buffer 2.

AUX_BUFFER3 

Auxiliary buffer 3.

AUX_BUFFER4 

Auxiliary buffer 4.

Definition at line 32 of file IVideoDriver.h.

◆ E_SAMPLER_ADDRESS_MODE

Enumerator
REPEAT 
MIRRORED_REPEAT 
CLAMP_TO_EDGE 
CLAMP_TO_BORDER 
MIRROR_CLAMP_TO_EDGE 

Definition at line 9 of file ESamplerAddressModes.h.

◆ E_SHADER_TYPE

Enumerator
UNKNOWN 
VERTEX 
GEOMETRY 
FRAGMENT 
COMPUTE 

Definition at line 9 of file EShaderTypes.h.

◆ E_TEXTURE_TYPE

Enumeration for all primitive types there are.

Enumerator
TEXTURE_2D 

2D texture.

CUBE_MAP 

Cubemap texture.

TEXTURE_2D_ARRAY 

2D texture array.

Definition at line 10 of file ETextureTypes.h.

◆ E_TRANSFORM_STATE

enumeration for geometry transformation states

Enumerator
VIEW 

View transformation.

PROJECTION 

Projection transformation.

WORLD 

World transformation.

TEXTURE_0 

Texture transformation.

TEXTURE_1 

Texture transformation.

TEXTURE_2 

Texture transformation.

TEXTURE_3 

Texture transformation.

Definition at line 10 of file ETransformStates.h.

Function Documentation

◆ A1R5G5B5toA8RGB8()

std::uint32_t saga::video::A1R5G5B5toA8RGB8 ( std::uint16_t  color)
inline

Convert A8RGB8 Color from A1R5G5B5 color.

build a nicer 32bit Color by extending dest lower bits with source high bits.

Definition at line 113 of file SColor.h.

◆ A1R5G5B5toR5G6B5()

std::uint16_t saga::video::A1R5G5B5toR5G6B5 ( std::uint16_t  color)
inline

Returns R5G6B5 Color from A1R5G5B5 color.

Definition at line 141 of file SColor.h.

◆ A8RGB8toA1R5G5B5()

std::uint16_t saga::video::A8RGB8toA1R5G5B5 ( std::uint32_t  color)
inline

Converts a 32bit (A8RGB8) color to a 16bit A1R5G5B5 color.

Definition at line 93 of file SColor.h.

◆ A8RGB8toR5G6B5()

std::uint16_t saga::video::A8RGB8toR5G6B5 ( std::uint32_t  color)
inline

Converts a 32bit (A8RGB8) color to a 16bit R5G6B5 color.

Definition at line 103 of file SColor.h.

◆ getAlpha()

std::uint32_t saga::video::getAlpha ( std::uint16_t  color)
inline

Returns the alpha component from A1R5G5B5 color.

In Irrlicht, alpha refers to opacity.

Returns
The alpha value of the color. 0 is transparent, 1 is opaque.

Definition at line 151 of file SColor.h.

◆ GetAttributeComponentSize()

uint32_t saga::video::GetAttributeComponentSize ( const E_ATTRIBUTE_FORMAT  format)

◆ GetAttributeSize()

uint32_t saga::video::GetAttributeSize ( const E_ATTRIBUTE_FORMAT  format)

◆ getAverage()

std::int32_t saga::video::getAverage ( std::int16_t  color)
inline

Returns the average from a 16 bit A1R5G5B5 color.

Definition at line 182 of file SColor.h.

◆ getBlue()

std::uint32_t saga::video::getBlue ( std::uint16_t  color)
inline

Returns the blue component from A1R5G5B5 color.

Shift left by 3 to get 8 bit value.

Definition at line 175 of file SColor.h.

◆ getGreen()

std::uint32_t saga::video::getGreen ( std::uint16_t  color)
inline

Returns the green component from A1R5G5B5 color.

Shift left by 3 to get 8 bit value.

Definition at line 167 of file SColor.h.

◆ getRed()

std::uint32_t saga::video::getRed ( std::uint16_t  color)
inline

Returns the red component from A1R5G5B5 color.

Shift left by 3 to get 8 bit value.

Definition at line 159 of file SColor.h.

◆ R5G6B5toA1R5G5B5()

std::uint16_t saga::video::R5G6B5toA1R5G5B5 ( std::uint16_t  color)
inline

Returns A1R5G5B5 Color from R5G6B5 color.

Definition at line 134 of file SColor.h.

◆ R5G6B5toA8RGB8()

std::uint32_t saga::video::R5G6B5toA8RGB8 ( std::uint16_t  color)
inline

Returns A8RGB8 Color from R5G6B5 color.

Definition at line 124 of file SColor.h.

◆ RGB16()

std::uint16_t saga::video::RGB16 ( std::uint32_t  r,
std::uint32_t  g,
std::uint32_t  b 
)
inline

Creates a 16 bit A1R5G5B5 color.

Definition at line 66 of file SColor.h.

◆ RGB16from16()

std::uint16_t saga::video::RGB16from16 ( std::uint16_t  r,
std::uint16_t  g,
std::uint16_t  b 
)
inline

Creates a 16bit A1R5G5B5 color, based on 16bit input values.

Definition at line 73 of file SColor.h.

◆ RGBA16()

std::uint16_t saga::video::RGBA16 ( std::uint32_t  r,
std::uint32_t  g,
std::uint32_t  b,
std::uint32_t  a = 0xFF 
)
inline

Creates a 16 bit A1R5G5B5 color.

Definition at line 56 of file SColor.h.

◆ X8RGB8toA1R5G5B5()

std::uint16_t saga::video::X8RGB8toA1R5G5B5 ( std::uint32_t  color)
inline

Converts a 32bit (X8RGB8) color to a 16bit A1R5G5B5 color.

Definition at line 83 of file SColor.h.

Variable Documentation

◆ ColorFormatNames

const char* const saga::video::ColorFormatNames[saga::core::enumToPOD(E_PIXEL_FORMAT::UNKNOWN)+2]
Initial value:
=
{
"RGBA8",
"RGB8",
"RGBA4",
"R5G6B5",
"R5G5B5A1",
"R10G10B10A2",
"RGBA32F",
"RGBA16F",
"R32F",
"R16F",
"L8",
"DXT1",
"DXT3",
"DXT5",
"DEPTH",
"DEPTH_STENCIL",
"PVRTC2_RGB",
"PVRTC4_RGB",
"PVRTC2_RGBA",
"PVRTC4_RGBA",
"ETC2_RGB8",
"ETC2_SRGB8",
"UNKNOWN",
0
}

An enum class for the color format of textures used by the Irrlicht Engine.

A color format specifies how color information is stored. NOTE: Byte order in memory is usually flipped (it's probably correct in bitmap files, but flipped on reading). So for example E_PIXEL_FORMAT::RGBA8 is BGRA in memory same as in DX9's D3DFMT_A8RGB8 format. Names for E_PIXEL_FORMAT types

Definition at line 26 of file SColor.h.

◆ DRIVER_TYPE_NAMES

const char* const saga::video::DRIVER_TYPE_NAMES[]
Initial value:
=
{
"VulkanDriver",
"VulkanHeadlessDriver",
"VulkanOverlayDriver",
"WebGPUDriver"
}

Definition at line 29 of file EDriverTypes.h.

◆ DRIVER_TYPE_NAMES_SHORT

const char* const saga::video::DRIVER_TYPE_NAMES_SHORT[]
Initial value:
=
{
"vk",
"vkhl",
"vko",
"wgpu"
}

Definition at line 37 of file EDriverTypes.h.

◆ MAX_COLOR_ATTACHMENTS

constexpr auto saga::video::MAX_COLOR_ATTACHMENTS = 4
constexpr

Definition at line 12 of file GraphicsConstants.h.

◆ MAX_IMAGE_LAYERS

constexpr auto saga::video::MAX_IMAGE_LAYERS = 16
constexpr

Definition at line 10 of file GraphicsConstants.h.

◆ MAX_MIPMAPS

constexpr auto saga::video::MAX_MIPMAPS = 16
constexpr

Definition at line 9 of file GraphicsConstants.h.

◆ MAX_NODE_TEXTURES

constexpr auto saga::video::MAX_NODE_TEXTURES = 16
constexpr

Definition at line 11 of file GraphicsConstants.h.

◆ MAX_VERTEX_ATTRIBUTES

constexpr auto saga::video::MAX_VERTEX_ATTRIBUTES = 4
constexpr

Definition at line 14 of file GraphicsConstants.h.

◆ MAX_VERTEX_BUFFERS

constexpr auto saga::video::MAX_VERTEX_BUFFERS = 4
constexpr

Definition at line 13 of file GraphicsConstants.h.

◆ NULL_GPU_RESOURCE_HANDLE

constexpr SGPUResource::HandleType saga::video::NULL_GPU_RESOURCE_HANDLE = 0
constexpr

Definition at line 17 of file SGPUResource.h.