Fix crash when switching fullscreen stretching modes when fullscreen
This commit is contained in:
@@ -1154,7 +1154,7 @@ static void update_fullscreen_scale_checkboxes(Ui::MainWindow* ui, QAction* sele
|
||||
|
||||
if (video_fullscreen > 0) {
|
||||
auto widget = ui->stackedWidget->currentWidget();
|
||||
auto rc = dynamic_cast<RendererCommon*>(widget);
|
||||
auto rc = ui->stackedWidget->rendererWindow;
|
||||
rc->onResize(widget->width(), widget->height());
|
||||
}
|
||||
|
||||
|
@@ -183,6 +183,7 @@ void RendererStack::switchRenderer(Renderer renderer) {
|
||||
case Renderer::Software:
|
||||
{
|
||||
auto sw = new SoftwareRenderer(this);
|
||||
rendererWindow = sw;
|
||||
connect(this, &RendererStack::blitToRenderer, sw, &SoftwareRenderer::onBlit, Qt::QueuedConnection);
|
||||
current.reset(this->createWindowContainer(sw, this));
|
||||
}
|
||||
@@ -191,6 +192,7 @@ void RendererStack::switchRenderer(Renderer renderer) {
|
||||
{
|
||||
this->createWinId();
|
||||
auto hw = new HardwareRenderer(this);
|
||||
rendererWindow = hw;
|
||||
connect(this, &RendererStack::blitToRenderer, hw, &HardwareRenderer::onBlit, Qt::QueuedConnection);
|
||||
current.reset(this->createWindowContainer(hw, this));
|
||||
break;
|
||||
@@ -199,6 +201,7 @@ void RendererStack::switchRenderer(Renderer renderer) {
|
||||
{
|
||||
this->createWinId();
|
||||
auto hw = new HardwareRenderer(this, HardwareRenderer::RenderType::OpenGLES);
|
||||
rendererWindow = hw;
|
||||
connect(this, &RendererStack::blitToRenderer, hw, &HardwareRenderer::onBlit, Qt::QueuedConnection);
|
||||
current.reset(this->createWindowContainer(hw, this));
|
||||
break;
|
||||
@@ -207,6 +210,7 @@ void RendererStack::switchRenderer(Renderer renderer) {
|
||||
{
|
||||
this->createWinId();
|
||||
auto hw = new HardwareRenderer(this, HardwareRenderer::RenderType::OpenGL3);
|
||||
rendererWindow = hw;
|
||||
connect(this, &RendererStack::blitToRenderer, hw, &HardwareRenderer::onBlit, Qt::QueuedConnection);
|
||||
current.reset(this->createWindowContainer(hw, this));
|
||||
break;
|
||||
|
@@ -13,6 +13,7 @@ namespace Ui {
|
||||
class RendererStack;
|
||||
}
|
||||
|
||||
class RendererCommon;
|
||||
class RendererStack : public QStackedWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
@@ -43,6 +44,7 @@ public:
|
||||
};
|
||||
void switchRenderer(Renderer renderer);
|
||||
|
||||
RendererCommon* rendererWindow{nullptr};
|
||||
signals:
|
||||
void blitToRenderer(const std::unique_ptr<uint8_t>* img, int, int, int, int, std::atomic_flag* in_use);
|
||||
|
||||
|
Reference in New Issue
Block a user