diff --git a/content/src/pattern.rs b/content/src/pattern.rs index 4a1a190c..6d3945d1 100644 --- a/content/src/pattern.rs +++ b/content/src/pattern.rs @@ -154,7 +154,7 @@ impl Pattern { #[inline] pub fn is_opaque(&self) -> bool { - self.source.is_opaque() + self.source.is_opaque() && self.opacity == !0 } #[inline] diff --git a/examples/canvas_nanovg/src/main.rs b/examples/canvas_nanovg/src/main.rs index 10cd4bf1..1efa9b1b 100644 --- a/examples/canvas_nanovg/src/main.rs +++ b/examples/canvas_nanovg/src/main.rs @@ -989,11 +989,12 @@ fn draw_thumbnails(context: &mut CanvasRenderingContext2D, } let image_path = create_rounded_rect_path(image_rect, 5.0); - let pattern_transform = Transform2F::from_translation( - image_rect.origin() - vec2i( - (image_index % IMAGES_ACROSS) as i32, - (image_index / IMAGES_ACROSS) as i32).to_f32() * THUMB_HEIGHT) * - Transform2F::from_scale(0.5); + let image_coord = vec2i((image_index % IMAGES_ACROSS) as i32, + (image_index / IMAGES_ACROSS) as i32); + let pattern_transform = Transform2F::from_translation(image_rect.origin()) * + Transform2F::from_scale(0.5) * + Transform2F::from_translation(-image_coord.to_f32() * (THUMB_HEIGHT * 2.0 + 2.0) - + 1.0); let mut pattern = Pattern::from_image((*image).clone()); pattern.apply_transform(pattern_transform); context.set_fill_style(pattern); diff --git a/resources/textures/example-nanovg.png b/resources/textures/example-nanovg.png index 65e2cbd7..84b2acc1 100644 Binary files a/resources/textures/example-nanovg.png and b/resources/textures/example-nanovg.png differ