Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

correct for empty box shadow rects #1117

Merged
merged 1 commit into from Apr 13, 2017
Merged
Changes from all commits
Commits
File filter...
Filter file types
Jump to…
Jump to file
Failed to load files.

Always

Just for now

@@ -786,9 +786,13 @@ impl FrameBuilder {

let bs_rect = box_bounds.translate(box_offset)
.inflate(inflate_amount, inflate_amount);
// If we have negative inflate amounts.
// Have to explicitly check this since euclid::TypedRect relies on negative rects
let bs_rect_empty = bs_rect.size.width <= 0.0 || bs_rect.size.height <= 0.0;

This comment has been minimized.

@kvark

kvark Apr 13, 2017

Member

should the conditions be < instead of <=, given the comment says "negative"?

This comment has been minimized.

@changm

changm Apr 13, 2017

Author Contributor

No, but I put "negative" there since Euclid correctly handles 0 sized rects. I can update the comment to reflect that if you want. I was hoping to just do bs_rect.is_empty().


// Just draw a rectangle
if blur_radius == 0.0 && spread_radius == 0.0 && clip_mode == BoxShadowClipMode::None {
if (blur_radius == 0.0 && spread_radius == 0.0 && clip_mode == BoxShadowClipMode::None)
|| bs_rect_empty {
self.add_solid_rectangle(clip_id,
box_bounds,
clip_region,
@@ -0,0 +1,9 @@
---
root:
items:
- type: stacking-context
bounds: [50, 50, 100, 100]
items:
- type: rect
bounds: [ 10, 10, 80, 80 ]
color: [255, 0, 0]
@@ -0,0 +1,12 @@
---
root:
items:
- type: stacking-context
bounds: [50, 50, 100, 100]
items:
- type: box-shadow
bounds: [ 10, 10, 80, 80 ]
blur-radius: 5
clip-mode: inset
spread-radius: 200
color: [255, 0, 0]
@@ -1,6 +1,7 @@
!= inset-simple.yaml inset-simple-ref.yaml
!= inset-spread.yaml inset-spread-ref.yaml
== inset-no-blur-radius.yaml inset-no-blur-radius-ref.png
== inset-spread-large.yaml inset-spread-large-ref.yaml

# fuzzy because the test is a blur. Just want to test that clip out works.
fuzzy(7,13704) == inset-border-radius.yaml inset-border-radius-ref.yaml
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.