do not render frames, while window minimized

This commit is contained in:
Dmitry Sergeev
2026-08-22 22:24:18 +03:00
parent 1f8ca90566
commit 98804c0f25
+16
View File
@@ -94,6 +94,7 @@ func cbytes(s string) *byte {
}
func main() {
var errMinimized = errors.New("Window minimized")
// TODO: remove flags defaults
mxlDomain := flag.String("d", "/dev/shm/mxl", "MXL domain")
mxlVideoFlowID := flag.String("v", "5fbec3b1-1b0f-417d-9059-8b94a47197ed", "MXL video flow UUID")
@@ -368,6 +369,9 @@ func main() {
if h > int32(caps.MaxImageExtent.Height) {
h = int32(caps.MaxImageExtent.Height)
}
if w == 0 || h == 0 {
return errMinimized
}
vkExtent = vk.Extent2D{Width: uint32(w), Height: uint32(h)}
vkSwapchain, err = vkDevice.CreateSwapchain(vk.SwapchainConfig{
@@ -534,6 +538,10 @@ func main() {
}
if resized {
if err := recreateSwapChain(); err != nil {
if errors.Is(err, errMinimized) {
resized = true
continue
}
panic(err)
}
resized = false
@@ -542,6 +550,10 @@ func main() {
imageIndex, r := vkDevice.AcquireNextImage(vkSwapchain, imageAvailable, ^uint64(0))
if r == vk.ErrorOutOfDateKHR || r == vk.SuboptimalKHR {
if err := recreateSwapChain(); err != nil {
if errors.Is(err, errMinimized) {
resized = true
continue
}
panic(err)
}
continue
@@ -643,6 +655,10 @@ func main() {
r = vkQueue.Present(vkSwapchain, imageIndex, renderFinished)
if r == vk.ErrorOutOfDateKHR || r == vk.SuboptimalKHR {
if err := recreateSwapChain(); err != nil {
if errors.Is(err, errMinimized) {
resized = true
continue
}
panic(err)
}
continue