Fix Vulkan issues with VK_ERROR_OUT_OF_DATE caused by the swapchain not being updated on a resize (#4740)

- Updated the RenderViewportWidget::event method to call 'SendWindowResizeEvent' on specific events
- Moved the onResize to one of the events in RenderViewportWidget::event

Signed-off-by: Steve Pham <spham@amazon.com>
monroegm-disable-blank-issue-2
Steve Pham 4 years ago committed by GitHub
parent bcc186f87f
commit e6464335af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -123,7 +123,6 @@ namespace AtomToolsFramework
void OnTick(float deltaTime, AZ::ScriptTimePoint time) override;
// QWidget overrides ...
void resizeEvent(QResizeEvent *event) override;
bool event(QEvent* event) override;
void enterEvent(QEvent* event) override;
void leaveEvent(QEvent* event) override;

@ -194,13 +194,21 @@ namespace AtomToolsFramework
m_controllerList->UpdateViewport({GetId(), AzFramework::FloatSeconds(deltaTime), m_time});
}
void RenderViewportWidget::resizeEvent([[maybe_unused]] QResizeEvent* event)
{
SendWindowResizeEvent();
}
bool RenderViewportWidget::event(QEvent* event)
{
// On some types of QEvents, a resize event is needed to make sure that the current viewport window
// needs to be updated based on a potential new surface dimensions.
switch (event->type())
{
case QEvent::ScreenChangeInternal:
case QEvent::UpdateLater:
case QEvent::Resize:
SendWindowResizeEvent();
break;
default:
break;
}
return QWidget::event(event);
}

Loading…
Cancel
Save