diff options
-rw-r--r-- | examples/integration_wgpu/src/main.rs | 6 | ||||
-rw-r--r-- | native/src/widget/text_input.rs | 42 | ||||
-rw-r--r-- | wgpu/Cargo.toml | 4 | ||||
-rw-r--r-- | wgpu/src/shader/blit.wgsl | 4 | ||||
-rw-r--r-- | wgpu/src/window/compositor.rs | 5 |
5 files changed, 31 insertions, 30 deletions
diff --git a/examples/integration_wgpu/src/main.rs b/examples/integration_wgpu/src/main.rs index e1d691f0..d1000748 100644 --- a/examples/integration_wgpu/src/main.rs +++ b/examples/integration_wgpu/src/main.rs @@ -39,6 +39,7 @@ pub fn main() { .request_adapter(&wgpu::RequestAdapterOptions { power_preference: wgpu::PowerPreference::HighPerformance, compatible_surface: Some(&surface), + force_fallback_adapter: false, }) .await .expect("Request adapter"); @@ -171,7 +172,7 @@ pub fn main() { resized = false; } - match surface.get_current_frame() { + match surface.get_current_texture() { Ok(frame) => { let mut encoder = device.create_command_encoder( &wgpu::CommandEncoderDescriptor { label: None }, @@ -179,7 +180,7 @@ pub fn main() { let program = state.program(); - let view = frame.output.texture.create_view(&wgpu::TextureViewDescriptor::default()); + let view = frame.texture.create_view(&wgpu::TextureViewDescriptor::default()); { // We clear the frame @@ -209,6 +210,7 @@ pub fn main() { // Then we submit the work staging_belt.finish(); queue.submit(Some(encoder.finish())); + frame.present(); // Update the mouse cursor window.set_cursor_icon( diff --git a/native/src/widget/text_input.rs b/native/src/widget/text_input.rs index 5be1d3d6..2d5f6815 100644 --- a/native/src/widget/text_input.rs +++ b/native/src/widget/text_input.rs @@ -297,29 +297,27 @@ where let text_layout = layout.children().next().unwrap(); let target = position.x - text_layout.bounds().x; - if target > 0.0 { - let value = if self.is_secure { - self.value.secure() - } else { - self.value.clone() - }; - - let position = find_cursor_position( - renderer, - text_layout.bounds(), - self.font, - self.size, - &value, - &self.state, - target, - ) - .unwrap_or(0); + let value = if self.is_secure { + self.value.secure() + } else { + self.value.clone() + }; + + let position = find_cursor_position( + renderer, + text_layout.bounds(), + self.font, + self.size, + &value, + &self.state, + target, + ) + .unwrap_or(0); - self.state.cursor.select_range( - self.state.cursor.start(&value), - position, - ); - } + self.state.cursor.select_range( + self.state.cursor.start(&value), + position, + ); return event::Status::Captured; } diff --git a/wgpu/Cargo.toml b/wgpu/Cargo.toml index 71da889f..ed74b804 100644 --- a/wgpu/Cargo.toml +++ b/wgpu/Cargo.toml @@ -27,8 +27,8 @@ default_system_font = ["iced_graphics/font-source"] spirv = ["wgpu/spirv"] [dependencies] -wgpu = "0.10" -wgpu_glyph = "0.14" +wgpu = "0.11" +wgpu_glyph = "0.15" glyph_brush = "0.7" raw-window-handle = "0.3" log = "0.4" diff --git a/wgpu/src/shader/blit.wgsl b/wgpu/src/shader/blit.wgsl index 694f192e..f8f6e2d4 100644 --- a/wgpu/src/shader/blit.wgsl +++ b/wgpu/src/shader/blit.wgsl @@ -1,4 +1,4 @@ -var positions: array<vec2<f32>, 6> = array<vec2<f32>, 6>( +var<private> positions: array<vec2<f32>, 6> = array<vec2<f32>, 6>( vec2<f32>(-1.0, 1.0), vec2<f32>(-1.0, -1.0), vec2<f32>(1.0, -1.0), @@ -7,7 +7,7 @@ var positions: array<vec2<f32>, 6> = array<vec2<f32>, 6>( vec2<f32>(1.0, -1.0) ); -var uvs: array<vec2<f32>, 6> = array<vec2<f32>, 6>( +var<private> uvs: array<vec2<f32>, 6> = array<vec2<f32>, 6>( vec2<f32>(0.0, 0.0), vec2<f32>(0.0, 1.0), vec2<f32>(1.0, 1.0), diff --git a/wgpu/src/window/compositor.rs b/wgpu/src/window/compositor.rs index f29a50f5..7bdd4c23 100644 --- a/wgpu/src/window/compositor.rs +++ b/wgpu/src/window/compositor.rs @@ -40,6 +40,7 @@ impl Compositor { wgpu::PowerPreference::HighPerformance }, compatible_surface: compatible_surface.as_ref(), + force_fallback_adapter: false, }) .await?; @@ -140,7 +141,7 @@ impl iced_graphics::window::Compositor for Compositor { background_color: Color, overlay: &[T], ) -> Result<(), iced_graphics::window::SurfaceError> { - match surface.get_current_frame() { + match surface.get_current_texture() { Ok(frame) => { let mut encoder = self.device.create_command_encoder( &wgpu::CommandEncoderDescriptor { @@ -149,7 +150,6 @@ impl iced_graphics::window::Compositor for Compositor { ); let view = &frame - .output .texture .create_view(&wgpu::TextureViewDescriptor::default()); @@ -194,6 +194,7 @@ impl iced_graphics::window::Compositor for Compositor { // Submit work self.staging_belt.finish(); self.queue.submit(Some(encoder.finish())); + frame.present(); // Recall staging buffers self.local_pool |