Donner SVG Editor & Engine
SVG-native editor and embeddable SVG2 + CSS3 engine in C++20, with GPU (WebGPU) and compact CPU renderers, built for correctness, security, and performance.
Loading...
Searching...
No Matches
IrType.h File Reference

Immutable type model for the donner::gpu::shader IR. More...

#include <cstdint>
#include <memory>
#include <ostream>
#include <span>
#include <string>
#include <vector>
#include "donner/base/RcString.h"
#include "donner/gpu/shader/ShaderResult.h"
Include dependency graph for IrType.h:
This graph shows which files directly or indirectly include this file:

Classes

class  donner::gpu::shader::IrType
 An immutable shader IR type with deep value equality. More...
struct  donner::gpu::shader::IrType::Member
 One named member of a struct type. More...

Namespaces

namespace  donner
 Top-level Donner namespace, which is split into different sub-namespaces such as donner::svg and donner::css.

Enumerations

enum class  donner::gpu::shader::ScalarKind : uint8_t {
  Bool ,
  I32 ,
  U32 ,
  F32
}
 Scalar component types. More...

Functions

std::ostream & donner::gpu::shader::operator<< (std::ostream &os, ScalarKind value)
 Ostream output operator, e.g.

Detailed Description

Immutable type model for the donner::gpu::shader IR.

The type surface covers exactly what the solid-fill pipeline family requires (design 0053 "Donner shader IR"): scalars, vectors, mat4x4f, sized and runtime arrays, structs, and the texture_2d<f32> / sampler resource types. Types are immutable values with deep equality, so identical types compare equal deterministically regardless of construction order.


Class Documentation

◆ donner::gpu::shader::IrType::Member

struct donner::gpu::shader::IrType::Member

One named member of a struct type.

Class Members
RcString name Member name; unique within the struct.
IrType type Member type.

Enumeration Type Documentation

◆ ScalarKind

enum class donner::gpu::shader::ScalarKind : uint8_t
strong

Scalar component types.

Enumerator
Bool 

bool. Not host-shareable; no layout.

I32 

32-bit signed integer.

U32 

32-bit unsigned integer.

F32 

32-bit float.

Function Documentation

◆ operator<<()

std::ostream & donner::gpu::shader::operator<< ( std::ostream & os,
ScalarKind value )

Ostream output operator, e.g.

f32.

Parameters
osOutput stream.
valueValue to output.