Commit Graph

59 Commits

Author SHA1 Message Date
Patrick Walton 0f35d9c817 Add an embedded resource loader that places resources directly in the binary.
This is useful for WebGL and for downstream crates.io use.
2020-02-28 17:10:53 -08:00
Sebastian K e2fbde820d Implement a WebGL backend
Signed-off-by: Patrick Walton <pcwalton@mimiga.net>
2020-02-28 10:41:35 -08:00
Patrick Walton 25f9346160 Add an incomplete port of the NanoVG example app 2020-02-19 11:00:03 -08:00
Patrick Walton 2db43797c3 Split colors out into their own crate.
A lot of downstream consumers of `pathfinder_gpu` want to use colors without
the path stuff.
2020-01-31 09:17:04 +01:00
Sebastian Köln bd12de8234 add default-members (and exclude metal). fixes #217 2019-07-16 09:59:52 +03:00
Sebastian Köln 21fffb29f7 merge with master 2019-06-25 11:36:04 +03:00
Patrick Walton 4d866f4a75 Move `svg2pdf` to `utils/` 2019-06-24 23:05:09 -07:00
Sebastian Köln a02e370675 rename pdf subcrate to export 2019-06-24 23:07:51 +03:00
Sebastian Köln 1ca35d8426 add PS export as well. also rename svg2pdf into convert and add PS export to it 2019-06-24 22:41:34 +03:00
Sebastian Köln 0a5c4007f9 merge with master 2019-06-24 18:31:13 +03:00
Patrick Walton 431dcf3d2e Rename `pathfinder_geometry::basic` to simply `pathfinder_geometry`, and move
the remaining code in that crate to a new crate, `pathfinder_content`

The old hierarchy was confusing.
2019-06-21 10:06:19 -07:00
Patrick Walton 336f2ca302 Rename `pathfinder_flash` to `pathfinder_swf` for consistency with other crates
in the Rust Flash ecosystem
2019-06-21 09:28:15 -07:00
Jon Hardie ba1ff45cb2 Merge branch 'master' of https://github.com/servo/pathfinder into swf_renderer 2019-06-21 10:58:52 +12:00
Patrick Walton 487577a11b Add Metal support.
This commit substantially reworks the `pathfinder_gpu` API to better support
modern APIs like Metal. It should open the door to `gfx-rs`, `wgpu`, Vulkan,
and D3D12 backends relatively straightforwardly.

A new example, `canvas_metal_minimal`, has been added.

Note that the new Metal shaders require a patched version of `spirv-cross` to
build properly. An upstream patch is forthcoming.
2019-06-20 11:47:22 -07:00
Sebastian Köln 4039658155 add a simple PDF export 2019-06-15 17:50:25 +03:00
Jon Hardie 96f0ed0926 Merge branch 'master' of https://github.com/servo/pathfinder into swf_renderer 2019-06-15 16:22:45 +12:00
Jon Hardie 5d698998e9 [WIP] Initial support for rendering graphic symbols from swf files. 2019-06-15 16:08:46 +12:00
Patrick Walton 5dfe14ebc4 Add a minimal `glutin` example 2019-06-12 10:50:24 -07:00
Patrick Walton e04cc273ee Add enough C bindings to recreate `canvas_minimal` in C.
Closes #12.
2019-05-25 20:21:38 -07:00
Patrick Walton 8c4f05ce39 Initial rudimentary Lottie parsing code 2019-05-23 18:03:09 -07:00
Patrick Walton 639a8f39e8 Add Moiré demo 2019-05-11 11:53:50 -07:00
Patrick Walton a078766dc6 Implement basic text rendering in canvas with `skribo` and `font-kit`.
Skribo currently writes some debugging info to standard output. A patch is
forthcoming to fix that.
2019-05-09 15:21:18 -07:00
Patrick Walton 9de7d95d33 Start a simple HTML canvas-like API, and add a minimal example to show how to
use it.
2019-05-03 14:15:38 -07:00
Alan Jeffrey 838bf684fb Add magicleap demo 2019-04-15 12:43:41 -04:00
Patrick Walton 9c404dfdc1 Add an Android port 2019-03-12 13:55:26 -07:00
Patrick Walton 8dc3a84d09 Remove `tile-svg` and the serialization code.
They can be added later if needed, but for now they're just bitrotting.
2019-03-05 15:38:10 -08:00
Patrick Walton ae450b063e WIP: Factor out GL code 2019-03-04 14:55:32 -08:00
Patrick Walton 64b480fe32 Some more work on the site 2019-03-01 14:58:02 -08:00
Patrick Walton ac24b67300 Add a simple SVG-subset-to-Skia-code tool, for benchmarking 2019-02-25 15:06:33 -08:00
Patrick Walton d30743a69c Begin refactoring the demo into a shared library and a platform-specific
entry point.

