doc: update rendertext

pull/1873/head
Qingping Hou 8 years ago
parent 2fda2d0a2b
commit 6fccb610c4

@ -134,7 +134,7 @@ end
--- Measure rendered size for a given text. --- Measure rendered size for a given text.
-- --
-- Note this function does not render the text into a bitmap. Use it if you -- Note this function does not render the text into a bitmap. Use it if you
-- only care about the size for the rendered result. -- only need the estimated size information.
-- --
-- @int x start position for a given text (within maximum width) -- @int x start position for a given text (within maximum width)
-- @int width maximum rendering width in pixels (think of it as size of the bitmap) -- @int width maximum rendering width in pixels (think of it as size of the bitmap)
@ -170,13 +170,27 @@ function RenderText:sizeUtf8Text(x, width, face, text, kerning, bold)
--- RenderText size information --- RenderText size information
-- @table RenderTextSize -- @table RenderTextSize
-- @field x length of the text on x coordinates -- @field x length of the text on x coordinate
-- @field y_top top offset for the text (relative to center of the text) -- @field y_top distance between top-most pixel (scanline) and baseline
-- @field y_bottom bottom offset for the text (relative to center of the text) -- (bearingY)
-- @field y_bottom distance between bottom-most pixel (scanline) and
-- baseline (height - y_top)
return { x = pen_x, y_top = pen_y_top, y_bottom = pen_y_bottom } return { x = pen_x, y_top = pen_y_top, y_bottom = pen_y_bottom }
end end
function RenderText:renderUtf8Text(buffer, x, y, face, text, kerning, bold, fgcolor, width) --- Render a given text into a given BlitBuffer
--
-- @tparam BlitBuffer dest_bb Buffer to blit into
-- @int x starting x coordinate position within dest_bb
-- @int baseline y coordinate for baseline, within dest_bb
-- @tparam ui.font.FontFaceObj face font face that will be used for rendering
-- @string text text to render
-- @bool[opt=false] kerning whether the text should be measured with kerning
-- @bool[opt=false] bold whether the text should be measured as bold
-- @tparam[opt=BlitBuffer.COLOR_BLACK] BlitBuffer.COLOR fgcolor foreground color
-- @int[opt=nil] width maximum rendering width
-- @return int width of rendered bitmap
function RenderText:renderUtf8Text(dest_bb, x, baseline, face, text, kerning, bold, fgcolor, width)
if not text then if not text then
DEBUG("renderUtf8Text called without text"); DEBUG("renderUtf8Text called without text");
return 0 return 0
@ -190,7 +204,7 @@ function RenderText:renderUtf8Text(buffer, x, y, face, text, kerning, bold, fgco
-- see: http://freetype.org/freetype2/docs/glyphs/glyphs-4.html -- see: http://freetype.org/freetype2/docs/glyphs/glyphs-4.html
local pen_x = 0 local pen_x = 0
local prevcharcode = 0 local prevcharcode = 0
local text_width = buffer:getWidth() - x local text_width = dest_bb:getWidth() - x
if width and width < text_width then if width and width < text_width then
text_width = width text_width = width
end end
@ -200,9 +214,10 @@ function RenderText:renderUtf8Text(buffer, x, y, face, text, kerning, bold, fgco
if kerning and (prevcharcode ~= 0) then if kerning and (prevcharcode ~= 0) then
pen_x = pen_x + face.ftface:getKerning(prevcharcode, charcode) pen_x = pen_x + face.ftface:getKerning(prevcharcode, charcode)
end end
buffer:colorblitFrom( dest_bb:colorblitFrom(
glyph.bb, glyph.bb,
x + pen_x + glyph.l, y - glyph.t, x + pen_x + glyph.l,
baseline - glyph.t,
0, 0, 0, 0,
glyph.bb:getWidth(), glyph.bb:getHeight(), glyph.bb:getWidth(), glyph.bb:getHeight(),
fgcolor) fgcolor)

Loading…
Cancel
Save