bool toWebFilterOperations(const FilterOperations& inOperations, WebFilterOperations* outOperations) { SkiaImageFilterBuilder builder; FilterOutsets outsets = inOperations.outsets(); builder.setCropOffset(FloatSize(outsets.left(), outsets.top())); return builder.buildFilterOperations(inOperations, outOperations); }
void GraphicsLayer::setFilters(const FilterOperations& filters) { SkiaImageFilterBuilder builder; OwnPtr<WebFilterOperations> webFilters = adoptPtr(Platform::current()->compositorSupport()->createFilterOperations()); FilterOutsets outsets = filters.outsets(); builder.setCropOffset(FloatSize(outsets.left(), outsets.top())); builder.buildFilterOperations(filters, webFilters.get()); m_layer->layer()->setFilters(*webFilters); }
bool GraphicsLayer::setFilters(const FilterOperations& filters) { SkiaImageFilterBuilder builder; OwnPtr<WebFilterOperations> webFilters = adoptPtr(Platform::current()->compositorSupport()->createFilterOperations()); FilterOutsets outsets = filters.outsets(); builder.setCropOffset(FloatSize(outsets.left(), outsets.top())); if (!builder.buildFilterOperations(filters, webFilters.get())) { // Make sure the filters are removed from the platform layer, as they are // going to fallback to software mode. webFilters->clear(); m_layer->layer()->setFilters(*webFilters); m_filters = FilterOperations(); return false; } m_layer->layer()->setFilters(*webFilters); m_filters = filters; return true; }