Commit log

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

0b12779 WIP: Render path winding numbers to stencil buffer

Click to expand commit body
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

Click to expand commit body
Co-Authored-By: Max Brunsfeld <max@zed.dev>

Antonio Scandurra and Max Brunsfeld created

d3d251a Introduce a `Path` struct

Click to expand commit body
Co-Authored-By: Max Brunsfeld <max@zed.dev>

Antonio Scandurra and Max Brunsfeld created

11f469b Construct Metal command encoder inside of `Renderer`

Click to expand commit body
Co-Authored-By: Max Brunsfeld <max@zed.dev>

Antonio Scandurra and Max Brunsfeld created

a88b63d Ensure `FoldMap` always contains at least one transform

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
This is required to compile successfully on macos versions <= 10.15 (catalina)

Max Brunsfeld created

a279048 Pass the right bounds when painting gutter

Click to expand commit body
x and y were flipped around, yikes.

Antonio Scandurra created

2c24ec2 Update old usages of `ctx.spawn` to detach the associated task

Click to expand commit body
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`

Click to expand commit body
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`

Click to expand commit body
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

Click to expand commit body
...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

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

bc977fc Render different variants according to subpixel positioning

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

9178e91 Extract platform-dependant `FontSystem`

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

bfc57cb Start on rendering shadows

Click to expand commit body
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

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

f330fdb Clarify variable name

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
Co-Authored-By: Antonio Scandurra <me@as-cii.com>

Nathan Sobo and Antonio Scandurra created

f5df368 Add file_finder module

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
Co-Authored-By: Antonio Scandurra <me@as-cii.com>

Nathan Sobo and Antonio Scandurra created