Error screen;

This commit is contained in:
bjorn 2022-07-10 21:37:52 -07:00
parent a0cd36a77b
commit a4e4181489
2 changed files with 22 additions and 8 deletions

View File

@ -157,19 +157,32 @@ function lovr.errhand(message, traceback)
print('Error:\n' .. message)
if not lovr.graphics then return function() return 1 end end
local function render(pass)
pass:setBlendMode('alpha')
pass:text('Error', 0, .3, -1, .1)
pass:text(message, 0, 0, -1, .05)
end
lovr.graphics.submit()
lovr.graphics.setBackground(.11, .10, .14)
local font = lovr.graphics.getDefaultFont()
local wrap = .7 * font:getPixelDensity()
local lines = font:getLines(message, wrap)
local width = math.min(font:getWidth(message), wrap)
local height = 2.6 + #lines
local x = -width / 2
local y = math.min(height / 2, 10)
local z = -20
font:setPixelDensity()
local function render(pass)
pass:setColor(.95, .95, .95)
pass:setBlendMode('alpha')
pass:text('Error', x, y, z, 1.6, 0, 0, 0, 0, nil, 'left', 'top')
pass:text(message, x, y - 2.6, z, 1, 0, 0, 0, 0, wrap, 'left', 'top')
end
return function()
lovr.event.pump()
for name, a in lovr.event.poll() do
if name == 'quit' then return a or 1
elseif name == 'restart' then return 'restart', lovr.event.restart and lovr.restart() end
elseif name == 'restart' then return 'restart', lovr.restart and lovr.restart()
elseif name == 'keypressed' and a == 'f5' then lovr.event.restart() end
end
local passes = {}
if lovr.headset then

View File

@ -43,7 +43,8 @@ static int l_lovrFontGetPixelDensity(lua_State* L) {
static int l_lovrFontSetPixelDensity(lua_State* L) {
Font* font = luax_checktype(L, 1, Font);
float pixelDensity = luax_optfloat(L, 2, 0.f);
Rasterizer* rasterizer = lovrFontGetInfo(font)->rasterizer;
float pixelDensity = luax_optfloat(L, 2, lovrRasterizerGetLeading(rasterizer));
lovrFontSetPixelDensity(font, pixelDensity);
return 0;
}