mirror of
https://github.com/wavetermdev/waveterm.git
synced 2025-03-09 13:00:53 +01:00
add stub imagerenderer code
This commit is contained in:
parent
c87d4f787c
commit
2a1dcd97e9
71
src/imagerenderer.ts
Normal file
71
src/imagerenderer.ts
Normal file
@ -0,0 +1,71 @@
|
||||
import * as mobx from "mobx";
|
||||
import {WindowSize} from "./types";
|
||||
|
||||
const InitialSize = 10*1024;
|
||||
const IncreaseFactor = 1.5;
|
||||
|
||||
class ImageRenderer {
|
||||
dataSize : number;
|
||||
imageData : Uint8Array;
|
||||
brokenData : boolean;
|
||||
isDone : mobx.IObservableValue<boolean>;
|
||||
|
||||
constructor() {
|
||||
this._resetData();
|
||||
this.isDone = mobx.observable.box(false, {name: "isDone"});
|
||||
}
|
||||
|
||||
_resetData() {
|
||||
this.dataSize = 0;
|
||||
this.imageData = new Uint8Array(InitialSize);
|
||||
this.brokenData = false;
|
||||
}
|
||||
|
||||
dispose() : void {
|
||||
this._resetData();
|
||||
}
|
||||
|
||||
reload(delayMs : number) : void {
|
||||
}
|
||||
|
||||
_growArray(minSize : number) : void {
|
||||
let newSize = Math.round(this.imageData.length * IncreaseFactor);
|
||||
if (newSize < minSize) {
|
||||
newSize = minSize;
|
||||
}
|
||||
let newData = new Uint8Array(newSize);
|
||||
newData.set(this.imageData);
|
||||
this.imageData = newData;
|
||||
}
|
||||
|
||||
receiveData(pos : number, data : Uint8Array, reason? : string) : void {
|
||||
if (pos != this.dataSize) {
|
||||
this.brokenData = true;
|
||||
return;
|
||||
}
|
||||
if (this.dataSize + data.length > this.imageData.length) {
|
||||
this._growArray(this.dataSize + data.length);
|
||||
}
|
||||
this.imageData.set(data, pos);
|
||||
this.dataSize += data.length;
|
||||
}
|
||||
|
||||
cmdDone() : void {
|
||||
}
|
||||
|
||||
resizeWindow(size : WindowSize) : void {
|
||||
}
|
||||
|
||||
resizeCols(cols : number) : void {
|
||||
}
|
||||
|
||||
giveFocus() : void {
|
||||
}
|
||||
|
||||
getUsedRows() : number {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
export {ImageRenderer};
|
||||
|
Loading…
Reference in New Issue
Block a user