#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_FILTER_OPERATION_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_FILTER_OPERATION_H_
#include "base/notreached.h"
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/core/style/shadow_data.h"
#include "third_party/blink/renderer/platform/geometry/length.h"
#include "third_party/blink/renderer/platform/geometry/length_point.h"
#include "third_party/blink/renderer/platform/graphics/box_reflection.h"
#include "third_party/blink/renderer/platform/graphics/color.h"
#include "third_party/blink/renderer/platform/graphics/filters/fe_component_transfer.h"
#include "third_party/blink/renderer/platform/graphics/filters/fe_convolve_matrix.h"
#include "third_party/blink/renderer/platform/graphics/filters/fe_turbulence.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
#include "third_party/blink/renderer/platform/wtf/casting.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
#include "ui/gfx/geometry/rect_f.h"
#include <iosfwd>
namespace blink {
class Filter;
class SVGResource;
class SVGResourceClient;
class CORE_EXPORT FilterOperation : public GarbageCollected<FilterOperation> { … };
inline std::ostream& operator<<(std::ostream& stream,
const FilterOperation& operation) { … }
class CORE_EXPORT ReferenceFilterOperation : public FilterOperation { … };
template <>
struct DowncastTraits<ReferenceFilterOperation> { … };
class CORE_EXPORT BasicColorMatrixFilterOperation : public FilterOperation { … };
class CORE_EXPORT ColorMatrixFilterOperation : public FilterOperation { … };
inline bool IsBasicColorMatrixFilterOperation(
const FilterOperation& operation) { … }
template <>
struct DowncastTraits<BasicColorMatrixFilterOperation> { … };
template <>
struct DowncastTraits<ColorMatrixFilterOperation> { … };
class CORE_EXPORT BasicComponentTransferFilterOperation
: public FilterOperation { … };
inline bool IsBasicComponentTransferFilterOperation(
const FilterOperation& operation) { … }
template <>
struct DowncastTraits<BasicComponentTransferFilterOperation> { … };
class CORE_EXPORT BlurFilterOperation : public FilterOperation { … };
template <>
struct DowncastTraits<BlurFilterOperation> { … };
class CORE_EXPORT DropShadowFilterOperation : public FilterOperation { … };
template <>
struct DowncastTraits<DropShadowFilterOperation> { … };
class CORE_EXPORT BoxReflectFilterOperation : public FilterOperation { … };
template <>
struct DowncastTraits<BoxReflectFilterOperation> { … };
class CORE_EXPORT ConvolveMatrixFilterOperation : public FilterOperation { … };
template <>
struct DowncastTraits<ConvolveMatrixFilterOperation> { … };
class CORE_EXPORT ComponentTransferFilterOperation : public FilterOperation { … };
template <>
struct DowncastTraits<ComponentTransferFilterOperation> { … };
class CORE_EXPORT TurbulenceFilterOperation : public FilterOperation { … };
template <>
struct DowncastTraits<TurbulenceFilterOperation> { … };
#undef DEFINE_FILTER_OPERATION_TYPE_CASTS
}
#endif