Hi,

Going through the TextureMapperGL implementation, I see that BeginClip advances 
the bit plane to the next

clipStack().setStencilIndex(stencilIndex * 2);

However, EndClip does not revert it back before calling 
clipStack().applyIfNeeded(m_context3D.get());

The applyIfNeeded disables stencil test only if stencilIndex is 1.

if (clipState.stencilIndex == 1)
        context->disable(GraphicsContext3D::STENCIL_TEST);
    else
        context->enable(GraphicsContext3D::STENCIL_TEST);

There is no place in the code that is attempting to reverse the impact of 
BeginClip. Isn't a right bit shift required in the EndClip call before the 
applyIfNeeded call? Otherwise, I don't see how EndClip will disable stenciling 
test ever. The problem is probably more obvious if you have nested clipping.

Note - my observation is based simply on reading the code. Please correct me if 
I have missed something.

Thanks
Arpit
_______________________________________________
webkit-dev mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to