Difference between revisions of "love.graphics.newPixelEffect"

m (info for "effect" function)
(Better (?) explanation of the effect code)
Line 13: Line 13:
 
=== Returns ===
 
=== Returns ===
 
{{param|PixelEffect|pixeleffect|A PixelEffect object for use in drawing operations.}}
 
{{param|PixelEffect|pixeleffect|A PixelEffect object for use in drawing operations.}}
 +
 +
== Effect Language ==
 +
Pixel effects are not programmed in Lua, but by using a special effect language instead. The effect language is basically [[http://www.opengl.org/sdk/docs/manglsl/|GLSL 1.20]] ([[http://www.opengl.org/registry/doc/GLSLangSpec.Full.1.20.8.pdf|specs]]) with a few things renamed:
 +
 +
{|
 +
!GLSL
 +
!Effect language
 +
|-
 +
|float
 +
|number
 +
|-
 +
|sampler2D
 +
|Image
 +
|-
 +
|uniform
 +
|extern
 +
|-
 +
|texture2D(sampler2D tex, vec2 st)
 +
|Texel(Image tex, vec2 st)
 +
|}
  
 
== Effect Function ==
 
== Effect Function ==
 
=== Synopsis ===
 
=== Synopsis ===
 
<source lang="glsl">
 
<source lang="glsl">
vec4 effect( vec4 color, sampler2D texture, vec2 texture_coords, vec2 pixel_coords )
+
vec4 effect( vec4 color, Image texture, vec2 texture_coords, vec2 screen_coords )
 
</source>
 
</source>
 
=== Arguments ===
 
=== Arguments ===
{{param|vec4|color|The color of the polygon itself. The same as the last [[love.graphics.setColor]] call}}
+
{{param|vec4|color|The drawing color set with [[love.graphics.setColor]].}}
{{param|sampler2D|texture|The texture currently used by the polygon, if it has one.}}
+
{{param|Image|texture|The texture of the image or canvas being drawn.}}
{{param|vec2|texture_coords|The current texture coordinates.}}
+
{{param|vec2|texture_coords|Coordinates of the pixel relative to the texture.}}
{{param|vec2|pixel_coords|The current pixel coordinates.}}
+
{{param|vec2|screen_coords|Coordinates of the pixel on the screen.}}
 
=== Returns ===
 
=== Returns ===
{{param|vec4|output_color|The color to set the current pixel to.}}
+
{{param|vec4|output_color|The color of the pixel.}}
  
* Note: LÖVE defines the types <code>Image</code> and <code>Texel</code>, which can be used instead of <code>sampler2D</code> and <code>texture2D</code>, respectively.
 
  
 
== See Also ==
 
== See Also ==

Revision as of 17:08, 1 May 2012

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

Creates a new PixelEffect object for hardware-accelerated pixel level effects.

A PixelEffect contains at least one function, named effect, which is the effect itself, but it can contain additional functions.

Function

Synopsis

pixeleffect = love.graphics.newPixelEffect( code )

Arguments

string code
The pixel effect code.

Returns

PixelEffect pixeleffect
A PixelEffect object for use in drawing operations.

Effect Language

Pixel effects are not programmed in Lua, but by using a special effect language instead. The effect language is basically [1.20] ([[1]]) with a few things renamed:

GLSL Effect language
float number
sampler2D Image
uniform extern
texture2D(sampler2D tex, vec2 st) Texel(Image tex, vec2 st)

Effect Function

Synopsis

vec4 effect( vec4 color, Image texture, vec2 texture_coords, vec2 screen_coords )

Arguments

vec4 color
The drawing color set with love.graphics.setColor.
Image texture
The texture of the image or canvas being drawn.
vec2 texture_coords
Coordinates of the pixel relative to the texture.
vec2 screen_coords
Coordinates of the pixel on the screen.

Returns

vec4 output_color
The color of the pixel.


See Also

Other Languages