do not render frames, while window minimized
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user