Revision: 34641
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=34641
Author:   jesterking
Date:     2011-02-04 13:22:02 +0000 (Fri, 04 Feb 2011)
Log Message:
-----------
Fix [#19997] Duplicating window results in graphics corruption in UI
reported by Micael Dias (and many others, see duplicates list)

On closing the first ("main") Blender window the very first OpenGL context
got deleted too. This context needs to be retained, since we share quite a
bit of OpenGL data through it to the newly created contexts (new windows).
Thanks to Ton Roosendaal for thinking out loud while trying to figure out
what the actual cause was.

Modified Paths:
--------------
    trunk/blender/intern/ghost/intern/GHOST_WindowWin32.cpp

Modified: trunk/blender/intern/ghost/intern/GHOST_WindowWin32.cpp
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_WindowWin32.cpp     2011-02-04 
13:18:44 UTC (rev 34640)
+++ trunk/blender/intern/ghost/intern/GHOST_WindowWin32.cpp     2011-02-04 
13:22:02 UTC (rev 34641)
@@ -805,12 +805,10 @@
        GHOST_TSuccess success;
        switch (m_drawingContextType) {
        case GHOST_kDrawingContextTypeOpenGL:
-               if (m_hGlRc) {
-                       bool first = m_hGlRc == s_firsthGLRc;
+               // we shouldn't remove the drawing context if it's the first 
OpenGL context
+               // If we do, we get corrupted drawing. See #19997
+               if (m_hGlRc && m_hGlRc!=s_firsthGLRc) {
                        success = ::wglDeleteContext(m_hGlRc) == TRUE ? 
GHOST_kSuccess : GHOST_kFailure;
-                       if (first) {
-                               s_firsthGLRc = 0;
-                       }
                        m_hGlRc = 0;
                }
                else {

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to