Commit Graph
37 Commits
Author SHA1 Message Date
Daniel Imms 1880399849 dirtyId -> version 2022-11-23 08:51:06 -08:00
Jean Pierre d4ee0309d9 Fixes https://github.com/microsoft/vscode/issues/166158 2022-11-22 00:07:23 -05:00
Daniel Imms 97a0df260b Remove unused event 2022-11-03 05:44:50 -07:00
Daniel Imms d82da195f3 Remove atlas pages from demo when they're merged 2022-11-02 06:02:53 -07:00
Daniel Imms c22e684904 Fix exception when last 4 smallest pages are merged 2022-11-02 05:40:13 -07:00
Daniel Imms 6406fd79c1 Enforce a maximum page merge amount 2022-11-02 05:28:47 -07:00
Daniel Imms 0271fdf49d Merge 4 largest pages 2022-11-02 04:49:02 -07:00
Daniel Imms 805b41b80f Keep merging default texture size pages 2022-11-01 10:26:48 -07:00
Daniel Imms c9bacc80d7 Merge when max atlas pages is reached 2022-11-01 10:08:00 -07:00
Daniel Imms 54ee698ba6 Basic merging working
Part of #4243
2022-11-01 09:07:38 -07:00
Daniel Imms 4d05905736 Polish 2022-10-30 18:11:24 -07:00
Daniel Imms e092ca70e1 Simplify page reuse/creation 2022-10-30 10:33:38 -07:00
Daniel Imms 0592837620 Fill pages to capacity 2022-10-30 10:21:17 -07:00
Daniel Imms fc03a1698b Share page creation code 2022-10-30 10:16:48 -07:00
Daniel Imms c9ef4a8eb9 Increase texture size as it nears the maximum texture unit
#4243 would be a better, but more complicated, solution to this
2022-10-30 09:20:17 -07:00
Daniel Imms 846573bb01 Support up to maximum texture units (eg. 16 on my machine) 2022-10-30 03:16:29 -07:00
Daniel Imms 3f2ed42e73 Fix glyphs getting clipped on bottom row 2022-10-29 20:57:42 -07:00
Daniel Imms 2a3c2d9520 Make better use of atlas space 2022-10-29 20:33:27 -07:00
Daniel Imms 5e95475d6b Use current row when filling in old atlas pages 2022-10-29 19:50:44 -07:00
Daniel Imms 57a65e0858 Continute filling atlas page after new pages are added 2022-10-29 19:44:12 -07:00
Daniel Imms bfa9dd5060 Clean up 2022-10-29 18:09:18 -07:00
Daniel Imms c257a7247e Only upload textures that change 2022-10-29 13:27:33 -07:00
Daniel Imms 0a49a5dde1 Make texture atlas presentation nicer for multiple pages 2022-10-29 13:01:41 -07:00
Daniel Imms 713baeb64d Base atlas page size on device pixel ratio 2022-10-29 12:45:20 -07:00
Daniel Imms efba2c9040 Get pages working, add to demo 2022-10-28 19:30:42 -07:00
Daniel Imms 67ef455515 Get a second page kind of working 2022-10-28 19:20:26 -07:00
Daniel Imms 975d52fab9 Remove deprecated prop 2022-10-28 19:12:01 -07:00
Daniel Imms 6b37187b4d Create AtlasPage 2022-10-28 19:08:33 -07:00
Daniel Imms 84ab6a49c4 Bring texturePage partially to atlas 2022-10-28 18:56:49 -07:00
Daniel Imms 67b3faef01 Use bbox padding and width consistently 2022-10-28 09:01:22 -07:00
Daniel Imms 8b545a3fe4 Fix bbox right scan start offset
This causes particularly wide glyphs like italic emoji to get clipped
even if they're within the allowed padding.

Fixes #4229
2022-10-28 08:57:41 -07:00
Daniel Imms 171ba446bd Update other files 2022-10-15 15:32:02 -07:00
Daniel Imms 50d1834871 Remove clipImageData completely
putImageData works a little differently to drawImage which confused me
for a bit, you need to offset the destination as putImageData draws the
'dirty' parts of the texture using the same source image dimensions

Fixes #4197
2022-10-13 06:25:13 -07:00
Daniel ImmsandMegan 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 6316eee672 Comment out debug log 2022-10-02 21:32:24 -07:00
Daniel Imms dbef850039 Hook up attributes to new texture atlas 2022-10-02 13:57:35 -07:00
Daniel Imms f38a49b4d5 Move remaining webgl atlas to shared 2022-10-02 08:48:55 -07:00