add a helper to make color opaque

This commit is contained in:
ivanwonder
2019-11-12 10:06:51 +08:00
parent 5bc80fdf67
commit fd868044fd
4 changed files with 37 additions and 13 deletions
@@ -11,7 +11,7 @@ import { LRUMap } from 'browser/renderer/atlas/LRUMap';
import { isFirefox, isSafari } from 'common/Platform';
import { IColor } from 'browser/Types';
import { throwIfFalsy } from 'browser/renderer/RendererUtils';
import { fromRgba, toCss } from 'browser/Color';
import { opaque } from 'browser/Color';
// In practice we're probably never going to exhaust a texture this large. For debugging purposes,
// however, it can be useful to set this to a really tiny value, to verify that LRU eviction works.
@@ -223,7 +223,7 @@ export class DynamicCharAtlas extends BaseCharAtlas {
private _getForegroundColor(glyph: IGlyphIdentifier): IColor {
if (glyph.fg === INVERTED_DEFAULT_COLOR) {
return this._config.colors.background;
return opaque(this._config.colors.background);
} else if (glyph.fg < 256) {
// 256 color support
return this._getColorFromAnsiIndex(glyph.fg);
@@ -254,13 +254,7 @@ export class DynamicCharAtlas extends BaseCharAtlas {
`${fontStyle} ${fontWeight} ${this._config.fontSize * this._config.devicePixelRatio}px ${this._config.fontFamily}`;
this._tmpCtx.textBaseline = 'middle';
const fgColor = this._getForegroundColor(glyph);
this._tmpCtx.fillStyle = fgColor.css;
if (glyph.fg === INVERTED_DEFAULT_COLOR) {
const rgba = fromRgba(fgColor.rgba);
this._tmpCtx.fillStyle = toCss(rgba[0], rgba[1], rgba[2]);
}
this._tmpCtx.fillStyle = this._getForegroundColor(glyph).css;
// Apply alpha to dim the character
if (glyph.dim) {