Commit 6ebfa593 authored by David Edmundson's avatar David Edmundson

[plugins/qpa] Don't crash on Qt5.12 OpengGL::makeCurrent

Summary:
QOpenGLContext was changed to call platform->makeCurrent before it
called setCurrentContext.

Because we bind window FBO and ultimately that calls
QOpenGlContext::format we need Qt to know which context is current so it
can tell us the format.

This matches the QtWayland EGL code.

BUG: 399392

Test Plan:
Switched virtual desktop with the OSD (previously reliably crashed)
Now it doesn't

Reviewers: #kwin, zzag

Reviewed By: #kwin, zzag

Subscribers: zzag, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15957
parent e9fd5728
......@@ -26,6 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include <logging.h>
#include <QOpenGLFramebufferObject>
#include <private/qopenglcontext_p.h>
namespace KWin
{
......@@ -48,6 +49,8 @@ SharingPlatformContext::SharingPlatformContext(QOpenGLContext *context, const EG
bool SharingPlatformContext::makeCurrent(QPlatformSurface *surface)
{
Window *window = static_cast<Window*>(surface);
QOpenGLContextPrivate::setCurrentContext(context());
if (eglMakeCurrent(eglDisplay(), m_surface, m_surface, eglContext())) {
window->bindContentFBO();
return true;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment