|
|
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.
|
Module model and validating builders for the donner::gpu::shader IR.
More...
#include <cstdint>#include <map>#include <memory>#include <optional>#include <string>#include <vector>#include "donner/base/RcString.h"#include "donner/gpu/shader/IrExpr.h"#include "donner/gpu/shader/IrStatement.h"#include "donner/gpu/shader/IrType.h"#include "donner/gpu/shader/ShaderResult.h"Classes | |
| struct | donner::gpu::shader::IrConstant |
| One module-scope constant. More... | |
| struct | donner::gpu::shader::IrBinding |
| One module-scope resource binding. More... | |
| struct | donner::gpu::shader::IrParam |
| One entry point parameter or plain function parameter. More... | |
| struct | donner::gpu::shader::IrOutputMember |
| One entry point output member. More... | |
| struct | donner::gpu::shader::IrFunction |
| One function: a plain function or an entry point. More... | |
| class | donner::gpu::shader::IrModule |
| An immutable, validated shader IR module. More... | |
| class | donner::gpu::shader::FunctionBuilder |
| Builds one function or entry point. More... | |
| class | donner::gpu::shader::ModuleBuilder |
| Builds an IrModule: module-scope constants, resource bindings with (group, binding) uniqueness validation, and functions. 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::BindingKind : uint8_t { UniformBuffer , ReadOnlyStorageBuffer , SampledTexture2dF32 , FilteringSampler } |
| Kind of a module-scope resource binding. More... | |
| enum class | donner::gpu::shader::StageKind : uint8_t { None , Vertex , Fragment } |
| Pipeline stage of a function. More... | |
| enum class | donner::gpu::shader::BuiltinInput : uint8_t { InstanceIndex , Position } |
| Builtin input values available to entry point parameters. More... | |
| enum class | donner::gpu::shader::BuiltinOutput : uint8_t { Position } |
| Builtin output values available to entry point outputs. More... | |
Functions | |
| std::ostream & | donner::gpu::shader::operator<< (std::ostream &os, BindingKind value) |
| Ostream output operator, e.g. uniform. | |
Module model and validating builders for the donner::gpu::shader IR.
A module holds module-scope constants, resource bindings, and functions (plain functions plus vertex/fragment entry points). ModuleBuilder and FunctionBuilder validate every construction step and fail closed with ShaderError on ill-typed input; a successfully built IrModule is immutable and serializes deterministically.
Compute entry points are intentionally out of scope for this packet; StageKind leaves the seam (a Compute enumerator would slot next to Vertex/Fragment, with workgroup-size metadata on IrFunction) for the filter-engine migration packets.
|
strong |
|
strong |
|
strong |
|
strong |
| std::ostream & donner::gpu::shader::operator<< | ( | std::ostream & | os, |
| BindingKind | value ) |
Ostream output operator, e.g. uniform.
| os | Output stream. |
| value | Value to output. |