diff options
author | Nicolas Roard <nicolasroard@google.com> | 2011-10-14 14:36:56 -0700 |
---|---|---|
committer | Nicolas Roard <nicolasroard@google.com> | 2011-10-14 15:16:33 -0700 |
commit | 7eb15a6b569f79bfddb934615640fd6275218377 (patch) | |
tree | 24fe93822190ec16b84a6c5dd689012b6a6706bc /Source/WebCore/platform/graphics/android/GLWebViewState.cpp | |
parent | 4520f40c217eca38e19654c0d5e7c987ab07bb9a (diff) | |
download | external_webkit-7eb15a6b569f79bfddb934615640fd6275218377.zip external_webkit-7eb15a6b569f79bfddb934615640fd6275218377.tar.gz external_webkit-7eb15a6b569f79bfddb934615640fd6275218377.tar.bz2 |
Improve performances / fixes some glitches
- no layout / bgd color check if no inval on the base layer
- throttle the number of ImageTexture uploaded per draw call
- disable fast layer position update for now
bug:5297559 bug:5421309 bug:5218173
Change-Id: I9ff9867dd3cfc2e0805e378d75ea75667fef8673
Diffstat (limited to 'Source/WebCore/platform/graphics/android/GLWebViewState.cpp')
-rw-r--r-- | Source/WebCore/platform/graphics/android/GLWebViewState.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/Source/WebCore/platform/graphics/android/GLWebViewState.cpp b/Source/WebCore/platform/graphics/android/GLWebViewState.cpp index 66c0370..2d7b177 100644 --- a/Source/WebCore/platform/graphics/android/GLWebViewState.cpp +++ b/Source/WebCore/platform/graphics/android/GLWebViewState.cpp @@ -31,6 +31,7 @@ #include "BaseLayerAndroid.h" #include "ClassTracker.h" #include "GLUtils.h" +#include "ImagesManager.h" #include "LayerAndroid.h" #include "SkPath.h" #include "TilesManager.h" @@ -447,6 +448,11 @@ bool GLWebViewState::drawGL(IntRect& rect, SkRect& viewport, IntRect* invalRect, // the BaseTiles' texture. TilesManager::instance()->transferQueue()->updateDirtyBaseTiles(); + // Upload any pending ImageTexture + // Return true if we still have some images to upload. + // TODO: upload as many textures as possible within a certain time limit + bool ret = ImagesManager::instance()->uploadTextures(); + if (scale < MIN_SCALE_WARNING || scale > MAX_SCALE_WARNING) XLOGC("WARNING, scale seems corrupted after update: %e", scale); @@ -459,7 +465,7 @@ bool GLWebViewState::drawGL(IntRect& rect, SkRect& viewport, IntRect* invalRect, // set up zoom manager, shaders, etc. m_backgroundColor = baseLayer->getBackgroundColor(); double currentTime = setupDrawing(rect, viewport, webViewRect, titleBarHeight, clip, scale); - bool ret = baseLayer->drawGL(currentTime, compositedRoot, rect, + ret |= baseLayer->drawGL(currentTime, compositedRoot, rect, viewport, scale, buffersSwappedPtr); m_glExtras.drawGL(webViewRect, viewport, titleBarHeight); |