diff options
author | Teng-Hui Zhu <ztenghui@google.com> | 2012-02-28 10:29:36 -0800 |
---|---|---|
committer | Teng-Hui Zhu <ztenghui@google.com> | 2012-02-28 14:11:42 -0800 |
commit | 5965903d393505b9a49ac3a142aa0c17cd98bce8 (patch) | |
tree | e22fbaf86855f3805cd60bd5eba1d3a00a0a6812 /Source/WebCore/platform/graphics/android/GLWebViewState.cpp | |
parent | 7adab1830575d4438d058b5d7f6e932e97451c56 (diff) | |
download | external_webkit-5965903d393505b9a49ac3a142aa0c17cd98bce8.zip external_webkit-5965903d393505b9a49ac3a142aa0c17cd98bce8.tar.gz external_webkit-5965903d393505b9a49ac3a142aa0c17cd98bce8.tar.bz2 |
Delete the GL shader resources in a cleaner way
bug:6079959
Change-Id: I55c96bb6abc90503c178607d0798c82e2c5ecaf1
Diffstat (limited to 'Source/WebCore/platform/graphics/android/GLWebViewState.cpp')
-rw-r--r-- | Source/WebCore/platform/graphics/android/GLWebViewState.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/Source/WebCore/platform/graphics/android/GLWebViewState.cpp b/Source/WebCore/platform/graphics/android/GLWebViewState.cpp index 86f33e0..a29ab82 100644 --- a/Source/WebCore/platform/graphics/android/GLWebViewState.cpp +++ b/Source/WebCore/platform/graphics/android/GLWebViewState.cpp @@ -353,19 +353,16 @@ double GLWebViewState::setupDrawing(const IntRect& viewRect, const SkRect& visib int height = viewRect.height(); TilesManager* tilesManager = TilesManager::instance(); - // Make sure the GL Context has not changed, otherwise, re-create all GL - // resources. Only check this after onTrimMemory happens. - bool contextChanged = tilesManager->contextChanged(); - tilesManager->setContextChanged(false); - // Make sure GL resources are created on the UI thread. + // They are created either for the first time, or after EGL context + // recreation caused by onTrimMemory in the framework. ShaderProgram* shader = tilesManager->shader(); - if (shader->needsInit() || contextChanged) { + if (shader->needsInit()) { XLOGC("Reinit shader"); - shader->init(); + shader->initGLResources(); } TransferQueue* transferQueue = tilesManager->transferQueue(); - if (transferQueue->needsInit() || contextChanged) { + if (transferQueue->needsInit()) { XLOGC("Reinit transferQueue"); transferQueue->initGLResources(TilesManager::tileWidth(), TilesManager::tileHeight()); |