[shadowtext] Add text with drop shadow utilities.

This commit is contained in:
Lorenzo Cogotti 2022-08-16 00:15:50 +02:00
parent 619d31bf2f
commit 9a1b9fedcd
2 changed files with 39 additions and 0 deletions

View File

@ -16,6 +16,7 @@ return {
algo = require(BASE..'algo'), algo = require(BASE..'algo'),
meta = require(BASE..'meta'), meta = require(BASE..'meta'),
rect = require(BASE..'rect'), rect = require(BASE..'rect'),
shadowtext = require(BASE..'shadowtext')
strings = require(BASE..'strings'), strings = require(BASE..'strings'),
vec = require(BASE..'vec') vec = require(BASE..'vec')
} }

38
shadowtext.lua Normal file
View File

@ -0,0 +1,38 @@
--- Draw text with drop shadows.
--
-- Drop shadows improve text contrast and readability.
--
-- @module gear.shadowtext
-- @copyright 2022 The DoubleFourteen Code Forge
-- @author Lorenzo Cogotti
local shadowtext = {}
--- Print text with drop shadow, supports the same arguments as love.graphics.print(text, x, y).
function shadowtext.print(text, x, y, ...)
local r,g,b,a = love.graphics.getColor()
-- Draw drop shadow.
love.graphics.setColor(0, 0, 0, a)
love.graphics.print(text, x+2, y+2, ...)
-- Draw text.
love.graphics.setColor(r, g, b, a)
love.graphics.print(text, x, y, ...)
end
--- Print text with drop shadow, supports the same arguments as love.graphics.printf(text, x, y).
function shadowtext.printf(text, x, y, ...)
local r,g,b,a = love.graphics.getColor()
-- Draw drop shadow.
love.graphics.setColor(0, 0, 0, a)
love.graphics.printf(text, x+2, y+2, ...)
-- Draw text.
love.graphics.setColor(r, g, b, a)
love.graphics.printf(text, x, y, ...)
end
return shadowtext