mirror of
https://github.com/wavetermdev/xterm.js.git
synced 2026-08-05 13:43:48 -07:00
Varinat -> Variant
This commit is contained in:
@@ -53,14 +53,14 @@ class ExtendedAttrsImage implements IExtendedAttrsImage {
|
||||
this._ext |= value & (Attributes.CM_MASK | Attributes.RGB_MASK);
|
||||
}
|
||||
|
||||
public get underlineVarinatOffset(): number {
|
||||
public get underlineVariantOffset(): number {
|
||||
const val = (this._ext & ExtFlags.VARIANT_OFFSET) >> 29;
|
||||
if (val < 0) {
|
||||
return val ^ 0xFFFFFFF8;
|
||||
}
|
||||
return val;
|
||||
}
|
||||
public set underlineVarinatOffset(value: number) {
|
||||
public set underlineVariantOffset(value: number) {
|
||||
this._ext &= ~ExtFlags.VARIANT_OFFSET;
|
||||
this._ext |= (value << 29) & ExtFlags.VARIANT_OFFSET;
|
||||
}
|
||||
|
||||
@@ -3,15 +3,15 @@
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
import { computeNextVarinatOffset } from 'browser/renderer/shared/RendererUtils';
|
||||
import { computeNextVariantOffset } from 'browser/renderer/shared/RendererUtils';
|
||||
import { assert } from 'chai';
|
||||
|
||||
describe('RendererUtils', () => {
|
||||
it('computeNextVarinatOffset', () => {
|
||||
it('computeNextVariantOffset', () => {
|
||||
const cellWidth = 11;
|
||||
const doubleCellWidth = 22;
|
||||
let line = 1;
|
||||
let varinatOffset = 0;
|
||||
let variantOffset = 0;
|
||||
|
||||
// should line 1
|
||||
// =,_,=_,=_,
|
||||
@@ -19,32 +19,32 @@ describe('RendererUtils', () => {
|
||||
let result = [1, 0, 0, 0];
|
||||
for (let index = 0; index < cells.length; index++) {
|
||||
const cell = cells[index];
|
||||
varinatOffset = computeNextVarinatOffset(cell, line, varinatOffset);
|
||||
assert.equal(varinatOffset, result[index]);
|
||||
variantOffset = computeNextVariantOffset(cell, line, variantOffset);
|
||||
assert.equal(variantOffset, result[index]);
|
||||
}
|
||||
|
||||
// should line 2
|
||||
// ==__==__==_,_==__==__==,__==__==__==__==__==__,==__==__==__==__==__==,
|
||||
line = 2;
|
||||
varinatOffset = 0;
|
||||
variantOffset = 0;
|
||||
cells = [cellWidth, cellWidth, doubleCellWidth, doubleCellWidth];
|
||||
result = [3, 2, 0 ,2];
|
||||
for (let index = 0; index < cells.length; index++) {
|
||||
const cell = cells[index];
|
||||
varinatOffset = computeNextVarinatOffset(cell, line, varinatOffset);
|
||||
assert.equal(varinatOffset, result[index]);
|
||||
variantOffset = computeNextVariantOffset(cell, line, variantOffset);
|
||||
assert.equal(variantOffset, result[index]);
|
||||
}
|
||||
|
||||
// should line 3
|
||||
// ===___===__,_===___===_,__===___===___===___==,=___===___===___===___,
|
||||
line = 3;
|
||||
varinatOffset = 0;
|
||||
variantOffset = 0;
|
||||
cells = [cellWidth, cellWidth, doubleCellWidth, doubleCellWidth];
|
||||
result = [5, 4, 2, 0];
|
||||
for (let index = 0; index < cells.length; index++) {
|
||||
const cell = cells[index];
|
||||
varinatOffset = computeNextVarinatOffset(cell, line, varinatOffset);
|
||||
assert.equal(varinatOffset, result[index]);
|
||||
variantOffset = computeNextVariantOffset(cell, line, variantOffset);
|
||||
assert.equal(variantOffset, result[index]);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -57,6 +57,6 @@ function createDimension(): IDimensions {
|
||||
};
|
||||
}
|
||||
|
||||
export function computeNextVarinatOffset(cellWidth: number, lineWidth: number, currentOffset: number = 0): number {
|
||||
export function computeNextVariantOffset(cellWidth: number, lineWidth: number, currentOffset: number = 0): number {
|
||||
return (cellWidth - (Math.round(lineWidth) * 2 - currentOffset)) % (Math.round(lineWidth) * 2);
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
import { IColorContrastCache } from 'browser/Types';
|
||||
import { DIM_OPACITY, TEXT_BASELINE } from 'browser/renderer/shared/Constants';
|
||||
import { tryDrawCustomChar } from 'browser/renderer/shared/CustomGlyphs';
|
||||
import { computeNextVarinatOffset, excludeFromContrastRatioDemands, isPowerlineGlyph, isRestrictedPowerlineGlyph, throwIfFalsy } from 'browser/renderer/shared/RendererUtils';
|
||||
import { computeNextVariantOffset, excludeFromContrastRatioDemands, isPowerlineGlyph, isRestrictedPowerlineGlyph, throwIfFalsy } from 'browser/renderer/shared/RendererUtils';
|
||||
import { IBoundingBox, ICharAtlasConfig, IRasterizedGlyph, ITextureAtlas } from 'browser/renderer/shared/Types';
|
||||
import { NULL_COLOR, color, rgba } from 'common/Color';
|
||||
import { EventEmitter } from 'common/EventEmitter';
|
||||
@@ -545,7 +545,7 @@ export class TextureAtlas implements ITextureAtlas {
|
||||
const yTop = Math.ceil(padding + this._config.deviceCharHeight) - yOffset - (restrictToCellHeight ? lineWidth * 2 : 0);
|
||||
const yMid = yTop + lineWidth;
|
||||
const yBot = yTop + lineWidth * 2;
|
||||
let nextOffset = this._workAttributeData.getUnderlineVarinatOffset();
|
||||
let nextOffset = this._workAttributeData.getUnderlineVariantOffset();
|
||||
|
||||
for (let i = 0; i < chWidth; i++) {
|
||||
this._tmpCtx.save();
|
||||
@@ -610,7 +610,7 @@ export class TextureAtlas implements ITextureAtlas {
|
||||
this._tmpCtx.moveTo(xChLeft + offsetWidth + lineWidth, yTop);
|
||||
this._tmpCtx.lineTo(xChRight, yTop);
|
||||
}
|
||||
nextOffset = computeNextVarinatOffset(xChRight - xChLeft, lineWidth, nextOffset);
|
||||
nextOffset = computeNextVariantOffset(xChRight - xChLeft, lineWidth, nextOffset);
|
||||
break;
|
||||
case UnderlineStyle.DASHED:
|
||||
this._tmpCtx.setLineDash([this._config.devicePixelRatio * 4, this._config.devicePixelRatio * 3]);
|
||||
|
||||
Vendored
+2
-2
@@ -119,7 +119,7 @@ export interface IExtendedAttrs {
|
||||
ext: number;
|
||||
underlineStyle: UnderlineStyle;
|
||||
underlineColor: number;
|
||||
underlineVarinatOffset: number;
|
||||
underlineVariantOffset: number;
|
||||
urlId: number;
|
||||
clone(): IExtendedAttrs;
|
||||
isEmpty(): boolean;
|
||||
@@ -210,7 +210,7 @@ export interface IAttributeData {
|
||||
isUnderlineColorPalette(): boolean;
|
||||
isUnderlineColorDefault(): boolean;
|
||||
getUnderlineStyle(): number;
|
||||
getUnderlineVarinatOffset(): number;
|
||||
getUnderlineVariantOffset(): number;
|
||||
}
|
||||
|
||||
/** Cell data */
|
||||
|
||||
@@ -126,8 +126,8 @@ export class AttributeData implements IAttributeData {
|
||||
? (this.bg & BgFlags.HAS_EXTENDED ? this.extended.underlineStyle : UnderlineStyle.SINGLE)
|
||||
: UnderlineStyle.NONE;
|
||||
}
|
||||
public getUnderlineVarinatOffset(): number {
|
||||
return this.extended.underlineVarinatOffset;
|
||||
public getUnderlineVariantOffset(): number {
|
||||
return this.extended.underlineVariantOffset;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -177,14 +177,14 @@ export class ExtendedAttrs implements IExtendedAttrs {
|
||||
this._urlId = value;
|
||||
}
|
||||
|
||||
public get underlineVarinatOffset(): number {
|
||||
public get underlineVariantOffset(): number {
|
||||
const val = (this._ext & ExtFlags.VARIANT_OFFSET) >> 29;
|
||||
if (val < 0) {
|
||||
return val ^ 0xFFFFFFF8;
|
||||
}
|
||||
return val;
|
||||
}
|
||||
public set underlineVarinatOffset(value: number) {
|
||||
public set underlineVariantOffset(value: number) {
|
||||
this._ext &= ~ExtFlags.VARIANT_OFFSET;
|
||||
this._ext |= (value << 29) & ExtFlags.VARIANT_OFFSET;
|
||||
}
|
||||
|
||||
@@ -119,16 +119,16 @@ describe('AttributeData', () => {
|
||||
attrs.fg &= ~FgFlags.UNDERLINE;
|
||||
assert.equal(attrs.getUnderlineStyle(), UnderlineStyle.NONE);
|
||||
});
|
||||
it('getUnderlineVarinatOffset', () => {
|
||||
it('getUnderlineVariantOffset', () => {
|
||||
const attrs = new AttributeData();
|
||||
|
||||
// defaults to no offset
|
||||
assert.equal(attrs.getUnderlineVarinatOffset(), 0);
|
||||
assert.equal(attrs.getUnderlineVariantOffset(), 0);
|
||||
|
||||
// should return 0 - 7
|
||||
for (let i = 0; i < 8; ++i) {
|
||||
attrs.extended.underlineVarinatOffset = i;
|
||||
assert.equal(attrs.getUnderlineVarinatOffset(), i);
|
||||
attrs.extended.underlineVariantOffset = i;
|
||||
assert.equal(attrs.getUnderlineVariantOffset(), i);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user