Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3691)

Unified Diff: cc/trees/layer_tree_impl.h

Issue 935333002: Update from https://crrev.com/316786 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/trees/layer_tree_host_unittest_picture.cc ('k') | cc/trees/layer_tree_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/layer_tree_impl.h
diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h
index 232913933965f14c223c1ba7e83579783ebdecad..54c86604d3435edd63f9d5343787185d09307400 100644
--- a/cc/trees/layer_tree_impl.h
+++ b/cc/trees/layer_tree_impl.h
@@ -22,13 +22,7 @@ namespace base {
namespace trace_event {
class TracedValue;
}
-
-// TODO(ssid): remove these aliases after the tracing clients are moved to the
-// new trace_event namespace. See crbug.com/451032. ETA: March 2015
-namespace debug {
-using ::base::trace_event::TracedValue;
}
-} // namespace base
namespace cc {
@@ -55,6 +49,7 @@ struct RendererCapabilities;
struct SelectionHandle;
typedef std::vector<UIResourceRequest> UIResourceRequestQueue;
+typedef SyncedProperty<AdditionGroup<float>> SyncedTopControls;
typedef SyncedProperty<AdditionGroup<gfx::Vector2dF>> SyncedElasticOverscroll;
class CC_EXPORT LayerTreeImpl {
@@ -62,9 +57,11 @@ class CC_EXPORT LayerTreeImpl {
static scoped_ptr<LayerTreeImpl> create(
LayerTreeHostImpl* layer_tree_host_impl,
scoped_refptr<SyncedProperty<ScaleGroup>> page_scale_factor,
+ scoped_refptr<SyncedTopControls> top_controls_shown_ratio,
scoped_refptr<SyncedElasticOverscroll> elastic_overscroll) {
- return make_scoped_ptr(new LayerTreeImpl(
- layer_tree_host_impl, page_scale_factor, elastic_overscroll));
+ return make_scoped_ptr(
+ new LayerTreeImpl(layer_tree_host_impl, page_scale_factor,
+ top_controls_shown_ratio, elastic_overscroll));
}
virtual ~LayerTreeImpl();
@@ -75,6 +72,7 @@ class CC_EXPORT LayerTreeImpl {
// Methods called by the layer tree that pass-through or access LTHI.
// ---------------------------------------------------------------------------
const LayerTreeSettings& settings() const;
+ const LayerTreeDebugState& debug_state() const;
const RendererCapabilitiesImpl& GetRendererCapabilities() const;
ContextProvider* context_provider() const;
OutputSurface* output_surface() const;
@@ -84,6 +82,8 @@ class CC_EXPORT LayerTreeImpl {
PaintTimeCounter* paint_time_counter() const;
MemoryHistory* memory_history() const;
gfx::Size device_viewport_size() const;
+ float device_scale_factor() const;
+ DebugRectHistory* debug_rect_history() const;
bool IsActiveTree() const;
bool IsPendingTree() const;
bool IsRecycleTree() const;
@@ -111,13 +111,10 @@ class CC_EXPORT LayerTreeImpl {
// ---------------------------------------------------------------------------
void SetNeedsRedraw();
- // TODO(nduca): These are implemented in cc files temporarily, but will become
- // trivial accessors in a followup patch.
- const LayerTreeDebugState& debug_state() const;
- float device_scale_factor() const;
- DebugRectHistory* debug_rect_history() const;
+ // Tracing methods.
+ // ---------------------------------------------------------------------------
void GetAllTilesForTracing(std::set<const Tile*>* tiles) const;
- void AsValueInto(base::debug::TracedValue* dict) const;
+ void AsValueInto(base::trace_event::TracedValue* dict) const;
// Other public methods
// ---------------------------------------------------------------------------
@@ -192,6 +189,13 @@ class CC_EXPORT LayerTreeImpl {
return elastic_overscroll_.get();
}
+ SyncedTopControls* top_controls_shown_ratio() {
+ return top_controls_shown_ratio_.get();
+ }
+ const SyncedTopControls* top_controls_shown_ratio() const {
+ return top_controls_shown_ratio_.get();
+ }
+
// Updates draw properties and render surface layer list, as well as tile
// priorities. Returns false if it was unable to update.
bool UpdateDrawProperties();
@@ -216,6 +220,7 @@ class CC_EXPORT LayerTreeImpl {
void set_ui_resource_request_queue(const UIResourceRequestQueue& queue);
const LayerImplList& RenderSurfaceLayerList() const;
+ const Region& UnoccludedScreenSpaceRegion() const;
// These return the size of the root scrollable area and the size of
// the user-visible scrolling viewport, in CSS layout coordinates.
@@ -273,6 +278,12 @@ class CC_EXPORT LayerTreeImpl {
bool IsUIResourceOpaque(UIResourceId uid) const;
+ void RegisterPictureLayerImpl(PictureLayerImpl* layer);
+ void UnregisterPictureLayerImpl(PictureLayerImpl* layer);
+ const std::vector<PictureLayerImpl*>& picture_layers() const {
+ return picture_layers_;
+ }
+
void AddLayerWithCopyOutputRequest(LayerImpl* layer);
void RemoveLayerWithCopyOutputRequest(LayerImpl* layer);
const std::vector<LayerImpl*>& LayersWithCopyOutputRequest() const;
@@ -300,39 +311,17 @@ class CC_EXPORT LayerTreeImpl {
void GetViewportSelection(ViewportSelectionBound* start,
ViewportSelectionBound* end);
- void RegisterPictureLayerImpl(PictureLayerImpl* layer);
- void UnregisterPictureLayerImpl(PictureLayerImpl* layer);
-
- void set_top_controls_shrink_blink_size(bool shrink) {
- top_controls_shrink_blink_size_ = shrink;
- }
- void set_top_controls_height(float height) { top_controls_height_ = height; }
- void set_top_controls_content_offset(float offset) {
- top_controls_content_offset_ = offset;
- }
- void set_top_controls_delta(float delta) {
- top_controls_delta_ = delta;
- }
- void set_sent_top_controls_delta(float sent_delta) {
- sent_top_controls_delta_ = sent_delta;
- }
-
+ void set_top_controls_shrink_blink_size(bool shrink);
bool top_controls_shrink_blink_size() const {
return top_controls_shrink_blink_size_;
}
- float top_controls_height() const { return top_controls_height_; }
- float top_controls_content_offset() const {
- return top_controls_content_offset_;
- }
- float top_controls_delta() const {
- return top_controls_delta_;
- }
- float sent_top_controls_delta() const {
- return sent_top_controls_delta_;
- }
- float total_top_controls_content_offset() const {
- return top_controls_content_offset_ + top_controls_delta_;
+ bool SetCurrentTopControlsShownRatio(float ratio);
+ float CurrentTopControlsShownRatio() const {
+ return top_controls_shown_ratio_->Current(IsActiveTree());
}
+ void set_top_controls_height(float top_controls_height);
+ float top_controls_height() const { return top_controls_height_; }
+ void PushTopControlsFromMainThread(float top_controls_shown_ratio);
void SetPendingPageScaleAnimation(
scoped_ptr<PendingPageScaleAnimation> pending_animation);
@@ -342,6 +331,7 @@ class CC_EXPORT LayerTreeImpl {
explicit LayerTreeImpl(
LayerTreeHostImpl* layer_tree_host_impl,
scoped_refptr<SyncedProperty<ScaleGroup>> page_scale_factor,
+ scoped_refptr<SyncedTopControls> top_controls_shown_ratio,
scoped_refptr<SyncedElasticOverscroll> elastic_overscroll);
void ProcessLayersRecursive(LayerImpl* current,
void (LayerImpl::*function)());
@@ -353,7 +343,7 @@ class CC_EXPORT LayerTreeImpl {
float max_page_scale_factor);
void DidUpdatePageScale();
void HideInnerViewportScrollbarsIfNearMinimumScale();
-
+ void PushTopControls(const float* top_controls_shown_ratio);
LayerTreeHostImpl* layer_tree_host_impl_;
int source_frame_number_;
scoped_ptr<LayerImpl> root_layer_;
@@ -384,6 +374,7 @@ class CC_EXPORT LayerTreeImpl {
typedef base::hash_map<int, LayerImpl*> LayerIdMap;
LayerIdMap layer_id_map_;
+ std::vector<PictureLayerImpl*> picture_layers_;
std::vector<LayerImpl*> layers_with_copy_output_request_;
// Persisted state for non-impl-side-painting.
@@ -391,6 +382,9 @@ class CC_EXPORT LayerTreeImpl {
// List of visible layers for the most recently prepared frame.
LayerImplList render_surface_layer_list_;
+ // After drawing the |render_surface_layer_list_| the areas in this region
+ // would not be fully covered by opaque content.
+ Region unoccluded_screen_space_region_;
bool contents_textures_purged_;
bool viewport_size_invalid_;
@@ -416,11 +410,9 @@ class CC_EXPORT LayerTreeImpl {
float top_controls_height_;
- // The up-to-date content offset of the top controls, i.e. the amount that the
- // web contents have been shifted down from the top of the device viewport.
- float top_controls_content_offset_;
- float top_controls_delta_;
- float sent_top_controls_delta_;
+ // The amount that the top controls are shown from 0 (hidden) to 1 (fully
+ // shown).
+ scoped_refptr<SyncedTopControls> top_controls_shown_ratio_;
scoped_ptr<PendingPageScaleAnimation> pending_page_scale_animation_;
« no previous file with comments | « cc/trees/layer_tree_host_unittest_picture.cc ('k') | cc/trees/layer_tree_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698