Available since LÖVE 0.9.0
This type is not supported in earlier versions.

A Shader is used for advanced hardware-accelerated pixel or vertex manipulation. These effects are written in a language based on GLSL (OpenGL Shading Language) with a few things simplified for easier coding.

Potential uses for shaders include HDR/bloom, motion blur, grayscale/invert/sepia/any kind of color effect, reflection/refraction, distortions, bump mapping, and much more! Here is a collection of basic shaders and good starting point to learn:

To use the most recent version of GLSL, you must put #pragma language glsl3 at the top of your shader files. See for details.

Constructors Creates a new Shader. Added since 0.9.0


Object:release Immediately destroys the object's Lua reference. Added since 11.0
Object:type Gets the type of the object as a string.
Object:typeOf Checks whether an object is of a certain type.
Shader:getExternVariable Gets information about an 'extern' ('uniform') variable in the Shader. Added since 0.9.2 Removed in 11.0
Shader:getWarnings Gets warning and error messages (if any). Added since 0.9.0
Shader:hasUniform Gets whether a uniform / extern variable exists in the Shader. Added since 11.0
Shader:send Sends one or more values to the shader. Added since 0.9.0
Shader:sendColor Sends one or more colors to the shader. Added since 0.10.0


See Also

Other Languages