mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-07 10:25:37 +00:00
app: release GPU before processing DestroyEvent
In fact, move the release of the GPU to a deferred function, saving a release. Fixes #65 Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
+6
-2
@@ -218,6 +218,12 @@ func (w *Window) run(opts *window.Options) {
|
|||||||
w.out <- system.DestroyEvent{Err: err}
|
w.out <- system.DestroyEvent{Err: err}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
defer func() {
|
||||||
|
if w.gpu != nil {
|
||||||
|
w.gpu.Release()
|
||||||
|
w.gpu = nil
|
||||||
|
}
|
||||||
|
}()
|
||||||
for {
|
for {
|
||||||
var timer <-chan time.Time
|
var timer <-chan time.Time
|
||||||
if w.delayedDraw != nil {
|
if w.delayedDraw != nil {
|
||||||
@@ -297,8 +303,6 @@ func (w *Window) run(opts *window.Options) {
|
|||||||
}
|
}
|
||||||
if e2.Sync {
|
if e2.Sync {
|
||||||
if err := w.gpu.Flush(); err != nil {
|
if err := w.gpu.Flush(); err != nil {
|
||||||
w.gpu.Release()
|
|
||||||
w.gpu = nil
|
|
||||||
w.destroy(err)
|
w.destroy(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user