Patrick Walton
fd357725de
Update the README
2019-06-24 23:09:22 -07:00
Patrick Walton
4d866f4a75
Move `svg2pdf` to `utils/`
2019-06-24 23:05:09 -07:00
Patrick Walton
ad858564a9
Add a minimal macOS example app using the C Metal API
2019-06-24 23:03:37 -07:00
Patrick Walton
6785ba0623
Flesh out the Metal C API more
2019-06-24 22:55:55 -07:00
Patrick Walton
a8d20cb37f
Add transform support to the C API, and fix build problems
2019-06-24 14:03:26 -07:00
Sebastian Köln
a02e370675
rename pdf subcrate to export
2019-06-24 23:07:51 +03:00
Sebastian Köln
781074a0e6
Merge branch 'ps_export' of github.com:s3bk/pathfinder into ps_export
2019-06-24 22:55:20 +03:00
Sebastian Köln
b41388c3ed
Merge https://github.com/servo/pathfinder
2019-06-24 22:44:07 +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
Patrick Walton
82171088c5
Expose text alignment in the C API
2019-06-24 12:06:05 -07:00
Patrick Walton
9efe44640d
Update `Cargo.lock`
2019-06-24 12:05:59 -07:00
Patrick Walton
e727fd9018
Try to work around #199
2019-06-24 11:45:44 -07:00
Patrick Walton
0b299060d5
Merge pull request #203 from s3bk/pdf_export
...
Pdf export
2019-06-24 11:34:07 -07:00
Sebastian Köln
0e08bc6696
fix warning
2019-06-24 20:20:15 +03:00
Sebastian Köln
8b64d5add1
update pdf
2019-06-24 20:17:48 +03:00
Sebastian Köln
0a5c4007f9
merge with master
2019-06-24 18:31:13 +03:00
Sebastian Köln
17f0e50878
Merge https://github.com/servo/pathfinder
2019-06-24 18:23:10 +03:00
Sebastian Köln
2a129b7bbd
add CanvasRenderingContext2D::fill_layout – a method to draw layouts directly, without using skribo
2019-06-24 16:12:05 +03:00
Patrick Walton
dfdfebfdd2
Fix use-after-free in Metal argument encoding
2019-06-22 14:39:29 -07:00
Patrick Walton
d86ff9011a
Update the postprocessing shader and vertex array for the Metal changes.
...
Closes #201 .
2019-06-21 18:04:18 -07:00
Patrick Walton
2c49a3360e
Add Metal support to the C API
2019-06-21 13:37:17 -07:00
Patrick Walton
1c34b12948
Add some font functions to the C API
2019-06-21 13:17:11 -07:00
Patrick Walton
1caad35b46
Use `cbindgen` instead of hand-writing a header file
2019-06-21 11:35:18 -07:00
Patrick Walton
9107f21966
wip
2019-06-21 10:40:32 -07: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
b16300bf02
Move the SWF assets into `resources/`.
2019-06-21 09:32:48 -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
Patrick Walton
82b0826407
Merge remote-tracking branch 'hardiesoft/swf_renderer'
2019-06-21 09:25:00 -07:00
Patrick Walton
de0662e08e
Update `spirv-cross` to upstream master.
...
A fix has been merged for the issue that was breaking Pathfinder, so we can now
use the master branch.
2019-06-21 07:24:24 -07:00
Patrick Walton
0012f09eeb
Fix examples
2019-06-20 21:43:57 -07:00
Patrick Walton
8ec4f04deb
Make `canvas-text` use a custom font
2019-06-20 21:34:46 -07:00
Patrick Walton
010bc66073
Upgrade `resvg` to 0.7
2019-06-20 17:13:15 -07:00
Patrick Walton
3f601be08c
Add C bindings to fill and stroke styles
2019-06-20 16:57:20 -07:00
Jon Hardie
f730e5d2db
[WIP] Remove incorrect debug assertion
2019-06-21 11:12:10 +12:00
Jon Hardie
4d53ab60fc
[WIP] Updating to master
2019-06-21 11:10:26 +12:00
Patrick Walton
36db39883c
Add C bindings to the canvas text APIs
2019-06-20 16:07:38 -07:00
Jon Hardie
b1dc8a1ab7
Merge remote-tracking branch 'origin/swf_renderer' into swf_renderer
2019-06-21 11:00:49 +12: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
2129e4f2e1
Add missing path methods to the C API
2019-06-20 15:51:25 -07:00
Patrick Walton
d2fbb23031
Expose more stroke features in the C API
2019-06-20 13:01:54 -07:00
Patrick Walton
71623eaab3
Make Metal dependencies in the demo Mac-only
2019-06-20 12:34:55 -07: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
jonathanhardie
b17d6c605a
Remove incorrect debug assertion
2019-06-19 11:25:26 +12:00
Patrick Walton
5c5fe00b27
Fix build problem
2019-06-17 13:16:03 -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
dbf02fb742
Make `get_vertex_attr()` fallible
2019-06-12 10:50:24 -07:00
Patrick Walton
636ff6dbf8
Merge pull request #190 from asajeffrey/offwhite-svgs
...
Make the backgrounds of the demo SVGs off-white
2019-06-08 10:02:03 -07:00
Patrick Walton
fac4f0d347
Merge pull request #189 from asajeffrey/sharpen-text
...
Improve reprojection on magicleap
2019-06-07 22:08:10 -07:00
Alan Jeffrey
45d7f7ad9a
Make the backgrounds of the demo SVGs off-white
2019-06-07 12:23:55 -05:00
Alan Jeffrey
a507e1955e
Set the scene transform by linear iterpolation of the eye transforms
2019-06-07 12:02:30 -05:00
Alan Jeffrey
005e7d3835
Set the scene transform to be one of the eye transforms
2019-06-07 10:15:34 -05:00
Alan Jeffrey
3c91c1cc97
Better error handling of magicleap demo args
2019-06-07 10:15:34 -05:00
Patrick Walton
966c836d4b
Merge pull request #188 from asajeffrey/magicleap-fix-for-luminos-0.96
...
Fix the magicleap app to work in LuminOS 0.96
2019-06-07 08:11:32 -07:00
Alan Jeffrey
d877ca1d3a
Fix the magicleap app to work in LuminOS 0.96
2019-06-06 12:36:32 -05:00
Patrick Walton
412d35ae57
Merge pull request #182 from toolness/cfg-debug-assertions
...
Define ck() based on cfg(debug_assertions)
2019-06-05 18:32:51 -07:00
Patrick Walton
1897cc54f6
Merge pull request #184 from luisbg/master
...
Add more tests for F32x4
2019-06-05 18:31:50 -07:00
Patrick Walton
9f9233c153
Add Metal shaders, cross-compiled from the GLSL via SPIR-V.
...
The Metal shaders are checked into the repository for convenience, but they
should not be directly edited. Instead, edit the corresponding GLSL shader in
the top-level `shaders/` directory, and rerun `make` in there.
2019-06-05 18:29:25 -07:00
Patrick Walton
678e12aed6
Merge pull request #181 from jrr/travis-tweaks
...
full build in CI
2019-06-05 16:16:41 -07:00
Luis de Bethencourt
70e9adc0da
Add more tests for F32x4
2019-06-05 17:30:31 -04:00
Atul Varma
7563e95d96
Add a more helpful panic message when GL errors occur.
2019-06-05 08:15:21 -04:00
Atul Varma
5ce4e2e128
Define ck() based on cfg(debug_assertions).
2019-06-05 07:45:52 -04:00
John Ruble
48e3f20516
add cmake, run full build
...
try test
disable test step
2019-06-04 23:18:24 -04:00
Patrick Walton
893f735a2b
Merge pull request #180 from toolness/patch-1
...
Mention PFCanvasCreate() consumes the font context
2019-06-04 16:52:14 -07:00
Atul Varma
6d41cb4dad
Mention PFCanvasCreate() consumes the font context
2019-06-04 18:00:22 -04:00
Patrick Walton
e3112d1a84
Add `PFCanvasFontContextClone()`
2019-06-04 14:55:59 -07:00
Patrick Walton
3be3de23d8
Merge pull request #177 from jrr/patch-1
...
Update README.md
2019-06-04 08:22:15 -07:00
John Ruble
dc0f00051b
Update README.md
...
travis badge and note about demos
2019-06-04 07:55:54 -04:00
Patrick Walton
7973148603
Implement basic shadows (no blur yet)
2019-06-03 21:09:04 -07:00
Patrick Walton
bd248bf850
Implement line dash offset
2019-06-03 19:36:08 -07:00
Patrick Walton
5e64ee4947
Merge pull request #175 from asajeffrey/get-magicleap-working-again
...
Get magicleap working again
2019-06-03 16:01:02 -07:00
Alan Jeffrey
9c641f6ce3
Renamed Point2D to Vector2
2019-06-03 17:58:34 -05:00
Alan Jeffrey
c71a20805f
Removed some unused imports
2019-06-03 17:52:18 -05:00
Alan Jeffrey
848234ef61
Updated magicleap demo for new pathfinder API
2019-06-03 17:52:18 -05:00
Alan Jeffrey
a2c8d71a3f
Rayon's thread builder API requires ownership
2019-06-03 17:52:18 -05:00
Alan Jeffrey
f5b5843c31
Make demo camera Mode public
2019-06-03 17:52:18 -05:00
Alan Jeffrey
635d3bc1f3
Call make_current(eye) when rendering for each eye.
2019-06-03 17:52:18 -05:00
Patrick Walton
dc45dc459e
Remove unused `LineSegment2F::cross` and vector cross product functions
2019-06-03 15:50:39 -07:00
Patrick Walton
1a42bbf4d3
Implement dashing for line segments (no curves yet)
2019-06-03 14:16:58 -07:00
Patrick Walton
a1b0df0a42
Rename `Point2DF` to `Vector2F`, `Point3DF` to `Vector4F`, and `LineSegmentF`
...
to `LineSegment2F`.
Straw poll on Twitter suggested that these names were preferred.
2019-06-03 12:39:29 -07:00
Patrick Walton
678b6f12c7
Add support for counterclockwise winding to arcs
2019-06-01 12:56:31 -07:00
Patrick Walton
99c1cca05c
Clean up `Outline::push_segment` and `Outline::push_full_segment`
2019-06-01 12:03:03 -07:00
Patrick Walton
44167beff5
Implement `Path2D::arc_to`.
2019-05-31 16:01:53 -07:00
Patrick Walton
f20d41800c
Use a correct algorithm for approximating arcs with Bézier curves
2019-05-31 16:01:28 -07:00
Patrick Walton
0b9a41c533
Treat the miter limit as part of the canvas state, allowing it to be saved and
...
restored even if miter joins are not in use.
In my opinion, this behavior is less logical, but it matches the behavior of
the HTML canvas API, which we aim to remain close to.
2019-05-30 21:39:08 -07:00
Patrick Walton
eeaf51ce72
Expose line cap features to C
2019-05-30 21:28:52 -07:00
Patrick Walton
712c69faf1
Precompute the curve for a quarter-circle arc
2019-05-30 21:20:32 -07:00
Patrick Walton
48f825077c
Add new join and cap features to SVG, fixing the demo
2019-05-30 20:55:58 -07:00
Patrick Walton
95f3337c6f
Add the `ellipse` method to canvas paths
2019-05-30 17:24:12 -07:00
Patrick Walton
9756aa89f9
Base the core arc primitive on a unit chord and transform.
...
This lets us handle ellipses better.
2019-05-30 17:19:21 -07:00
Patrick Walton
607a518544
Implement canvas text align
2019-05-30 15:08:15 -07:00
Patrick Walton
5974aeba7b
Implement miter limit
2019-05-30 13:08:30 -07:00
Patrick Walton
8d078ff345
Add an initial implementation of canvas `measureText`
2019-05-30 12:38:32 -07:00
Patrick Walton
ce127caf76
Fix drawing of full circles
2019-05-30 10:56:19 -07:00
Patrick Walton
d5ba6ab6da
Change the core arc primitive to chord and radius, not chord and center.
...
This makes it harder to call the function with illegal arguments and simplifies
the join/cap code.
2019-05-30 10:17:17 -07:00
Patrick Walton
9138e1e0bb
Pass in the font context to the canvas rendering context constructor so that it
...
can be reused.
Creating a system font source can do I/O on some platforms, so obviously we
don't want to do it every frame.
2019-05-29 21:15:42 -07:00
Patrick Walton
e1bcc11ace
Change the `F32` and `I32` suffixes to `F` and `I` to match the C API.
...
They're shorter and less noisy.
2019-05-29 19:17:16 -07:00
Patrick Walton
a75b635722
Implement round joins
2019-05-29 19:09:15 -07:00