mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-06 09:55:40 +00:00
app/internal/gpu: don't release the context when New fails
Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
@@ -267,7 +267,6 @@ func (g *GPU) renderLoop(glctx gl.Context) error {
|
|||||||
runtime.LockOSThread()
|
runtime.LockOSThread()
|
||||||
// Don't UnlockOSThread to avoid reuse by the Go runtime.
|
// Don't UnlockOSThread to avoid reuse by the Go runtime.
|
||||||
defer close(g.stopped)
|
defer close(g.stopped)
|
||||||
defer glctx.Release()
|
|
||||||
|
|
||||||
if err := glctx.MakeCurrent(); err != nil {
|
if err := glctx.MakeCurrent(); err != nil {
|
||||||
initErr <- err
|
initErr <- err
|
||||||
@@ -278,13 +277,14 @@ func (g *GPU) renderLoop(glctx gl.Context) error {
|
|||||||
initErr <- err
|
initErr <- err
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
initErr <- nil
|
||||||
|
defer glctx.Release()
|
||||||
defer g.cache.release(ctx)
|
defer g.cache.release(ctx)
|
||||||
defer g.pathCache.release(ctx)
|
defer g.pathCache.release(ctx)
|
||||||
r := newRenderer(ctx)
|
r := newRenderer(ctx)
|
||||||
defer r.release()
|
defer r.release()
|
||||||
var timers *timers
|
var timers *timers
|
||||||
var zopsTimer, stencilTimer, coverTimer, cleanupTimer *timer
|
var zopsTimer, stencilTimer, coverTimer, cleanupTimer *timer
|
||||||
initErr <- nil
|
|
||||||
var drawOps drawOps
|
var drawOps drawOps
|
||||||
loop:
|
loop:
|
||||||
for {
|
for {
|
||||||
|
|||||||
@@ -290,6 +290,9 @@ func (w *Window) run(opts *window.Options) {
|
|||||||
ctx, err = w.driver.NewContext()
|
ctx, err = w.driver.NewContext()
|
||||||
if err == nil {
|
if err == nil {
|
||||||
w.gpu, err = gpu.New(ctx)
|
w.gpu, err = gpu.New(ctx)
|
||||||
|
if err != nil {
|
||||||
|
ctx.Release()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var frame *op.Ops
|
var frame *op.Ops
|
||||||
|
|||||||
Reference in New Issue
Block a user