From 936d480267578d7e80675e78ec1880aaaaab72d6 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Fri, 1 Dec 2023 16:04:27 +0100 Subject: Clip text to `viewport` bounds instead of layout bounds --- wgpu/src/text.rs | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'wgpu/src/text.rs') diff --git a/wgpu/src/text.rs b/wgpu/src/text.rs index 08a8bea6..7d73c87b 100644 --- a/wgpu/src/text.rs +++ b/wgpu/src/text.rs @@ -120,9 +120,13 @@ impl Pipeline { horizontal_alignment, vertical_alignment, color, + viewport, ) = match section { Text::Paragraph { - position, color, .. + position, + color, + viewport, + .. } => { use crate::core::text::Paragraph as _; @@ -137,10 +141,14 @@ impl Pipeline { paragraph.horizontal_alignment(), paragraph.vertical_alignment(), *color, + *viewport, ) } Text::Editor { - position, color, .. + position, + color, + viewport, + .. } => { use crate::core::text::Editor as _; @@ -155,6 +163,7 @@ impl Pipeline { alignment::Horizontal::Left, alignment::Vertical::Top, *color, + *viewport, ) } Text::Cached(text) => { @@ -173,6 +182,7 @@ impl Pipeline { text.horizontal_alignment, text.vertical_alignment, text.color, + text.viewport, ) } }; @@ -195,13 +205,8 @@ impl Pipeline { alignment::Vertical::Bottom => bounds.y - bounds.height, }; - let section_bounds = Rectangle { - x: left, - y: top, - ..bounds - }; - - let clip_bounds = layer_bounds.intersection(§ion_bounds)?; + let clip_bounds = + layer_bounds.intersection(&(viewport * scale_factor))?; Some(glyphon::TextArea { buffer, -- cgit From b526ce4958b28208395276dd4078ffe0d780e1d7 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Sat, 2 Dec 2023 15:53:02 +0100 Subject: Rename `viewport` to `clip_bounds` --- wgpu/src/text.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'wgpu/src/text.rs') diff --git a/wgpu/src/text.rs b/wgpu/src/text.rs index 7d73c87b..888b1924 100644 --- a/wgpu/src/text.rs +++ b/wgpu/src/text.rs @@ -120,12 +120,12 @@ impl Pipeline { horizontal_alignment, vertical_alignment, color, - viewport, + clip_bounds, ) = match section { Text::Paragraph { position, color, - viewport, + clip_bounds, .. } => { use crate::core::text::Paragraph as _; @@ -141,13 +141,13 @@ impl Pipeline { paragraph.horizontal_alignment(), paragraph.vertical_alignment(), *color, - *viewport, + *clip_bounds, ) } Text::Editor { position, color, - viewport, + clip_bounds, .. } => { use crate::core::text::Editor as _; @@ -163,7 +163,7 @@ impl Pipeline { alignment::Horizontal::Left, alignment::Vertical::Top, *color, - *viewport, + *clip_bounds, ) } Text::Cached(text) => { @@ -182,7 +182,7 @@ impl Pipeline { text.horizontal_alignment, text.vertical_alignment, text.color, - text.viewport, + text.clip_bounds, ) } }; @@ -206,7 +206,7 @@ impl Pipeline { }; let clip_bounds = - layer_bounds.intersection(&(viewport * scale_factor))?; + layer_bounds.intersection(&(clip_bounds * scale_factor))?; Some(glyphon::TextArea { buffer, -- cgit