Merge "Reset draw modifiers after flushing" into jb-mr2-dev

This commit is contained in:
Chris Craik
2013-03-16 02:09:16 +00:00
committed by Android (Google) Code Review
3 changed files with 10 additions and 5 deletions

View File

@@ -372,8 +372,8 @@ status_t DeferredDisplayList::flush(OpenGLRenderer& renderer, Rect& dirty) {
renderer.eventMark("Flush");
renderer.restoreToCount(1);
status |= replayBatchList(mBatches, renderer, dirty);
renderer.resetDrawModifiers();
DEFER_LOGD("--flush complete, returning %x", status);

View File

@@ -112,10 +112,7 @@ static const Blender gBlendsSwap[] = {
OpenGLRenderer::OpenGLRenderer():
mCaches(Caches::getInstance()), mExtensions(Extensions::getInstance()) {
mDrawModifiers.mShader = NULL;
mDrawModifiers.mColorFilter = NULL;
mDrawModifiers.mHasShadow = false;
mDrawModifiers.mHasDrawFilter = false;
resetDrawModifiers();
memcpy(mMeshVertices, gMeshVertices, sizeof(gMeshVertices));
@@ -1204,6 +1201,13 @@ void OpenGLRenderer::clearLayerRegions() {
// State Deferral
///////////////////////////////////////////////////////////////////////////////
void OpenGLRenderer::resetDrawModifiers() {
mDrawModifiers.mShader = NULL;
mDrawModifiers.mColorFilter = NULL;
mDrawModifiers.mHasShadow = false;
mDrawModifiers.mHasDrawFilter = false;
}
bool OpenGLRenderer::storeDisplayState(DeferredDisplayState& state, int stateDeferFlags) {
const Rect& currentClip = *(mSnapshot->clipRect);
const mat4& currentMatrix = *(mSnapshot->transform);

View File

@@ -274,6 +274,7 @@ public:
SkPaint* filterPaint(SkPaint* paint, bool alwaysCopy = false);
void resetDrawModifiers();
bool storeDisplayState(DeferredDisplayState& state, int stateDeferFlags);
void restoreDisplayState(const DeferredDisplayState& state, int stateDeferFlags);