From f357e045deb8c1ff5a8bd45ca3def70991e4e177 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Tr=C3=B6ger?= Date: Sun, 3 May 2015 09:36:26 +0200 Subject: [PATCH] fix blocking datum plane BrepFaceSet implementation was faulty, if normal cache locks have been aquired they need to be released --- src/Mod/Part/Gui/SoBrepFaceSet.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/Mod/Part/Gui/SoBrepFaceSet.cpp b/src/Mod/Part/Gui/SoBrepFaceSet.cpp index 63ce32a04..87216b1ab 100644 --- a/src/Mod/Part/Gui/SoBrepFaceSet.cpp +++ b/src/Mod/Part/Gui/SoBrepFaceSet.cpp @@ -267,6 +267,9 @@ void SoBrepFaceSet::GLRender(SoGLRenderAction *action) if (num_selected > 0) renderSelection(action); //#endif + + if(normalCacheUsed) + this->readUnlockNormalCache(); } //**************************************************************************** @@ -383,6 +386,9 @@ void SoBrepFaceSet::GLRender(SoGLRenderAction *action) // Disable caching for this node SoGLCacheContextElement::shouldAutoCache(state, SoGLCacheContextElement::DONT_AUTO_CACHE); + if(normalCacheUsed) + this->readUnlockNormalCache(); + // Workaround for #0000433 //#if !defined(FC_OS_WIN32) if (this->highlightIndex.getValue() >= 0) @@ -740,6 +746,9 @@ void SoBrepFaceSet::renderHighlight(SoGLRenderAction *action) &(pindices[id]), 1, normals, nindices, &mb, mindices, &tb, tindices, nbind, mbind, doTextures?1:0); } state->pop(); + + if(normalCacheUsed) + this->readUnlockNormalCache(); } void SoBrepFaceSet::renderSelection(SoGLRenderAction *action) @@ -821,6 +830,9 @@ void SoBrepFaceSet::renderSelection(SoGLRenderAction *action) &(pindices[id]), 1, normals_s, nindices_s, &mb, mindices, &tb, tindices, nbind, mbind, doTextures?1:0); } state->pop(); + + if(normalCacheUsed) + this->readUnlockNormalCache(); } void SoBrepFaceSet::renderShape(const SoGLCoordinateElement * const vertexlist,