summaryrefslogtreecommitdiffstats
path: root/WebCore/platform
diff options
context:
space:
mode:
authorDerek Sollenberger <djsollen@google.com>2011-03-01 09:23:53 -0500
committerSriram Raman <sriramkraman@google.com>2011-03-01 22:37:14 -0500
commit9002de961a78d8c63b2399846d290bff2d79a3f4 (patch)
tree866d0b3c01e9914b32ad94d83da6352af61d1def /WebCore/platform
parent65b97159d8d180594e604d2ca5f6674388354416 (diff)
downloadexternal_webkit-9002de961a78d8c63b2399846d290bff2d79a3f4.zip
external_webkit-9002de961a78d8c63b2399846d290bff2d79a3f4.tar.gz
external_webkit-9002de961a78d8c63b2399846d290bff2d79a3f4.tar.bz2
Do not merge: Cherry-pick fix to framerate cap
Bug: 3471680 Fix framerate cap when multiple webviews exist. Each view will now be capped at 60fps. The previous code would either starve the drawing of additional webviews or would draw them at a rate of 60fps/N where N is the number of webviews. Change-Id: I359a79f5981bc29d57ce4b94eb00a5c9aee754d0
Diffstat (limited to 'WebCore/platform')
-rw-r--r--WebCore/platform/graphics/android/GLWebViewState.cpp7
-rw-r--r--WebCore/platform/graphics/android/GLWebViewState.h1
2 files changed, 4 insertions, 4 deletions
diff --git a/WebCore/platform/graphics/android/GLWebViewState.cpp b/WebCore/platform/graphics/android/GLWebViewState.cpp
index 57d4c66..0e7f559 100644
--- a/WebCore/platform/graphics/android/GLWebViewState.cpp
+++ b/WebCore/platform/graphics/android/GLWebViewState.cpp
@@ -71,6 +71,7 @@ GLWebViewState::GLWebViewState(android::Mutex* buttonMutex)
, m_globalButtonMutex(buttonMutex)
, m_baseLayerUpdate(true)
, m_backgroundColor(SK_ColorWHITE)
+ , m_prevDrawTime(0)
{
m_viewport.setEmpty();
m_previousViewport.setEmpty();
@@ -298,19 +299,17 @@ void GLWebViewState::setViewport(SkRect& viewport, float scale)
m_tiledPageB->updateBaseTileSize();
}
-static double gPrevTime = 0;
-
bool GLWebViewState::drawGL(IntRect& rect, SkRect& viewport, float scale, SkColor color)
{
glFinish();
double currentTime = WTF::currentTime();
- double delta = currentTime - gPrevTime;
+ double delta = currentTime - m_prevDrawTime;
if (delta < FRAMERATE_CAP)
return true;
- gPrevTime = currentTime;
+ m_prevDrawTime = currentTime;
m_baseLayerLock.lock();
BaseLayerAndroid* baseLayer = m_currentBaseLayer;
diff --git a/WebCore/platform/graphics/android/GLWebViewState.h b/WebCore/platform/graphics/android/GLWebViewState.h
index 4b71d86..9940631 100644
--- a/WebCore/platform/graphics/android/GLWebViewState.h
+++ b/WebCore/platform/graphics/android/GLWebViewState.h
@@ -252,6 +252,7 @@ private:
IntRect m_invalidateRect;
SkColor m_backgroundColor;
+ double m_prevDrawTime;
};
} // namespace WebCore