Ensure CharMeasure exposes integers

This commit is contained in:
Daniel Imms
2017-08-31 23:23:04 -07:00
parent 42e5b3473d
commit 81d93b8fbf
3 changed files with 10 additions and 13 deletions
+4 -6
View File
@@ -28,8 +28,8 @@ export abstract class BaseRenderLayer implements IRenderLayer {
}
public resize(terminal: ITerminal, canvasWidth: number, canvasHeight: number, charSizeChanged: boolean): void {
this.scaledCharWidth = Math.ceil(terminal.charMeasure.width) * window.devicePixelRatio;
this.scaledCharHeight = Math.ceil(terminal.charMeasure.height) * window.devicePixelRatio;
this.scaledCharWidth = terminal.charMeasure.width * window.devicePixelRatio;
this.scaledCharHeight = terminal.charMeasure.height * window.devicePixelRatio;
this._canvas.width = canvasWidth * window.devicePixelRatio;
this._canvas.height = canvasHeight * window.devicePixelRatio;
this._canvas.style.width = `${canvasWidth}px`;
@@ -43,7 +43,7 @@ export abstract class BaseRenderLayer implements IRenderLayer {
BaseRenderLayer._charAtlas = null;
BaseRenderLayer._charAtlasCharWidth = terminal.charMeasure.width;
BaseRenderLayer._charAtlasCharHeight = terminal.charMeasure.height;
BaseRenderLayer._charAtlasGenerator.generate(terminal, terminal.charMeasure.width, terminal.charMeasure.height).then(bitmap => {
BaseRenderLayer._charAtlasGenerator.generate(terminal, this.scaledCharWidth, this.scaledCharHeight).then(bitmap => {
BaseRenderLayer._charAtlas = bitmap;
});
}
@@ -109,9 +109,7 @@ class CharAtlasGenerator {
this._ctx.scale(window.devicePixelRatio, window.devicePixelRatio);
}
public generate(terminal: ITerminal, charWidth: number, charHeight: number): Promise<ImageBitmap> {
const scaledCharWidth = Math.ceil(charWidth) * window.devicePixelRatio;
const scaledCharHeight = Math.ceil(charHeight) * window.devicePixelRatio;
public generate(terminal: ITerminal, scaledCharWidth: number, scaledCharHeight: number): Promise<ImageBitmap> {
this._canvas.width = 255 * scaledCharWidth;
this._canvas.height = (/*default*/1 + /*0-15*/16) * scaledCharHeight;
+4 -5
View File
@@ -32,17 +32,16 @@ export class Renderer {
}
public onResize(cols: number, rows: number): void {
const width = Math.ceil(this._terminal.charMeasure.width) * this._terminal.cols;
const height = Math.ceil(this._terminal.charMeasure.height) * this._terminal.rows;
const width = this._terminal.charMeasure.width * this._terminal.cols;
const height = this._terminal.charMeasure.height * this._terminal.rows;
for (let i = 0; i < this._dataRenderLayers.length; i++) {
this._dataRenderLayers[i].resize(this._terminal, width, height, false);
}
}
public onCharSizeChanged(charWidth: number, charHeight: number): void {
console.log('Renderer.onCharSizeChanged', charWidth, charHeight);
const width = Math.ceil(charWidth) * this._terminal.cols;
const height = Math.ceil(charHeight) * this._terminal.rows;
const width = charWidth * this._terminal.cols;
const height = charHeight * this._terminal.rows;
for (let i = 0; i < this._dataRenderLayers.length; i++) {
this._dataRenderLayers[i].resize(this._terminal, width, height, true);
}
+2 -2
View File
@@ -59,8 +59,8 @@ export class CharMeasure extends EventEmitter implements ICharMeasure {
return;
}
if (this._width !== geometry.width || this._height !== geometry.height) {
this._width = geometry.width;
this._height = geometry.height;
this._width = Math.ceil(geometry.width);
this._height = Math.ceil(geometry.height);
this.emit('charsizechanged');
}
}