aboutsummaryrefslogtreecommitdiffstats
path: root/components/canvas/raqote_backend.rs
Commit message (Collapse)AuthorAgeFilesLines
* Strict import formatting (grouping and granularity) (#30325)Samson2023-09-111-8/+10
| | | | | * strict imports formatting * Reformat all imports
* remove `extern crate` (#30311)Samson2023-09-081-0/+1
| | | | | | | | | | | * remove extern crate * Update components/script_plugins/lib.rs Co-authored-by: Martin Robinson <mrobinson@igalia.com> --------- Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* Bump euclid to 0.22Martin Robinson2023-01-261-2/+2
| | | | | | | | | | | | | - Also updates raqote to latest with an upgrade of font-kit to 0.11 applied on as a patch - Update lyon_geom to the latest version Major change: - All matrices are now stored in row major order. This means that parameters to rotation functions no longer should be negated. - `post_...()` functions are now named `then()`. `pre_transform()` is removed, so `then()` is used and the order of operations changed.
* Skip missing glyphs when drawing 2d canvas text.Josh Matthews2020-08-071-3/+25
|
* Fix ./mach build --release --with-layout-2020Utsav Oza2020-06-101-6/+3
|
* Enable textAlign, textBaseline and direction attributes for canvasUtsav Oza2020-06-101-19/+16
|
* Implement CanvasRenderingContext2D.font propertyUtsav Oza2020-06-101-0/+1
|
* Query layout to resolve canvas font property valueUtsav Oza2020-06-101-1/+1
|
* Basic implementation of canvas.fillTextUtsav Oza2020-06-101-0/+29
|
* Revert "Add a simple implementation of CanvasRenderingContext2d.fillText"Paul Rouget2020-03-241-81/+0
| | | | Windows crash: https://github.com/servo/servo/issues/26015
* Add a simple implementation of CanvasRenderingContext2d.fillTextkaiakz2020-03-191-0/+81
|
* Make fill_rect() draw patterns correctlypylbrecht2020-03-031-25/+6
|
* Refactor arc() and ellipse() to use lyon_geom::Arcpylbrecht2020-02-261-82/+57
|
* Add missing CompositionStyle::Clearpylbrecht2020-01-271-0/+1
|
* Remove duplication for creating gradient stopspylbrecht2019-12-171-16/+16
|
* Add transform to Pattern::Surface to properly draw imagespylbrecht2019-12-171-6/+32
|
* Consider empty gradients in `is_zero_size_gradient()`pylbrecht2019-12-171-2/+4
|
* Handle `BlendMode::Clear` in `GenericDrawTarget::fill()`pylbrecht2019-12-171-0/+1
|
* Add a layer to store Pattern related informationpylbrecht2019-12-171-164/+246
| | | | | | | | Some information of `canvas_data::Pattern` was lost by converting it to `raqote::Source` due to the fact that Raqote did not store this information (e.g. linear gradient's start/end points). We introduce another layer to keep this information for later use (like in `is_zero_size_gradient()`).
* Implement "repeat-x" and "repeat-y" for imagespylbrecht2019-12-171-47/+68
|
* Set images' ExtendMode based on available informationpylbrecht2019-12-171-1/+6
|
* Handle overlapping gradient stops for linear gradientspylbrecht2019-12-171-3/+10
| | | | | | | | | | | From `addColorStop(offset, color)`s spec: If multiple stops are added at the same offset on a gradient, they must be placed in the order added, with the first one closest to the start of the gradient, and each subsequent one infinitesimally further along towards the end point (in effect causing all but the first and last stop added at each point to be ignored) https://www.w3.org/html/test/results/2dcontext/annotated-spec/canvas.html#testrefs.2d.gradient.interpolate.overlapu
* Use push_layer_with_blend() only when necessarypylbrecht2019-12-171-5/+36
| | | | | push_layer_with_blend() comes at a performance cost, so we only use it on blend modes that require it.
* Make arc() wrap angles mod 2pipylbrecht2019-12-171-1/+8
|
* Make arc() use `anticlockwise` argumentpylbrecht2019-12-171-1/+2
|
* Make fill() handle all composition operationspylbrecht2019-12-171-30/+5
|
* Make fill() draw uncovered pixels as (0,0,0,0) for certain composition opspylbrecht2019-12-171-7/+42
|
* Respect direction when drawing arcspylbrecht2019-12-171-2/+5
|
* Respect FilterMode when drawing imagespylbrecht2019-12-171-10/+29
|
* Add check for handling equal radial gradientspylbrecht2019-12-171-1/+8
|
* Add check to handle zerosize linear gradientspylbrecht2019-12-171-1/+6
|
* Use tolerance > 0 in Path::contains_point()pylbrecht2019-12-171-1/+1
|
* Create raqote::SolidSource with premultiplied colorpylbrecht2019-12-171-30/+30
| | | | SolidSource expects a premultiplied color.
* Fix conversion of image data slicepylbrecht2019-12-171-1/+1
|
* Handle empty paths in PathBuilder::get_current_point()pylbrecht2019-12-171-12/+8
| | | | | The case of calling get_current_point() on empty paths has not been handled and caused panics.
* Apply transformation in Path::contains_point()pylbrecht2019-12-171-2/+5
|
* Don't reuse PathBuilder after calling finish()pylbrecht2019-12-171-0/+1
|
* Implement DrawTarget::snapshot()pylbrecht2019-10-111-1/+1
|
* Implement Path::transformed_copy_to_builder()pylbrecht2019-10-111-7/+10
|
* Show warn! for shadow drawing operationspylbrecht2019-10-111-1/+1
|
* Implement LinearGradient and RadialGradientpylbrecht2019-09-171-64/+42
|
* Implement ColorBurnpylbrecht2019-09-171-1/+1
|
* Update raqotepylbrecht2019-09-171-2/+1
|
* Add naive implementation for ellipse()pylbrecht2019-09-171-7/+136
| | | | | rust-azure's ellipse() C++ implementation copy/pasted and kind of ported to Rust. Obviously needs refactor to turn it into idiomatic Rust.
* Don't use catch all in matchpylbrecht2019-09-011-1/+1
|
* Use raqote's implementation of Path::contains_point()pylbrecht2019-09-011-8/+2
|
* Implement create_gradient_stops()pylbrecht2019-08-291-2/+14
|
* Refactor Path::contains_point() using any()pylbrecht2019-08-251-21/+8
|
* Implement PathBuilder::get_current_point()pylbrecht2019-08-251-1/+13
|
* Implement Path::contains_point()pylbrecht2019-08-251-2/+23
|