Commit abd0e10a authored by loysob's avatar loysob Committed by Commit bot

Extract method: CreateDelegatedLayerForFrameProvider

Embedders may want to apply independent filters on layers for their
browser GUI. If they need two instances of a GUI element then they are
forced to add two layers with the same content in them. In the DRL case
an access to DelegatedFrameProvider needed. With this change embedders
can create secondary DRL layers easily.

https://groups.google.com/a/chromium.org/forum/
    /#!topic/graphics-dev/xZPzMnBe6dg

R=sievers@chromium.org,aelias@chromium.org
BUG=

Review URL: https://codereview.chromium.org/527073002

Cr-Commit-Position: refs/heads/master@{#294146}
parent 6f3fd4fc
...@@ -411,6 +411,19 @@ void RenderWidgetHostViewAndroid::GetScaledContentBitmap( ...@@ -411,6 +411,19 @@ void RenderWidgetHostViewAndroid::GetScaledContentBitmap(
src_subrect, dst_size, result_callback, color_type); src_subrect, dst_size, result_callback, color_type);
} }
scoped_refptr<cc::DelegatedRendererLayer>
RenderWidgetHostViewAndroid::CreateDelegatedLayerForFrameProvider() const {
DCHECK(frame_provider_);
scoped_refptr<cc::DelegatedRendererLayer> delegated_layer =
cc::DelegatedRendererLayer::Create(frame_provider_);
delegated_layer->SetBounds(content_size_in_layer_);
delegated_layer->SetIsDrawable(true);
delegated_layer->SetContentsOpaque(true);
return delegated_layer;
}
bool RenderWidgetHostViewAndroid::HasValidFrame() const { bool RenderWidgetHostViewAndroid::HasValidFrame() const {
if (!content_view_core_) if (!content_view_core_)
return false; return false;
...@@ -869,11 +882,8 @@ void RenderWidgetHostViewAndroid::CopyFromCompositingSurface( ...@@ -869,11 +882,8 @@ void RenderWidgetHostViewAndroid::CopyFromCompositingSurface(
DCHECK(compositor); DCHECK(compositor);
DCHECK(frame_provider_); DCHECK(frame_provider_);
scoped_refptr<cc::DelegatedRendererLayer> delegated_layer = scoped_refptr<cc::DelegatedRendererLayer> delegated_layer =
cc::DelegatedRendererLayer::Create(frame_provider_); CreateDelegatedLayerForFrameProvider();
delegated_layer->SetBounds(content_size_in_layer_);
delegated_layer->SetHideLayerAndSubtree(true); delegated_layer->SetHideLayerAndSubtree(true);
delegated_layer->SetIsDrawable(true);
delegated_layer->SetContentsOpaque(true);
compositor->AttachLayerForReadback(delegated_layer); compositor->AttachLayerForReadback(delegated_layer);
readback_layer = delegated_layer; readback_layer = delegated_layer;
......
...@@ -251,6 +251,9 @@ class CONTENT_EXPORT RenderWidgetHostViewAndroid ...@@ -251,6 +251,9 @@ class CONTENT_EXPORT RenderWidgetHostViewAndroid
gfx::Rect src_subrect, gfx::Rect src_subrect,
const base::Callback<void(bool, const SkBitmap&)>& result_callback); const base::Callback<void(bool, const SkBitmap&)>& result_callback);
scoped_refptr<cc::DelegatedRendererLayer>
CreateDelegatedLayerForFrameProvider() const;
bool HasValidFrame() const; bool HasValidFrame() const;
void MoveCaret(const gfx::Point& point); void MoveCaret(const gfx::Point& point);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment