do not render frames, while window minimized
This commit is contained in:
@@ -94,6 +94,7 @@ func cbytes(s string) *byte {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
var errMinimized = errors.New("Window minimized")
|
||||||
// TODO: remove flags defaults
|
// TODO: remove flags defaults
|
||||||
mxlDomain := flag.String("d", "/dev/shm/mxl", "MXL domain")
|
mxlDomain := flag.String("d", "/dev/shm/mxl", "MXL domain")
|
||||||
mxlVideoFlowID := flag.String("v", "5fbec3b1-1b0f-417d-9059-8b94a47197ed", "MXL video flow UUID")
|
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) {
|
if h > int32(caps.MaxImageExtent.Height) {
|
||||||
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)}
|
vkExtent = vk.Extent2D{Width: uint32(w), Height: uint32(h)}
|
||||||
|
|
||||||
vkSwapchain, err = vkDevice.CreateSwapchain(vk.SwapchainConfig{
|
vkSwapchain, err = vkDevice.CreateSwapchain(vk.SwapchainConfig{
|
||||||
@@ -534,6 +538,10 @@ func main() {
|
|||||||
}
|
}
|
||||||
if resized {
|
if resized {
|
||||||
if err := recreateSwapChain(); err != nil {
|
if err := recreateSwapChain(); err != nil {
|
||||||
|
if errors.Is(err, errMinimized) {
|
||||||
|
resized = true
|
||||||
|
continue
|
||||||
|
}
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
resized = false
|
resized = false
|
||||||
@@ -542,6 +550,10 @@ func main() {
|
|||||||
imageIndex, r := vkDevice.AcquireNextImage(vkSwapchain, imageAvailable, ^uint64(0))
|
imageIndex, r := vkDevice.AcquireNextImage(vkSwapchain, imageAvailable, ^uint64(0))
|
||||||
if r == vk.ErrorOutOfDateKHR || r == vk.SuboptimalKHR {
|
if r == vk.ErrorOutOfDateKHR || r == vk.SuboptimalKHR {
|
||||||
if err := recreateSwapChain(); err != nil {
|
if err := recreateSwapChain(); err != nil {
|
||||||
|
if errors.Is(err, errMinimized) {
|
||||||
|
resized = true
|
||||||
|
continue
|
||||||
|
}
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
continue
|
continue
|
||||||
@@ -643,6 +655,10 @@ func main() {
|
|||||||
r = vkQueue.Present(vkSwapchain, imageIndex, renderFinished)
|
r = vkQueue.Present(vkSwapchain, imageIndex, renderFinished)
|
||||||
if r == vk.ErrorOutOfDateKHR || r == vk.SuboptimalKHR {
|
if r == vk.ErrorOutOfDateKHR || r == vk.SuboptimalKHR {
|
||||||
if err := recreateSwapChain(); err != nil {
|
if err := recreateSwapChain(); err != nil {
|
||||||
|
if errors.Is(err, errMinimized) {
|
||||||
|
resized = true
|
||||||
|
continue
|
||||||
|
}
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
continue
|
continue
|
||||||
|
|||||||
Reference in New Issue
Block a user