infrastructure for caching LÖVE text objects
This commit is contained in:
parent
89222f86a0
commit
ce31b74b10
1
edit.lua
1
edit.lua
|
@ -467,6 +467,7 @@ function edit.update_font_settings(State, font_height)
|
|||
love.graphics.setFont(love.graphics.newFont(Editor_state.font_height))
|
||||
State.line_height = math.floor(font_height*1.3)
|
||||
State.em = App.newText(love.graphics.getFont(), 'm')
|
||||
Text_cache = {}
|
||||
end
|
||||
|
||||
--== some methods for tests
|
||||
|
|
7
help.lua
7
help.lua
|
@ -146,11 +146,6 @@ function current_shape(State, shape)
|
|||
end
|
||||
end
|
||||
|
||||
_bullet_indent = nil
|
||||
function bullet_indent()
|
||||
if _bullet_indent == nil then
|
||||
local text = love.graphics.newText(love.graphics.getFont(), '* ')
|
||||
_bullet_indent = text:getWidth()
|
||||
end
|
||||
return _bullet_indent
|
||||
return App.width(to_text('* '))
|
||||
end
|
||||
|
|
11
main.lua
11
main.lua
|
@ -16,6 +16,9 @@ Editor_state = {}
|
|||
function App.initialize_globals()
|
||||
-- tests currently mostly clear their own state
|
||||
|
||||
-- a few text objects we can avoid recomputing unless the font changes
|
||||
Text_cache = {}
|
||||
|
||||
-- blinking cursor
|
||||
Cursor_time = 0
|
||||
|
||||
|
@ -204,3 +207,11 @@ function App.keyreleased(key, scancode)
|
|||
Cursor_time = 0 -- ensure cursor is visible immediately after it moves
|
||||
return edit.key_released(Editor_state, key, scancode)
|
||||
end
|
||||
|
||||
-- use this sparingly
|
||||
function to_text(s)
|
||||
if Text_cache[s] == nil then
|
||||
Text_cache[s] = App.newText(love.graphics.getFont(), s)
|
||||
end
|
||||
return Text_cache[s]
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue