Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if (data.nativeLines && data.lineWidth)
{
webGLDataNativeLines = this.getWebGLData(webGL, 0, true);
webGL.lastIndex++;
}
if (data.type === SHAPES.POLY)
{
buildPoly(data, webGLData, webGLDataNativeLines);
}
if (data.type === SHAPES.RECT)
{
buildRectangle(data, webGLData, webGLDataNativeLines);
}
else if (data.type === SHAPES.CIRC || data.type === SHAPES.ELIP)
{
buildCircle(data, webGLData, webGLDataNativeLines);
}
else if (data.type === SHAPES.RREC)
{
buildRoundedRectangle(data, webGLData, webGLDataNativeLines);
}
webGL.lastIndex++;
}
// this.renderer.geometry.bindVao(null);
// upload all the dirty data...
for (let i = 0; i < webGL.data.length; i++)
{
if (fillStyle.visible)
{
context.globalAlpha = fillStyle.alpha * worldAlpha;
context.fillStyle = `#${(`00000${(fillColor | 0).toString(16)}`).substr(-6)}`;
context.fill();
}
if (lineStyle.visible)
{
context.globalAlpha = lineStyle.alpha * worldAlpha;
context.strokeStyle = `#${(`00000${(lineColor | 0).toString(16)}`).substr(-6)}`;
context.stroke();
}
}
else if (data.type === SHAPES.ELIP)
{
// ellipse code taken from: http://stackoverflow.com/questions/2172798/how-to-draw-an-oval-in-html5-canvas
const w = shape.width * 2;
const h = shape.height * 2;
const x = shape.x - (w / 2);
const y = shape.y - (h / 2);
context.beginPath();
const kappa = 0.5522848;
const ox = (w / 2) * kappa; // control point offset horizontal
const oy = (h / 2) * kappa; // control point offset vertical
const xe = x + w; // x-end
const ye = y + h; // y-end
{
context.closePath();
}
}
else if (data.type === SHAPES.RECT)
{
context.rect(shape.x, shape.y, shape.width, shape.height);
context.closePath();
}
else if (data.type === SHAPES.CIRC)
{
// TODO - need to be Undefined!
context.arc(shape.x, shape.y, shape.radius, 0, 2 * Math.PI);
context.closePath();
}
else if (data.type === SHAPES.ELIP)
{
// ellipse code taken from: http://stackoverflow.com/questions/2172798/how-to-draw-an-oval-in-html5-canvas
const w = shape.width * 2;
const h = shape.height * 2;
const x = shape.x - (w / 2);
const y = shape.y - (h / 2);
const kappa = 0.5522848;
const ox = (w / 2) * kappa; // control point offset horizontal
const oy = (h / 2) * kappa; // control point offset vertical
const xe = x + w; // x-end
const ye = y + h; // y-end
const xm = x + (w / 2); // x-middle
const ym = y + (h / 2); // y-middle
sequenceBounds.clear();
}
curMatrix = nextMatrix;
}
if (type === SHAPES.RECT || type === SHAPES.RREC)
{
sequenceBounds.addFramePad(shape.x, shape.y, shape.x + shape.width, shape.y + shape.height,
lineWidth, lineWidth);
}
else if (type === SHAPES.CIRC)
{
sequenceBounds.addFramePad(shape.x, shape.y, shape.x, shape.y,
shape.radius + lineWidth, shape.radius + lineWidth);
}
else if (type === SHAPES.ELIP)
{
sequenceBounds.addFramePad(shape.x, shape.y, shape.x, shape.y,
shape.width + lineWidth, shape.height + lineWidth);
}
else
{
// adding directly to the bounds
bounds.addVerticesMatrix(curMatrix, shape.points, 0, shape.points.length, lineWidth, lineWidth);
}
}
if (!sequenceBounds.isEmpty())
{
bounds.addBoundsMatrix(sequenceBounds, curMatrix);
}
{
context.closePath();
}
}
else if (data.type === SHAPES.RECT)
{
context.rect(shape.x, shape.y, shape.width, shape.height);
context.closePath();
}
else if (data.type === SHAPES.CIRC)
{
// TODO - need to be Undefined!
context.arc(shape.x, shape.y, shape.radius, 0, 2 * Math.PI);
context.closePath();
}
else if (data.type === SHAPES.ELIP)
{
// ellipse code taken from: http://stackoverflow.com/questions/2172798/how-to-draw-an-oval-in-html5-canvas
const w = shape.width * 2;
const h = shape.height * 2;
const x = shape.x - (w / 2);
const y = shape.y - (h / 2);
const kappa = 0.5522848;
const ox = (w / 2) * kappa; // control point offset horizontal
const oy = (h / 2) * kappa; // control point offset vertical
const xe = x + w; // x-end
const ye = y + h; // y-end
const xm = x + (w / 2); // x-middle
const ym = y + (h / 2); // y-middle
maxY = y + h > maxY ? y + h : maxY;
}
else if (type === SHAPES.CIRC)
{
x = shape.x;
y = shape.y;
w = shape.radius + (lineWidth / 2);
h = shape.radius + (lineWidth / 2);
minX = x - w < minX ? x - w : minX;
maxX = x + w > maxX ? x + w : maxX;
minY = y - h < minY ? y - h : minY;
maxY = y + h > maxY ? y + h : maxY;
}
else if (type === SHAPES.ELIP)
{
x = shape.x;
y = shape.y;
w = shape.width + (lineWidth / 2);
h = shape.height + (lineWidth / 2);
minX = x - w < minX ? x - w : minX;
maxX = x + w > maxX ? x + w : maxX;
minY = y - h < minY ? y - h : minY;
maxY = y + h > maxY ? y + h : maxY;
}
else
{
// POLY
const points = shape.points;
export * from './BezierUtils';
export * from './QuadraticUtils';
export * from './BatchPart';
import { SHAPES } from '@pixi/math';
/**
* Map of fill commands for each shape type.
*
* @memberof PIXI.graphicsUtils
* @member {Object}
*/
export const FILL_COMMANDS = {
[SHAPES.POLY]: buildPoly,
[SHAPES.CIRC]: buildCircle,
[SHAPES.ELIP]: buildCircle,
[SHAPES.RECT]: buildRectangle,
[SHAPES.RREC]: buildRoundedRectangle,
};
/**
* Batch pool, stores unused batches for preventing allocations.
*
* @memberof PIXI.graphicsUtils
* @type {Array}
*/
export const BATCH_POOL = [];
/**
* Draw call pool, stores unused draw calls for preventing allocations.
*
* @memberof PIXI.graphicsUtils