Expose compositeAndReadback in WebLayerTreeView
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 15 Nov 2011 00:51:31 +0000 (00:51 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 15 Nov 2011 00:51:31 +0000 (00:51 +0000)
https://bugs.webkit.org/show_bug.cgi?id=72188

Patch by Ian Vollick <vollick@chromium.org> on 2011-11-14
Reviewed by Darin Fisher.

* public/WebLayerTreeView.h:
* src/WebLayerTreeView.cpp:
(WebKit::WebLayerTreeView::compositeAndReadback):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@100217 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/public/WebLayerTreeView.h
Source/WebKit/chromium/src/WebLayerTreeView.cpp

index d1861e838e4c337ae0db6905311609e8e058cc55..1b46899bdb4925ec776170750a93f6a0a7d73400 100644 (file)
@@ -1,3 +1,14 @@
+2011-11-14  Ian Vollick  <vollick@chromium.org>
+
+        Expose compositeAndReadback in WebLayerTreeView
+        https://bugs.webkit.org/show_bug.cgi?id=72188
+
+        Reviewed by Darin Fisher.
+
+        * public/WebLayerTreeView.h:
+        * src/WebLayerTreeView.cpp:
+        (WebKit::WebLayerTreeView::compositeAndReadback):
+
 2011-11-14  Raymond Toy  <rtoy@google.com>
 
         Add buffering to handle mismatch between hardware buffer size and webaudio render size
index aa8b21390e0e9953be1864d200243b4b5b043953..ca08ced074b949324bb9cc074813d2c21bfe71de 100644 (file)
@@ -37,6 +37,7 @@ struct CCSettings;
 namespace WebKit {
 class WebLayer;
 class WebLayerTreeViewClient;
+struct WebRect;
 struct WebSize;
 
 class WebLayerTreeView {
@@ -81,6 +82,14 @@ public:
     WEBKIT_EXPORT void setViewportSize(const WebSize&);
     WEBKIT_EXPORT WebSize viewportSize() const;
 
+    // Composites and attempts to read back the result into the provided
+    // buffer. If it wasn't possible, e.g. due to context lost, will return
+    // false. Pixel format is 32bit (RGBA), and the provided buffer must be
+    // large enough contain viewportSize().width() * viewportSize().height()
+    // pixels. The WebLayerTreeView does not assume ownership of the buffer.
+    // The buffer is not modified if the false is returned.
+    WEBKIT_EXPORT bool compositeAndReadback(void *pixels, const WebRect&);
+
 #if WEBKIT_IMPLEMENTATION
     WebLayerTreeView(const WTF::PassRefPtr<WebCore::CCLayerTreeHost>&);
     WebLayerTreeView& operator=(const WTF::PassRefPtr<WebCore::CCLayerTreeHost>&);
index 02d6ca625aba9a3ae356bb67917e35279d3e6c7e..c768e1a662977ad61b4125a9584326d0a59f575b 100644 (file)
@@ -27,6 +27,7 @@
 #include "WebLayerTreeView.h"
 
 #include "WebLayerTreeViewImpl.h"
+#include "WebRect.h"
 #include "WebSize.h"
 #include "cc/CCLayerTreeHost.h"
 
@@ -84,6 +85,11 @@ WebSize WebLayerTreeView::viewportSize() const
     return WebSize(m_private->viewportSize());
 }
 
+bool WebLayerTreeView::compositeAndReadback(void *pixels, const WebRect& rect)
+{
+    return m_private->compositeAndReadback(pixels, rect);
+}
+
 WebLayerTreeView::WebLayerTreeView(const PassRefPtr<CCLayerTreeHost>& node)
     : m_private(node)
 {