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
Max Brunsfeld
8a119a51bf
Avoid nested structs in vertex function return types
...
This is required to compile successfully on macos versions <= 10.15 (catalina)
2021-03-28 19:04:36 -07:00
Antonio Scandurra
a2790481a6
Pass the right bounds when painting gutter
...
x and y were flipped around, yikes.
2021-03-26 17:21:44 +01:00
Antonio Scandurra
2c24ec2e46
Update old usages of ctx.spawn
to detach the associated task
...
This lets us open buffers and renders tabs and editors correctly, modulo
a small bug when rendering the gutter that I am going to fix next.
2021-03-26 14:15:01 +01:00
Antonio Scandurra
13c1f5f60e
Pass workspace path to zed when debugging it in VS Code
2021-03-26 14:14:23 +01:00
Antonio Scandurra
466016a374
Snap sprites to pixel grid in Renderer
...
Previously, we were doing so in the `SpriteCache` but that would cause
floating point errors that caused glyphs to sometimes be positioned
midway through a pixel.
2021-03-26 11:07:16 +01:00
Antonio Scandurra
61d4da9934
Introduce layer clipping
2021-03-26 10:28:05 +01:00
Antonio Scandurra
63f9719c99
💄
2021-03-26 09:58:55 +01:00
Antonio Scandurra
5439213199
Fix Empty
sometimes returning an infinite size in layout
...
This commit also ensures that elements never report an infinite size by
adding a debug assertion in the `Lifecycle` element.
2021-03-26 09:46:53 +01:00
Antonio Scandurra
1cb987d489
Remove stray use of pathfinder_geometry
2021-03-25 18:19:20 +01:00
Antonio Scandurra
e44ea6b379
Fix cursor blinking
2021-03-25 17:41:03 +01:00
Antonio Scandurra
596fc47a68
Start on painting the editor
2021-03-25 17:36:29 +01:00
Antonio Scandurra
466f6e0479
Center line around its bounding box
2021-03-25 17:21:26 +01:00
Antonio Scandurra
4dc1b1e179
Fix test_render_glyph
(but still leave it commented out for now)
2021-03-25 15:10:21 +01:00
Antonio Scandurra
0f6927eb4b
Re-export font_kit primitives from a new fonts
module
...
...also, rename the old `fonts` to `font_cache`.
2021-03-25 10:58:33 +01:00
Antonio Scandurra
0906b2a2f4
Remove unused dependencies and avoid instantiating FontCache in tests
2021-03-25 10:48:32 +01:00
Antonio Scandurra
5f3dbb05d6
Honor vertical subpixel positions
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-24 18:35:48 +01:00
Antonio Scandurra
bc977fc873
Render different variants according to subpixel positioning
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-24 18:20:25 +01:00
Antonio Scandurra
9178e91cc0
Extract platform-dependant FontSystem
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-24 16:51:28 +01:00
Antonio Scandurra
e0e4cff815
Align glyphs correctly using font-kit's raster_bounds
2021-03-24 11:46:17 +01:00
Nathan Sobo
7523df05cf
Space out sprites in atlas
...
This prevents us from accidentally sampling a neighboring sprite.
2021-03-23 19:02:03 -06:00
Nathan Sobo
e5d586a942
Get glyphs sort of rendering
2021-03-23 18:54:09 -06:00
Nathan Sobo
28b84c081d
Fix noise in atlas texture
2021-03-23 17:27:28 -06:00
Antonio Scandurra
ad7974608b
WIP
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-23 19:11:56 +01:00
Nathan Sobo
247afa1666
WIP
2021-03-23 09:13:35 -06:00
Antonio Scandurra
764bfba2e2
WIP: Start on rendering glyphs
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-23 15:15:41 +01:00
Antonio Scandurra
43abd96769
Apply padding correctly when painting Container
's children
2021-03-23 10:59:35 +01:00
Antonio Scandurra
bac543657c
Declare float literals consistently in shader
2021-03-23 10:45:09 +01:00
Antonio Scandurra
3de0ce6079
Remove artifact when a border side was not rendered
...
This introduces an extra conditional in the shader, there's probably a
way of writing it without ifs but I like how the logic reads with it and
it shouldn't be that big of a deal performance-wise.
2021-03-23 10:33:31 +01:00
Antonio Scandurra
32c070250c
Scale corner_radius by the scale factor when rendering shadows
2021-03-23 10:14:07 +01:00
Nathan Sobo
66dcb73263
Respect margins when painting Container
2021-03-22 21:11:08 -06:00
Nathan Sobo
d13510bfe3
💄
2021-03-22 21:00:07 -06:00
Nathan Sobo
548b542766
Get the file finder rendering with a drop shadow
2021-03-22 20:54:52 -06:00
Antonio Scandurra
859c0f53cb
WIP: Introduce layers in renderer
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-22 18:55:53 +01:00
Antonio Scandurra
bfc57cb4f6
Start on rendering shadows
...
This still doesn't work properly because shadows are rendered beneath
quads and we still don't have a layering mechanism.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-22 18:05:16 +01:00
Antonio Scandurra
45c1337c84
Support rendering borders
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-22 16:24:26 +01:00
Antonio Scandurra
f330fdb6a7
Clarify variable name
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-22 15:27:48 +01:00
Antonio Scandurra
123b7c55f6
Render quads with anti-aliased rounded corners
2021-03-22 13:50:43 +01:00
Nathan Sobo
119aa452b6
Overhaul the entire element system
...
Now the Element trait is designed to be wrapped in a Lifecycle enum that gets placed inside an ElementBox. This allows the framework to store data on behalf of the Element implementation, such as sizes, bounds, and also implementation-specific LayoutState and PaintState types. This makes it easier to reason about which data is available in each Element method.
2021-03-21 20:54:23 -06:00
Nathan Sobo
046fe3fff9
Dispatch keystrokes and fix rerendering when window invalidated
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-03-21 11:38:23 -06:00
Nathan Sobo
f5df3681f8
Add file_finder module
...
Still need to wire up key bindings to make it toggle.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-03-21 10:50:07 -06:00
Nathan Sobo
0c59937a65
Wire up events and fix synthetic dragging
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-03-21 09:44:14 -06:00
Nathan Sobo
04665800c0
Scale quads by scale factor before writing to Metal buffer
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-03-21 09:19:12 -06:00
Nathan Sobo
31fb707eea
Fix translation to device coords in shader
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-03-21 09:01:50 -06:00
Nathan Sobo
1f647ef24c
Clean up
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-03-21 09:00:47 -06:00
Nathan Sobo
e5ffe43bb6
Get basic graphics rendering via Metal
...
Also, handle window resize.
2021-03-20 22:19:26 -06:00
Nathan Sobo
292b41ad57
Start on metal rendering infrastructure
2021-03-20 09:38:36 -06:00
Nathan Sobo
d14c943150
Start on Scene
2021-03-19 13:31:25 -06:00