renderer: Return SyncPoint from blit operations
This commit is contained in:
parent
fa509c7b39
commit
9cf08401b5
4 changed files with 12 additions and 14 deletions
|
|
@ -1620,12 +1620,12 @@ impl<'buffer> BlitFrame<GlesTarget<'buffer>> for GlesFrame<'_, '_> {
|
|||
src: Rectangle<i32, Physical>,
|
||||
dst: Rectangle<i32, Physical>,
|
||||
filter: TextureFilter,
|
||||
) -> Result<(), Self::Error> {
|
||||
) -> Result<SyncPoint, Self::Error> {
|
||||
let res = self.renderer.blit(self.target, to, src, dst, filter);
|
||||
self.target
|
||||
.0
|
||||
.make_current(&self.renderer.gl, &self.renderer.egl)?;
|
||||
res.map(|_| ())
|
||||
res
|
||||
}
|
||||
|
||||
fn blit_from(
|
||||
|
|
@ -1634,12 +1634,12 @@ impl<'buffer> BlitFrame<GlesTarget<'buffer>> for GlesFrame<'_, '_> {
|
|||
src: Rectangle<i32, Physical>,
|
||||
dst: Rectangle<i32, Physical>,
|
||||
filter: TextureFilter,
|
||||
) -> Result<(), Self::Error> {
|
||||
) -> Result<SyncPoint, Self::Error> {
|
||||
let res = self.renderer.blit(from, self.target, src, dst, filter);
|
||||
self.target
|
||||
.0
|
||||
.make_current(&self.renderer.gl, &self.renderer.egl)?;
|
||||
res.map(|_| ())
|
||||
res
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -597,7 +597,7 @@ impl<'buffer> BlitFrame<GlesTarget<'buffer>> for GlowFrame<'_, 'buffer> {
|
|||
src: Rectangle<i32, Physical>,
|
||||
dst: Rectangle<i32, Physical>,
|
||||
filter: TextureFilter,
|
||||
) -> Result<(), Self::Error> {
|
||||
) -> Result<sync::SyncPoint, Self::Error> {
|
||||
self.frame.as_mut().unwrap().blit_to(to, src, dst, filter)
|
||||
}
|
||||
|
||||
|
|
@ -607,7 +607,7 @@ impl<'buffer> BlitFrame<GlesTarget<'buffer>> for GlowFrame<'_, 'buffer> {
|
|||
src: Rectangle<i32, Physical>,
|
||||
dst: Rectangle<i32, Physical>,
|
||||
filter: TextureFilter,
|
||||
) -> Result<(), Self::Error> {
|
||||
) -> Result<sync::SyncPoint, Self::Error> {
|
||||
self.frame.as_mut().unwrap().blit_from(from, src, dst, filter)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -843,7 +843,7 @@ where
|
|||
src: Rectangle<i32, Physical>,
|
||||
dst: Rectangle<i32, Physical>,
|
||||
filter: TextureFilter,
|
||||
) -> Result<(), Self::Error>;
|
||||
) -> Result<SyncPoint, Self::Error>;
|
||||
|
||||
/// Copies the contents of the provided framebuffer to `dst` in the bound framebuffer,
|
||||
/// applying `filter` if necessary.
|
||||
|
|
@ -864,7 +864,7 @@ where
|
|||
src: Rectangle<i32, Physical>,
|
||||
dst: Rectangle<i32, Physical>,
|
||||
filter: TextureFilter,
|
||||
) -> Result<(), Self::Error>;
|
||||
) -> Result<SyncPoint, Self::Error>;
|
||||
}
|
||||
|
||||
#[cfg(feature = "wayland_frontend")]
|
||||
|
|
|
|||
|
|
@ -3052,7 +3052,7 @@ where
|
|||
src: Rectangle<i32, Physical>,
|
||||
dst: Rectangle<i32, Physical>,
|
||||
filter: TextureFilter,
|
||||
) -> Result<(), Self::Error> {
|
||||
) -> Result<SyncPoint, Self::Error> {
|
||||
self.flush_frame()?;
|
||||
if let Some(target) = self.target.as_mut() {
|
||||
let MultiFramebufferInternal::Target(to_fb) = &mut to.0 else {
|
||||
|
|
@ -3063,8 +3063,7 @@ where
|
|||
.renderer_mut()
|
||||
.blit(target.framebuffer, to_fb, src, dst, filter)
|
||||
.map_err(Error::Target)?;
|
||||
target.device.renderer_mut().wait(&sync).map_err(Error::Target)?;
|
||||
Ok(())
|
||||
Ok(sync)
|
||||
} else {
|
||||
let MultiFramebufferInternal::Render(to_fb) = &mut to.0 else {
|
||||
unreachable!()
|
||||
|
|
@ -3092,7 +3091,7 @@ where
|
|||
src: Rectangle<i32, Physical>,
|
||||
dst: Rectangle<i32, Physical>,
|
||||
filter: TextureFilter,
|
||||
) -> Result<(), Self::Error> {
|
||||
) -> Result<SyncPoint, Self::Error> {
|
||||
self.flush_frame()?;
|
||||
if let Some(target) = self.target.as_mut() {
|
||||
let MultiFramebufferInternal::Target(from_fb) = &from.0 else {
|
||||
|
|
@ -3103,8 +3102,7 @@ where
|
|||
.renderer_mut()
|
||||
.blit(from_fb, target.framebuffer, src, dst, filter)
|
||||
.map_err(Error::Target)?;
|
||||
target.device.renderer_mut().wait(&sync).map_err(Error::Target)?;
|
||||
Ok(())
|
||||
Ok(sync)
|
||||
} else {
|
||||
let MultiFramebufferInternal::Render(from_fb) = &from.0 else {
|
||||
unreachable!()
|
||||
|
|
|
|||
Loading…
Reference in a new issue