diff --git a/src/Buffer.ts b/src/Buffer.ts index 0f75bdad..dd657a2a 100644 --- a/src/Buffer.ts +++ b/src/Buffer.ts @@ -7,7 +7,7 @@ import { CircularList } from './common/CircularList'; import { CharData, ITerminal, IBuffer, IBufferLine, BufferIndex, IBufferStringIterator, IBufferStringIteratorResult, IBufferLineConstructor } from './Types'; import { EventEmitter } from './common/EventEmitter'; import { IMarker } from 'xterm'; -import { BufferLine, BufferLineTypedArray } from './BufferLine'; +import { BufferLine, BufferLineJSArray } from './BufferLine'; import { DEFAULT_COLOR } from './renderer/atlas/Types'; export const DEFAULT_ATTR = (0 << 18) | (DEFAULT_COLOR << 9) | (256 << 0); @@ -57,9 +57,9 @@ export class Buffer implements IBuffer { } public setBufferLineFactory(type: string): void { - if (type === 'TypedArray') { - if (this._bufferLineConstructor !== BufferLineTypedArray) { - this._bufferLineConstructor = BufferLineTypedArray; + if (type === 'JsArray') { + if (this._bufferLineConstructor !== BufferLineJSArray) { + this._bufferLineConstructor = BufferLineJSArray; this._recreateLines(); } } else { diff --git a/src/BufferLine.ts b/src/BufferLine.ts index 7c697334..d1f1b23a 100644 --- a/src/BufferLine.ts +++ b/src/BufferLine.ts @@ -7,8 +7,9 @@ import { NULL_CELL_CODE, NULL_CELL_WIDTH, NULL_CELL_CHAR } from './Buffer'; /** * Class representing a terminal line. + * @deprecated */ -export class BufferLine implements IBufferLine { +export class BufferLineJSArray implements IBufferLine { protected _data: CharData[]; public isWrapped = false; public length: number; @@ -94,14 +95,14 @@ export class BufferLine implements IBufferLine { } } - public copyFrom(line: BufferLine): void { + public copyFrom(line: BufferLineJSArray): void { this._data = line._data.slice(0); this.length = line.length; this.isWrapped = line.isWrapped; } public clone(): IBufferLine { - const newLine = new BufferLine(0); + const newLine = new BufferLineJSArray(0); newLine.copyFrom(this); return newLine; } @@ -129,7 +130,7 @@ const enum Cell { * TODO: * - provide getData/setData to directly access the data */ -export class BufferLineTypedArray implements IBufferLine { +export class BufferLine implements IBufferLine { protected _data: Uint32Array | null = null; protected _combined: {[index: number]: string} = {}; public length: number; @@ -248,7 +249,7 @@ export class BufferLineTypedArray implements IBufferLine { } /** alter to a full copy of line */ - public copyFrom(line: BufferLineTypedArray): void { + public copyFrom(line: BufferLine): void { if (this.length !== line.length) { this._data = new Uint32Array(line._data); } else { @@ -265,7 +266,7 @@ export class BufferLineTypedArray implements IBufferLine { /** create a new clone */ public clone(): IBufferLine { - const newLine = new BufferLineTypedArray(0); + const newLine = new BufferLine(0); // creation of new typed array from another is actually pretty slow :( // still faster than copying values one by one newLine._data = new Uint32Array(this._data); diff --git a/src/Terminal.ts b/src/Terminal.ts index e374f2cd..2cfc1ca8 100644 --- a/src/Terminal.ts +++ b/src/Terminal.ts @@ -106,7 +106,7 @@ const DEFAULT_OPTIONS: ITerminalOptions = { theme: null, rightClickSelectsWord: Browser.isMac, rendererType: 'canvas', - experimentalBufferLineImpl: 'JsArray' + experimentalBufferLineImpl: 'TypedArray' }; export class Terminal extends EventEmitter implements ITerminal, IDisposable, IInputHandlingTerminal { @@ -1179,7 +1179,7 @@ export class Terminal extends EventEmitter implements ITerminal, IDisposable, II */ public scroll(isWrapped: boolean = false): void { let newLine: IBufferLine; - const useRecycling = this.options.experimentalBufferLineImpl === 'TypedArray'; + const useRecycling = this.options.experimentalBufferLineImpl !== 'JsArray'; if (useRecycling) { newLine = this._blankLine; if (!newLine || newLine.length !== this.cols || newLine.get(0)[CHAR_DATA_ATTR_INDEX] !== this.eraseAttr()) {