メインメニューを開く

差分

AGSL

520 バイト追加, 2023年11月6日 (月) 07:33
編集の要約なし
この問題を解決すべく[[Android 13]]で登場したのがAGSLです。
AGSLはRuntimeShaderクラスに[[GLSL]]に似た(簡略化した)[[ソースコード]]を流し込むだけで利用できます。
たった1行です。<source lang="kotlin"> private const val shader COLOR_SHADER_SRC = RuntimeShader"""layout(color) uniform half4 iColor; half4 main(float2 fragCoord) { return iColor; }""AGSLのソースコード"</source>たった1行で利用開始できます。Vulkanで問題になったデバイスの初期化のバカみたいな煩雑さは一切ありません。そもそもデバイスなどという概念すらありません。<source lang="kotlin">val fixedColorShader = RuntimeShader(COLOR_SHADER_SRC)Vulkanで問題になったデバイスの初期化のバカみたいな煩雑さは一切ありません。</source>そもそもデバイスなどという概念すらありません。[[ユニフォーム変数]]を流し込むのも簡単です。setColorUniform()やsetFloatUniform()を呼ぶだけです。[[RenderScript]]の型指定の頭のおかしさが解消されています。<source lang="kotlin">fixedColorShader.setColorUniform("iColor", Color.GREEN ) </source>
なお、Android なお、AGSLはAndroid 13以降でしか使えないため、まったく普及していないようです。
== 外部リンク ==