diff options
Diffstat (limited to 'libs/hwui/renderstate/RenderState.cpp')
-rw-r--r-- | libs/hwui/renderstate/RenderState.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/libs/hwui/renderstate/RenderState.cpp b/libs/hwui/renderstate/RenderState.cpp index 9637117bc11a..4fa820058fb2 100644 --- a/libs/hwui/renderstate/RenderState.cpp +++ b/libs/hwui/renderstate/RenderState.cpp @@ -90,6 +90,8 @@ void RenderState::onGLContextDestroyed() { } */ + mLayerPool.clear(); + // TODO: reset all cached state in state objects std::for_each(mActiveLayers.begin(), mActiveLayers.end(), layerLostGlContext); mAssetAtlas.terminate(); @@ -106,6 +108,19 @@ void RenderState::onGLContextDestroyed() { mStencil = nullptr; } +void RenderState::flush(Caches::FlushMode mode) { + switch (mode) { + case Caches::FlushMode::Full: + // fall through + case Caches::FlushMode::Moderate: + // fall through + case Caches::FlushMode::Layers: + mLayerPool.clear(); + break; + } + mCaches->flush(mode); +} + void RenderState::setViewport(GLsizei width, GLsizei height) { mViewportWidth = width; mViewportHeight = height; |