Title: [126777] trunk/Source
- Revision
- 126777
- Author
- [email protected]
- Date
- 2012-08-27 11:36:29 -0700 (Mon, 27 Aug 2012)
Log Message
Make Force Repaint work with tiled backing store
https://bugs.webkit.org/show_bug.cgi?id=95102
Reviewed by Dan Bernstein.
Source/WebCore:
forceRepaint() didn't work correctly with tiled backing
store, because it never actually caused a repaint on the tiles.
Fix by having the drawing area call forceRepaint() on
the TileCache (via the TiledBacking interface), which
just ends up as a setNeedsDisplay().
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/mac/TileCache.h:
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::forceRepaint):
Source/WebKit2:
Have forceRepaint() call down to the tiled backing of each FrameView,
so they can repaint.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::forceRepaint):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (126776 => 126777)
--- trunk/Source/WebCore/ChangeLog 2012-08-27 18:05:44 UTC (rev 126776)
+++ trunk/Source/WebCore/ChangeLog 2012-08-27 18:36:29 UTC (rev 126777)
@@ -1,3 +1,23 @@
+2012-08-27 Simon Fraser <[email protected]>
+
+ Make Force Repaint work with tiled backing store
+ https://bugs.webkit.org/show_bug.cgi?id=95102
+
+ Reviewed by Dan Bernstein.
+
+ forceRepaint() didn't work correctly with tiled backing
+ store, because it never actually caused a repaint on the tiles.
+
+ Fix by having the drawing area call forceRepaint() on
+ the TileCache (via the TiledBacking interface), which
+ just ends up as a setNeedsDisplay().
+
+ * WebCore.xcodeproj/project.pbxproj:
+ * platform/graphics/TiledBacking.h:
+ * platform/graphics/ca/mac/TileCache.h:
+ * platform/graphics/ca/mac/TileCache.mm:
+ (WebCore::TileCache::forceRepaint):
+
2012-08-27 Victor Carbune <[email protected]>
Crash when trying to render empty cues
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (126776 => 126777)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2012-08-27 18:05:44 UTC (rev 126776)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2012-08-27 18:36:29 UTC (rev 126777)
@@ -612,7 +612,7 @@
1AF62F2414DAFE910041556C /* ScrollingThreadMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1AF62F2314DAFE910041556C /* ScrollingThreadMac.mm */; };
1AF62F2514DAFE9E0041556C /* ScrollingThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AF62F2014DAFE790041556C /* ScrollingThread.cpp */; };
1AF62F2614DAFEA10041556C /* ScrollingThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AF62F2114DAFE790041556C /* ScrollingThread.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 1AF89A421518FDEA00E547B5 /* TiledBacking.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AF89A411518FDEA00E547B5 /* TiledBacking.h */; };
+ 1AF89A421518FDEA00E547B5 /* TiledBacking.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AF89A411518FDEA00E547B5 /* TiledBacking.h */; settings = {ATTRIBUTES = (Private, ); }; };
1AF8E11A1256592600230FF7 /* ProxyServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AF8E1191256592600230FF7 /* ProxyServer.h */; settings = {ATTRIBUTES = (Private, ); }; };
1AF8E13312565A4400230FF7 /* ProxyServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AF8E13212565A4400230FF7 /* ProxyServer.cpp */; };
1AF8E1C3125673E000230FF7 /* ProxyServerCFNet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AF8E1C1125673E000230FF7 /* ProxyServerCFNet.cpp */; };
Modified: trunk/Source/WebCore/platform/graphics/TiledBacking.h (126776 => 126777)
--- trunk/Source/WebCore/platform/graphics/TiledBacking.h 2012-08-27 18:05:44 UTC (rev 126776)
+++ trunk/Source/WebCore/platform/graphics/TiledBacking.h 2012-08-27 18:36:29 UTC (rev 126777)
@@ -40,6 +40,7 @@
virtual void visibleRectChanged(const IntRect&) = 0;
virtual void setIsInWindow(bool) = 0;
virtual void setCanHaveScrollbars(bool) = 0;
+ virtual void forceRepaint() = 0;
void setScrollingPerformanceLoggingEnabled(bool flag) { m_scrollingPerformanceLoggingEnabled = flag; }
bool scrollingPerformanceLoggingEnabled() const { return m_scrollingPerformanceLoggingEnabled; }
Modified: trunk/Source/WebCore/platform/graphics/ca/mac/TileCache.h (126776 => 126777)
--- trunk/Source/WebCore/platform/graphics/ca/mac/TileCache.h 2012-08-27 18:05:44 UTC (rev 126776)
+++ trunk/Source/WebCore/platform/graphics/ca/mac/TileCache.h 2012-08-27 18:36:29 UTC (rev 126777)
@@ -82,7 +82,8 @@
virtual void visibleRectChanged(const IntRect&) OVERRIDE;
virtual void setIsInWindow(bool) OVERRIDE;
virtual void setCanHaveScrollbars(bool) OVERRIDE;
-
+ virtual void forceRepaint() OVERRIDE;
+
IntRect bounds() const;
typedef IntPoint TileIndex;
Modified: trunk/Source/WebCore/platform/graphics/ca/mac/TileCache.mm (126776 => 126777)
--- trunk/Source/WebCore/platform/graphics/ca/mac/TileCache.mm 2012-08-27 18:05:44 UTC (rev 126776)
+++ trunk/Source/WebCore/platform/graphics/ca/mac/TileCache.mm 2012-08-27 18:36:29 UTC (rev 126777)
@@ -233,6 +233,11 @@
scheduleTileRevalidation(0);
}
+void TileCache::forceRepaint()
+{
+ setNeedsDisplay();
+}
+
void TileCache::setTileDebugBorderWidth(float borderWidth)
{
if (m_tileDebugBorderWidth == borderWidth)
Modified: trunk/Source/WebKit2/ChangeLog (126776 => 126777)
--- trunk/Source/WebKit2/ChangeLog 2012-08-27 18:05:44 UTC (rev 126776)
+++ trunk/Source/WebKit2/ChangeLog 2012-08-27 18:36:29 UTC (rev 126777)
@@ -1,3 +1,16 @@
+2012-08-27 Simon Fraser <[email protected]>
+
+ Make Force Repaint work with tiled backing store
+ https://bugs.webkit.org/show_bug.cgi?id=95102
+
+ Reviewed by Dan Bernstein.
+
+ Have forceRepaint() call down to the tiled backing of each FrameView,
+ so they can repaint.
+
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+ (WebKit::TiledCoreAnimationDrawingArea::forceRepaint):
+
2012-08-27 Rafael Brandao <[email protected]>
[Qt] Fix typo in CoordinatedGraphicsLayer::syncAnimatedProperties
Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm (126776 => 126777)
--- trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm 2012-08-27 18:05:44 UTC (rev 126776)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm 2012-08-27 18:36:29 UTC (rev 126777)
@@ -49,6 +49,7 @@
#import <WebCore/ScrollingThread.h>
#import <WebCore/ScrollingTree.h>
#import <WebCore/Settings.h>
+#import <WebCore/TiledBacking.h>
#import <wtf/MainThread.h>
@interface CATransaction (Details)
@@ -134,6 +135,14 @@
if (m_layerTreeStateIsFrozen)
return;
+ for (Frame* frame = m_webPage->corePage()->mainFrame(); frame; frame = frame->tree()->traverseNext()) {
+ FrameView* frameView = frame->view();
+ if (!frameView || !frameView->tiledBacking())
+ continue;
+
+ frameView->tiledBacking()->forceRepaint();
+ }
+
flushLayers();
[CATransaction flush];
[CATransaction synchronize];
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes