qt: More error handling and tweaking to opengl 3 renderer

This commit is contained in:
ts-korhonen
2022-03-05 02:57:57 +02:00
parent 395fa8ac36
commit 828accc91d
4 changed files with 98 additions and 69 deletions

View File

@@ -272,6 +272,7 @@ RendererStack::createRenderer(Renderer renderer)
});
connect(hw, &OpenGLRenderer::errorInitializing, [=]() {
/* Renderer could initialize, fallback to software. */
imagebufs = {};
endblit();
QTimer::singleShot(0, this, [this]() { switchRenderer(Renderer::Software); });
});
@@ -299,7 +300,7 @@ RendererStack::createRenderer(Renderer renderer)
void
RendererStack::blit(int x, int y, int w, int h)
{
if ((w <= 0) || (h <= 0) || (w > 2048) || (h > 2048) || (buffer32 == NULL) || std::get<std::atomic_flag *>(imagebufs[currentBuf])->test_and_set()) {
if ((w <= 0) || (h <= 0) || (w > 2048) || (h > 2048) || (buffer32 == NULL) || imagebufs.empty() || std::get<std::atomic_flag *>(imagebufs[currentBuf])->test_and_set()) {
video_blit_complete();
return;
}