Daniel Imms and Megan Rogge
c4eef2f470
Fix race condition that could when clearing atlas on 2+ terminals
...
This is the proper fix for microsoft/vscode#162996 , after a bunch of
investigation we found that this is causing the problem:
VS Code clears the texture atlas on OS resume to fix an issue where the texture
could be corrupted. This calls clearTextureAtlas twice which should be fine, but
it's not because inside WebglRenderer.clear we're calling updateModel which is
meant to only ever be called in an animation frame. This calls potentially both
renderers to have stale views of the texture atlas for those rows and our perf
caching of cells (the main purpose of the model) doesn't know it's stale.
Co-Authored-By: Megan Rogge <merogge@microsoft.com >
2022-10-07 16:17:11 -07:00
Daniel Imms
5fcb084089
Merge pull request #4180 from Tyriar/clear_atlas
...
Fix clearTextureAtlas call as implemented on IRenderer
2022-10-07 14:31:28 -07:00
Daniel Imms
e89c507d06
Fix clearTextureAtlas call as implemented on IRenderer
...
This is the root cause of microsoft/vscode#162996
2022-10-07 14:22:51 -07:00
Daniel Imms
ffa4d921bb
Merge remote-tracking branch 'upstream/master' into renderer_before_open
2022-10-07 10:10:24 -07:00
Daniel Imms
4d97729010
Revert "Merge pull request #4166 from Tyriar/event_with_emitter"
...
This reverts commit d22f7c9edd , reversing
changes made to 1f8e6f0952 .
2022-10-06 09:48:54 -07:00
Daniel Imms
e0324e32a8
Bring back ImageBitmap optimization in canvas renderer
...
It's more simple than it used to be, it will clear and debounce all
glyphs when any change is made.
2022-10-04 15:24:10 -07:00
Daniel Imms
3b260a2193
Fix resolved todo
2022-10-04 14:46:00 -07:00
Daniel Imms
622acaaad7
Remove old selection start/end values
2022-10-04 14:45:19 -07:00
Daniel Imms
0d7e18d236
Add CellColorResolver to share load color code
2022-10-04 14:41:27 -07:00
Daniel Imms
83c09c34db
Share selection render model code
2022-10-04 14:23:09 -07:00
Daniel Imms
03e3105c55
Fix fg/bg overrides in canvas
2022-10-04 14:10:27 -07:00
Daniel Imms
9259ec258f
Fix combined chars in canvas
2022-10-02 14:27:43 -07:00
Daniel Imms
c741c13409
Add ps to output string
2022-10-02 14:25:08 -07:00
Daniel Imms
dbef850039
Hook up attributes to new texture atlas
2022-10-02 13:57:35 -07:00
Daniel Imms
590a8219e3
Merge remote-tracking branch 'upstream/master' into shared_cache
2022-10-02 13:42:44 -07:00
Daniel Imms
d22f7c9edd
Merge pull request #4166 from Tyriar/event_with_emitter
...
Create new event with emitter object to simplify code
2022-10-02 13:41:37 -07:00
Daniel Imms
c2bf87ee34
Initial working shared atlas
2022-10-02 11:38:46 -07:00
Daniel Imms
0bc5ca8f80
Fix imports
2022-10-02 11:08:06 -07:00
Daniel Imms
f38a49b4d5
Move remaining webgl atlas to shared
2022-10-02 08:48:55 -07:00
Daniel Imms
26c974f9b6
Shuffle some utils
2022-10-02 08:37:13 -07:00
Daniel Imms
333b0e28ac
Add ITextureAtlas and use that instead of WebglCharAtlas
2022-10-02 07:48:43 -07:00
Daniel Imms
0bc71156bf
Merge remote-tracking branch 'upstream/master' into shared_cache
2022-10-02 07:26:23 -07:00
Daniel Imms
dece3cc41c
DynamicCharAtlas -> CanvasCharAtlas
2022-10-02 07:20:55 -07:00
Daniel Imms
8752c4fa8e
Remove canvas char atlas base class
2022-10-02 07:19:57 -07:00
Daniel Imms
af6f03600f
Show canvas texture atlas on demo
2022-10-02 07:10:37 -07:00
Daniel Imms
1f8e6f0952
Merge pull request #4169 from Tyriar/canvas_freq
...
Add willReadFrequently to canvas renderer too
2022-10-01 21:46:13 -07:00
Daniel Imms
f087bd121e
Add willReadFrequently to canvas renderer too
2022-10-01 21:38:01 -07:00
Daniel Imms
d669c6e9d6
Fix remaining references
2022-10-01 18:03:43 -07:00
Daniel Imms
c5f9eacbb1
Move other render parts to shared folder
2022-10-01 17:41:16 -07:00
Daniel Imms
6fcc496547
Move cache utils to core shared/ folder
...
Part of #4065
2022-10-01 17:36:16 -07:00
Daniel Imms
2a602ef231
Ensure texture atlas comparison uses rgba not object
...
Fixes #4128
2022-10-01 10:20:37 -07:00
Daniel Imms
2e8b793ba0
Format files
2022-10-01 08:56:56 -07:00
Daniel Imms
ed15a8e170
Create new event with emitter object to simplify code
2022-10-01 08:45:40 -07:00
Daniel Imms
8e378c07e9
Merge pull request #4165 from Tyriar/4164
...
Define all events and emitters consistently
2022-10-01 08:28:18 -07:00
Daniel Imms
1a22c44f2b
Make all emitters readonly
2022-10-01 08:02:32 -07:00
Daniel Imms
cf9949840b
Use readonly over getter for exposing events
...
Fixes #4164
2022-10-01 07:52:26 -07:00
Daniel Imms
52ed65d7bd
Move w objects to $ prefix variables
...
Fixes #4138
2022-10-01 07:26:07 -07:00
Daniel Imms
c548977a3e
Fix imports
2022-09-24 16:16:14 -07:00
Daniel Imms
868fc7ec29
Allow loading canvas before open
2022-09-24 14:44:13 -07:00
Daniel Imms
693d09cbad
Allow setting renderer addon before open is called
2022-09-24 14:41:48 -07:00
Daniel Imms
aec1f2b2be
Fix import
2022-09-24 11:58:17 -07:00
Daniel Imms
c42f290eb8
Do char atlas warmup via new IdleTaskQueue
2022-09-24 11:10:54 -07:00
Daniel Imms
e68bf3ca5b
Merge remote-tracking branch 'ups/master' into fast_setTheme
2022-09-24 11:02:15 -07:00
Daniel Imms
6368cb4cff
Move canvas-based parsing to Color.ts lib
...
This removed the allowTransparency code, it didn't actually do much
before, just whether the 'advanced parsing' would allow transparency.
Since we already do the common formats, I'm not even sure what other
format it could be.
2022-09-24 10:37:40 -07:00
Daniel Imms
d62b4531c3
Optimize contexts for reading frequently
...
This was a recommendation from Edge.
Docs here: https://html.spec.whatwg.org/multipage/canvas.html#concept-canvas-will-read-frequently
2022-09-24 06:58:01 -07:00
Daniel Imms
78128762f9
Perform texture atlas warm up in an idle callback
...
Part of #4103
2022-09-22 13:06:08 -07:00
Daniel Imms
c23f4313fb
Release v5, including addon version bumps
2022-09-15 12:22:32 -07:00
Mihai Parparita
a39a468f19
Make terminal rendering work in popout windows
...
Add support for the parent element (what is passed to Terminal.open)
being in a different (same origin) window. Accesses to DOM APIs such
as requestAnimationFrame and devicePixelRatio thus need to be scoped
to the corrent window, instead of assuming that it's the same as the
window/global scope where the code is running.
This is done by inferring a parent window at the creation time, and
then storing it in CoreBrowserService, which is already passed to most
places that need it.
To catch future regressions, an ESLint rule that checks for global
accesses is added (it uses AST selectors via the no-restricted-syntax
rule).
This should also be applicable when the parent element is an iframe.
Fixes #3758
2022-09-08 16:59:31 -07:00
Daniel Imms
9ef2397918
Merge pull request #4101 from JasonXJ/render-bug
...
WebglRenderer always clears _glyphRenderer if _model is cleared
2022-09-07 09:01:41 -07:00
Jason Lin
4752f99e03
Webgl cursor renderer makes sure a char is not drawn outside of the cell
2022-09-06 14:12:15 +10:00