Commit Graph

1207 Commits

Author SHA1 Message Date
Patrick Walton 5ea86ccba8 Bump `pathfinder_geometry` and `pathfinder_simd` to version 0.4 2020-01-23 18:24:56 -08:00
Patrick Walton 3f72847294 Add a few missing methods to geometry and SIMD; fix SIMD tests 2020-01-14 21:31:22 -08:00
Patrick Walton 422ccbc15c
Merge pull request #250 from servo/i686
Support `pathfinder_simd` on 32-bit x86.
2020-01-14 13:04:28 -08:00
Patrick Walton ee9187849b Support `pathfinder_simd` on 32-bit x86.
Closes #249.
2020-01-14 13:03:31 -08:00
Patrick Walton ce3b40cd5c Make timer queries and framebuffer readback async 2020-01-07 13:03:15 -08:00
Patrick Walton eb66459ef4 Fold the `.round()` method on SIMD vectors into float-to-int conversion.
This drops our requirements from SSE4.1 to SSE2.

Closes #241.
2019-12-29 15:05:01 -08:00
Patrick Walton 0bb6b88859 Stop using AVX2 when packing pixels.
Partially addresses #241.
2019-12-29 12:38:36 -08:00
Patrick Walton 986792349f Use the SSE2 `_mm_movemask_ps` on x86 instead of the SSE4.1 `_mm_test_all_ones`
and `_mm_test_all_zeros`.

