aboutsummaryrefslogtreecommitdiffstats
path: root/node_modules/xterm/src/browser/renderer/atlas/BaseCharAtlas.ts
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/xterm/src/browser/renderer/atlas/BaseCharAtlas.ts')
-rw-r--r--node_modules/xterm/src/browser/renderer/atlas/BaseCharAtlas.ts58
1 files changed, 58 insertions, 0 deletions
diff --git a/node_modules/xterm/src/browser/renderer/atlas/BaseCharAtlas.ts b/node_modules/xterm/src/browser/renderer/atlas/BaseCharAtlas.ts
new file mode 100644
index 0000000..83c30d2
--- /dev/null
+++ b/node_modules/xterm/src/browser/renderer/atlas/BaseCharAtlas.ts
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2017 The xterm.js authors. All rights reserved.
+ * @license MIT
+ */
+
+import { IGlyphIdentifier } from 'browser/renderer/atlas/Types';
+import { IDisposable } from 'common/Types';
+
+export abstract class BaseCharAtlas implements IDisposable {
+ private _didWarmUp: boolean = false;
+
+ public dispose(): void { }
+
+ /**
+ * Perform any work needed to warm the cache before it can be used. May be called multiple times.
+ * Implement _doWarmUp instead if you only want to get called once.
+ */
+ public warmUp(): void {
+ if (!this._didWarmUp) {
+ this._doWarmUp();
+ this._didWarmUp = true;
+ }
+ }
+
+ /**
+ * Perform any work needed to warm the cache before it can be used. Used by the default
+ * implementation of warmUp(), and will only be called once.
+ */
+ private _doWarmUp(): void { }
+
+ public clear(): void { }
+
+ /**
+ * Called when we start drawing a new frame.
+ *
+ * TODO: We rely on this getting called by TextRenderLayer. This should really be called by
+ * Renderer instead, but we need to make Renderer the source-of-truth for the char atlas, instead
+ * of BaseRenderLayer.
+ */
+ public beginFrame(): void { }
+
+ /**
+ * May be called before warmUp finishes, however it is okay for the implementation to
+ * do nothing and return false in that case.
+ *
+ * @param ctx Where to draw the character onto.
+ * @param glyph Information about what to draw
+ * @param x The position on the context to start drawing at
+ * @param y The position on the context to start drawing at
+ * @returns The success state. True if we drew the character.
+ */
+ public abstract draw(
+ ctx: CanvasRenderingContext2D,
+ glyph: IGlyphIdentifier,
+ x: number,
+ y: number
+ ): boolean;
+}