hal/mtl: check for next_drawable() result

This commit is contained in:
Dzmitry Malyshau 2021-09-12 10:41:42 -04:00 committed by Dzmitry Malyshau
parent d321650487
commit 11307b92e6

View File

@ -265,10 +265,14 @@ impl crate::Surface<super::Api> for super::Surface {
_timeout_ms: u32, //TODO
) -> Result<Option<crate::AcquiredSurfaceTexture<super::Api>>, crate::SurfaceError> {
let render_layer = self.render_layer.lock();
let (drawable, texture) = autoreleasepool(|| {
let drawable = render_layer.next_drawable().unwrap();
(drawable.to_owned(), drawable.texture().to_owned())
});
let (drawable, texture) = match autoreleasepool(|| {
render_layer
.next_drawable()
.map(|drawable| (drawable.to_owned(), drawable.texture().to_owned()))
}) {
Some(pair) => pair,
None => return Ok(None),
};
let suf_texture = super::SurfaceTexture {
texture: super::Texture {