(rontolisp) docs
← metal パッケージの関数

metal:frame

(metal:frame ctx fn)

1 フレームを描画します。次のドローアブルを取得してクリアし、レンダーコマンドエンコーダを引数に fn を呼んでプログラムがパイプライン設定と描画を行い、提示してコミットします。fn はメインスレッドで走ります。レイヤに空きドローアブルがなければフレームはスキップされます。それがドロップフレームです。 objc の上に rontolisp で書かれ初回使用時に読み込まれる Metal 描画サーフェス、metal パッケージの一部です。macOS 専用 (java -jar、rontolisp バイナリ、またはコンパイル済み .class / .jar。.wasm は不可) で、ディスプレイが必要です。macOS GUI ガイドを参照してください。

CL-USER> (metal:frame *ctx*
    (lambda (encoder)
      (objc:send encoder "setRenderPipelineState:" *solid*)
      (objc:send encoder "drawPrimitives:vertexStart:vertexCount:" metal:+triangle+ 0 3)))