diff --git a/app/widget/viewer/viewerglwidget.cpp b/app/widget/viewer/viewerglwidget.cpp index f092edab7..94e29e610 100644 --- a/app/widget/viewer/viewerglwidget.cpp +++ b/app/widget/viewer/viewerglwidget.cpp @@ -38,7 +38,8 @@ bool ViewerGLWidget::nouveau_check_done_ = false; ViewerGLWidget::ViewerGLWidget(QWidget *parent) : QOpenGLWidget(parent), ocio_lut_(0), - color_manager_(nullptr) + color_manager_(nullptr), + has_image_(false) { setContextMenuPolicy(Qt::CustomContextMenu); } @@ -78,6 +79,8 @@ void ViewerGLWidget::SetImage(const QString &fn) { OIIO::ImageBuf* in; + has_image_ = false; + if (fn.isEmpty()) { // Backend had no filename goto end; @@ -109,6 +112,8 @@ void ViewerGLWidget::SetImage(const QString &fn) doneCurrent(); + has_image_ = true; + } else { qWarning() << "OIIO Error:" << OIIO::geterror().c_str(); } @@ -201,7 +206,7 @@ void ViewerGLWidget::paintGL() f->glClear(GL_COLOR_BUFFER_BIT); // We only draw if we have a pipeline - if (!pipeline_ || !texture_.IsCreated()) { + if (!has_image_ || !pipeline_ || !texture_.IsCreated()) { return; } diff --git a/app/widget/viewer/viewerglwidget.h b/app/widget/viewer/viewerglwidget.h index ce925b9b6..48e15055d 100644 --- a/app/widget/viewer/viewerglwidget.h +++ b/app/widget/viewer/viewerglwidget.h @@ -195,6 +195,8 @@ private: static bool nouveau_check_done_; #endif + bool has_image_; + private slots: /** * @brief Slot to connect just before the OpenGL context is destroyed to clean up resources