M app/headless/headless.go => app/headless/headless.go +3 -2
@@ 139,8 139,9 @@ func contextDo(ctx context, f func() error) error {
errCh <- err
return
}
- defer ctx.ReleaseCurrent()
- errCh <- f()
+ err := f()
+ ctx.ReleaseCurrent()
+ errCh <- err
}()
return <-errCh
}
M app/internal/egl/egl.go => app/internal/egl/egl.go +5 -1
@@ 166,12 166,16 @@ func (c *Context) MakeCurrent() error {
var err error
c.srgbFBO, err = srgb.New(c.c)
if err != nil {
+ c.ReleaseCurrent()
return err
}
}
if c.refreshFBO {
c.refreshFBO = false
- return c.srgbFBO.Refresh(c.width, c.height)
+ if err := c.srgbFBO.Refresh(c.width, c.height); err != nil {
+ c.ReleaseCurrent()
+ return err
+ }
}
return nil
}