Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

実行

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 になります。