Commit graph

51 commits

Author SHA1 Message Date
pylbrecht
c8025c9147 Don't reuse PathBuilder after calling finish() 2019-12-17 19:51:56 +01:00
pylbrecht
fa2de68919 Implement DrawTarget::snapshot() 2019-10-11 20:07:36 +02:00
pylbrecht
772f2bc2ee Implement Path::transformed_copy_to_builder() 2019-10-11 20:07:35 +02:00
pylbrecht
f88c6efd63 Show warn! for shadow drawing operations 2019-10-11 20:06:48 +02:00
pylbrecht
308908ed40 Implement LinearGradient and RadialGradient 2019-09-17 16:58:13 +02:00
pylbrecht
b8f92937b3 Implement ColorBurn 2019-09-17 11:54:39 +02:00
pylbrecht
430fad8b13 Update raqote 2019-09-17 11:54:39 +02:00
pylbrecht
818b5d4150 Add naive implementation for ellipse()
rust-azure's ellipse() C++ implementation copy/pasted and kind of ported
to Rust. Obviously needs refactor to turn it into idiomatic Rust.
2019-09-17 11:48:44 +02:00
pylbrecht
d24568218b Don't use catch all in match 2019-09-01 19:26:04 +02:00
pylbrecht
47a6129332 Use raqote's implementation of Path::contains_point() 2019-09-01 19:22:20 +02:00
pylbrecht
7c81d20869 Implement create_gradient_stops() 2019-08-29 14:17:03 +02:00
pylbrecht
89b8bd516f Refactor Path::contains_point() using any() 2019-08-25 16:43:29 +02:00
pylbrecht
ee7f3dbc46 Implement PathBuilder::get_current_point() 2019-08-25 16:19:33 +02:00
pylbrecht
2a0be451ae Implement Path::contains_point() 2019-08-25 15:50:04 +02:00
Bastien Orivel
f829eaea03 Fix the build and tidy and address nits 2019-08-21 19:19:43 +02:00
Bastien Orivel
168a526221 Implement Source::Surface for FillOrStrokeStyle with raqote 2019-08-21 19:10:57 +02:00
Bastien Orivel
8a57876482 Implement get_format
Since raqote doesn't have multiple formats for its surfaces, this is a
noop to avoid crashing with the unimplemented
2019-08-21 19:10:57 +02:00
Bastien Orivel
dc78b6a989 Implement a few functions to make tests in draw-image and draw-path pass 2019-08-21 19:10:57 +02:00
Bastien Orivel
3dd0b462c2 Make tidy happy again 2019-08-21 19:10:57 +02:00
Bastien Orivel
0a3c6637bb Implement create_similar_draw_target 2019-08-21 19:10:57 +02:00
Bastien Orivel
4c73e4bb3f Imlplement get_composition_op 2019-08-21 19:10:57 +02:00
Bastien Orivel
a28d00013c Implement set_shadow_color, set_global_composition and stroke_rect 2019-08-21 19:10:57 +02:00
Bastien Orivel
a9fd26729b Match the azure backend regarding cap stuff
I think this is wrong because it won't respect cap style at all when
stroking lines but we'll cross that bridge when we get to it
2019-08-21 19:10:57 +02:00
Bastien Orivel
97674082d3 Pass BlendMode::Clear to the fill method of DrawTarget in clear_rect
This makes some tests regarding clearing rects pass. Otherwise the rect
wouldn't get cleared properly and it'd keep its original color but get
an alpha of 0
2019-08-21 19:10:56 +02:00
Bastien Orivel
777ef4f3e8 Implement snapshot_data_owned 2019-08-21 19:10:56 +02:00
Bastien Orivel
97364dc6af Implement get_size 2019-08-21 19:10:56 +02:00
Bastien Orivel
fda815bcbb Properly pass draw_options in fill_rect 2019-08-21 19:10:56 +02:00
Bastien Orivel
e90d1a1d8d Implement stroke_line and set_stroke_style 2019-08-21 19:10:56 +02:00
Bastien Orivel
9229dc4d85 Implement clear_rect 2019-08-21 19:10:56 +02:00
Bastien Orivel
24313a82a1 Make tidy happy 2019-08-21 19:10:56 +02:00
Bastien Orivel
14ee093a5b Implement size_from_pattern
I tried to mimic the azure implementation but raqote doesn't have a
concept of horizontal or vertical repeat so this might be
wrong/incomplete but this is the last function needed to finally have
some tests pass
2019-08-21 19:08:18 +02:00
Bastien Orivel
ed0dbafc72 Implement need_to_draw_shadow 2019-08-21 19:08:18 +02:00
Bastien Orivel
559b28ce7b Implement snapshot_data 2019-08-21 19:08:18 +02:00
Bastien Orivel
c39af71aeb Add an implementation for fill_rect
Again, this is probably incomplete but it'll do for now
2019-08-21 19:08:18 +02:00
Bastien Orivel
0a878da500 Implement Pattern::is_zero_size_gradient
There are probably other times where this would be true but I'll worry
about that later
2019-08-21 19:08:18 +02:00
Bastien Orivel
93f1053b0e Implement set_fill_style 2019-08-21 19:08:18 +02:00
Bastien Orivel
cbe385c7d7 Add a way to convert a FillOrStrokeStyle to a raqote Source
For now most of it unimplemented but it'll allow for some more testing
2019-08-21 19:08:18 +02:00
pylbrecht
7005c24e40 Implement some of GenericDrawTarget's methods for raqote 2019-08-21 19:08:17 +02:00
pylbrecht
398929ffef Implement fill() for raqote::DrawTarget 2019-08-21 19:08:17 +02:00
Josh Matthews
4e51caeb7e Deal with fallout from mutable trait method change. 2019-08-21 19:08:17 +02:00
pylbrecht
b43c5c30e3 WIP: Make GenericPathBuilder's methods take &mut self 2019-08-21 19:08:17 +02:00
pylbrecht
9f9013946a Implement provided raqote::PathBuilder's methods for GenericPathBuilder 2019-08-21 19:08:17 +02:00
pylbrecht
f9e398d9f6 Make GenericPathBuilder take &mut self 2019-08-21 19:08:17 +02:00
pylbrecht
4179f91f93 Implement StrokeOptions 2019-08-21 19:08:17 +02:00
pylbrecht
4aad4ff858 Implement DrawOptions.set_alpha() 2019-08-21 19:08:16 +02:00
Emilio Cobos Álvarez
3d57c22e9c Update euclid.
There are a few canvas2d-related dependencies that haven't updated, but they
only use euclid internally so that's not blocking landing the rest of the
changes.

Given the size of this patch, I think it's useful to get this landed as-is.
2019-07-23 23:09:55 +02:00
Simon Sapin
1d38bc0419 Fix some new warnings 2019-06-22 14:59:09 +02:00
Josh Matthews
ce18636aef Make Azure backend build again. 2019-06-03 00:12:01 -04:00
Josh Matthews
3539c029f1 Most basic raqote draw target stubs. 2019-06-03 00:12:01 -04:00
Josh Matthews
db362184fd Fix formatting. 2019-06-03 00:12:01 -04:00