From aa57ec7fae3928116ae8cffaf97c1fd655f35059 Mon Sep 17 00:00:00 2001 From: "K.Ohta" Date: Mon, 14 Oct 2019 05:20:39 +0900 Subject: [PATCH 1/1] [Qt][OpenGL] Don't makeCurrent()/doneCurrent() inside of resizeGL().Fixed crash running within Docker container. --- source/src/qt/common/qt_utils.cpp | 2 +- source/src/qt/gui/gl2/qt_glutil_gl2_0.cpp | 2 -- source/src/qt/gui/gl3/qt_glutil_gl3_0.cpp | 2 -- source/src/qt/gui/gl4_5/qt_glutil_gl4_5.cpp | 2 -- source/src/qt/gui/gles2/qt_glutil_gles_2.cpp | 2 -- 5 files changed, 1 insertion(+), 9 deletions(-) diff --git a/source/src/qt/common/qt_utils.cpp b/source/src/qt/common/qt_utils.cpp index 6f60cb413..cef93c116 100644 --- a/source/src/qt/common/qt_utils.cpp +++ b/source/src/qt/common/qt_utils.cpp @@ -1255,7 +1255,7 @@ int MainLoop(int argc, char *argv[]) #endif GLDrawClass *pgl = rMainWindow->getGraphicsView(); pgl->set_emu_launched(); - pgl->setFixedSize(pgl->width(), pgl->height()); +// pgl->setFixedSize(pgl->width(), pgl->height()); rMainWindow->retranselateUi_Depended_OSD(); QObject::connect(emu->get_osd(), SIGNAL(sig_update_device_node_name(int, const _TCHAR *)), rMainWindow, SLOT(do_update_device_node_name(int, const _TCHAR *))); diff --git a/source/src/qt/gui/gl2/qt_glutil_gl2_0.cpp b/source/src/qt/gui/gl2/qt_glutil_gl2_0.cpp index 3b3dd8e38..c5a7dde06 100644 --- a/source/src/qt/gui/gl2/qt_glutil_gl2_0.cpp +++ b/source/src/qt/gui/gl2/qt_glutil_gl2_0.cpp @@ -1017,7 +1017,6 @@ void GLDraw_2_0::resizeGL_SetVertexs(void) void GLDraw_2_0::resizeGL(int width, int height) { //int side = qMin(width, height); - p_wid->makeCurrent(); extfunc_2->glViewport(0, 0, width, height); extfunc_2->glOrtho(-1.0f, 1.0f, -1.0f, 1.0f, -1.0, 1.0); crt_flag = true; @@ -1042,7 +1041,6 @@ void GLDraw_2_0::resizeGL(int width, int height) if(using_flags->get_max_button() > 0) { updateButtonTexture(); } - p_wid->doneCurrent(); } void GLDraw_2_0::paintGL(void) diff --git a/source/src/qt/gui/gl3/qt_glutil_gl3_0.cpp b/source/src/qt/gui/gl3/qt_glutil_gl3_0.cpp index b7f8403c7..9d7a71a82 100644 --- a/source/src/qt/gui/gl3/qt_glutil_gl3_0.cpp +++ b/source/src/qt/gui/gl3/qt_glutil_gl3_0.cpp @@ -1537,7 +1537,6 @@ void GLDraw_3_0::resizeGL_Screen(void) void GLDraw_3_0::resizeGL(int width, int height) { //int side = qMin(width, height); - p_wid->makeCurrent(); extfunc->glViewport(0, 0, width, height); extfunc->glOrtho(-1.0f, 1.0f, -1.0f, 1.0f, -1.0, 1.0); crt_flag = true; @@ -1557,5 +1556,4 @@ void GLDraw_3_0::resizeGL(int width, int height) if(using_flags->get_max_button() > 0) { updateButtonTexture(); } - p_wid->doneCurrent(); } diff --git a/source/src/qt/gui/gl4_5/qt_glutil_gl4_5.cpp b/source/src/qt/gui/gl4_5/qt_glutil_gl4_5.cpp index 505682a47..b3be699ee 100644 --- a/source/src/qt/gui/gl4_5/qt_glutil_gl4_5.cpp +++ b/source/src/qt/gui/gl4_5/qt_glutil_gl4_5.cpp @@ -1619,7 +1619,6 @@ void GLDraw_4_5::resizeGL_Screen(void) void GLDraw_4_5::resizeGL(int width, int height) { //int side = qMin(width, height); - p_wid->makeCurrent(); extfunc->glViewport(0, 0, width, height); //extfunc->glOrtho(-1.0f, 1.0f, -1.0f, 1.0f, -1.0, 1.0); crt_flag = true; @@ -1639,7 +1638,6 @@ void GLDraw_4_5::resizeGL(int width, int height) if(using_flags->get_max_button() > 0) { updateButtonTexture(); } - p_wid->doneCurrent(); } void GLDraw_4_5::initButtons(void) diff --git a/source/src/qt/gui/gles2/qt_glutil_gles_2.cpp b/source/src/qt/gui/gles2/qt_glutil_gles_2.cpp index f3f08d711..8a196f682 100644 --- a/source/src/qt/gui/gles2/qt_glutil_gles_2.cpp +++ b/source/src/qt/gui/gles2/qt_glutil_gles_2.cpp @@ -1487,7 +1487,6 @@ void GLDraw_ES_2::resizeGL_Screen(void) void GLDraw_ES_2::resizeGL(int width, int height) { //int side = qMin(width, height); - p_wid->makeCurrent(); extfunc->glViewport(0, 0, width, height); //extfunc->glOrtho(-1.0f, 1.0f, -1.0f, 1.0f, -1.0, 1.0); crt_flag = true; @@ -1507,7 +1506,6 @@ void GLDraw_ES_2::resizeGL(int width, int height) if(using_flags->get_max_button() > 0) { updateButtonTexture(); } - p_wid->doneCurrent(); } void GLDraw_ES_2::initButtons(void) -- 2.11.0