Commit Graph

108 Commits

Author SHA1 Message Date
Max Brunsfeld
dd31b870c3 Remove small pieces of unused code 2021-04-02 14:26:53 -07:00
Max Brunsfeld
ce6ca13b13 Fix buffer folding test 2021-04-02 14:04:35 -07:00
Nathan Sobo
c43d7cfb39 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
526a55d0d7 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
fd1f75333f Initialize logger in gpui tests
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-02 12:42:01 -06:00
Nathan Sobo
2d79193fb6 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
914cf37f37 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
d68a747754 Fix hanging finish_pending_tasks test
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-02 10:48:03 -06:00
Antonio Scandurra
72ced45df0 Remove unused edge_to_point calculation in quad shader 2021-04-02 13:53:11 +02:00
Antonio Scandurra
d10fc6ce3f Fix crash when selections exceed the container's bounds 2021-04-02 13:49:44 +02:00
Antonio Scandurra
ae447ca1d9 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
995acefce5 Inset container contents to account for container border 2021-04-01 10:31:00 -06:00
Antonio Scandurra
e487aa5cbd Don't render glyphs located outside of BufferElement's bounds 2021-04-01 11:19:50 +02:00
Nathan Sobo
c525d7c712 💄 naming 2021-03-31 20:43:15 -06:00
Max Brunsfeld
3bd6b92244 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
2efc90adc6 Ensure that path windings are rendered to the right atlas texture
Fixes #5
2021-03-31 14:52:41 -07:00
Antonio Scandurra
a9c428ad05 Remove Overdraw
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-31 17:58:43 +02:00
Antonio Scandurra
d5a9bab4a0 Fix tabs layout
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-31 17:57:00 +02:00
Antonio Scandurra
c55d99022e 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
97e0db205d 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
385d15cd0c Round clip bounds to whole pixels
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-31 16:23:37 +02:00
Antonio Scandurra
d853dbb048 Render borders correctly when only a subset of the border is visible 2021-03-31 14:53:34 +02:00
Antonio Scandurra
073ff96a9f Snap quads to pixel grid to avoid antialiasing them around the edges 2021-03-31 14:53:15 +02:00
Antonio Scandurra
bbf8762447 💄 2021-03-31 10:32:53 +02:00
Antonio Scandurra
f5e5d7180f Remove conditional from winding number computation 2021-03-31 10:30:16 +02:00
Nathan Sobo
5c444b2bfa Call did_modify_range on only once per render 2021-03-30 23:07:14 -06:00
Nathan Sobo
dbf9a5a466 Restore blink_cursors
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-03-30 18:12:45 -06:00
Nathan Sobo
6ba08b510f Avoid generic parameter
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-03-30 18:05:13 -06:00
Nathan Sobo
77b6a29f5f 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
4cdce070c4 Reduce selection corner radius
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-03-30 16:57:21 -06:00
Nathan Sobo
3103d28285 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
8dabb15248 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
02ace16176 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
c4f23e411a Fix double-borrow when synthesizing drag events 2021-03-30 14:25:47 -06:00
Nathan Sobo
5c4b08f05f Use correct texture size when drawing paths into atlas 2021-03-30 14:03:29 -06:00
Nathan Sobo
4773f5034b 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
011d4d8437 wip 2021-03-30 12:36:18 -07:00
Max Brunsfeld
f8cc3996b2 Paint selections using new path API
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-30 11:52:58 -07:00
Antonio Scandurra
da1960c3e8 Snap path sprites to pixel grid
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-03-30 19:37:49 +02:00
Antonio Scandurra
1903f63c45 WIP: Add anti-aliasing to paths and render them after spriting them 2021-03-30 16:37:12 +02:00
Antonio Scandurra
98845663a9 Render stencils to atlas 2021-03-30 11:28:35 +02:00
Nathan Sobo
b538f5cfb7 WIP
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-03-29 22:56:47 -06:00
Nathan Sobo
64af4c694a WIP: Render paths into stencil buffers
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-03-29 22:46:26 -06:00
Max Brunsfeld
0b12779e62 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
a8495d09f8 Whitelist shader bindings using a regex, not individual types 2021-03-29 12:39:21 -07:00
Antonio Scandurra
6222150688 WIP: Start on rendering paths
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-03-29 19:51:39 +02:00
Antonio Scandurra
d3d251a9ce Introduce a Path struct
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-03-29 19:50:38 +02:00
Antonio Scandurra
11f469b8e2 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
a88b63d83c 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
Antonio Scandurra
a949959a42
Merge pull request #1 from zed-industries/catalina-mps-compatibility
Avoid nested structs in the types used to pass data from vertex to fragment shader functions
2021-03-29 09:16:15 +02:00