summaryrefslogtreecommitdiffstats
path: root/Source/WebCore
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore')
-rw-r--r--Source/WebCore/platform/graphics/android/GLWebViewState.cpp3
-rw-r--r--Source/WebCore/platform/graphics/android/PaintedSurface.cpp6
-rw-r--r--Source/WebCore/platform/graphics/android/TiledTexture.cpp2
-rw-r--r--Source/WebCore/rendering/RenderLayer.h2
4 files changed, 6 insertions, 7 deletions
diff --git a/Source/WebCore/platform/graphics/android/GLWebViewState.cpp b/Source/WebCore/platform/graphics/android/GLWebViewState.cpp
index 7b43305..aa1c05b 100644
--- a/Source/WebCore/platform/graphics/android/GLWebViewState.cpp
+++ b/Source/WebCore/platform/graphics/android/GLWebViewState.cpp
@@ -164,11 +164,10 @@ void GLWebViewState::setBaseLayer(BaseLayerAndroid* layer, const SkRegion& inval
} else {
m_currentBaseLayerRoot = 0;
}
- if (m_currentBaseLayerRoot && oldRoot)
+ if (oldRoot != m_currentBaseLayerRoot)
TilesManager::instance()->swapLayersTextures(oldRoot, m_currentBaseLayerRoot);
SkSafeUnref(oldRoot);
-
// We only update the base layer if we are not currently
// waiting for a tiledPage to be painted
if (m_baseLayerUpdate) {
diff --git a/Source/WebCore/platform/graphics/android/PaintedSurface.cpp b/Source/WebCore/platform/graphics/android/PaintedSurface.cpp
index 0957c0c..8f78638 100644
--- a/Source/WebCore/platform/graphics/android/PaintedSurface.cpp
+++ b/Source/WebCore/platform/graphics/android/PaintedSurface.cpp
@@ -155,7 +155,7 @@ void PaintedSurface::prepare(GLWebViewState* state)
m_scale = state->scale();
- XLOGC("%x layer %d %x prepared at size (%d, %d) @ scale %.2f", this, m_layer->uniqueId(),
+ XLOG("%x layer %d %x prepared at size (%d, %d) @ scale %.2f", this, m_layer->uniqueId(),
m_layer, w, h, m_scale);
m_tiledTexture->prepare(state, m_scale, m_pictureUsed != m_layer->pictureUsed(),
@@ -214,8 +214,8 @@ void PaintedSurface::computeVisibleArea() {
if (!m_visibleArea.isEmpty()) {
float tileWidth = TilesManager::instance()->layerTileWidth();
float tileHeight = TilesManager::instance()->layerTileHeight();
- int w = ceilf(m_area.width() / tileWidth);
- int h = ceilf(m_area.height() / tileHeight);
+ int w = ceilf(m_area.width() * m_scale / tileWidth);
+ int h = ceilf(m_area.height() * m_scale / tileHeight);
if (w * h < MAX_UNCLIPPED_AREA)
m_visibleArea = m_area;
}
diff --git a/Source/WebCore/platform/graphics/android/TiledTexture.cpp b/Source/WebCore/platform/graphics/android/TiledTexture.cpp
index 87996ab..3182eef 100644
--- a/Source/WebCore/platform/graphics/android/TiledTexture.cpp
+++ b/Source/WebCore/platform/graphics/android/TiledTexture.cpp
@@ -71,7 +71,7 @@ bool TiledTexture::ready() {
// FIXME: have a better system -- maybe keeping the last scale factor
// able to fully render everything
return !TilesManager::instance()->layerTexturesRemain()
- || (tilesAllReady && tilesVisible);
+ || !tilesVisible || tilesAllReady;
}
void TiledTexture::prepare(GLWebViewState* state, float scale, bool repaint,
diff --git a/Source/WebCore/rendering/RenderLayer.h b/Source/WebCore/rendering/RenderLayer.h
index f257593..02ab8e9 100644
--- a/Source/WebCore/rendering/RenderLayer.h
+++ b/Source/WebCore/rendering/RenderLayer.h
@@ -354,7 +354,7 @@ public:
if (hasOverflowScroll())
return true;
#endif
- return !hasAutoZIndex() || renderer()->isRenderView() || (isComposited() && isFixed()) || m_shouldComposite;
+ return !hasAutoZIndex() || renderer()->isRenderView() || (isComposited() && isFixed());
}
#else
#if ENABLE(ANDROID_OVERFLOW_SCROLL)