Index: cc/layer_tree_host_impl.cc |
diff --git a/cc/layer_tree_host_impl.cc b/cc/layer_tree_host_impl.cc |
index b558568b008981c4a7a897bf10ff5bd45b55708f..a004cbcfadf1dfa6e814f711ca3e21928be4d00e 100644 |
--- a/cc/layer_tree_host_impl.cc |
+++ b/cc/layer_tree_host_impl.cc |
@@ -9,6 +9,7 @@ |
#include "base/basictypes.h" |
#include "base/debug/trace_event.h" |
#include "cc/append_quads_data.h" |
+#include "cc/compositor_frame_metadata.h" |
#include "cc/damage_tracker.h" |
#include "cc/debug_rect_history.h" |
#include "cc/delay_based_time_source.h" |
@@ -699,6 +700,23 @@ void LayerTreeHostImpl::onVSyncParametersChanged(double monotonicTimebase, doubl |
m_client->onVSyncParametersChanged(timebase, interval); |
} |
+CompositorFrameMetadata LayerTreeHostImpl::makeCompositorFrameMetadata() const |
+{ |
+ CompositorFrameMetadata metadata; |
+ metadata.rootScrollOffset = m_rootScrollLayerImpl->scrollOffset() + m_rootScrollLayerImpl->scrollDelta() + m_pinchZoomViewport.scrollDelta(); |
+ metadata.pageScaleFactor = m_pinchZoomViewport.totalPageScaleFactor(); |
+ metadata.viewportSize = m_pinchZoomViewport.bounds().size(); |
+ metadata.rootLayerSize = m_rootScrollLayerImpl->bounds(); |
+ metadata.minPageScaleFactor = m_pinchZoomViewport.minPageScaleFactor(); |
+ metadata.maxPageScaleFactor = m_pinchZoomViewport.maxPageScaleFactor(); |
+ if (!m_settings.pageScalePinchZoomEnabled) { |
+ metadata.rootScrollOffset.Scale(1 / m_pinchZoomViewport.pageScaleFactor()); |
+ metadata.rootLayerSize.Scale(1 / m_pinchZoomViewport.pageScaleFactor()); |
+ } |
+ |
+ return metadata; |
+} |
+ |
void LayerTreeHostImpl::drawLayers(const FrameData& frame) |
{ |
TRACE_EVENT0("cc", "LayerTreeHostImpl::drawLayers"); |