Shader:send (日本語)

LÖVE 0.9.0 から使用可能
PixelEffect:send から名称変更。

シェーダーの内部にある特別な変数 (extern) へ一つ以上の値を送信します。extern 変数は extern キーワードを使用して区分する必要があります。例えば、

extern number time;
extern number vars[2];
extern vec2 light_pos;
extern vec4 colors[4];

相当する send 呼び出しは

shader:send("time", t)
shader:send("vars",a,b)
shader:send("light_pos", {light_x, light_y})
shader:send("colors", {r1, g1, b1, a1},  {r2, g2, b2, a2},  {r3, g3, b3, a3},  {r4, g4, b4, a4})


変数が各々で宣言されている場合に限り、シェーダーの頂点およびピクセルの両方にある要素の extern 変数へアクセスできます。

関数

概要

Shader:send( name, number, ... )

引数

string name
シェーダーへ送信する number の名前。
number number
extern へ格納するために送信する number
number ...
extern が配列である場合に送信する追加の number

返値

ありません。

注釈

Lua において全ての数値は浮動小数点数であるため、シェーダーのコードで extern int 変数の値を送信するには Shader:sendInt 関数を使用する必要があります。

関数

概要

Shader:send( name, vector, ... )

引数

string name
シェーダーへ送信するベクトルの名前。
table vector
ベクトルとして extern へ格納するために送信する number です。テーブルにある要素数でベクトルの種類を決定します (例えば、数値が二つであれば -> vec2)。最低2つおよび最高4つまでの数値を使用できます。
table ...
extern が配列である場合に送信する追加のベクトル。ベクトルの大きさは全て同一である必要があります (例えば、 vec3 のものだけ)。

返値

ありません。

関数

概要

Shader:send( name, matrix, ... )

引数

string name
シェーダーへ送信する行列の名前。
table matrix
extern へ送信する 2x2, 3x3, または 4x4 の行列。テーブル形式を使用してください: {{a,b,c,d}, {e,f,g,h}, ... }
table ...
extern の配列に格納されている行列と同じ種類である追加対象の行列。

返値

ありません。

関数

概要

Shader:send( name, texture )

引数

string name
シェーダーへ送信する Texture の名前。
Texture texture
extern へ送信するテクスチャ (Image または Canvas)

返値

ありません。

関数

概要

Shader:send( name, boolean, ... )

引数

string name
シェーダーへ送信する Boolean の名前。
boolean boolean
extern へ送信する Boolean です。
boolean ...
extern が配列である場合に送信する追加の Boolean です。

返値

ありません。

関連


そのほかの言語