mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Make fill() handle all composition operations
This commit is contained in:
parent
1597b956b8
commit
da9b4c33cd
1 changed files with 5 additions and 30 deletions
|
@ -329,36 +329,11 @@ impl GenericDrawTarget for raqote::DrawTarget {
|
|||
warn!("no support for drawing shadows");
|
||||
}
|
||||
fn fill(&mut self, path: &Path, pattern: Pattern, draw_options: &DrawOptions) {
|
||||
match draw_options.as_raqote().blend_mode {
|
||||
raqote::BlendMode::Src => {
|
||||
self.clear(raqote::SolidSource::from_unpremultiplied_argb(0, 0, 0, 0));
|
||||
self.fill(
|
||||
path.as_raqote(),
|
||||
pattern.as_raqote(),
|
||||
draw_options.as_raqote(),
|
||||
);
|
||||
},
|
||||
raqote::BlendMode::DstIn |
|
||||
raqote::BlendMode::DstAtop |
|
||||
raqote::BlendMode::SrcIn |
|
||||
raqote::BlendMode::SrcOut => {
|
||||
self.push_layer(1.);
|
||||
self.clear(raqote::SolidSource::from_unpremultiplied_argb(0, 0, 0, 0));
|
||||
self.fill(
|
||||
path.as_raqote(),
|
||||
pattern.as_raqote(),
|
||||
draw_options.as_raqote(),
|
||||
);
|
||||
self.pop_layer();
|
||||
},
|
||||
_ => {
|
||||
self.fill(
|
||||
path.as_raqote(),
|
||||
pattern.as_raqote(),
|
||||
draw_options.as_raqote(),
|
||||
);
|
||||
},
|
||||
}
|
||||
let mut options = draw_options.as_raqote().clone();
|
||||
self.push_layer_with_blend(1., options.blend_mode);
|
||||
options.blend_mode = raqote::BlendMode::SrcOver;
|
||||
self.fill(path.as_raqote(), pattern.as_raqote(), &options);
|
||||
self.pop_layer();
|
||||
}
|
||||
fn fill_rect(
|
||||
&mut self,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue