Nathan Sobo and Max 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 Sobo and Max 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 Sobo and Max Brunsfeld
dccc4f3121
Initialize logger in gpui tests
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2021-04-02 12:42:01 -06:00
Nathan Sobo and Max 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 Sobo and Max 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 Sobo and Max 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 Scandurra and Nathan Sobo
2a616e984a
Remove Overdraw
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-03-31 17:58:43 +02:00
Antonio Scandurra and Nathan Sobo
ba5640aba5
Fix tabs layout
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-03-31 17:57:00 +02:00
Antonio Scandurra and Nathan 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 Scandurra and Nathan 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 Scandurra and Nathan 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 Sobo and Max Brunsfeld
a2602b2a67
Restore blink_cursors
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2021-03-30 18:12:45 -06:00
Nathan Sobo and Max Brunsfeld
14eda8978c
Avoid generic parameter
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2021-03-30 18:05:13 -06:00
Nathan Sobo and Max 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 Sobo and Max Brunsfeld
5cfa736fde
Reduce selection corner radius
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2021-03-30 16:57:21 -06:00
Nathan Sobo and Max 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 Sobo and Max 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 Sobo and Max 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 Brunsfeld and Nathan 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 Scandurra and Max 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 Sobo and Max Brunsfeld
972e4f4556
WIP
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2021-03-29 22:56:47 -06:00
Nathan Sobo and Max 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 Brunsfeld and Nathan 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 Scandurra and Max Brunsfeld
97de7f46ae
WIP: Start on rendering paths
...
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2021-03-29 19:51:39 +02:00
Antonio Scandurra and Max Brunsfeld
928f955a16
Introduce a Path struct
...
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2021-03-29 19:50:38 +02:00
Antonio Scandurra and Max 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