Commit Graph
25009 Commits
Author SHA1 Message Date
Nathan SoboandMax Brunsfeld 138f75e95f Use a condvar instead of a channel to implement finish_pending_tasks
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-02 13:53:06 -06:00
Nathan SoboandMax Brunsfeld fadecaa043 Complete finish_pending_tasks future when tasks are cancelled
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-02 12:42:23 -06:00
Nathan SoboandMax Brunsfeld dccc4f3121 Initialize logger in gpui tests
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-02 12:42:01 -06:00
Nathan SoboandMax Brunsfeld a56ef33a52 Remove future/stream handlers when task is dropped
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-02 12:03:35 -06:00
Nathan SoboandMax Brunsfeld 1dc03bab2b Remove executor::ForegroundTask wrapper
Now that smol returns the same Task as async_task, we can simply re-export the async_task::Task struct from our executor module.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-02 11:02:09 -06:00
Nathan SoboandMax Brunsfeld 4871b71e62 Fix hanging finish_pending_tasks test
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-02 10:48:03 -06:00
Antonio Scandurra d1d992be59 Remove unused edge_to_point calculation in quad shader 2021-04-02 13:53:11 +02:00
Antonio Scandurra f503e32f29 Fix crash when selections exceed the container's bounds 2021-04-02 13:49:44 +02:00
Antonio Scandurra 62bfc0bf48 Layout lines and line numbers sequentially
Doing things in parallel has a constant factor associated with it (e.g.,
spawning threads and coordinating them) that dwarves its benefits on a
code path like this where things take < 2-3ms when done sequentially.
2021-04-02 10:20:29 +02:00
Nathan Sobo 00af25da17 Inset container contents to account for container border 2021-04-01 10:31:00 -06:00
Antonio Scandurra 7a052566a5 Don't render glyphs located outside of BufferElement's bounds 2021-04-01 11:19:50 +02:00
Nathan Sobo fe82015441 Fix links 2021-03-31 22:21:42 -06:00
Nathan Sobo 639c73cc00 Link to tracking issues 2021-03-31 21:59:55 -06:00
Nathan Sobo b428e8dd58 Add a README with a high-level roadmap 2021-03-31 21:53:33 -06:00
Nathan Sobo 2efe48c127 💄 naming 2021-03-31 20:43:15 -06:00
Max Brunsfeld 7fee9ce687 Introduce a GPUI test platform, get most tests running
There are still two tests that don't pass:
* `gpui::app::tests::test_finish_pending_tasks` hangs
* `editor::buffer_view::tests::test_fold` has an assertion failure
2021-03-31 17:03:58 -07:00
Max Brunsfeld 7fb0951d42 Ensure that path windings are rendered to the right atlas texture
Fixes #5
2021-03-31 14:52:41 -07:00
Antonio ScandurraandNathan Sobo 2a616e984a Remove Overdraw
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-31 17:58:43 +02:00
Antonio ScandurraandNathan Sobo ba5640aba5 Fix tabs layout
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-31 17:57:00 +02:00
Antonio ScandurraandNathan Sobo a6a9fb0ede Handle non-precise scroll events in BufferElement
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-31 16:25:21 +02:00
Antonio ScandurraandNathan Sobo 3649a3d939 Don't blend alpha channels
We want to use the source alpha to determine the color of the final
pixel, but we want the final pixels to be fully opaque.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-31 16:24:28 +02:00
Antonio ScandurraandNathan Sobo 05de08d783 Round clip bounds to whole pixels
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-31 16:23:37 +02:00
Antonio Scandurra e68e06838c Render borders correctly when only a subset of the border is visible 2021-03-31 14:53:34 +02:00
Antonio Scandurra 150b60de72 Snap quads to pixel grid to avoid antialiasing them around the edges 2021-03-31 14:53:15 +02:00
Antonio Scandurra 437a2eeee2 💄 2021-03-31 10:32:53 +02:00
Antonio Scandurra bc9a6b4ea7 Remove conditional from winding number computation 2021-03-31 10:30:16 +02:00
Nathan Sobo 58ababd95f Call did_modify_range on only once per render 2021-03-30 23:07:14 -06:00
Nathan SoboandMax Brunsfeld a2602b2a67 Restore blink_cursors
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-03-30 18:12:45 -06:00
Nathan SoboandMax Brunsfeld 14eda8978c Avoid generic parameter
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-03-30 18:05:13 -06:00
Nathan SoboandMax Brunsfeld 7b4478ee56 Optimize grouping of path sprites by layer/atlas
Avoid filtering sprites redundantly on every layer and allocating intermediate vectors to group by atlas.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-03-30 18:03:00 -06:00
Nathan SoboandMax Brunsfeld 5cfa736fde Reduce selection corner radius
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-03-30 16:57:21 -06:00
Nathan SoboandMax Brunsfeld 5119a001fb Clear the path atlases on every frame and fix spelling
@as-cii you were right about the plural of "atlas" after all.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-03-30 16:56:11 -06:00
Nathan SoboandMax Brunsfeld 1ed0bd8c27 Decrease max windings to avoid problems with anti-aliasing
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-03-30 16:34:01 -06:00
Nathan SoboandMax Brunsfeld 8223d3a1a5 Handle selection corners that are smaller than the corner radius
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-03-30 16:21:24 -06:00
Nathan Sobo 8d05d7bf21 Fix double-borrow when synthesizing drag events 2021-03-30 14:25:47 -06:00
Nathan Sobo 48fe2587df Use correct texture size when drawing paths into atlas 2021-03-30 14:03:29 -06:00
Nathan Sobo b1a967be9b Bump max path windings to 128
This eliminates artifacts while still seeming to work with anti-aliasing.
2021-03-30 14:02:59 -06:00
Max Brunsfeld e2e442a6f2 wip 2021-03-30 12:36:18 -07:00
Max BrunsfeldandNathan Sobo ca0126ec67 Paint selections using new path API
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-30 11:52:58 -07:00
Antonio ScandurraandMax Brunsfeld 4ae3460cb2 Snap path sprites to pixel grid
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-03-30 19:37:49 +02:00
Antonio Scandurra 3002f20279 WIP: Add anti-aliasing to paths and render them after spriting them 2021-03-30 16:37:12 +02:00
Antonio Scandurra 2439bd2712 Render stencils to atlas 2021-03-30 11:28:35 +02:00
Nathan SoboandMax Brunsfeld 972e4f4556 WIP
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-03-29 22:56:47 -06:00
Nathan SoboandMax Brunsfeld 5e92204f51 WIP: Render paths into stencil buffers
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-03-29 22:46:26 -06:00
Max BrunsfeldandNathan Sobo 4b9e9eab28 WIP: Render path winding numbers to stencil buffer
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-29 16:28:35 -07:00
Max Brunsfeld 0fa136a263 Whitelist shader bindings using a regex, not individual types 2021-03-29 12:39:21 -07:00
Antonio ScandurraandMax Brunsfeld 97de7f46ae WIP: Start on rendering paths
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-03-29 19:51:39 +02:00
Antonio ScandurraandMax Brunsfeld 928f955a16 Introduce a Path struct
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-03-29 19:50:38 +02:00
Antonio ScandurraandMax Brunsfeld 9849a51aa2 Construct Metal command encoder inside of Renderer
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-03-29 19:48:14 +02:00
Antonio Scandurra 2dbffb9095 Ensure FoldMap always contains at least one transform
Previously, when splicing an edit that deleted all transforms, we would
leave the `FoldMap` empty, thus violating a bunch of downstream
invariants and e.g. causing the `BufferRows` iterator to not return any
buffer row.

This commit ensures we always have at least one transform (an isomorphic
one, specifically) and adds additional test coverage for the
`FoldMap::buffer_rows` method by adding it to the randomized tests.
2021-03-29 10:18:28 +02:00