Skip to content

Commit

Permalink
Implement webgl renderer dispose
Browse files Browse the repository at this point in the history
  • Loading branch information
Tyriar committed Nov 9, 2019
1 parent b68a4d2 commit bcd4c76
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions addons/xterm-addon-webgl/src/WebglAddon.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,28 @@ import { IRenderService } from 'browser/services/Services';
import { IColorSet } from 'browser/Types';

export class WebglAddon implements ITerminalAddon {
private _terminal?: Terminal;

constructor(
private _preserveDrawingBuffer?: boolean
) {}

public activate(terminal: Terminal): void {
if (!terminal.element) {
throw new Error('Cannot activate WebglRendererAddon before Terminal.open');
throw new Error('Cannot activate WebglAddon before Terminal.open');
}
this._terminal = terminal;
const renderService: IRenderService = (<any>terminal)._core._renderService;
const colors: IColorSet = (<any>terminal)._core._colorManager.colors;
renderService.setRenderer(new WebglRenderer(terminal, colors, this._preserveDrawingBuffer));
}

public dispose(): void {
throw new Error('WebglRendererAddon.dispose Not yet implemented');
if (!this._terminal) {
throw new Error('Cannot dispose WebglAddon because it is activated');
}
const renderService: IRenderService = (<any>this._terminal)._core._renderService;
renderService.setRenderer((<any>this._terminal)._core._createRenderer());
renderService.onResize(this._terminal.cols, this._terminal.rows);
}
}

0 comments on commit bcd4c76

Please sign in to comment.