diff --git a/app/window.go b/app/window.go index 28de519b..f71375f0 100644 --- a/app/window.go +++ b/app/window.go @@ -248,7 +248,10 @@ func (w *Window) render(frame *op.Ops, viewport image.Point) error { if err != nil { return err } - return w.gpu.Frame(frame, target, viewport) + if err := w.gpu.Frame(frame, target, viewport); err != nil { + return err + } + return w.ctx.Present() } func (w *Window) processFrame(d driver, frameStart time.Time) { @@ -805,9 +808,6 @@ func (w *Window) processEvent(d driver, e event.Event) { // We're done with frame, let the client continue. w.frameAck <- struct{}{} } - if err == nil && w.gpu != nil { - err = w.ctx.Present() - } if err != nil { w.destroyGPU() w.out <- system.DestroyEvent{Err: err}