#include "cc/paint/filter_operation.h"
#include <stddef.h>
#include <algorithm>
#include <utility>
#include "base/notreached.h"
#include "base/trace_event/traced_value.h"
#include "base/types/optional_util.h"
#include "base/values.h"
#include "cc/base/math_util.h"
#include "ui/gfx/animation/tween.h"
#include "ui/gfx/geometry/outsets_f.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/geometry/rect_conversions.h"
#include "ui/gfx/geometry/skia_conversions.h"
namespace cc {
bool FilterOperation::operator==(const FilterOperation& other) const { … }
FilterOperation::FilterOperation() : … { … }
FilterOperation::FilterOperation(FilterType type, float amount)
: … { … }
FilterOperation::FilterOperation(FilterType type,
float amount,
SkTileMode tile_mode)
: … { … }
FilterOperation::FilterOperation(FilterType type,
const gfx::Point& offset,
float stdDeviation,
SkColor4f color)
: … { … }
FilterOperation::FilterOperation(FilterType type, const Matrix& matrix)
: … { … }
FilterOperation::FilterOperation(FilterType type, float amount, int inset)
: … { … }
FilterOperation::FilterOperation(FilterType type, const gfx::Point& offset)
: … { … }
FilterOperation::FilterOperation(FilterType type,
sk_sp<PaintFilter> image_filter)
: … { … }
FilterOperation::FilterOperation(FilterType type, const ShapeRects& shape)
: … { … }
FilterOperation::FilterOperation(const FilterOperation& other) = default;
FilterOperation::~FilterOperation() = default;
static FilterOperation CreateNoOpFilter(FilterOperation::FilterType type) { … }
static float ClampAmountForFilterType(float amount,
FilterOperation::FilterType type) { … }
FilterOperation FilterOperation::Blend(const FilterOperation* from,
const FilterOperation* to,
double progress) { … }
void FilterOperation::AsValueInto(base::trace_event::TracedValue* value) const { … }
namespace {
SkVector MapStdDeviation(float std_deviation, const SkMatrix* ctm) { … }
gfx::Rect MapRectInternal(const FilterOperation& op,
const gfx::Rect& rect,
const SkMatrix* ctm,
SkImageFilter::MapDirection direction) { … }
}
gfx::Rect FilterOperation::MapRect(const gfx::Rect& rect,
const std::optional<SkMatrix>& ctm) const { … }
gfx::Rect FilterOperation::MapRectReverse(const gfx::Rect& rect,
const SkMatrix& ctm) const { … }
}