Merge branch 'master' into perf/csi-fast-path

This commit is contained in:
jerch
2026-04-23 15:53:21 +02:00
committed by GitHub
4 changed files with 24 additions and 3 deletions
+1 -1
View File
@@ -30,7 +30,7 @@ import { createRenderDimensions } from 'browser/renderer/shared/RendererUtils';
export class WebglRenderer extends Disposable implements IRenderer {
private _renderLayers: IRenderLayer[];
private _cursorBlinkStateManager: MutableDisposable<CursorBlinkStateManager> = new MutableDisposable();
private _cursorBlinkStateManager: MutableDisposable<CursorBlinkStateManager> = this._register(new MutableDisposable());
private _textBlinkStateManager: TextBlinkStateManager;
private _charAtlasDisposable = this._register(new MutableDisposable());
private _charAtlas: ITextureAtlas | undefined;
@@ -94,6 +94,12 @@ export class OverviewRulerRenderer extends Disposable {
this._register(this._coreBrowserService.onDprChange(() => this._queueRefresh(true)));
this._register(this._optionsService.onSpecificOptionChange('scrollbar', () => this._queueRefresh(true)));
this._register(this._themeService.onChangeColors(() => this._queueRefresh()));
this._register(toDisposable(() => {
if (this._animationFrame !== undefined) {
this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame);
this._animationFrame = undefined;
}
}));
this._queueRefresh(true);
}
@@ -136,6 +142,9 @@ export class OverviewRulerRenderer extends Disposable {
}
private _refreshCanvasDimensions(): void {
if (this._store.isDisposed || !this._renderService.hasRenderer()) {
return;
}
const cssCanvasHeight = this._renderService.dimensions.css.canvas.height;
const deviceCanvasHeight = this._renderService.dimensions.device.canvas.height;
this._canvas.style.width = `${this._width}px`;
@@ -147,6 +156,9 @@ export class OverviewRulerRenderer extends Disposable {
}
private _refreshDecorations(): void {
if (this._store.isDisposed || !this._renderService.hasRenderer()) {
return;
}
if (this._shouldUpdateDimensions) {
this._refreshCanvasDimensions();
}
@@ -200,13 +212,18 @@ export class OverviewRulerRenderer extends Disposable {
}
private _queueRefresh(updateCanvasDimensions?: boolean, updateAnchor?: boolean): void {
if (this._store.isDisposed) {
return;
}
this._shouldUpdateDimensions = updateCanvasDimensions || this._shouldUpdateDimensions;
this._shouldUpdateAnchor = updateAnchor || this._shouldUpdateAnchor;
if (this._animationFrame !== undefined) {
return;
}
this._animationFrame = this._coreBrowserService.window.requestAnimationFrame(() => {
this._refreshDecorations();
if (!this._store.isDisposed) {
this._refreshDecorations();
}
this._animationFrame = undefined;
});
}
+1 -1
View File
@@ -68,7 +68,7 @@ export class RenderService extends Disposable implements IRenderService {
) {
super();
this._pausedResizeTask = new DebouncedIdleTask(this._logService);
this._pausedResizeTask = this._register(new DebouncedIdleTask(this._logService));
this._renderDebouncer = new RenderDebouncer((start, end) => this._renderRows(start, end), this._coreBrowserService);
this._register(this._renderDebouncer);
+4
View File
@@ -168,4 +168,8 @@ export class DebouncedIdleTask {
public flush(): void {
this._queue.flush();
}
public dispose(): void {
this._queue.clear();
}
}