Initial
This commit is contained in:
43
resources/app/node_modules/@pixi/text-bitmap/lib/utils/generateFillStyle.js
generated
vendored
Normal file
43
resources/app/node_modules/@pixi/text-bitmap/lib/utils/generateFillStyle.js
generated
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
"use strict";
|
||||
var text = require("@pixi/text");
|
||||
function generateFillStyle(canvas, context, style, resolution, lines, metrics) {
|
||||
const fillStyle = style.fill;
|
||||
if (Array.isArray(fillStyle)) {
|
||||
if (fillStyle.length === 1)
|
||||
return fillStyle[0];
|
||||
} else
|
||||
return fillStyle;
|
||||
let gradient;
|
||||
const dropShadowCorrection = style.dropShadow ? style.dropShadowDistance : 0, padding = style.padding || 0, width = canvas.width / resolution - dropShadowCorrection - padding * 2, height = canvas.height / resolution - dropShadowCorrection - padding * 2, fill = fillStyle.slice(), fillGradientStops = style.fillGradientStops.slice();
|
||||
if (!fillGradientStops.length) {
|
||||
const lengthPlus1 = fill.length + 1;
|
||||
for (let i = 1; i < lengthPlus1; ++i)
|
||||
fillGradientStops.push(i / lengthPlus1);
|
||||
}
|
||||
if (fill.unshift(fillStyle[0]), fillGradientStops.unshift(0), fill.push(fillStyle[fillStyle.length - 1]), fillGradientStops.push(1), style.fillGradientType === text.TEXT_GRADIENT.LINEAR_VERTICAL) {
|
||||
gradient = context.createLinearGradient(width / 2, padding, width / 2, height + padding);
|
||||
let lastIterationStop = 0;
|
||||
const gradStopLineHeight = (metrics.fontProperties.fontSize + style.strokeThickness) / height;
|
||||
for (let i = 0; i < lines.length; i++) {
|
||||
const thisLineTop = metrics.lineHeight * i;
|
||||
for (let j = 0; j < fill.length; j++) {
|
||||
let lineStop = 0;
|
||||
typeof fillGradientStops[j] == "number" ? lineStop = fillGradientStops[j] : lineStop = j / fill.length;
|
||||
const globalStop = thisLineTop / height + lineStop * gradStopLineHeight;
|
||||
let clampedStop = Math.max(lastIterationStop, globalStop);
|
||||
clampedStop = Math.min(clampedStop, 1), gradient.addColorStop(clampedStop, fill[j]), lastIterationStop = clampedStop;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
gradient = context.createLinearGradient(padding, height / 2, width + padding, height / 2);
|
||||
const totalIterations = fill.length + 1;
|
||||
let currentIteration = 1;
|
||||
for (let i = 0; i < fill.length; i++) {
|
||||
let stop;
|
||||
typeof fillGradientStops[i] == "number" ? stop = fillGradientStops[i] : stop = currentIteration / totalIterations, gradient.addColorStop(stop, fill[i]), currentIteration++;
|
||||
}
|
||||
}
|
||||
return gradient;
|
||||
}
|
||||
exports.generateFillStyle = generateFillStyle;
|
||||
//# sourceMappingURL=generateFillStyle.js.map
|
||||
Reference in New Issue
Block a user