app: add error result to context.RenderTarget

Vulkan may report VK_ERROR_OUT_OF_DATE_KHR which is not a fatal error.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
Elias Naur
2021-09-07 18:42:21 +02:00
parent 9e6ed3cb96
commit af6770de18
7 changed files with 19 additions and 15 deletions
+5 -5
View File
@@ -111,21 +111,21 @@ func newMtlContext(w *window) (*mtlContext, error) {
return c, nil
}
func (c *mtlContext) RenderTarget() gpu.RenderTarget {
func (c *mtlContext) RenderTarget() (gpu.RenderTarget, error) {
if c.drawable != 0 || c.texture != 0 {
panic("a previous RenderTarget wasn't Presented")
return nil, errors.New("metal:a previous RenderTarget wasn't Presented")
}
c.drawable = C.nextDrawable(c.layer)
if c.drawable == 0 {
panic("metal: [CAMetalLayer nextDrawable] failed")
return nil, errors.New("metal: [CAMetalLayer nextDrawable] failed")
}
c.texture = C.drawableTexture(c.drawable)
if c.texture == 0 {
panic("metal: CADrawable.texture is nil")
return nil, errors.New("metal: CADrawable.texture is nil")
}
return gpu.MetalRenderTarget{
Texture: unsafe.Pointer(c.texture),
}
}, nil
}
func (c *mtlContext) API() gpu.API {