Implement text clipping (caching still broken)
This commit is contained in:
parent
35e94f5a32
commit
2b23e0986c
5 changed files with 18 additions and 29 deletions
|
|
@ -4,6 +4,8 @@ use iced::{
|
||||||
};
|
};
|
||||||
|
|
||||||
pub fn main() {
|
pub fn main() {
|
||||||
|
env_logger::init();
|
||||||
|
|
||||||
Example::default().run()
|
Example::default().run()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -32,25 +34,17 @@ impl Application for Example {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn view(&mut self) -> Element<Message> {
|
fn view(&mut self) -> Element<Message> {
|
||||||
//let content = (0..3).fold(
|
|
||||||
// Scrollable::new(&mut self.scroll).spacing(20).padding(20),
|
|
||||||
// |content, _| {
|
|
||||||
// content.push(
|
|
||||||
// )
|
|
||||||
// },
|
|
||||||
//);
|
|
||||||
|
|
||||||
let content = (0..self.item_count)
|
let content = (0..self.item_count)
|
||||||
.fold(
|
.fold(
|
||||||
Scrollable::new(&mut self.scroll)
|
Scrollable::new(&mut self.scroll)
|
||||||
.spacing(20)
|
.spacing(20)
|
||||||
.padding(20)
|
.padding(20)
|
||||||
.align_items(Align::Center),
|
.align_items(Align::Center),
|
||||||
|column, i| {
|
|scrollable, i| {
|
||||||
if i % 2 == 0 {
|
if i % 2 == 0 {
|
||||||
column.push(lorem_ipsum().width(Length::Units(600)))
|
scrollable.push(lorem_ipsum().width(Length::Units(600)))
|
||||||
} else {
|
} else {
|
||||||
column.push(
|
scrollable.push(
|
||||||
Image::new(format!(
|
Image::new(format!(
|
||||||
"{}/examples/resources/ferris.png",
|
"{}/examples/resources/ferris.png",
|
||||||
env!("CARGO_MANIFEST_DIR")
|
env!("CARGO_MANIFEST_DIR")
|
||||||
|
|
|
||||||
|
|
@ -11,4 +11,4 @@ repository = "https://github.com/hecrj/iced"
|
||||||
iced_core = { version = "0.1.0-alpha", path = "../core" }
|
iced_core = { version = "0.1.0-alpha", path = "../core" }
|
||||||
stretch = "0.2"
|
stretch = "0.2"
|
||||||
twox-hash = "1.5"
|
twox-hash = "1.5"
|
||||||
raw-window-handle = "0.1"
|
raw-window-handle = "0.3"
|
||||||
|
|
|
||||||
|
|
@ -9,9 +9,9 @@ repository = "https://github.com/hecrj/iced"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
iced_native = { version = "0.1.0-alpha", path = "../native" }
|
iced_native = { version = "0.1.0-alpha", path = "../native" }
|
||||||
wgpu = { version = "0.3", git = "https://github.com/gfx-rs/wgpu-rs", rev = "cb25914b95b58fee0dc139b400867e7a731d98f4" }
|
wgpu = { version = "0.3", git = "https://github.com/gfx-rs/wgpu-rs", rev = "ed2c67f762970d0099c1e6c6e078fb645afbf964" }
|
||||||
wgpu_glyph = { version = "0.4", git = "https://github.com/hecrj/wgpu_glyph", rev = "48daa98f5f785963838b4345e86ac40eac095ba9" }
|
wgpu_glyph = { version = "0.4", git = "https://github.com/hecrj/wgpu_glyph", rev = "954ac865ca1b7f6b97bf403f8c6174a7120e667c" }
|
||||||
raw-window-handle = "0.1"
|
raw-window-handle = "0.3"
|
||||||
image = "0.22"
|
image = "0.22"
|
||||||
nalgebra = "0.18"
|
nalgebra = "0.18"
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,7 @@ impl Renderer {
|
||||||
extensions: Extensions {
|
extensions: Extensions {
|
||||||
anisotropic_filtering: false,
|
anisotropic_filtering: false,
|
||||||
},
|
},
|
||||||
limits: Limits { max_bind_groups: 1 },
|
limits: Limits { max_bind_groups: 2 },
|
||||||
});
|
});
|
||||||
|
|
||||||
let surface = Surface::create(window);
|
let surface = Surface::create(window);
|
||||||
|
|
@ -162,17 +162,6 @@ impl Renderer {
|
||||||
self.draw_primitive(primitive, &mut layer);
|
self.draw_primitive(primitive, &mut layer);
|
||||||
self.flush(target.transformation, &layer, &mut encoder, &frame.view);
|
self.flush(target.transformation, &layer, &mut encoder, &frame.view);
|
||||||
|
|
||||||
self.glyph_brush
|
|
||||||
.borrow_mut()
|
|
||||||
.draw_queued(
|
|
||||||
&mut self.device,
|
|
||||||
&mut encoder,
|
|
||||||
&frame.view,
|
|
||||||
u32::from(target.width),
|
|
||||||
u32::from(target.height),
|
|
||||||
)
|
|
||||||
.expect("Draw text");
|
|
||||||
|
|
||||||
self.queue.submit(&[encoder.finish()]);
|
self.queue.submit(&[encoder.finish()]);
|
||||||
|
|
||||||
*mouse_cursor
|
*mouse_cursor
|
||||||
|
|
@ -331,11 +320,17 @@ impl Renderer {
|
||||||
}
|
}
|
||||||
|
|
||||||
glyph_brush
|
glyph_brush
|
||||||
.draw_queued_with_transform(
|
.draw_queued_with_transform_and_scissoring(
|
||||||
&mut self.device,
|
&mut self.device,
|
||||||
encoder,
|
encoder,
|
||||||
target,
|
target,
|
||||||
translated.into(),
|
translated.into(),
|
||||||
|
wgpu_glyph::Region {
|
||||||
|
x: layer.bounds.x,
|
||||||
|
y: layer.bounds.y,
|
||||||
|
width: layer.bounds.width,
|
||||||
|
height: layer.bounds.height,
|
||||||
|
},
|
||||||
)
|
)
|
||||||
.expect("Draw text");
|
.expect("Draw text");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,5 +9,5 @@ repository = "https://github.com/hecrj/iced"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
iced_native = { version = "0.1.0-alpha", path = "../native" }
|
iced_native = { version = "0.1.0-alpha", path = "../native" }
|
||||||
winit = { version = "0.20.0-alpha3", git = "https://github.com/hecrj/winit", branch = "redraw-requested-2.0" }
|
winit = { version = "0.20.0-alpha3", git = "https://github.com/rust-windowing/winit", rev = "709808eb4e69044705fcb214bcc30556db761405"}
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue