64af4c6
WIP: Render paths into stencil buffers
Click to expand commit body
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Nathan Sobo and Max Brunsfeld created
64af4c6
WIP: Render paths into stencil buffers
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Nathan Sobo and Max Brunsfeld created
0b12779
WIP: Render path winding numbers to stencil buffer
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Max Brunsfeld and Nathan Sobo created
a8495d0
Whitelist shader bindings using a regex, not individual types
Max Brunsfeld created
6222150
WIP: Start on rendering paths
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Antonio Scandurra and Max Brunsfeld created
d3d251a
Introduce a `Path` struct
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Antonio Scandurra and Max Brunsfeld created
11f469b
Construct Metal command encoder inside of `Renderer`
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Antonio Scandurra and Max Brunsfeld created
a88b63d
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.
Antonio Scandurra created
a949959
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
Antonio Scandurra created
8a119a5
Avoid nested structs in vertex function return types
This is required to compile successfully on macos versions <= 10.15 (catalina)
Max Brunsfeld created
a279048
Pass the right bounds when painting gutter
x and y were flipped around, yikes.
Antonio Scandurra created
2c24ec2
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.
Antonio Scandurra created
13c1f5f
Pass workspace path to zed when debugging it in VS Code
Antonio Scandurra created
466016a
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.
Antonio Scandurra created
61d4da9
Introduce layer clipping
Antonio Scandurra created
63f9719
:lipstick:
Antonio Scandurra created
5439213
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.
Antonio Scandurra created
1cb987d
Remove stray use of pathfinder_geometry
Antonio Scandurra created
e44ea6b
Fix cursor blinking
Antonio Scandurra created
596fc47
Start on painting the editor
Antonio Scandurra created
466f6e0
Center line around its bounding box
Antonio Scandurra created
4dc1b1e
Fix `test_render_glyph` (but still leave it commented out for now)
Antonio Scandurra created
0f6927e
Re-export font_kit primitives from a new `fonts` module
...also, rename the old `fonts` to `font_cache`.
Antonio Scandurra created
0906b2a
Remove unused dependencies and avoid instantiating FontCache in tests
Antonio Scandurra created
5f3dbb0
Honor vertical subpixel positions
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Antonio Scandurra and Nathan Sobo created
bc977fc
Render different variants according to subpixel positioning
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Antonio Scandurra and Nathan Sobo created
9178e91
Extract platform-dependant `FontSystem`
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Antonio Scandurra and Nathan Sobo created
e0e4cff
Align glyphs correctly using font-kit's raster_bounds
Antonio Scandurra created
7523df0
Space out sprites in atlas
This prevents us from accidentally sampling a neighboring sprite.
Nathan Sobo created
e5d586a
Get glyphs sort of rendering
Nathan Sobo created
28b84c0
Fix noise in atlas texture
Nathan Sobo created
ad79746
WIP
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Antonio Scandurra and Nathan Sobo created
247afa1
WIP
Nathan Sobo created
764bfba
WIP: Start on rendering glyphs
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Antonio Scandurra and Nathan Sobo created
43abd96
Apply padding correctly when painting `Container`'s children
Antonio Scandurra created
bac5436
Declare float literals consistently in shader
Antonio Scandurra created
3de0ce6
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.
Antonio Scandurra created
32c0702
Scale corner_radius by the scale factor when rendering shadows
Antonio Scandurra created
66dcb73
Respect margins when painting Container
Nathan Sobo created
d13510b
:lipstick:
Nathan Sobo created
548b542
Get the file finder rendering with a drop shadow
Nathan Sobo created
859c0f5
WIP: Introduce layers in renderer
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Antonio Scandurra and Nathan Sobo created
bfc57cb
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>
Antonio Scandurra and Nathan Sobo created
45c1337
Support rendering borders
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Antonio Scandurra and Nathan Sobo created
f330fdb
Clarify variable name
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Antonio Scandurra and Nathan Sobo created
123b7c5
Render quads with anti-aliased rounded corners
Antonio Scandurra created
119aa45
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.
Nathan Sobo created
046fe3f
Dispatch keystrokes and fix rerendering when window invalidated
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Nathan Sobo and Antonio Scandurra created
f5df368
Add file_finder module
Still need to wire up key bindings to make it toggle. Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Nathan Sobo and Antonio Scandurra created
0c59937
Wire up events and fix synthetic dragging
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Nathan Sobo and Antonio Scandurra created
0466580
Scale quads by scale factor before writing to Metal buffer
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Nathan Sobo and Antonio Scandurra created