Commit graph

60 commits

Author SHA1 Message Date
pylbrecht
4d4e68ca6b Respect direction when drawing arcs 2019-12-17 19:52:00 +01:00
pylbrecht
a473f50245 Respect FilterMode when drawing images 2019-12-17 19:51:59 +01:00
pylbrecht
16f06f24c5 Add check for handling equal radial gradients 2019-12-17 19:51:59 +01:00
pylbrecht
d87e5d831b Add check to handle zerosize linear gradients 2019-12-17 19:51:59 +01:00
pylbrecht
55256df0ba Use tolerance > 0 in Path::contains_point() 2019-12-17 19:51:58 +01:00
pylbrecht
5c6a12a116 Create raqote::SolidSource with premultiplied color
SolidSource expects a premultiplied color.
2019-12-17 19:51:57 +01:00
pylbrecht
77a8bc4a1d Fix conversion of image data slice 2019-12-17 19:51:57 +01:00
pylbrecht
b8b33788b6 Handle empty paths in PathBuilder::get_current_point()
The case of calling get_current_point() on empty paths has not been
handled and caused panics.
2019-12-17 19:51:57 +01:00
pylbrecht
d6f46b5513 Apply transformation in Path::contains_point() 2019-12-17 19:51:56 +01:00
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