aboutsummaryrefslogtreecommitdiff
path: root/bin/main.lua
diff options
context:
space:
mode:
Diffstat (limited to 'bin/main.lua')
-rw-r--r--bin/main.lua44
1 files changed, 35 insertions, 9 deletions
diff --git a/bin/main.lua b/bin/main.lua
index 3231705..f814079 100644
--- a/bin/main.lua
+++ b/bin/main.lua
@@ -2,13 +2,14 @@ local shader = [[
extern Image diffuse;
extern number mx;
extern number my;
+extern number i ;
vec4 effect(vec4 color, Image texture, vec2 texture_coords, vec2 pixel_coords)
{
vec3 light_vec = vec3(mx ,my,1);
vec3 light_direction = light_vec - vec3(pixel_coords, 0);
float distance = length(light_direction);
- light_direction = normalize(light_direction);
+ light_direction = normalize(light_direction) * abs(sin(i));
vec3 normal = Texel(texture, texture_coords).xyz;
normal.y = 1 - normal.y;
@@ -35,27 +36,52 @@ vec4 effect(vec4 color, Image texture, vec2 texture_coords, vec2 pixel_coords)
}
]]
+local shader2 = [[
+extern Image diffuse;
+vec4 effect(vec4 color, Image texture, vec2 texture_coords, vec2 pixel_coords)
+{
+ return Texel(diffuse, texture_coords);
+}
+]]
+
local jg = jin.graphics
local effect = jg.Shader(shader)
+local effect2 = jg.Shader(shader2)
local diffuse = jg.Image("treestump_diffuse.png")
local img = jg.Image("treestump.png")
local ww, wh = jg.size()
+local scale = 2
+ww = ww / scale
+wh = wh / scale
jin.core.onEvent = function(e)
if e.type == "quit" then
jin.core.quit()
end
end
-
+local mx, my
jin.core.onUpdate = function()
- local mx, my = jin.mouse.position()
+ mx, my = jin.mouse.position()
+ mx = mx / 2
+ my = my / 2
my = wh - my
- effect:send("number", "mx", mx)
- effect:send("number", "my", my)
end
-
+img:setAnchor(16, 16)
+local cvs = jg.Canvas(320, 240)
+local i = 0
jin.core.onDraw = function()
+ i = i + 0.1
+ jg.bind(cvs)
+ jg.use(effect)
+ effect:send("number", "mx", mx)
+ effect:send("number", "my", my)
+ effect:send("number", "i", i)
+ effect:send("Image", "diffuse", diffuse)
+ jg.draw(img, ww / 2, wh / 2, 2, 2)
+ jg.unuse()
jg.use(effect)
- effect:send("Image", "diffuse", diffuse);
- img:setAnchor(16, 16)
- jg.draw(img, 250, 200, 2, 2)
+ effect:send("Image", "diffuse", diffuse)
+ jg.draw(img, ww / 3, wh / 2, 2, 2)
+ jg.unuse()
+ jg.unbind()
+ jg.draw(cvs, 0, 0, 2, 2)
end