KHTML
Go to the documentation of this file.
22 #ifndef SVGResourceFilter_h
23 #define SVGResourceFilter_h
25 #if ENABLE(SVG) && ENABLE(SVG_FILTERS)
31 #include <wtf/OwnPtr.h>
35 class GraphicsContext;
36 class SVGFilterEffect;
38 class SVGResourceFilterPlatformData {
40 virtual ~SVGResourceFilterPlatformData() {}
43 class SVGResourceFilter :
public SVGResource {
47 virtual SVGResourceType resourceType()
const {
return FilterResourceType; }
49 bool filterBoundingBoxMode()
const {
return m_filterBBoxMode; }
50 void setFilterBoundingBoxMode(
bool bboxMode) { m_filterBBoxMode = bboxMode; }
52 bool effectBoundingBoxMode()
const {
return m_effectBBoxMode; }
53 void setEffectBoundingBoxMode(
bool bboxMode) { m_effectBBoxMode = bboxMode; }
55 bool xBoundingBoxMode()
const {
return m_xBBoxMode; }
56 void setXBoundingBoxMode(
bool bboxMode) { m_xBBoxMode = bboxMode; }
58 bool yBoundingBoxMode()
const {
return m_yBBoxMode; }
59 void setYBoundingBoxMode(
bool bboxMode) { m_yBBoxMode = bboxMode; }
61 FloatRect filterRect()
const {
return m_filterRect; }
62 void setFilterRect(
const FloatRect& rect) { m_filterRect = rect; }
64 FloatRect filterBBoxForItemBBox(
const FloatRect& itemBBox)
const;
67 void addFilterEffect(SVGFilterEffect*);
69 virtual TextStream& externalRepresentation(TextStream&)
const;
72 void prepareFilter(GraphicsContext*&,
const FloatRect& bbox);
73 void applyFilter(GraphicsContext*&,
const FloatRect& bbox);
75 SVGResourceFilterPlatformData* platformData() {
return m_platformData.get(); }
76 const Vector<SVGFilterEffect*>& effects() {
return m_effects; }
79 SVGResourceFilterPlatformData* createPlatformData();
81 OwnPtr<SVGResourceFilterPlatformData> m_platformData;
83 bool m_filterBBoxMode : 1;
84 bool m_effectBBoxMode : 1;
89 FloatRect m_filterRect;
90 Vector<SVGFilterEffect*> m_effects;
93 SVGResourceFilter* getFilterById(Document*,
const AtomicString&);
99 #endif // SVGResourceFilter_h
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:26:19 by
doxygen 1.8.7 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.