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