From c18e8e9649210f1f2ae60332ebf15d097927a2fd Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Fri, 10 Dec 2021 22:01:54 +1100 Subject: [PATCH] Text now renders somewhat passibly --- src/interop_web.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/interop_web.js b/src/interop_web.js index 9b3bdcfd5..c0b6eea97 100644 --- a/src/interop_web.js +++ b/src/interop_web.js @@ -845,11 +845,16 @@ mergeInto(LibraryManager.library, { interop_TextDraw: function(fontStr, fontSize, textStr, textLen, bmp, dstX, dstY) { var font = UTF8ToString(fontStr); var text = UTF8ArrayToString(HEAPU8, textStr, textLen); + var ctx = _interop_TextInit(font, fontSize); - var ctx = _interop_TextInit(font, fontSize); + // resize canvas if necessary so test fits + var data = ctx.measureText(text); + var text_width = Math.ceil(data.width)|0; + if (text_width > ctx.canvas.width) + ctx.canvas.width = text_width; + + ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); ctx.fillStyle = "#ffffff"; - ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height); - ctx.fillStyle = "#000000"; ctx.fillText(text, 0, 0); bmp = bmp|0; @@ -876,7 +881,7 @@ mergeInto(LibraryManager.library, { HEAPU8[dst_row + (x<<2)+0] = src_pixels[src_row + (x<<2)+0]; HEAPU8[dst_row + (x<<2)+1] = src_pixels[src_row + (x<<2)+1]; HEAPU8[dst_row + (x<<2)+2] = src_pixels[src_row + (x<<2)+2]; - HEAPU8[dst_row + (x<<2)+3] = 255; + HEAPU8[dst_row + (x<<2)+3] = src_pixels[src_row + (x<<2)+3]; } } },