nCine::RHI::Software namespace

CPU software rasterizer backend, selected by WITH_RHI_SOFTWARE.

Namespaces

namespace sw
Runtime support types for the transpiled (GLSL→C++) software shaders.
namespace UniformTypeInfo
Free-function helpers that classify reflected uniform types (component count, float-ness).

Classes

struct Framebuffer
Destination framebuffer the device presents and resolves draws into.
class SwAttribute
Reflected metadata of a single active vertex attribute (aliased as RHI::Attribute).
class SwBuffer
Host-memory buffer object of the software backend (aliased as RHI::Buffer).
class SwDebug
Debug-output and object-labelling stub of the software backend.
class SwDevice
Pipeline-state and draw-call facade of the software backend (aliased as RHI::Device).
class SwFramebuffer
Framebuffer stub of the software backend (aliased as RHI::Framebuffer).
class SwRenderbuffer
Renderbuffer stub of the software backend (aliased as RHI::Renderbuffer).
class SwRenderTarget
Off-screen render target of the software backend (aliased as RHI::RenderTarget).
class SwShader
Shader-object stub of the software backend.
class SwShaderProgram
Shader program of the software backend (aliased as RHI::ShaderProgram).
class SwShaderUniformBlocks
Manages the uniform-block caches of a program (aliased as RHI::ShaderUniformBlocks).
class SwShaderUniforms
Manages the loose-uniform caches of a program (aliased as RHI::ShaderUniforms).
class SwTexture
CPU texture object of the software backend (aliased as RHI::Texture).
class SwUniform
Reflected metadata of a single active uniform (aliased as RHI::Uniform).
class SwUniformBlock
Reflected metadata of a single active uniform block (aliased as RHI::UniformBlock).
class SwUniformBlockCache
Caches the contents of a uniform block (aliased as RHI::UniformBlockCache).
class SwUniformCache
Caches the host-side value of a single uniform (aliased as RHI::UniformCache).
class SwVertexArray
Vertex array object stub of the software backend (aliased as RHI::VertexArray).
class SwVertexFormat
Vertex layout description of the software backend (aliased as RHI::VertexFormat).

Enums

enum class SwEffect { Unknown, DefaultSprite, DefaultBatchedSprites, DefaultSpriteNoTexture, DefaultBatchedSpritesNoTexture, TexturedBackground, TexturedBackgroundCircle, PaletteRemap, BatchedPaletteRemap, Combine }
The hand-written C++ effect a software program dispatches to at draw time.

Enum documentation

enum class nCine::RHI::Software::SwEffect

The hand-written C++ effect a software program dispatches to at draw time.

The software backend does not run GLSL — instead each program is tagged with the effect that reproduces its shader, derived from the program's object label. New effects (palette remap, tinted, outline, ...) are added here as the backend grows; Unknown programs log a skipped draw.

Enumerators
Unknown

No matching C++ effect — draws are skipped with a log message

DefaultSprite

texture(uTexture, vTexCoords) * vColor over a single instance

DefaultBatchedSprites

The same effect over an array of batched instances

DefaultSpriteNoTexture

Solid-colour sprite (vColor, no texture) over a single instance

DefaultBatchedSpritesNoTexture

The solid-colour sprite over an array of batched instances

TexturedBackground

The animated, per-pixel-warped menu/level background (planar tunnel)

TexturedBackgroundCircle

The circular ("tube") variant of the textured background

PaletteRemap

An R8/RG8 index sprite recolored through the shared palette texture

BatchedPaletteRemap

The palette-remap effect over an array of batched instances

Combine

The viewport compositor (scene + lighting + blur + ambient)