Partially addresses #241.
2019-12-29 12:13:58 -08:00
Patrick Walton 7f6374f110
Merge pull request #245 from s3bk/sorted_vector_binary_search
use a binary search for pathfinder_renderer::SortedVector
2019-12-29 11:29:45 -08:00
Patrick Walton dcefd7b70b
Merge pull request #246 from s3bk/usvg_0.8
update usvg to 0.8
2019-12-29 11:29:09 -08:00
Sebastian K e38e2d800f update usvg to 0.8 2019-12-28 11:46:31 +03:00
Sebastian K 805066e65c use a binary search for pathfinder_renderer::SortedVector 2019-12-28 11:14:25 +03:00
Patrick Walton 0662f6433f Allow any texture format to be uploaded; fix Metal compilation on newer rustcs 2019-12-20 11:48:51 -08:00
Patrick Walton 7c655246ae Add some more features to blending, and expand texture upload features 2019-12-19 08:58:02 -08:00
Patrick Walton 9124d9856a Add some more methods to 3D vectors, and a `gluLookAt()` workalike 2019-12-18 15:19:42 -08:00
Patrick Walton 8dabd0a7ea Add RGBA32F support 2019-12-14 13:58:02 -08:00
Patrick Walton 521ab3b5ba Add a 3D vector type 2019-12-07 11:52:35 -08:00
Patrick Walton b912cbbeb4
Merge pull request #242 from SethDusek/master
Bump lyon, font-kit and skribo versions to fix crashes
2019-11-30 15:01:40 -08:00
Kamal Ahmad 29713c5cd9 Bump lyon, font-kit and skribo versions to fix crashes 2019-11-20 22:51:03 +05:00
Patrick Walton fa54868eb1 Add support for single float uniforms to `pathfinder_gpu` 2019-11-15 21:17:50 -08:00
Patrick Walton 9260dbce93 Fix Cargo.toml in `pathfinder_geometry` 2019-11-10 10:33:34 -08:00
Patrick Walton 586d974b7d Update `Cargo.toml`s in preparation for publishing SIMD and geometry 2019-11-10 10:32:41 -08:00
Patrick Walton ff212dce36 Add 2D matrix uniform types and a couple more useful geometry methods 2019-11-10 10:28:20 -08:00
Patrick Walton 5d5d30346b Remove unnecessary dependencies from `pathfinder_gl` 2019-10-19 15:37:17 -07:00
Patrick Walton 99654270c9
Merge pull request #232 from s3bk/PR
fix #219 (minimum stroke thickness)
2019-10-04 20:30:23 -07:00
Patrick Walton 8914cb4977
Merge pull request #236 from est31/master
Remove redundant fixedbitset dependency
2019-09-07 18:22:43 -07:00
est31 ad143712a8 Remove redundant fixedbitset dependency 2019-08-30 20:24:09 +02:00
Sebastian Köln 3d0e911c3e fix #219 (minimum stroke thickness) 2019-08-10 18:35:56 +03:00
Patrick Walton f89ed900a3
Merge pull request #225 from est31/optional_text_rendering
Make text rendering optional in pathfinder_canvas
2019-08-05 13:51:49 -07:00
est31 3928e8d964 Rename the feature text → pf-text 2019-08-05 22:49:08 +02:00
est31 38df17696a Put the text stuff into separate files 2019-07-27 19:18:10 +02:00
est31 fa1a32bdbb Make text rendering optional in pathfinder_canvas 2019-07-27 06:13:02 +02:00
Patrick Walton 3c18f99bf8
Merge pull request #216 from toolness/c-improvements
Expose Canvas transform and save/restore to C
2019-07-22 15:18:48 -07:00
Patrick Walton 842348c65f
Merge pull request #218 from s3bk/master
fixes and a possible canvas addition
2019-07-22 15:17:29 -07:00
Sebastian Köln f00038eac1 don't return a reference 2019-07-19 20:57:15 +03:00
Sebastian Köln 47e77f2513 don't run doc code 2019-07-16 13:53:03 +03:00
Sebastian Köln d3b7d9c0aa add tests back to CI 2019-07-16 13:19:07 +03:00
Sebastian Köln 5589c80dd1 hopefully make harfbuzz build 2019-07-16 13:07:19 +03:00
Sebastian Köln bd12de8234 add default-members (and exclude metal). fixes #217 2019-07-16 09:59:52 +03:00
Sebastian Köln e12821350e fix canvas 2019-07-16 09:55:01 +03:00
Sebastian Köln ed1d75fdc6 fix swf 2019-07-16 09:54:50 +03:00
Sebastian Köln 6acab74fae Merge branch 'master' of https://github.com/servo/pathfinder 2019-07-16 09:43:37 +03:00
Atul Varma 84b4d1a5a8 Add canvas save and restore methods to C API. 2019-07-13 19:41:30 -04:00
Atul Varma d72e61d60b Add PFCanvasSetCurrentTransform, PFCanvasResetTransform. 2019-07-13 19:38:58 -04:00
Patrick Walton 652a03eb2b Fix tests 2019-07-12 12:00:49 -07:00
Patrick Walton e9c3fe6f31 Allow overloaded `*` to work between transforms and line segments and
transforms and rects
2019-07-12 11:59:04 -07:00
Patrick Walton 437eda96da Overload `*` between transforms and points 2019-07-12 11:55:01 -07:00
Patrick Walton 2c984de1ea Add convenience translation, rotation, and scaling methods to `Transform2D` 2019-07-12 11:34:48 -07:00
Patrick Walton 1eb28a5539 Fix incorrect definition of 2D transform multiplication 2019-07-12 11:26:09 -07:00
Patrick Walton 96758dfc17 Add `rotate` and `scale` methods to `Transform4F` 2019-07-11 15:57:45 -07:00
Patrick Walton 3f91206d57 Add a `translate` method to 3D transforms 2019-07-11 15:44:01 -07:00
Patrick Walton bcac119324 Rename `Transform2DF` to `Transform2F` and `Transform3DF` to `Transform4F` 2019-07-11 14:59:10 -07:00
Patrick Walton 55825cbc6a Switch scale and translation constructors for `Transform3DF` over to use vectors 2019-07-11 14:58:45 -07:00
Patrick Walton eb0a61679d Use operator overloading for 3D matrix multiplication 2019-07-11 13:59:39 -07:00
Patrick Walton abf97c9adb
Merge pull request #210 from s3bk/push_layout_fix
SceneExt::push_layout make transform apply to offsets
2019-07-10 08:48:58 -07:00
Patrick Walton 850980eb9d
Merge pull request #211 from Jason-Cooke/patch-1
docs: fix typo
2019-07-06 23:23:50 -07:00
Jason Cooke 4ec9666d1d
docs: fix typo 2019-07-06 14:36:05 +12:00
Sebastian Köln 2f6c33cbcb SceneExt::push_layout make transform apply to offsets 2019-07-03 14:49:43 +03:00
Patrick Walton b886c157c1 Use 2-lane instead of 4-lane SIMD types for 2D vectors.
Also, this commit rewrites the `add_fill()` method to stop using shuffle
instructions, which can be slow and make the code overly complicated. The
shuffle instructions have been removed from the various SIMD backends.
2019-06-26 16:38:37 -07:00
Patrick Walton 222fa89b23 Use a 3D transform in the tile vertex shaders.
This opens the door to caching tiles at different zoom levels (issue #191).
2019-06-25 11:32:39 -07:00
Patrick Walton 4cdded74b4 Fix SVG export in the demo; update `Cargo.lock` 2019-06-25 11:32:26 -07:00
Patrick Walton ff777f7995
Merge pull request #205 from s3bk/ps_export
Unify exports into the export crate.
2019-06-25 08:21:49 -07:00
Sebastian Köln 251785db67 cleanup 2019-06-25 11:39:31 +03:00
Sebastian Köln 21fffb29f7 merge with master 2019-06-25 11:36:04 +03:00
Sebastian Köln 090c21a20a Move all scene exports into the export crate.
SVG, PDF and PS can now be created with Scene::export.
2019-06-25 11:26:37 +03:00
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