Fix scissor for functor invocation
Bug: 10677765 enableScissor() must precede setScissorFromClip() as otherwise setScissorFromClip() doesn't do anything. Also make sure to call setScissorFromClip() if enableScissor() returns true as enableScissor() calls resetScissor() if the scissor state has changed. Change-Id: I9226b20bb256c92066aae344e4e6407540b6eae9
This commit is contained in:
@@ -471,12 +471,14 @@ status_t OpenGLRenderer::callDrawGLFunction(Functor* functor, Rect& dirty) {
|
||||
info.height = getSnapshot()->height;
|
||||
getSnapshot()->transform->copyTo(&info.transform[0]);
|
||||
|
||||
bool dirtyClip = mDirtyClip;
|
||||
// setup GL state for functor
|
||||
if (mDirtyClip) {
|
||||
setScissorFromClip();
|
||||
setStencilFromClip(); // can issue draws, so must precede enableScissor()/interrupt()
|
||||
}
|
||||
mCaches.enableScissor();
|
||||
if (mCaches.enableScissor() || dirtyClip) {
|
||||
setScissorFromClip();
|
||||
}
|
||||
interrupt();
|
||||
|
||||
// call functor immediately after GL state setup
|
||||
|
||||
Reference in New Issue
Block a user