Commit Graph
79 Commits
Author SHA1 Message Date
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 ScandurraandNathan Sobo 2a616e984a Remove Overdraw
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-31 17:58:43 +02:00
Antonio ScandurraandNathan Sobo ba5640aba5 Fix tabs layout
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-31 17:57:00 +02:00
Antonio ScandurraandNathan 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 ScandurraandNathan 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 SoboandMax Brunsfeld 14eda8978c Avoid generic parameter
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-03-30 18:05:13 -06:00
Nathan SoboandMax 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 SoboandMax 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 SoboandMax 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 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
Antonio ScandurraandMax 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 SoboandMax Brunsfeld 972e4f4556 WIP
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-03-29 22:56:47 -06:00
Nathan SoboandMax 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 BrunsfeldandNathan 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 ScandurraandMax Brunsfeld 97de7f46ae WIP: Start on rendering paths
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-03-29 19:51:39 +02:00
Antonio ScandurraandMax Brunsfeld 928f955a16 Introduce a Path struct
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-03-29 19:50:38 +02:00
Antonio ScandurraandMax 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
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 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 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 ScandurraandNathan Sobo 5f3dbb05d6 Honor vertical subpixel positions
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-24 18:35:48 +01:00
Antonio ScandurraandNathan Sobo 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 ScandurraandNathan Sobo 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 ScandurraandNathan Sobo 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 ScandurraandNathan Sobo 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