Add WebGL support

This commit is contained in:
Will Owens 2022-02-27 21:36:46 -05:00
parent d8c1de5116
commit 84235c20fa
7 changed files with 47 additions and 5 deletions

17
js/package-lock.json generated
View file

@ -7,7 +7,8 @@
"dependencies": {
"libapps": "github:yudai/libapps#release-hterm-1.70",
"xterm": "^4.17",
"xterm-addon-fit": "^0.5.0"
"xterm-addon-fit": "^0.5.0",
"xterm-addon-webgl": "^0.11.4"
},
"devDependencies": {
"license-loader": "^0.5.0",
@ -1568,6 +1569,14 @@
"peerDependencies": {
"xterm": "^4.0.0"
}
},
"node_modules/xterm-addon-webgl": {
"version": "0.11.4",
"resolved": "https://registry.npmjs.org/xterm-addon-webgl/-/xterm-addon-webgl-0.11.4.tgz",
"integrity": "sha512-/a/VFeftc+etGXQYWaaks977j1P7/wickBXn15zDxZzXYYMT9RN17ztqyIDVLXg9krtg28+icKK6lvgIYghJ0w==",
"peerDependencies": {
"xterm": "^4.0.0"
}
}
},
"dependencies": {
@ -2740,6 +2749,12 @@
"resolved": "https://registry.npmjs.org/xterm-addon-fit/-/xterm-addon-fit-0.5.0.tgz",
"integrity": "sha512-DsS9fqhXHacEmsPxBJZvfj2la30Iz9xk+UKjhQgnYNkrUIN5CYLbw7WEfz117c7+S86S/tpHPfvNxJsF5/G8wQ==",
"requires": {}
},
"xterm-addon-webgl": {
"version": "0.11.4",
"resolved": "https://registry.npmjs.org/xterm-addon-webgl/-/xterm-addon-webgl-0.11.4.tgz",
"integrity": "sha512-/a/VFeftc+etGXQYWaaks977j1P7/wickBXn15zDxZzXYYMT9RN17ztqyIDVLXg9krtg28+icKK6lvgIYghJ0w==",
"requires": {}
}
}
}

View file

@ -9,6 +9,7 @@
"dependencies": {
"libapps": "github:yudai/libapps#release-hterm-1.70",
"xterm": "^4.17",
"xterm-addon-fit": "^0.5.0"
"xterm-addon-fit": "^0.5.0",
"xterm-addon-webgl": "^0.11.4"
}
}

View file

@ -52,9 +52,11 @@ export class Hterm {
};
setPreferences(value: object) {
Object.keys(value).forEach((key) => {
this.term.getPrefs().set(key, value[key]);
});
Object.keys(value).forEach((key) => {
if (key != "enable-webgl") {
this.term.getPrefs().set(key, value[key]);
}
});
};
onInput(callback: (input: string) => void) {

View file

@ -2,6 +2,7 @@ import {lib} from "libapps";
import {IDisposable, Terminal} from 'xterm';
import {FitAddon} from "xterm-addon-fit";
import {WebglAddon} from "xterm-addon-webgl";
export class Xterm {
@ -84,6 +85,11 @@ export class Xterm {
};
setPreferences(value: object) {
Object.keys(value).forEach((key) => {
if (key && key == "enable-webgl") {
this.term.loadAddon(new WebglAddon());
}
});
};
onInput(callback: (input: string) => void) {