mirror of
https://github.com/wavetermdev/xterm.js.git
synced 2026-08-05 13:43:48 -07:00
Ensure CharMeasure exposes integers
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user