Difference between revisions of "Shader:sendColor"

(Created page)
 
 
(3 intermediate revisions by 3 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 (''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.
+
Uniforms must be marked using the ''uniform'' keyword, e.g.
  
 
<source lang="glsl">
 
<source lang="glsl">
extern vec4 Color;
+
uniform vec4 Color;
 
</source>
 
</source>
  
Line 15: Line 15:
  
  
Extern variables can be accessed in both the Vertex and Pixel stages of a shader, as long as the variable is declared in each.
+
Uniforms 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 23: Line 25:
 
</source>
 
</source>
 
=== 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 uniform 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 uniform 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 uniform 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 15:02, 19 September 2024

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

Sends one or more colors to a special (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.

Uniforms must be marked using the uniform keyword, e.g.

uniform vec4 Color;

The corresponding sendColor call would be

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


Uniforms 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 uniform 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 uniform as a vector.
table ...
Additional colors to send in case the uniform is an array. All colors need to be of the same size (e.g. only vec3's).

Returns

Nothing.

See Also

Other Languages