painbrush

1.0.21.1.0
dist/src/layer/make-text.js
dist/src/layer/make-text.jsDeleted
−67
Index: package/dist/src/layer/make-text.js
===================================================================
--- package/dist/src/layer/make-text.js
+++ package/dist/src/layer/make-text.js
@@ -1,67 +0,0 @@
-import { punchLayerOver, inflateLayer, overlayLayerOver, } from "./transform.js";
-import { overlayLayersOver } from "./transform.js";
-import { solidFillBrush, alphaBrush, } from "../color/brush.js";
-import { makeRectangleLayer } from "./make-rectangle.js";
-/**
- * Writes the text
- */
-export const makeTextLayer = (text, font, brush = solidFillBrush([255, 255, 255]), { letterPlateBrush = alphaBrush(), bgPlateBrush = alphaBrush(), maxLengthPx = Infinity, breakLinesOn = " ", } = {}) => {
-    const { getCharacter } = font;
-    const lineHeight = getCharacter("X").height;
-    let charLayers = [];
-    const words = text
-        .split(breakLinesOn)
-        .map((word, idx, arr) => arr.length === idx + 1 ? word : word + breakLinesOn)
-        .map((word) => word
-        .split("\n")
-        .map((word, idx, arr) => arr.length === idx + 1 ? word : [word, "\n"]))
-        .flat(2);
-    let lineOffset = 0;
-    let maxWidth = 0;
-    let lines = 1;
-    for (let word of words) {
-        const newline = () => {
-            maxWidth = Math.max(lineOffset, maxWidth);
-            lineOffset = 0;
-            lines++;
-        };
-        let wordLayers = [];
-        let wordOffset = 0;
-        for (let character of word) {
-            if (character === "\n") {
-                newline();
-                continue;
-            }
-            const char = inflateLayer(getCharacter(character), brush, letterPlateBrush);
-            wordLayers.push([
-                char,
-                wordOffset,
-            ]);
-            wordOffset += char.width;
-        }
-        const prevLineOffset = lineOffset;
-        const verticalOffset = lineHeight * (lines - 1);
-        lineOffset = lineOffset + wordOffset;
-        if (lineOffset > maxLengthPx) {
-            newline();
-        }
-        charLayers.push(...wordLayers.map((layer) => [
-            layer[0],
-            {
-                skipBlending: true,
-                offset: {
-                    x: prevLineOffset + layer[1],
-                    y: verticalOffset,
-                },
-            },
-        ]));
-    }
-    let textLayer = makeRectangleLayer({
-        x: (maxWidth = Math.max(lineOffset, maxWidth)),
-        y: lineHeight * lines,
-    }, bgPlateBrush);
-    for (let layer of charLayers) {
-        punchLayerOver(textLayer, layer[0], layer[1]);
-    }
-    return textLayer;
-};