diff --git a/src/OpenGl/OpenGl_View_2.cxx b/src/OpenGl/OpenGl_View_2.cxx index db638b5a38..4240be52da 100644 --- a/src/OpenGl/OpenGl_View_2.cxx +++ b/src/OpenGl/OpenGl_View_2.cxx @@ -232,6 +232,7 @@ void OpenGl_View::DrawBackground (const Handle(OpenGl_Workspace)& theWorkspace) aCtx->WorldViewState.Pop(); aCtx->ProjectionState.Pop(); aCtx->ApplyProjectionMatrix(); + aCtx->ApplyWorldViewMatrix(); if (theWorkspace->UseZBuffer()) { diff --git a/tests/bugs/vis/bug25778 b/tests/bugs/vis/bug25778 new file mode 100644 index 0000000000..8b254f0f50 --- /dev/null +++ b/tests/bugs/vis/bug25778 @@ -0,0 +1,34 @@ +puts "================================================================" +puts "CR25778" +puts "Gradient background will cut view if there is ClipPlane defined." +puts "================================================================" +puts "" + +set aExpectedImg $imagedir/${casename}_expected_img.png +set aVerifiedImg $imagedir/${casename}_verified_img.png +set aDiff $imagedir/${casename}_diff.png + +vinit View1 +vclear +vaxo +vsetdispmode 1 +box b 1 1 1 +vdisplay b +vfit + +vclipplane create pln +vclipplane set pln view Driver1/Viewer1/View1 +vclipplane change pln equation 0 1 0 -0.5 + +vsetgradientbg 0 0 0 0 0 0 0 + +vdump $aExpectedImg + +vsetgradientbg 0 0 0 0 0 0 1 + +vdump $aVerifiedImg + +set aDiffRes [diffimage $aExpectedImg $aVerifiedImg 0.1 0 0 $aDiff] +if {$aDiffRes != 0} { + puts "ERROR : Test failed: gradient background affects clipping." +}