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
donner::gpu::shader::IrStmt Class Reference

One IR statement. More...

#include "donner/gpu/shader/IrStatement.h"

Classes

struct  Data
 Internal storage; public for the builder and serialization implementation. More...

Public Types

enum class  Kind : uint8_t {
  Let ,
  Var ,
  Assign ,
  If ,
  For ,
  Break ,
  Continue ,
  Return ,
  Discard
}
 Statement kind. More...

Public Member Functions

 IrStmt (Data &&data)
 Wraps validated statement data; called by the builder only.
Kind kind () const
 Statement kind.
const Datadata () const
 Statement payload.

Detailed Description

One IR statement.

Construct through FunctionBuilder; this class is an immutable value handle over validated statement data.


Class Documentation

◆ donner::gpu::shader::IrStmt::Data

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.

Member Enumeration Documentation

◆ Kind

enum class donner::gpu::shader::IrStmt::Kind : uint8_t
strong

Statement kind.

Enumerator
Let 

let name = expr;

Var 

var name: type (= init);

Assign 

lvalue = expr;

If 

if (cond) { ... } else { ... }

For 

for (init; cond; continuing) { ... }

Break 

break;

Continue 

continue;

Return 

return; / return expr; / entry point output return.

Discard 

discard; (fragment stage only).

Constructor & Destructor Documentation

◆ IrStmt()

donner::gpu::shader::IrStmt::IrStmt ( Data && data)
inlineexplicit

Wraps validated statement data; called by the builder only.

Parameters
dataStatement payload.

The documentation for this class was generated from the following file: