app: [Windows] tolerate gpu.ErrDeviceLost from Refresh

Fixes: https://todo.sr.ht/~eliasnaur/gio/552
Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
Elias Naur
2023-12-15 19:09:52 -06:00
parent a454d5fa38
commit 2128f7adea
+5 -5
View File
@@ -60,10 +60,10 @@ func (c *d3d11Context) RenderTarget() (gpu.RenderTarget, error) {
} }
func (c *d3d11Context) Present() error { func (c *d3d11Context) Present() error {
err := c.swchain.Present(1, 0) return wrapErr(c.swchain.Present(1, 0))
if err == nil { }
return nil
} func wrapErr(err error) error {
if err, ok := err.(d3d11.ErrorCode); ok { if err, ok := err.(d3d11.ErrorCode); ok {
switch err.Code { switch err.Code {
case d3d11.DXGI_STATUS_OCCLUDED: case d3d11.DXGI_STATUS_OCCLUDED:
@@ -84,7 +84,7 @@ func (c *d3d11Context) Refresh() error {
} }
c.releaseFBO() c.releaseFBO()
if err := c.swchain.ResizeBuffers(0, 0, 0, d3d11.DXGI_FORMAT_UNKNOWN, 0); err != nil { if err := c.swchain.ResizeBuffers(0, 0, 0, d3d11.DXGI_FORMAT_UNKNOWN, 0); err != nil {
return err return wrapErr(err)
} }
c.width = width c.width = width
c.height = height c.height = height