# love.graphics.newPixelEffect

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

Removed in LÖVE 0.9.0
It has been renamed to love.graphics.newShader.

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 GLSL 1.20 (specs) with a few aliases added for existing types:

GLSL | Effect language
--- | ---
float | number
sampler2D | Image
uniform | extern
texture2D(tex, uv) | Texel(tex, uv)

## 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. The y-axis of canvases are inverted. Coordinates (1,1) would be the top right corner of the canvas.
`vec2 screen_coords`
  Coordinates of the pixel on the screen. Pixel coordinates are not normalized (unlike texture coordinates)

### Returns

`vec4 output_color`
  The color of the pixel.

## See Also

- love.graphics
- PixelEffect
- love.graphics.setPixelEffect

##

Category:

- Functions