| Index: cc/trees/layer_tree_host_impl.h
|
| diff --git a/cc/trees/layer_tree_host_impl.h b/cc/trees/layer_tree_host_impl.h
|
| index 520ec7f4989f30ed1c99c6b7f5b74243bb740f3a..280eb5e5304c09bee17d61da22ea67c06e844116 100644
|
| --- a/cc/trees/layer_tree_host_impl.h
|
| +++ b/cc/trees/layer_tree_host_impl.h
|
| @@ -174,10 +174,6 @@ class CC_EXPORT LayerTreeHostImpl
|
|
|
| const LayerTreeSettings& settings() const { return settings_; }
|
|
|
| - // Returns the currently visible viewport size in DIP. This value excludes
|
| - // the URL bar and non-overlay scrollbars.
|
| - gfx::SizeF VisibleViewportSize() const;
|
| -
|
| // Evict all textures by enforcing a memory policy with an allocation of 0.
|
| void EvictTexturesForTesting();
|
|
|
| @@ -186,8 +182,26 @@ class CC_EXPORT LayerTreeHostImpl
|
| // immediately if any notifications had been blocked while blocking.
|
| virtual void BlockNotifyReadyToActivateForTesting(bool block);
|
|
|
| + bool device_viewport_valid_for_tile_management() const {
|
| + return device_viewport_valid_for_tile_management_;
|
| + }
|
| +
|
| + // Viewport size in draw space: this size is in physical pixels and is used
|
| + // for draw properties, tilings, quads and render passes.
|
| + gfx::Size DrawViewportSize() const;
|
| +
|
| + // Viewport size for scrolling and fixed-position compensation. This value
|
| + // excludes the URL bar and non-overlay scrollbars and is in DIP (and
|
| + // invariant relative to page scale).
|
| + gfx::SizeF UnscaledScrollableViewportSize() const;
|
| +
|
| // RendererClient implementation
|
| +
|
| + // Viewport rectangle and clip in nonflipped window space. These rects
|
| + // should only be used by Renderer subclasses to populate glViewport/glClip
|
| + // and their software-mode equivalents.
|
| virtual gfx::Rect DeviceViewport() const OVERRIDE;
|
| + virtual gfx::Rect DeviceClip() const OVERRIDE;
|
| private:
|
| virtual float DeviceScaleFactor() const OVERRIDE;
|
| virtual const LayerTreeSettings& Settings() const OVERRIDE;
|
| @@ -208,8 +222,11 @@ class CC_EXPORT LayerTreeHostImpl
|
| virtual void ReleaseGL() OVERRIDE;
|
| virtual void SetNeedsRedrawRect(gfx::Rect rect) OVERRIDE;
|
| virtual void BeginFrame(const BeginFrameArgs& args) OVERRIDE;
|
| - virtual void SetExternalDrawConstraints(const gfx::Transform& transform,
|
| - gfx::Rect viewport) OVERRIDE;
|
| + virtual void SetExternalDrawConstraints(
|
| + const gfx::Transform& transform,
|
| + gfx::Rect viewport,
|
| + gfx::Rect clip,
|
| + bool valid_for_tile_management) OVERRIDE;
|
| virtual void SetExternalStencilTest(bool enabled) OVERRIDE;
|
| virtual void DidLoseOutputSurface() OVERRIDE;
|
| virtual void OnSwapBuffersComplete(const CompositorFrameAck* ack) OVERRIDE;
|
| @@ -273,7 +290,6 @@ class CC_EXPORT LayerTreeHostImpl
|
| size_t memory_allocation_limit_bytes() const;
|
|
|
| void SetViewportSize(gfx::Size device_viewport_size);
|
| - gfx::Size device_viewport_size() const { return device_viewport_size_; }
|
|
|
| void SetOverdrawBottomHeight(float overdraw_bottom_height);
|
| float overdraw_bottom_height() const { return overdraw_bottom_height_; }
|
| @@ -284,7 +300,7 @@ class CC_EXPORT LayerTreeHostImpl
|
| void SetDeviceScaleFactor(float device_scale_factor);
|
| float device_scale_factor() const { return device_scale_factor_; }
|
|
|
| - const gfx::Transform& DeviceTransform() const;
|
| + const gfx::Transform& DrawTransform() const;
|
|
|
| scoped_ptr<ScrollAndScaleSet> ProcessScrollDeltas();
|
|
|
| @@ -378,7 +394,7 @@ class CC_EXPORT LayerTreeHostImpl
|
| void SetTreePriority(TreePriority priority);
|
|
|
| void ResetCurrentFrameTimeForNextFrame();
|
| - base::TimeTicks CurrentFrameTimeTicks();
|
| + virtual base::TimeTicks CurrentFrameTimeTicks();
|
| base::Time CurrentFrameTime();
|
|
|
| virtual base::TimeTicks CurrentPhysicalTimeTicks() const;
|
| @@ -415,6 +431,8 @@ class CC_EXPORT LayerTreeHostImpl
|
| return animation_registrar_->active_animation_controllers();
|
| }
|
|
|
| + bool manage_tiles_needed() const { return manage_tiles_needed_; }
|
| +
|
| LayerTreeHostImplClient* client_;
|
| Proxy* proxy_;
|
|
|
| @@ -535,7 +553,10 @@ class CC_EXPORT LayerTreeHostImpl
|
| size_t last_sent_memory_use_bytes_;
|
| bool zero_budget_;
|
|
|
| - // Viewport size passed in from the main thread, in physical pixels.
|
| + // Viewport size passed in from the main thread, in physical pixels. This
|
| + // value is the default size for all concepts of physical viewport (draw
|
| + // viewport, scrolling viewport and device viewport), but it can be
|
| + // overridden.
|
| gfx::Size device_viewport_size_;
|
|
|
| // Conversion factor from CSS pixels to physical pixels when
|
| @@ -552,12 +573,18 @@ class CC_EXPORT LayerTreeHostImpl
|
| // the page when the keyboard is up.
|
| float overdraw_bottom_height_;
|
|
|
| - // Optional top-level constraints that can be set by the OutputSurface. The
|
| - // external_viewport_'s size takes precedence over device_viewport_size_ for
|
| - // DrawQuad generation and Renderer; however, device_viewport_size_ is still
|
| - // used for scrollable size.
|
| + // Optional top-level constraints that can be set by the OutputSurface.
|
| + // - external_transform_ applies a transform above the root layer
|
| + // - external_viewport_ is used DrawProperties, tile management and
|
| + // glViewport/window projection matrix.
|
| + // - external_clip_ specifies a top-level clip rect
|
| + // - external_stencil_test_enabled_ tells CC to respect existing stencil bits
|
| + // (When these are specified, device_viewport_size_ remains used only for
|
| + // scrollable size.)
|
| gfx::Transform external_transform_;
|
| gfx::Rect external_viewport_;
|
| + gfx::Rect external_clip_;
|
| + bool device_viewport_valid_for_tile_management_;
|
| bool external_stencil_test_enabled_;
|
|
|
| gfx::Rect viewport_damage_rect_;
|
|
|