fix mirrors never popping up

This commit is contained in:
galister
2025-04-22 04:07:21 +09:00
parent 332d7653d8
commit 2620a791b9

View File

@@ -48,17 +48,6 @@ impl OverlayRenderer for MirrorRenderer {
Ok(()) Ok(())
} }
fn should_render(&mut self, app: &mut AppState) -> anyhow::Result<ShouldRender> { fn should_render(&mut self, app: &mut AppState) -> anyhow::Result<ShouldRender> {
self.renderer
.as_mut()
.map_or(Ok(ShouldRender::Unable), |r| r.should_render(app))
}
fn render(
&mut self,
app: &mut AppState,
tgt: Arc<ImageView>,
buf: &mut CommandBuffers,
alpha: f32,
) -> anyhow::Result<bool> {
if let Some(mut selector) = self.selector.take() { if let Some(mut selector) = self.selector.take() {
let maybe_pw_result = match selector let maybe_pw_result = match selector
.poll_unpin(&mut Context::from_waker(futures::task::noop_waker_ref())) .poll_unpin(&mut Context::from_waker(futures::task::noop_waker_ref()))
@@ -66,7 +55,7 @@ impl OverlayRenderer for MirrorRenderer {
Poll::Ready(result) => result, Poll::Ready(result) => result,
Poll::Pending => { Poll::Pending => {
self.selector = Some(selector); self.selector = Some(selector);
return Ok(false); return Ok(ShouldRender::Unable);
} }
}; };
@@ -99,7 +88,17 @@ impl OverlayRenderer for MirrorRenderer {
} }
} }
} }
self.renderer
.as_mut()
.map_or(Ok(ShouldRender::Unable), |r| r.should_render(app))
}
fn render(
&mut self,
app: &mut AppState,
tgt: Arc<ImageView>,
buf: &mut CommandBuffers,
alpha: f32,
) -> anyhow::Result<bool> {
let mut result = false; let mut result = false;
if let Some(renderer) = self.renderer.as_mut() { if let Some(renderer) = self.renderer.as_mut() {
result = renderer.render(app, tgt, buf, alpha)?; result = renderer.render(app, tgt, buf, alpha)?;