Cleanup executor of unused properties

This commit is contained in:
Guillaume Beraudo
2018-11-15 11:18:22 +01:00
parent 4ba84d7926
commit 87a1b926c9

View File

@@ -173,35 +173,16 @@ class CanvasInstructionsExecutor {
*/ */
this.viewRotation_ = 0; this.viewRotation_ = 0;
////////////// Below is code copied from TextReplay ////////////
/**
* @private
* @type {?import("../canvas.js").FillState}
*/
this.textFillState_ = null;
/** /**
* @type {!Object<string, import("../canvas.js").FillState>} * @type {!Object<string, import("../canvas.js").FillState>}
*/ */
this.fillStates = {}; this.fillStates = {};
/**
* @private
* @type {?import("../canvas.js").StrokeState}
*/
this.textStrokeState_ = null;
/** /**
* @type {!Object<string, import("../canvas.js").StrokeState>} * @type {!Object<string, import("../canvas.js").StrokeState>}
*/ */
this.strokeStates = {}; this.strokeStates = {};
/**
* @private
* @type {import("../canvas.js").TextState}
*/
this.textState_ = /** @type {import("../canvas.js").TextState} */ ({});
/** /**
* @type {!Object<string, import("../canvas.js").TextState>} * @type {!Object<string, import("../canvas.js").TextState>}
*/ */
@@ -224,14 +205,14 @@ class CanvasInstructionsExecutor {
* @param {string} strokeKey Stroke style key. * @param {string} strokeKey Stroke style key.
* @return {HTMLCanvasElement} Image. * @return {HTMLCanvasElement} Image.
*/ */
getImage(text, textKey, fillKey, strokeKey) { getTextImage(text, textKey, fillKey, strokeKey) {
let label; let label;
const key = strokeKey + textKey + text + fillKey + this.pixelRatio; const key = strokeKey + textKey + text + fillKey + this.pixelRatio;
if (!labelCache.containsKey(key)) { if (!labelCache.containsKey(key)) {
const strokeState = strokeKey ? this.strokeStates[strokeKey] || this.textStrokeState_ : null; const strokeState = strokeKey ? this.strokeStates[strokeKey] : null;
const fillState = fillKey ? this.fillStates[fillKey] || this.textFillState_ : null; const fillState = fillKey ? this.fillStates[fillKey] : null;
const textState = this.textStates[textKey] || this.textState_; const textState = this.textStates[textKey];
const pixelRatio = this.pixelRatio; const pixelRatio = this.pixelRatio;
const scale = textState.scale * pixelRatio; const scale = textState.scale * pixelRatio;
const align = TEXT_ALIGN[textState.textAlign || defaultTextAlign]; const align = TEXT_ALIGN[textState.textAlign || defaultTextAlign];
@@ -286,8 +267,6 @@ class CanvasInstructionsExecutor {
return labelCache.get(key); return labelCache.get(key);
} }
////////////// Above is code from TextReplay //////////////////
/** /**
* Recreate replays and populate them using the provided instructions. * Recreate replays and populate them using the provided instructions.
* @param {SerializableInstructions} instructions The serializable instructions * @param {SerializableInstructions} instructions The serializable instructions
@@ -536,7 +515,7 @@ class CanvasInstructionsExecutor {
drawTextImageWithPointPlacement_(text, textKey, strokeKey, fillKey) { drawTextImageWithPointPlacement_(text, textKey, strokeKey, fillKey) {
const textState = this.textStates[textKey]; const textState = this.textStates[textKey];
const label = this.getImage(text, textKey, fillKey, strokeKey); const label = this.getTextImage(text, textKey, fillKey, strokeKey);
const strokeState = this.strokeStates[strokeKey]; // FIXME: check if it is correct, was this.textStrokeState_; const strokeState = this.strokeStates[strokeKey]; // FIXME: check if it is correct, was this.textStrokeState_;
const pixelRatio = this.pixelRatio; const pixelRatio = this.pixelRatio;
@@ -793,8 +772,7 @@ class CanvasInstructionsExecutor {
const pathLength = lineStringLength(pixelCoordinates, begin, end, 2); const pathLength = lineStringLength(pixelCoordinates, begin, end, 2);
const textLength = measure(text); const textLength = measure(text);
if (overflow || textLength <= pathLength) { if (overflow || textLength <= pathLength) {
const textReplay = this; const textAlign = this.textStates[textKey].textAlign;
const textAlign = textReplay.textStates[textKey].textAlign;
const startM = (pathLength - textLength) * TEXT_ALIGN[textAlign]; const startM = (pathLength - textLength) * TEXT_ALIGN[textAlign];
const parts = drawTextOnPath( const parts = drawTextOnPath(
pixelCoordinates, begin, end, 2, text, measure, startM, maxAngle); pixelCoordinates, begin, end, 2, text, measure, startM, maxAngle);
@@ -804,7 +782,7 @@ class CanvasInstructionsExecutor {
for (c = 0, cc = parts.length; c < cc; ++c) { for (c = 0, cc = parts.length; c < cc; ++c) {
part = parts[c]; // x, y, anchorX, rotation, chunk part = parts[c]; // x, y, anchorX, rotation, chunk
chars = /** @type {string} */ (part[4]); chars = /** @type {string} */ (part[4]);
label = textReplay.getImage(chars, textKey, '', strokeKey); label = this.getTextImage(chars, textKey, '', strokeKey);
anchorX = /** @type {number} */ (part[2]) + strokeWidth; anchorX = /** @type {number} */ (part[2]) + strokeWidth;
anchorY = baseline * label.height + (0.5 - baseline) * 2 * strokeWidth - offsetY; anchorY = baseline * label.height + (0.5 - baseline) * 2 * strokeWidth - offsetY;
this.replayImage_(context, this.replayImage_(context,
@@ -818,7 +796,7 @@ class CanvasInstructionsExecutor {
for (c = 0, cc = parts.length; c < cc; ++c) { for (c = 0, cc = parts.length; c < cc; ++c) {
part = parts[c]; // x, y, anchorX, rotation, chunk part = parts[c]; // x, y, anchorX, rotation, chunk
chars = /** @type {string} */ (part[4]); chars = /** @type {string} */ (part[4]);
label = textReplay.getImage(chars, textKey, fillKey, ''); label = this.getTextImage(chars, textKey, fillKey, '');
anchorX = /** @type {number} */ (part[2]); anchorX = /** @type {number} */ (part[2]);
anchorY = baseline * label.height - offsetY; anchorY = baseline * label.height - offsetY;
this.replayImage_(context, this.replayImage_(context,