|
|
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.
|
Statement nodes for the donner::gpu::shader IR.
More...
#include <memory>#include <optional>#include <vector>#include "donner/base/RcString.h"#include "donner/gpu/shader/IrExpr.h"#include "donner/gpu/shader/IrType.h"Classes | |
| class | donner::gpu::shader::IrStmt |
| One IR statement. More... | |
| struct | donner::gpu::shader::IrStmt::Data |
| Internal storage; public for the builder and serialization implementation. More... | |
Namespaces | |
| namespace | donner |
| Top-level Donner namespace, which is split into different sub-namespaces such as donner::svg and donner::css. | |
Typedefs | |
| using | donner::gpu::shader::IrBlock = std::vector<IrStmt> |
| An ordered list of statements. | |
Statement nodes for the donner::gpu::shader IR.
Statements are immutable value nodes produced by FunctionBuilder, which performs all scope, type, and stage validation before constructing them; the nodes themselves are plain data consumed by serialization and (in later packets) the emitters.
| struct donner::gpu::shader::IrStmt::Data |
Internal storage; public for the builder and serialization implementation.
| Class Members | ||
|---|---|---|
| IrBlock | body | If-then / for body. |
| shared_ptr< const IrStmt > | continuing | For-loop continuing statement. |
| optional< IrType > | declaredType | Var declared type. |
| IrBlock | elseBody | If-else body. |
| vector< IrExpr > | exprs | Kind-dependent expressions: let/var init, assign (lhs, rhs), if/for condition, return values. |
| shared_ptr< const IrStmt > | init | For-loop init statement. |
| Kind | kind = Kind::Break | Statement kind. |
| RcString | name | Let/var name. |