Well i was searching on the forum for something very interesting that i found viewtopic.php?f=4&t=3733&start=150 but unfortunatly looks a bit old for the actual version of love2d 11.1.
So after few correction to get it fit with the actual one it seems that i still got an issue with the shader:
Code: Select all
function love.load()
--love.keyboard.setKeyRepeat(.1, .05)
fac = 1
canvas = love.graphics.newCanvas()
tex = love.graphics.newImage('bg.png')
map = love.graphics.newImage('map.png')
shader = love.graphics.newShader[[
extern Image map;
extern number fac = 1.0;
extern number mousex = 1.0;
extern number mousey = 1.0;
uniform sampler2D tex0;
vec4 effect(vec4 color, Image texture, vec2 texture_coords, vec2 pixel_coords)
{
vec2 uv2 = vec2(
texture_coords.x,
1 - texture_coords.y
);
vec4 mapcol = Texel(map, uv2);
vec2 uv = vec2(
texture_coords.x - (.5 - mapcol.r)/(2/fac)*ceil(mapcol.g), // - mapcol.b/(16/fac),
texture_coords.y - (.5 - mapcol.g)/(2/fac)*ceil(mapcol.g) // - mapcol.b/(16/fac)
);
vec3 col = vec3(
texture2D(tex0,uv).x,
texture2D(tex0,uv).y,
texture2D(tex0,uv).z
);
col += (1 - clamp(sqrt(pow(texture_coords.x*4 - mousex*4 - .5, 2) + pow(texture_coords.y*4 - mousey*4 + .5, 2)), 0, 1) - .2)*ceil(mapcol.g)*fac;
return vec4(col, 1);
}
]]
end
function love.update(dt)
--exit
if love.keyboard.isDown('escape') then love.event.quit() end
shader:send('map', canvas)
shader:send('fac', fac)
shader:send('mousex', love.mouse.getX()/800)
shader:send('mousey', love.mouse.getY()/600)
end
function love.draw()
love.graphics.setCanvas(canvas)
love.graphics.setColor(0, 0, 0)
love.graphics.rectangle('fill', 0, 0, 800, 600)
love.graphics.setColor(1, 1, 1)
love.graphics.draw(map, love.mouse.getX(), love.mouse.getY(), 0, 1, 1, 128, 128)
love.graphics.setCanvas()
love.graphics.newShader(shader)
love.graphics.draw(tex, 0, 0)
love.graphics.newShader()
love.graphics.print(fac, 0, 0)
end
Code: Select all
Error
main.lua:54: bad argument #1 to 'newShader' (string expected, got userdata)
Traceback
[C]: in function 'newShader'
main.lua:54: in function 'draw'
[C]: in function 'xpcall'
Thanks in advance