Difference between revisions of "Shader:sendColor"

(Created page)
 
(Updated for 11.0)
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
{{newin|[[0.10.0]]|100|type=function}}
 
{{newin|[[0.10.0]]|100|type=function}}
Sends one or more colors to a special (''extern'' / ''uniform'') vec3 or vec4 variable inside the shader. The color components must be in the range of [0, 255], unlike [[Shader:send]]. The colors are gamma-corrected if global [[love.graphics.isGammaCorrect|gamma-correction]] is enabled.
+
Sends one or more colors to a special (''extern'' / ''uniform'') vec3 or vec4 variable inside the shader. The color components must be in the range of [0, 1]. The colors are gamma-corrected if global [[love.graphics.isGammaCorrect|gamma-correction]] is enabled.
  
 
Extern variables must be marked using the ''extern'' keyword, e.g.
 
Extern variables must be marked using the ''extern'' keyword, e.g.
Line 16: Line 16:
  
 
Extern variables can be accessed in both the Vertex and Pixel stages of a shader, as long as the variable is declared in each.
 
Extern variables can be accessed in both the Vertex and Pixel stages of a shader, as long as the variable is declared in each.
 +
 +
In versions prior to [[11.0]], color component values were within the range of 0 to 255 instead of 0 to 1.
  
 
== Function ==
 
== Function ==
Line 24: Line 26:
 
=== Arguments ===
 
=== Arguments ===
 
{{param|string|name|The name of the color extern variable to send to in the shader.}}
 
{{param|string|name|The name of the color extern variable to send to in the shader.}}
{{param|table|color|A table with red, green, blue, and optional alpha color components in the range of [0, 255] to send to the extern as a vector.}}
+
{{param|table|color|A table with red, green, blue, and optional alpha color components in the range of [0, 1] to send to the extern as a vector.}}
{{param|table|...|Additional colors to send in case the extern is an array. All colors need to be of the same size (e.g. only vec3's)}}
+
{{param|table|...|Additional colors to send in case the extern is an array. All colors need to be of the same size (e.g. only vec3's).}}
 
=== Returns ===
 
=== Returns ===
 
Nothing.
 
Nothing.
Line 35: Line 37:
 
{{#set:Description=Sends one or more colors to the shader.}}
 
{{#set:Description=Sends one or more colors to the shader.}}
 
== Other Languages ==
 
== Other Languages ==
{{i18n|Shader:send}}
+
{{i18n|Shader:sendColor}}

Latest revision as of 20:26, 1 April 2018

Available since LÖVE 0.10.0
This function is not supported in earlier versions.

Sends one or more colors to a special (extern / uniform) vec3 or vec4 variable inside the shader. The color components must be in the range of [0, 1]. The colors are gamma-corrected if global gamma-correction is enabled.

Extern variables must be marked using the extern keyword, e.g.

extern vec4 Color;

The corresponding sendColor call would be

shader:sendColor("Color", {r, g, b, a})


Extern variables can be accessed in both the Vertex and Pixel stages of a shader, as long as the variable is declared in each.

In versions prior to 11.0, color component values were within the range of 0 to 255 instead of 0 to 1.

Function

Synopsis

Shader:sendColor( name, color, ... )

Arguments

string name
The name of the color extern variable to send to in the shader.
table color
A table with red, green, blue, and optional alpha color components in the range of [0, 1] to send to the extern as a vector.
table ...
Additional colors to send in case the extern is an array. All colors need to be of the same size (e.g. only vec3's).

Returns

Nothing.

See Also

Other Languages