Commit graph

15 commits

Author SHA1 Message Date
Chad Brokaw
016f9de05f Libify piet-wgsl
This creates a new Renderer type that offers fairly simple render_to_texture and render_to_surface methods, the latter of which handles the final blit internally. Also adds a util module with some helpers for device and surface creation.

There is a new winit example in piet-wgsl/examples/winit that shows how to make use of it all. This should be fairly trivial to adapt to glazier/xilem.
2022-11-26 14:27:19 -05:00
Chad Brokaw
ff4f71ef3c wgsl port in realtime
* add writeable image support to engine
* add external resources to engine
* update fine to output to a texture
* copy over original piet-gpu test scenes
* put it all in a pretty (resizable!) window
2022-11-25 17:16:56 -05:00
Chad Brokaw
fc1a6e9e4e update for improved kurbo/peniko ergonomics
also removes some annoying lingering tabs from blend.wgsl
2022-11-23 12:50:28 -05:00
Chad Brokaw
c1e91cb233 prevent encoding empty paths for layers too 2022-11-22 15:17:50 -05:00
Chad Brokaw
f19dbdb1b5 Update piet-scene to depend on peniko
This adds a new dependency on peniko, reintroduces kurbo for geometry (!), removes the now defunct types from piet-scene and updates all the test scenes to use the new types.
2022-11-22 14:49:51 -05:00
Chad Brokaw
adc9811776 add clips and blends 2022-11-18 17:26:26 -05:00
Chad Brokaw
9adeaf3e82 format 2022-11-16 12:02:11 -05:00
Chad Brokaw
20f7b68514 finish gradient support 2022-11-16 10:49:38 -05:00
Raph Levien
494f523c41 Tiger!
Still one flaw, fat lines aren't expanded with strokes in path coarse rasterization. But that's a small visual ding, and can be fixed

That said, there is some really strange stuff going on in tile_alloc. It's using storage to do a uniform broadcast (the result of bump allocation for the workgroup), which is not great at all. It should be using workgroup storage, but on my mac it behaves as if the workgroup barrier is not in place. Investigating.
2022-11-04 21:41:37 -07:00
Raph Levien
17a74fb370 Almost rendering tiger
We cut'n'pasted the picosvg stuff, kinda ugly.

It renders a number of paths of the tiger. I think the gap might be in prefix sums.
2022-11-04 13:15:05 -07:00
Raph Levien
7ae5aa7491 Mostly working strokes
The fat line in coarse path rendering is not done, but when lines are thin that mostly looks ok. Onward to tiger!
2022-11-04 12:40:54 -07:00
Raph Levien
92d6b1188f Fix color
Get rgba order right in rendering, plus generate separated alpha for png. The latter is just for debugging, we won't generally use separated alpha.
2022-11-04 09:25:06 -07:00
Raph Levien
c3d81e0985 Mostly working path rendering
It draws multiple paths and applies affine transformations.

One problem: RGBA writing is byte-reversed and premultiplied.
2022-11-04 08:59:23 -07:00
Raph Levien
a50d76cb1c rustfmt 2022-10-24 15:17:51 -07:00
Raph Levien
b6c4963d4c Initial commit of piet-wgsl
Starting an experimental port to WGSL shader language, using wgpu to run the examples. As of this commit, it's quite hacky and takes some shortcuts, but does render paths to a grayscale texture.
2022-10-24 15:08:14 -07:00