From 99bd9490b5b4939436a30091258b7158c267c7cc Mon Sep 17 00:00:00 2001 From: l10n daemon script Date: Mon, 27 Jan 2014 06:37:40 +0000 Subject: [PATCH 1/2] SVN_SILENT made messages (.desktop file) --- effects/kscreen/kscreen.desktop | 2 ++ 1 file changed, 2 insertions(+) diff --git a/effects/kscreen/kscreen.desktop b/effects/kscreen/kscreen.desktop index 1d1b8801dd..233c833bf9 100644 --- a/effects/kscreen/kscreen.desktop +++ b/effects/kscreen/kscreen.desktop @@ -20,6 +20,7 @@ Name[ko]=Kscreen Name[nb]=Kscreen Name[nl]=Kscreen Name[pa]=ਕੇਸਕਰੀਨ +Name[pl]=Kscreen Name[pt]=Kscreen Name[pt_BR]=KScreen Name[ro]=Kscreen @@ -58,6 +59,7 @@ Comment[ko]=KScreen 도우미 효과 Comment[nb]=Hjelpereffekt for KScreen Comment[nl]=Effect van hulp voor KScreen Comment[pa]=ਕੇਸਕਰੀਨ ਲਈ ਮੱਦਦ ਪ੍ਰਭਾਵ +Comment[pl]=Efekt pomocniczy dla KScreen Comment[pt]=Efeito auxiliar do KScreen Comment[pt_BR]=Efeito auxiliar do KScreen Comment[ro]=Efect ajutător pentru KScreen From 6acef129325b989a2a3e10fc4acca6af7b460036 Mon Sep 17 00:00:00 2001 From: James Jones Date: Fri, 24 Jan 2014 06:38:45 -0800 Subject: [PATCH 2/2] Don't call into GL without a context After losing current from the EGL or GLX context, calls to the GL or GLES functions have undefined behavior. Perform all cleanup that may touch OpenGL and check for GL errors before losing current from the context. REVIEW: 115311 --- egl_wayland_backend.cpp | 1 + eglonxbackend.cpp | 1 + glxbackend.cpp | 2 +- scene_opengl.cpp | 9 ++++----- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/egl_wayland_backend.cpp b/egl_wayland_backend.cpp index b229cdd841..cd4dd9d9a3 100644 --- a/egl_wayland_backend.cpp +++ b/egl_wayland_backend.cpp @@ -647,6 +647,7 @@ EglWaylandBackend::EglWaylandBackend() EglWaylandBackend::~EglWaylandBackend() { cleanupGL(); + checkGLError("Cleanup"); eglMakeCurrent(m_display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); eglDestroyContext(m_display, m_context); eglDestroySurface(m_display, m_surface); diff --git a/eglonxbackend.cpp b/eglonxbackend.cpp index dd41da55b9..781f09b40e 100644 --- a/eglonxbackend.cpp +++ b/eglonxbackend.cpp @@ -46,6 +46,7 @@ EglOnXBackend::EglOnXBackend() EglOnXBackend::~EglOnXBackend() { cleanupGL(); + checkGLError("Cleanup"); eglMakeCurrent(dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); eglDestroyContext(dpy, ctx); eglDestroySurface(dpy, surface); diff --git a/glxbackend.cpp b/glxbackend.cpp index 73f463e9df..269da58c0e 100644 --- a/glxbackend.cpp +++ b/glxbackend.cpp @@ -57,6 +57,7 @@ GlxBackend::~GlxBackend() // TODO: cleanup in error case // do cleanup after initBuffer() cleanupGL(); + checkGLError("Cleanup"); glXMakeCurrent(display(), None, NULL); if (ctx) @@ -69,7 +70,6 @@ GlxBackend::~GlxBackend() XDestroyWindow(display(), window); overlayWindow()->destroy(); - checkGLError("Cleanup"); } static bool gs_tripleBufferUndetected = true; diff --git a/scene_opengl.cpp b/scene_opengl.cpp index 961e81fbcc..27c9ab8790 100644 --- a/scene_opengl.cpp +++ b/scene_opengl.cpp @@ -180,16 +180,15 @@ SceneOpenGL::SceneOpenGL(Workspace* ws, OpenGLBackend *backend) SceneOpenGL::~SceneOpenGL() { - if (init_ok) { - // backend might be still needed for a different scene - delete m_backend; - } foreach (Window * w, windows) { delete w; } // do cleanup after initBuffer() SceneOpenGL::EffectFrame::cleanup(); - checkGLError("Cleanup"); + if (init_ok) { + // backend might be still needed for a different scene + delete m_backend; + } } SceneOpenGL *SceneOpenGL::createScene()