00.screen-ports-currently.lua
· 2.1 KiB · Lua
原始文件
Playground
return function(lvera)
local screen = love.graphics.newCanvas()
lvera:add_port({"@set resolution"}, function(counters)
love.window.setMode(counters["@resolution x"], counters["@resolution y"])
screen = resize(old_screen)
counters["@resolution x"] = 0
counters["@resolution y"] = 0
counters["@set resolution"] = 0
end)
local point = {{0, 0, 0, 0, 0, 1}}
lvera:add_port({"@set pixel"}, function(counters)
point[1][1] = counters["@pixel x"]
point[1][2] = counters["@pixel y"]
point[1][3] = (counters["@pixel r"] % 256) / 255
point[1][4] = (counters["@pixel g"] % 256) / 255
point[1][5] = (counters["@pixel b"] % 256) / 255
love.graphics.setCanvas(screen)
love.graphics.points(point)
love.graphics.setCanvas()
counters["@pixel x"] = 0
counters["@pixel y"] = 0
counters["@pixel r"] = 0
counters["@pixel g"] = 0
counters["@pixel b"] = 0
counters["@set pixel"] = 0
end)
lvera:add_port({"@draw line"}, function(counters)
local old_r, old_g, old_b, old_a = love.graphics.getColor()
local r, g, b = (counters["@pixel r"] % 256) / 255, (counters["@pixel g"] % 256) / 255, (counters["@pixel b"] % 256) / 255
love.graphics.setCanvas(screen)
love.graphics.setColor(r, g, b)
love.graphics.setLineWidth(3)
love.graphics.line(counters["@line x1"], counters["@line y1"], counters["@line x2"], counters["@line y2"])
love.graphics.setColor(old_r, old_g, old_b, old_a)
love.graphics.setCanvas()
counters["@draw line"] = 0
counters["@pixel r"] = 0
counters["@pixel g"] = 0
counters["@pixel b"] = 0
counters["@line x1"] = 0
counters["@line y1"] = 0
counters["@line x2"] = 0
counters["@line y2"] = 0
counters["@line-width"] = 0
end)
lvera:add_port({"@display"}, function(counters)
love.graphics.origin()
love.graphics.clear(love.graphics.getBackgroundColor())
love.graphics.draw(screen, 0, 0)
love.graphics.present()
counters["@display"] = 0
end)
end
| 1 | return function(lvera) |
| 2 | |
| 3 | local screen = love.graphics.newCanvas() |
| 4 | lvera:add_port({"@set resolution"}, function(counters) |
| 5 | love.window.setMode(counters["@resolution x"], counters["@resolution y"]) |
| 6 | screen = resize(old_screen) |
| 7 | counters["@resolution x"] = 0 |
| 8 | counters["@resolution y"] = 0 |
| 9 | counters["@set resolution"] = 0 |
| 10 | end) |
| 11 | |
| 12 | local point = {{0, 0, 0, 0, 0, 1}} |
| 13 | lvera:add_port({"@set pixel"}, function(counters) |
| 14 | point[1][1] = counters["@pixel x"] |
| 15 | point[1][2] = counters["@pixel y"] |
| 16 | point[1][3] = (counters["@pixel r"] % 256) / 255 |
| 17 | point[1][4] = (counters["@pixel g"] % 256) / 255 |
| 18 | point[1][5] = (counters["@pixel b"] % 256) / 255 |
| 19 | love.graphics.setCanvas(screen) |
| 20 | love.graphics.points(point) |
| 21 | love.graphics.setCanvas() |
| 22 | counters["@pixel x"] = 0 |
| 23 | counters["@pixel y"] = 0 |
| 24 | counters["@pixel r"] = 0 |
| 25 | counters["@pixel g"] = 0 |
| 26 | counters["@pixel b"] = 0 |
| 27 | counters["@set pixel"] = 0 |
| 28 | end) |
| 29 | |
| 30 | lvera:add_port({"@draw line"}, function(counters) |
| 31 | local old_r, old_g, old_b, old_a = love.graphics.getColor() |
| 32 | local r, g, b = (counters["@pixel r"] % 256) / 255, (counters["@pixel g"] % 256) / 255, (counters["@pixel b"] % 256) / 255 |
| 33 | love.graphics.setCanvas(screen) |
| 34 | love.graphics.setColor(r, g, b) |
| 35 | love.graphics.setLineWidth(3) |
| 36 | love.graphics.line(counters["@line x1"], counters["@line y1"], counters["@line x2"], counters["@line y2"]) |
| 37 | love.graphics.setColor(old_r, old_g, old_b, old_a) |
| 38 | love.graphics.setCanvas() |
| 39 | counters["@draw line"] = 0 |
| 40 | counters["@pixel r"] = 0 |
| 41 | counters["@pixel g"] = 0 |
| 42 | counters["@pixel b"] = 0 |
| 43 | counters["@line x1"] = 0 |
| 44 | counters["@line y1"] = 0 |
| 45 | counters["@line x2"] = 0 |
| 46 | counters["@line y2"] = 0 |
| 47 | counters["@line-width"] = 0 |
| 48 | end) |
| 49 | |
| 50 | lvera:add_port({"@display"}, function(counters) |
| 51 | love.graphics.origin() |
| 52 | love.graphics.clear(love.graphics.getBackgroundColor()) |
| 53 | love.graphics.draw(screen, 0, 0) |
| 54 | love.graphics.present() |
| 55 | counters["@display"] = 0 |
| 56 | end) |
| 57 | end |
01.screen-ports-goal.lua
· 1.4 KiB · Lua
原始文件
Playground
return function(lvera)
local screen = love.graphics.newCanvas()
function lvera.set_resolution(counters, resolution_x, resolution_y)
love.window.setMode(resolution_x, resolution_y)
screen = resize(old_screen)
end
local point = {{0, 0, 0, 0, 0, 1}}
function lvera.set_pixel(counters, pixel_x, pixel_y, pixel_r, pixel_g, pixel_b)
point[1][1] = pixel_x
point[1][2] = pixel_y
point[1][3] = (pixel_r % 256) / 255
point[1][4] = (pixel_g % 256) / 255
point[1][5] = (pixel_b % 256) / 255
love.graphics.setCanvas(screen)
love.graphics.points(point)
love.graphics.setCanvas()
end
function lvera.draw_line(counters, line_x1, line_y1, line_x2, line_y2, pixel_r, pixel_g, pixel_b)
local old_r, old_g, old_b, old_a = love.graphics.getColor()
local r, g, b = (pixel_r % 256) / 255, (pixel_g % 256) / 255, (pixel_b % 256) / 255
love.graphics.setCanvas(screen)
love.graphics.setColor(r, g, b)
love.graphics.setLineWidth(3)
love.graphics.line(line_x1, line_y1, line_x2, line_y2)
love.graphics.setColor(old_r, old_g, old_b, old_a)
love.graphics.setCanvas()
end
function lvera.display(counters)
love.graphics.origin()
love.graphics.clear(love.graphics.getBackgroundColor())
love.graphics.draw(screen, 0, 0)
love.graphics.present()
end
end
| 1 | return function(lvera) |
| 2 | local screen = love.graphics.newCanvas() |
| 3 | function lvera.set_resolution(counters, resolution_x, resolution_y) |
| 4 | love.window.setMode(resolution_x, resolution_y) |
| 5 | screen = resize(old_screen) |
| 6 | end |
| 7 | |
| 8 | local point = {{0, 0, 0, 0, 0, 1}} |
| 9 | function lvera.set_pixel(counters, pixel_x, pixel_y, pixel_r, pixel_g, pixel_b) |
| 10 | point[1][1] = pixel_x |
| 11 | point[1][2] = pixel_y |
| 12 | point[1][3] = (pixel_r % 256) / 255 |
| 13 | point[1][4] = (pixel_g % 256) / 255 |
| 14 | point[1][5] = (pixel_b % 256) / 255 |
| 15 | love.graphics.setCanvas(screen) |
| 16 | love.graphics.points(point) |
| 17 | love.graphics.setCanvas() |
| 18 | end |
| 19 | |
| 20 | function lvera.draw_line(counters, line_x1, line_y1, line_x2, line_y2, pixel_r, pixel_g, pixel_b) |
| 21 | local old_r, old_g, old_b, old_a = love.graphics.getColor() |
| 22 | local r, g, b = (pixel_r % 256) / 255, (pixel_g % 256) / 255, (pixel_b % 256) / 255 |
| 23 | love.graphics.setCanvas(screen) |
| 24 | love.graphics.setColor(r, g, b) |
| 25 | love.graphics.setLineWidth(3) |
| 26 | love.graphics.line(line_x1, line_y1, line_x2, line_y2) |
| 27 | love.graphics.setColor(old_r, old_g, old_b, old_a) |
| 28 | love.graphics.setCanvas() |
| 29 | end |
| 30 | |
| 31 | |
| 32 | function lvera.display(counters) |
| 33 | love.graphics.origin() |
| 34 | love.graphics.clear(love.graphics.getBackgroundColor()) |
| 35 | love.graphics.draw(screen, 0, 0) |
| 36 | love.graphics.present() |
| 37 | end |
| 38 | end |