summaryrefslogtreecommitdiffstats
path: root/wgpu/src/backend.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-05-20 20:28:35 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-05-20 20:28:35 +0200
commita1a5fcfd46622d5b18d1716aa2adb4659835ccf3 (patch)
tree8c9c2468151ebcc517688edc6d0d4867c11c441c /wgpu/src/backend.rs
parent720e7756f2afe30706b6b1a7fbde86b9f15e1d8c (diff)
downloadiced-a1a5fcfd46622d5b18d1716aa2adb4659835ccf3.tar.gz
iced-a1a5fcfd46622d5b18d1716aa2adb4659835ccf3.tar.bz2
iced-a1a5fcfd46622d5b18d1716aa2adb4659835ccf3.zip
Refactor `Viewport` and `Compositor`
Diffstat (limited to 'wgpu/src/backend.rs')
-rw-r--r--wgpu/src/backend.rs26
1 files changed, 13 insertions, 13 deletions
diff --git a/wgpu/src/backend.rs b/wgpu/src/backend.rs
index 82e4c4b2..1e62cf07 100644
--- a/wgpu/src/backend.rs
+++ b/wgpu/src/backend.rs
@@ -1,11 +1,11 @@
use crate::quad;
use crate::text;
use crate::triangle;
-use crate::{Settings, Target, Transformation};
+use crate::{Settings, Transformation};
use iced_graphics::backend;
use iced_graphics::font;
use iced_graphics::layer::Layer;
-use iced_graphics::Primitive;
+use iced_graphics::{Primitive, Viewport};
use iced_native::mouse;
use iced_native::{Font, HorizontalAlignment, Size, VerticalAlignment};
@@ -62,19 +62,19 @@ impl Backend {
&mut self,
device: &wgpu::Device,
encoder: &mut wgpu::CommandEncoder,
- target: Target<'_>,
+ frame: &wgpu::TextureView,
+ viewport: &Viewport,
(primitive, mouse_interaction): &(Primitive, mouse::Interaction),
- scale_factor: f64,
overlay_text: &[T],
) -> mouse::Interaction {
log::debug!("Drawing");
- let (width, height) = target.viewport.dimensions();
- let scale_factor = scale_factor as f32;
- let transformation = target.viewport.transformation();
+ let target_size = viewport.physical_size();
+ let scale_factor = viewport.scale_factor() as f32;
+ let transformation = viewport.projection();
- let mut layers = Layer::generate(primitive, &target.viewport);
- layers.push(Layer::overlay(overlay_text, &target.viewport));
+ let mut layers = Layer::generate(primitive, viewport);
+ layers.push(Layer::overlay(overlay_text, viewport));
for layer in layers {
self.flush(
@@ -83,9 +83,9 @@ impl Backend {
transformation,
&layer,
encoder,
- target.texture,
- width,
- height,
+ &frame,
+ target_size.width,
+ target_size.height,
);
}
@@ -106,7 +106,7 @@ impl Backend {
target_width: u32,
target_height: u32,
) {
- let bounds = layer.bounds * scale_factor;
+ let bounds = (layer.bounds * scale_factor).round();
if !layer.quads.is_empty() {
self.quad_pipeline.draw(