This will help the upcoming wasm port.
2019-02-15 18:21:46 -08:00
Patrick Walton dbf880d011 Rename `demo3` to `demo` 2019-02-08 14:53:20 -08:00
Patrick Walton 2f497e7f17 Remove unused `gfx-utils` 2019-02-08 14:42:17 -08:00
Patrick Walton 0b0c913332 Split out SIMD into a separate crate 2019-02-01 11:48:10 -08:00
Patrick Walton dd480feb52 Factor out the GL rendering code into a separate crate 2019-01-30 19:31:29 -08:00
Patrick Walton a4c2796883 Implement a third demo with native code, not working yet 2019-01-14 19:32:53 -08:00
Patrick Walton 821b54b8f4 Factor renderer and SVG code out into separate crates 2019-01-14 14:20:36 -08:00
Patrick Walton 3165a4a1b0 Remove old demo server; remove `SegmentFlags` 2019-01-10 20:43:03 -08:00
Patrick Walton adf49ab932 Rename `path-utils` to `geometry` 2019-01-10 10:01:21 -08:00
Patrick Walton b80e1ea38f wip: parsing svgs 2018-12-11 16:38:06 -08:00
Patrick Walton c6cc6e6fd8 Remove `pathfinder_font_renderer` in favor of `font-kit`.
Closes #69.

Closes #84.
2018-08-02 15:07:25 -07:00
Patrick Walton 96d2f909ea wip 2018-03-19 18:34:27 -07:00
Patrick Walton 6e13fb171c Use a lookup table to do area calculations instead of Loop-Blinn-style
distance-to-edge for stencil analytic antialiasing.

This improves the rendering quality of stencil AAA significantly.

Additionally, this adds an approximation of Core Graphics' (macOS')
defringing filter.

Closes #73.
2018-03-19 14:35:36 -07:00
Patrick Walton 6a640eca74 Simplify the B-quad vertex position VBO to have a uniform format, and
enable early Z for SVG.

Additionally, this switches the B-quad patches for XCAA to be convex
hulls instead of bounding boxes, reducing fragment shader load.

This is a large speedup for the Ghostscript tiger demo: 5x or more.

Closes #33.
2018-01-11 19:25:02 -08:00
Patrick Walton 0ec5b74851 Start a Cargo workspace and generate documentation for it 2017-12-23 18:01:55 -05:00
Patrick Walton 93c928bf5c Move Pathfinder to `pathfinder-classic` in preparation for Pathfinder 2 2017-06-27 14:13:11 -07:00
Patrick Walton a9c4c7aa3e Implement most of the basic arithmetic and control structures in the hinting VM 2017-02-27 12:52:14 -08:00
Patrick Walton 5e9b8c9423 Implement basic support for WOFF 1.0 2017-02-22 14:19:27 -08:00
Patrick Walton a0b23592b5 Allow specific fonts in collections to be selected 2017-02-08 15:34:16 -08:00
Patrick Walton 86fec9ff54 Fix local path in Cargo.toml 2017-02-03 15:18:48 -08:00
Patrick Walton ce383385df Add partial support for Mac `.dfont` suitcases 2017-02-03 13:13:54 -08:00
Patrick Walton c41cd1f150 Remove local path mistakenly added to Cargo.toml 2017-02-02 16:07:07 -08:00
Patrick Walton 94406a1d62 Add a simple benchmarking tool. Only benchmarks GPU time, not CPU for
now.
2017-01-31 18:33:24 -08:00
Patrick Walton 6ae7601283 Add borders between glyphs in the atlas; allow the atlas to be dumped in the demo 2017-01-30 20:04:39 -08:00
Patrick Walton 5bccf88445 Make zooming work better; fix atlas sizing bugs 2017-01-30 18:33:44 -08:00
Patrick Walton bdf6ebab24 Draft complete end-to-end code. Not working yet. 2017-01-11 20:44:10 -08:00
Patrick Walton 7056a7632b Create buffers and create skeleton OpenCL shaders 2017-01-10 19:57:08 -08:00
Patrick Walton 941aaea676 Encode contours. 0.3-0.4 µs per glyph or so. 2017-01-09 19:49:00 -08:00
Patrick Walton ce811c0e48 Implement the atlas 2017-01-07 11:52:45 -08:00
Patrick Walton 34cd1ef9b0 Initial commit 2017-01-06 23:49:45 -08:00