| Index: cc/layer.cc
|
| diff --git a/cc/layer.cc b/cc/layer.cc
|
| index 967f3b97e8d8d7fb8d6358c1672b82f1660452d5..47b5991a44b710a7474c52065ea920c46819a581 100644
|
| --- a/cc/layer.cc
|
| +++ b/cc/layer.cc
|
| @@ -12,6 +12,7 @@
|
| #include "CCLayerImpl.h"
|
| #include "CCLayerTreeHost.h"
|
| #include "cc/settings.h"
|
| +#include "SkImageFilter.h"
|
| #include <public/WebAnimationDelegate.h>
|
| #include <public/WebLayerScrollClient.h>
|
| #include <public/WebSize.h>
|
| @@ -44,6 +45,7 @@ LayerChromium::LayerChromium()
|
| , m_debugBorderColor(0)
|
| , m_debugBorderWidth(0)
|
| , m_opacity(1.0)
|
| + , m_filter(0)
|
| , m_anchorPointZ(0)
|
| , m_isContainerForFixedPositionLayers(false)
|
| , m_fixedToContainerLayer(false)
|
| @@ -81,6 +83,8 @@ LayerChromium::~LayerChromium()
|
|
|
| // Remove the parent reference from all children.
|
| removeAllChildren();
|
| +
|
| + SkSafeUnref(m_filter);
|
| }
|
|
|
| void LayerChromium::setUseLCDText(bool useLCDText)
|
| @@ -323,6 +327,16 @@ void LayerChromium::setFilters(const WebKit::WebFilterOperations& filters)
|
| CCLayerTreeHost::setNeedsFilterContext(true);
|
| }
|
|
|
| +void LayerChromium::setFilter(SkImageFilter* filter)
|
| +{
|
| + if (m_filter == filter)
|
| + return;
|
| + SkRefCnt_SafeAssign(m_filter, filter);
|
| + setNeedsCommit();
|
| + if (filter)
|
| + CCLayerTreeHost::setNeedsFilterContext(true);
|
| +}
|
| +
|
| void LayerChromium::setBackgroundFilters(const WebKit::WebFilterOperations& backgroundFilters)
|
| {
|
| if (m_backgroundFilters == backgroundFilters)
|
| @@ -544,6 +558,7 @@ void LayerChromium::pushPropertiesTo(CCLayerImpl* layer)
|
| layer->setForceRenderSurface(m_forceRenderSurface);
|
| layer->setDrawsContent(drawsContent());
|
| layer->setFilters(filters());
|
| + layer->setFilter(filter());
|
| layer->setBackgroundFilters(backgroundFilters());
|
| layer->setUseLCDText(m_useLCDText);
|
| layer->setMasksToBounds(m_masksToBounds);
|
|
|