実行
donut-app では、import "sys" で定義されたプリミティブだけで構成された 2-cell を 評価 できます。
評価の条件
評価できるセルは以下を満たす必要があります:
import "sys"のC上の 2-cell であること(C → Cの 1-cell 間の射)- パラメータを持たないこと
- すべてのプリミティブが sys ライブラリに属すること
ドロップダウンでセルを選択すると、評価可能な場合は結果が表示されます。
例
import "sys"
one = f32.lit[1]
// → 1
add_one: f32 → f32 = f32.lit[1] f32; f32.add
// → failed to eval: needs 1 input(s)
入力がないセル(C → ...)はそのまま値が計算されます。入力を取るセル(f32 → f32 等)は評価できず、エラーメッセージが表示されます。
GLSL コンパイル
sys のプリミティブだけで構成された 2-cell は GLSL にコンパイルできます。シェーダービューポートで描画するには以下の条件を満たす必要があります:
- 入力の float 成分数が 1〜2(例:
f32,f32x2,f32 f32) - 出力の float 成分数が 1〜3(例:
f32,f32x2,f32x3,f32 f32 f32)
入力にはピクセル座標(vec2 uv)が渡され、出力は RGB 色として解釈されます。出力が 1 成分ならグレースケール、2 成分なら RG、3 成分なら RGB になります。