This repository has been archived by the owner on Dec 17, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplaydate-env.lua
66 lines (54 loc) · 1.55 KB
/
playdate-env.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
-- global pd color values
BLACK = {0.193, 0.184, 0.158}
WHITE = {0.747, 0.757, 0.743}
PURPLE = {0.461, 0, 0.967}
local SCREENW = 400
local SCREENH = 240
local canvas
local deviceImg
local deviceScale = 1.18
lcdShader = love.graphics.newShader[[
vec4 effect( vec4 color, Image texture, vec2 texture_coords, vec2 screen_coords ){
vec4 pixel = Texel(texture, texture_coords );
if(pixel.r < 0.65) {
return vec4(0.193, 0.184, 0.158, pixel.a);
} else {
return vec4(0.747, 0.757, 0.743, pixel.a);
}
}
]]
function setPlaydateWindow(useDevice, scale)
love.graphics.setLineStyle('rough')
if useDevice then
playdateDevice(scale)
else
playdateWindow(scale)
end
end
function playdateDevice(scale)
love.graphics.setBackgroundColor(PURPLE)
deviceImg = love.graphics.newImage("images/device-wShadow.png")
love.window.setMode(600 * deviceScale , 509 * deviceScale , { highdpi=false})
love.window.setTitle("Playdate")
end
function playdateWindow(scale)
local s = scale or 1
love.window.setMode(SCREENW * s, SCREENH * s)
love.window.setTitle("Playdate Screen @" .. scale .. "x")
end
function createPlaydateCanvas()
canvas = love.graphics.newCanvas(SCREENW, SCREENH)
canvas:setFilter("nearest", "nearest", 1)
return canvas
end
function playdateDraw(useDevice, scale)
if useDevice then
love.graphics.draw(deviceImg, 0, 0, 0, 0.5 * deviceScale, 0.5 * deviceScale)
love.graphics.setShader(lcdShader)
love.graphics.draw(canvas, 66, 63)
else
love.graphics.setShader(lcdShader)
love.graphics.draw(canvas, 0, 0, 0, scale, scale)
end
love.graphics.setShader()
end