shadow$provide.module$node_modules$pixi_DOT_js$lib$scene$graphics$canvas$CanvasGraphicsAdaptor = function(global, require, module, exports) { function buildShapePath(context, shape) { switch(shape.type) { case "rectangle": context.rect(shape.x, shape.y, shape.width, shape.height); break; case "roundedRectangle": var x = shape.x, y = shape.y, width = shape.width, height = shape.height; shape = shape.radius; shape = Math.max(0, Math.min(shape, Math.min(width, height) / 2)); context.moveTo(x + shape, y); context.lineTo(x + width - shape, y); context.quadraticCurveTo(x + width, y, x + width, y + shape); context.lineTo(x + width, y + height - shape); context.quadraticCurveTo(x + width, y + height, x + width - shape, y + height); context.lineTo(x + shape, y + height); context.quadraticCurveTo(x, y + height, x, y + height - shape); context.lineTo(x, y + shape); context.quadraticCurveTo(x, y, x + shape, y); break; case "circle": context.arc(shape.x, shape.y, shape.radius, 0, 2 * Math.PI); break; case "ellipse": context.ellipse ? context.ellipse(shape.x, shape.y, shape.halfWidth, shape.halfHeight, 0, 0, 2 * Math.PI) : (context.save(), context.translate(shape.x, shape.y), context.scale(shape.halfWidth, shape.halfHeight), context.arc(0, 0, 1, 0, 2 * Math.PI), context.restore()); break; case "triangle": context.moveTo(shape.x, shape.y); context.lineTo(shape.x2, shape.y2); context.lineTo(shape.x3, shape.y3); context.closePath(); break; default: if (x = shape.points, x?.length) { context.moveTo(x[0], x[1]); for (y = 2; y < x.length; y += 2) { context.lineTo(x[y], x[y + 1]); } shape.closePath && context.closePath(); } } } global = require("module$node_modules$pixi_DOT_js$lib$extensions$Extensions"); var groupD8 = require("module$node_modules$pixi_DOT_js$lib$maths$matrix$groupD8"); module = require("module$node_modules$pixi_DOT_js$lib$maths$matrix$Matrix"); var canvasUtils = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$canvas$utils$canvasUtils"), Texture = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$shared$texture$Texture"), getGlobalMixin = require("module$node_modules$pixi_DOT_js$lib$scene$container$container_mixins$getGlobalMixin"), multiplyHexColors = require("module$node_modules$pixi_DOT_js$lib$scene$container$utils$multiplyHexColors"), buildLine = require("module$node_modules$pixi_DOT_js$lib$scene$graphics$shared$buildCommands$buildLine"), FillGradient = require("module$node_modules$pixi_DOT_js$lib$scene$graphics$shared$fill$FillGradient"), FillPattern = require("module$node_modules$pixi_DOT_js$lib$scene$graphics$shared$fill$FillPattern"), buildContextBatches = require("module$node_modules$pixi_DOT_js$lib$scene$graphics$shared$utils$buildContextBatches"), generateTextureFillMatrix = require("module$node_modules$pixi_DOT_js$lib$scene$graphics$shared$utils$generateTextureFillMatrix"); "use strict"; const tempMatrix = new module.Matrix(), tempTextureMatrix = new module.Matrix(), tempGradientMatrix = new module.Matrix(), tempPatternMatrix = new module.Matrix(); class CanvasGraphicsAdaptor { constructor() { this.shader = null; } contextChange(renderer) { } execute(graphicsPipe, renderable) { var renderer = graphicsPipe.renderer; graphicsPipe = renderer.canvasContext; const context = graphicsPipe.activeContext, baseTransform = renderable.groupTransform; var globalColor = renderer.globalUniforms.globalUniformData?.worldColor ?? 4294967295, groupColorAlpha = renderable.groupColorAlpha; const groupAlpha = (globalColor >>> 24 & 255) / 255 * ((groupColorAlpha >>> 24 & 255) / 255) * (renderer.filter?.alphaMultiplier ?? 1); if (!(0 >= groupAlpha)) { globalColor = getGlobalMixin.bgr2rgb(multiplyHexColors.multiplyHexColors(groupColorAlpha & 16777215, globalColor & 16777215)); renderer = renderer._roundPixels | renderable._roundPixels; context.save(); graphicsPipe.setContextTransform(baseTransform, 1 === renderer); graphicsPipe.setBlendMode(renderable.groupBlendMode); renderable = renderable.context.instructions; for (groupColorAlpha = 0; groupColorAlpha < renderable.length; groupColorAlpha++) { var instruction = renderable[groupColorAlpha]; if ("texture" === instruction.action) { var data2 = instruction.data, source = (instruction = data2.image) ? canvasUtils.canvasUtils.getCanvasSource(instruction) : null; if (source) { var alpha2 = data2.alpha * groupAlpha; if (!(0 >= alpha2)) { var tint2 = multiplyHexColors.multiplyHexColors(data2.style, globalColor); context.globalAlpha = alpha2; alpha2 = source; 16777215 !== tint2 && (alpha2 = canvasUtils.canvasUtils.getTintedCanvas({texture:instruction}, tint2)); var frame = instruction.frame, resolution = instruction.source._resolution ?? instruction.source.resolution ?? 1; tint2 = frame.x * resolution; var sy = frame.y * resolution, sw = frame.width * resolution; frame = frame.height * resolution; alpha2 !== source && (sy = tint2 = 0); var hasTransform = (resolution = data2.transform) && !resolution.isIdentity(); instruction = instruction.rotate; hasTransform || instruction ? (tempMatrix.copyFrom(baseTransform), hasTransform && tempMatrix.append(resolution), instruction && groupD8.groupD8.matrixAppendRotationInv(tempMatrix, instruction, data2.dx, data2.dy, data2.dw, data2.dh), graphicsPipe.setContextTransform(tempMatrix, 1 === renderer)) : graphicsPipe.setContextTransform(baseTransform, 1 === renderer); context.drawImage(alpha2, tint2, sy, alpha2 === source ? sw : alpha2.width, alpha2 === source ? frame : alpha2.height, instruction ? 0 : data2.dx, instruction ? 0 : data2.dy, data2.dw, data2.dh); (hasTransform || instruction) && graphicsPipe.setContextTransform(baseTransform, 1 === renderer); } } } else { if (tint2 = instruction.data, alpha2 = tint2?.path?.shapePath, alpha2?.shapePrimitives?.length && (data2 = tint2.style, source = multiplyHexColors.multiplyHexColors(data2.color, globalColor), sy = data2.alpha * groupAlpha, !(0 >= sy))) { for (instruction = "stroke" === instruction.action, context.globalAlpha = sy, instruction && (sy = data2, context.lineWidth = sy.width, context.lineCap = sy.cap, context.lineJoin = sy.join, context.miterLimit = sy.miterLimit), alpha2 = alpha2.shapePrimitives, !instruction && tint2.hole?.shapePath?.shapePrimitives?.length && (alpha2[alpha2.length - 1].holes = tint2.hole.shapePath.shapePrimitives), tint2 = 0; tint2 < alpha2.length; tint2++) { if (sw = alpha2[tint2], sw?.shape) { sy = (frame = sw.transform) && !frame.isIdentity(); resolution = "global" === data2.textureSpace ? frame : null; resolution = data2.texture && data2.texture !== Texture.Texture.WHITE ? generateTextureFillMatrix.generateTextureMatrix(tempTextureMatrix, data2, sw.shape, resolution) : null; hasTransform = sy ? tempGradientMatrix.copyFrom(baseTransform).append(frame) : baseTransform; a: { var fill = data2.fill; if (fill instanceof FillGradient.FillGradient) { fill.buildGradient(); const gradientTexture = fill.texture; if (gradientTexture) { var pattern = canvasUtils.canvasUtils.getTintedPattern(gradientTexture, source); resolution = resolution ? tempPatternMatrix.copyFrom(resolution).scale(gradientTexture.source.pixelWidth, gradientTexture.source.pixelHeight) : tempPatternMatrix.copyFrom(fill.transform); hasTransform && !data2.textureSpace && resolution.append(hasTransform); canvasUtils.canvasUtils.applyPatternTransform(pattern, resolution); resolution = pattern; break a; } } fill instanceof FillPattern.FillPattern ? (resolution = canvasUtils.canvasUtils.getTintedPattern(fill.texture, source), canvasUtils.canvasUtils.applyPatternTransform(resolution, fill.transform, !1)) : (fill = data2.texture) && fill !== Texture.Texture.WHITE ? fill.source.resource ? (hasTransform = canvasUtils.canvasUtils.getTintedPattern(fill, source), resolution = resolution ? tempPatternMatrix.copyFrom(resolution).scale(fill.source.pixelWidth, fill.source.pixelHeight) : data2.matrix, canvasUtils.canvasUtils.applyPatternTransform(hasTransform, resolution), resolution = hasTransform) : resolution = "#808080" : resolution = `#${(source & 16777215).toString(16).padStart(6, "0")}`; } hasTransform = resolution; sy && (context.save(), context.transform(frame.a, frame.b, frame.c, frame.d, frame.tx, frame.ty)); if (instruction) { if (fill = data2, 0.5 === fill.alignment || fill.pixelLine) { context.strokeStyle = hasTransform, context.beginPath(), buildShapePath(context, sw.shape), context.stroke(); } else { if (pattern = [], frame = [], resolution = [], buildContextBatches.shapeBuilders[sw.shape.type]?.build(sw.shape, pattern)) { buildLine.buildLine(pattern, fill, !1, sw.shape.closePath ?? !0, frame, resolution); context.fillStyle = hasTransform; context.beginPath(); for (sw = 0; sw < resolution.length; sw += 3) { hasTransform = 2 * resolution[sw], fill = 2 * resolution[sw + 1], pattern = 2 * resolution[sw + 2], context.moveTo(frame[hasTransform], frame[hasTransform + 1]), context.lineTo(frame[fill], frame[fill + 1]), context.lineTo(frame[pattern], frame[pattern + 1]), context.closePath(); } context.fill(); } else { context.strokeStyle = hasTransform, context.beginPath(), buildShapePath(context, sw.shape), context.stroke(); } } } else { context.fillStyle = hasTransform; context.beginPath(); buildShapePath(context, sw.shape); frame = context; sw = sw.holes; if (sw?.length) { for (resolution = 0; resolution < sw.length; resolution++) { if (hasTransform = sw[resolution], hasTransform?.shape) { if (pattern = (fill = hasTransform.transform) && !fill.isIdentity()) { frame.save(), frame.transform(fill.a, fill.b, fill.c, fill.d, fill.tx, fill.ty); } buildShapePath(frame, hasTransform.shape); pattern && frame.restore(); } } sw = !0; } else { sw = !1; } sw ? context.fill("evenodd") : context.fill(); } sy && context.restore(); } } } } } context.restore(); } } destroy() { this.shader = null; } } CanvasGraphicsAdaptor.extension = {type:[global.ExtensionType.CanvasPipesAdaptor], name:"graphics"}; exports.CanvasGraphicsAdaptor = CanvasGraphicsAdaptor; }; //# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$scene$graphics$canvas$CanvasGraphicsAdaptor.js.map