@@ -13,7 +13,7 @@ import { ICharSizeService, ICharacterJoinerService, ICoreBrowserService, IThemeS
1313import { CharData , IBufferLine , ICellData } from 'common/Types' ;
1414import { AttributeData } from 'common/buffer/AttributeData' ;
1515import { CellData } from 'common/buffer/CellData' ;
16- import { Attributes , Content , NULL_CELL_CHAR , NULL_CELL_CODE } from 'common/buffer/Constants' ;
16+ import { Attributes , Content , ExtFlags , NULL_CELL_CHAR , NULL_CELL_CODE } from 'common/buffer/Constants' ;
1717import { ICoreService , IDecorationService , IOptionsService } from 'common/services/Services' ;
1818import { Terminal } from '@xterm/xterm' ;
1919import { GlyphRenderer } from './GlyphRenderer' ;
@@ -26,6 +26,7 @@ import { Emitter, EventUtils } from 'common/Event';
2626import { addDisposableListener } from 'vs/base/browser/dom' ;
2727import { combinedDisposable , Disposable , MutableDisposable , toDisposable } from 'common/Lifecycle' ;
2828import { createRenderDimensions } from 'browser/renderer/shared/RendererUtils' ;
29+ import { blockPatternCodepoints } from './customGlyphs/CustomGlyphDefinitions' ;
2930
3031export class WebglRenderer extends Disposable implements IRenderer {
3132 private _renderLayers : IRenderLayer [ ] ;
@@ -478,7 +479,12 @@ export class WebglRenderer extends Disposable implements IRenderer {
478479 i = ( ( y * terminal . cols ) + x ) * RENDER_MODEL_INDICIES_PER_CELL ;
479480
480481 // Load colors/resolve overrides into work colors
481- this . _cellColorResolver . resolve ( cell , x , row , this . dimensions . device . cell . width , this . dimensions . device . cell . height ) ;
482+ this . _cellColorResolver . resolve ( cell , x , row , this . dimensions . device . cell . width ) ;
483+ if ( ( this . _cellColorResolver . result . ext & ExtFlags . VARIANT_OFFSET ) === 0 && blockPatternCodepoints . has ( code ) ) {
484+ const variantOffset = ( ( x * this . dimensions . device . cell . width ) % 2 ) * 2 + ( ( row * this . dimensions . device . cell . height ) % 2 ) ;
485+ this . _cellColorResolver . result . ext &= ~ ExtFlags . VARIANT_OFFSET ;
486+ this . _cellColorResolver . result . ext |= ( variantOffset << 29 ) & ExtFlags . VARIANT_OFFSET ;
487+ }
482488
483489 // Override colors for cursor cell
484490 if ( isCursorVisible && row === cursorY ) {
0 commit comments