app/internal/gpu: don't release the context when New fails

Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
Elias Naur
2019-11-28 15:14:45 +01:00
parent c49f214f4a
commit 809b4a2cf9
2 changed files with 5 additions and 2 deletions
+2 -2
View File
@@ -267,7 +267,6 @@ func (g *GPU) renderLoop(glctx gl.Context) error {
runtime.LockOSThread()
// Don't UnlockOSThread to avoid reuse by the Go runtime.
defer close(g.stopped)
defer glctx.Release()
if err := glctx.MakeCurrent(); err != nil {
initErr <- err
@@ -278,13 +277,14 @@ func (g *GPU) renderLoop(glctx gl.Context) error {
initErr <- err
return
}
initErr <- nil
defer glctx.Release()
defer g.cache.release(ctx)
defer g.pathCache.release(ctx)
r := newRenderer(ctx)
defer r.release()
var timers *timers
var zopsTimer, stencilTimer, coverTimer, cleanupTimer *timer
initErr <- nil
var drawOps drawOps
loop:
for {
+3
View File
@@ -290,6 +290,9 @@ func (w *Window) run(opts *window.Options) {
ctx, err = w.driver.NewContext()
if err == nil {
w.gpu, err = gpu.New(ctx)
if err != nil {
ctx.Release()
}
}
}
var frame *op.Ops