0029051: Visualization, TKOpenGl - wrong color of transparent dynamic highlight with...
authorkgv <kgv@opencascade.com>
Fri, 25 Aug 2017 12:49:40 +0000 (15:49 +0300)
committerbugmaster <bugmaster@opencascade.com>
Tue, 29 Aug 2017 08:28:51 +0000 (11:28 +0300)
OpenGl_PrimitiveArray::Render() - removed obsolete code, which become redundant (and broken)
after moving rendering of transparent objects into OpenGl_LayerList::renderTransparent().

src/OpenGl/OpenGl_PrimitiveArray.cxx
tests/bugs/vis/bug28527 [new file with mode: 0644]
tests/bugs/vis/bug29051 [new file with mode: 0644]

index 98ee3c2..97a3e4f 100644 (file)
@@ -840,36 +840,7 @@ void OpenGl_PrimitiveArray::Render (const Handle(OpenGl_Workspace)& theWorkspace
     const Graphic3d_Vec4* aFaceColors = !myBounds.IsNull() && !toHilight && anAspectFace->Aspect()->InteriorStyle() != Aspect_IS_HIDDENLINE
                                       ?  myBounds->Colors
                                       :  NULL;
-
-    const Standard_Boolean isHighlightWithTransparency = toHilight &&
-      myDrawMode > GL_LINE_STRIP &&
-      theWorkspace->InteriorColor().a() > 0.05f;
-    GLint  aPrevBlendSrc = GL_SRC_ALPHA, aPrevBlendDst = GL_ONE_MINUS_SRC_ALPHA;
-    GLboolean wasBlendEnabled = GL_FALSE;
-    if (isHighlightWithTransparency)
-    {
-      wasBlendEnabled = glIsEnabled (GL_BLEND);
-      #if !defined(GL_ES_VERSION_2_0)
-        glGetIntegerv (GL_BLEND_SRC, &aPrevBlendSrc);
-        glGetIntegerv (GL_BLEND_DST, &aPrevBlendDst);
-      #endif
-      if (!wasBlendEnabled)
-      {
-        glEnable (GL_BLEND);
-      }
-      glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-    }
-
     drawArray (theWorkspace, aFaceColors, hasColorAttrib);
-
-    if (isHighlightWithTransparency)
-    {
-      glBlendFunc (aPrevBlendSrc, aPrevBlendDst);
-      if (!wasBlendEnabled)
-      {
-        glDisable (GL_BLEND);
-      }
-    }
   }
 
   if (myDrawMode <= GL_LINE_STRIP)
diff --git a/tests/bugs/vis/bug28527 b/tests/bugs/vis/bug28527
new file mode 100644 (file)
index 0000000..dc8f44e
--- /dev/null
@@ -0,0 +1,34 @@
+puts "============"
+puts "0028527: Visualization, AIS_InteractiveContext - custom selection presentation is never removed from View"
+puts "============"
+puts ""
+
+pload MODELING XDE VISUALIZATION
+vclear
+vclose ALL
+vinit View1
+box b -100 0 0 10 20 30
+meshfromstl m [locate_data_file OMF6391_box.stl]
+
+vfit
+vsetdispmode m 2
+vselmode m 8 1
+vselect 0 0 409 409 0 409
+verase m
+
+vdisplay -dispMode 1 -highMode 1 b
+vfit
+if { [vreadpixel 165 400 rgb name] != "DARKGOLDENROD3" } { puts "Error: fit all produces incorrect result after Erase" }
+vdump $::imagedir/${::casename}_1.png
+
+verase b
+vdisplay m
+vfit
+vselmode m 8 1
+vselect 0 0 409 409 0 409
+vremove m
+
+vdisplay -dispMode 1 -highMode 1 b
+vfit
+if { [vreadpixel 165 400 rgb name] != "DARKGOLDENROD3" } { puts "Error: fit all produces incorrect result after Remove" }
+vdump $::imagedir/${::casename}_2.png
diff --git a/tests/bugs/vis/bug29051 b/tests/bugs/vis/bug29051
new file mode 100644 (file)
index 0000000..63d0f22
--- /dev/null
@@ -0,0 +1,21 @@
+puts "========"
+puts "0029051: Visualization, TKOpenGl - wrong color of transparent dynamic highlight with OIT tuned ON"
+puts "========"
+puts ""
+
+pload MODELING VISUALIZATION
+box b 1 2 3
+vclear
+vinit View1
+vdisplay -dispMode 1 b
+vfit
+vselprops dynHighlight -dispMode 1 -color RED -transp 0.2
+vmoveto 250 250
+vrenderparams -oit off
+if { [vreadpixel 250 250 rgb name] != "ORANGERED3" } { puts "Error: wrong highlight color with OIT turned OFF"}
+vdump $imagedir/${casename}_oit_off.png
+
+vrenderparams -oit 0
+vreadpixel 250 250 rgb name
+if { [vreadpixel 250 250 rgb name] != "ORANGERED3" } { puts "Error: wrong highlight color with OIT turned ON"}
+vdump $imagedir/${casename}_oit_on.png