Skip to content

Commit

Permalink
Make a new empty array instead of shift
Browse files Browse the repository at this point in the history
  • Loading branch information
Tyriar committed Sep 22, 2018
1 parent 750ec38 commit 16c0ad8
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions src/renderer/atlas/DynamicCharAtlas.ts
Expand Up @@ -74,7 +74,7 @@ export default class DynamicCharAtlas extends BaseCharAtlas {
private _drawToCacheCount: number = 0;

// An array of glyph keys that are waiting on the bitmap to be generated.
private _glyphsWaitingOnBitmapQueue: IGlyphCacheValue[] = [];
private _glyphsWaitingOnBitmap: IGlyphCacheValue[] = [];

// The timeout that is used to batch bitmap generation so it's not requested for every new glyph.
private _bitmapCommitTimeout: number | null = null;
Expand Down Expand Up @@ -295,7 +295,7 @@ export default class DynamicCharAtlas extends BaseCharAtlas {
}

// Add the glyph to the queue
this._glyphsWaitingOnBitmapQueue.push(cacheValue);
this._glyphsWaitingOnBitmap.push(cacheValue);

// Check if bitmap generation timeout already exists
if (this._bitmapCommitTimeout !== null) {
Expand All @@ -306,15 +306,16 @@ export default class DynamicCharAtlas extends BaseCharAtlas {
}

private _generateBitmap(): void {
let countAtGeneration = this._glyphsWaitingOnBitmapQueue.length;
const glyphsMovingToBitmap = this._glyphsWaitingOnBitmap;
this._glyphsWaitingOnBitmap = [];
window.createImageBitmap(this._cacheCanvas).then(bitmap => {
// Set bitmap
this._bitmap = bitmap;

// Mark all new glyphs as in bitmap, excluding glyphs that came in after
// the bitmap was requested
while (countAtGeneration-- > 0) {
const value = this._glyphsWaitingOnBitmapQueue.shift();
for (let i = 0; i < glyphsMovingToBitmap.length; i++) {
const value = glyphsMovingToBitmap[i];
// It doesn't matter if the value was already evicted, it will be
// released from memory after this block if so.
value.inBitmap = true;
Expand Down

0 comments on commit 16c0ad8

Please sign in to comment.