Title: [146934] trunk/Source/WebKit/blackberry
Revision
146934
Author
commit-qu...@webkit.org
Date
2013-03-26 14:46:47 -0700 (Tue, 26 Mar 2013)

Log Message

[BlackBerry] Include accelerated compositing layers in screen captures.
https://bugs.webkit.org/show_bug.cgi?id=113335

Patch by Mike Lattanzio <mlattan...@blackberry.com> on 2013-03-26
Reviewed by Rob Buis.

PR# 280374
Include accelerated compositing layers in screen captures.
Reviewed Internally By: Jakob Petsovits

* Api/BackingStore.cpp:
(BlackBerry::WebKit::BackingStorePrivate::render):
(BlackBerry::WebKit::BackingStorePrivate::renderContents):
(BlackBerry::WebKit::BackingStore::drawContents):
* Api/BackingStore_p.h:

Modified Paths

Diff

Modified: trunk/Source/WebKit/blackberry/Api/BackingStore.cpp (146933 => 146934)


--- trunk/Source/WebKit/blackberry/Api/BackingStore.cpp	2013-03-26 21:46:00 UTC (rev 146933)
+++ trunk/Source/WebKit/blackberry/Api/BackingStore.cpp	2013-03-26 21:46:47 UTC (rev 146934)
@@ -1079,7 +1079,7 @@
         const Platform::FloatPoint documentDirtyRectOrigin = viewportAccessor->toDocumentContents(dirtyRect.location(), currentScale);
         const Platform::IntRect dstRect(dirtyRect.location() - tileOrigin, dirtyRect.size());
 
-        if (!renderContents(nativeBuffer, dstRect, currentScale, documentDirtyRectOrigin))
+        if (!renderContents(nativeBuffer, dstRect, currentScale, documentDirtyRectOrigin, RenderRootLayer))
             continue;
 
         // Add the newly rendered region to the tile so it can keep track for blits.
@@ -1818,7 +1818,7 @@
     return tileSize;
 }
 
-bool BackingStorePrivate::renderContents(BlackBerry::Platform::Graphics::Buffer* targetBuffer, const Platform::IntRect& dstRect, double scale, const Platform::FloatPoint& documentRenderOrigin) const
+bool BackingStorePrivate::renderContents(BlackBerry::Platform::Graphics::Buffer* targetBuffer, const Platform::IntRect& dstRect, double scale, const Platform::FloatPoint& documentRenderOrigin, LayersToRender layersToRender) const
 {
 #if DEBUG_BACKINGSTORE
     Platform::logAlways(Platform::LogLevelCritical,
@@ -1898,7 +1898,10 @@
         }
 
         // Let WebCore render the page contents into the drawing surface.
-        m_client->frame()->view()->paintContents(&graphicsContext, renderedRect);
+        if (layersToRender == RenderRootLayer)
+            m_client->frame()->view()->paintContents(&graphicsContext, renderedRect);
+        else
+            m_client->frame()->view()->paintContentsForSnapshot(&graphicsContext, renderedRect, FrameView::ExcludeSelection, FrameView::DocumentCoordinates);
 
         graphicsContext.restore();
     }
@@ -2316,7 +2319,7 @@
 
     d->requestLayoutIfNeeded();
 
-    return d->renderContents(buffer, dstRect, scale, documentScrollPosition);
+    return d->renderContents(buffer, dstRect, scale, documentScrollPosition, BackingStorePrivate::RenderAllLayers);
 }
 
 }

Modified: trunk/Source/WebKit/blackberry/Api/BackingStore_p.h (146933 => 146934)


--- trunk/Source/WebKit/blackberry/Api/BackingStore_p.h	2013-03-26 21:46:00 UTC (rev 146933)
+++ trunk/Source/WebKit/blackberry/Api/BackingStore_p.h	2013-03-26 21:46:47 UTC (rev 146934)
@@ -275,7 +275,8 @@
     static Platform::IntSize tileSize();
 
     // This takes transformed contents coordinates.
-    bool renderContents(BlackBerry::Platform::Graphics::Buffer*, const BlackBerry::Platform::IntRect& dstRect, double scale, const BlackBerry::Platform::FloatPoint& documentScrollPosition) const;
+    enum LayersToRender { RenderRootLayer, RenderAllLayers };
+    bool renderContents(BlackBerry::Platform::Graphics::Buffer*, const BlackBerry::Platform::IntRect& dstRect, double scale, const BlackBerry::Platform::FloatPoint& documentScrollPosition, LayersToRender) const;
 
     void blitToWindow(const Platform::IntRect& dstRect, const BlackBerry::Platform::Graphics::Buffer* srcBuffer, const Platform::IntRect& srcRect, BlackBerry::Platform::Graphics::BlendMode, unsigned char globalAlpha);
     void fillWindow(Platform::Graphics::FillPattern, const Platform::IntRect& dstRect, const Platform::IntPoint& contentsOrigin, double contentsScale);

Modified: trunk/Source/WebKit/blackberry/ChangeLog (146933 => 146934)


--- trunk/Source/WebKit/blackberry/ChangeLog	2013-03-26 21:46:00 UTC (rev 146933)
+++ trunk/Source/WebKit/blackberry/ChangeLog	2013-03-26 21:46:47 UTC (rev 146934)
@@ -1,3 +1,20 @@
+2013-03-26  Mike Lattanzio  <mlattan...@blackberry.com>
+
+        [BlackBerry] Include accelerated compositing layers in screen captures.
+        https://bugs.webkit.org/show_bug.cgi?id=113335
+
+        Reviewed by Rob Buis.
+
+        PR# 280374
+        Include accelerated compositing layers in screen captures.
+        Reviewed Internally By: Jakob Petsovits
+
+        * Api/BackingStore.cpp:
+        (BlackBerry::WebKit::BackingStorePrivate::render):
+        (BlackBerry::WebKit::BackingStorePrivate::renderContents):
+        (BlackBerry::WebKit::BackingStore::drawContents):
+        * Api/BackingStore_p.h:
+
 2013-03-26  Tiancheng Jiang  <tiji...@rim.com>
 
         [BlackBerry] Set mouse document position for mouse event in updateCursor
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to