RenderSVGModelObject.h [plain text]
#ifndef RenderSVGModelObject_h
#define RenderSVGModelObject_h
#include "RenderElement.h"
#include "SVGElement.h"
#include "SVGRenderSupport.h"
namespace WebCore {
class SVGElement;
class RenderSVGModelObject : public RenderElement {
public:
LayoutRect clippedOverflowRectForRepaint(const RenderLayerModelObject* repaintContainer) const override;
FloatRect computeFloatRectForRepaint(const FloatRect&, const RenderLayerModelObject* repaintContainer, bool fixed = false) const final;
LayoutRect outlineBoundsForRepaint(const RenderLayerModelObject* repaintContainer, const RenderGeometryMap*) const final;
void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedOffset) const final;
void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const override;
void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const final;
const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const final;
void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override;
static bool checkIntersection(RenderElement*, const FloatRect&);
static bool checkEnclosure(RenderElement*, const FloatRect&);
virtual FloatRect repaintRectInLocalCoordinatesExcludingSVGShadow() const { return repaintRectInLocalCoordinates(); }
bool hasSVGShadow() const { return m_hasSVGShadow; }
void setHasSVGShadow(bool hasShadow) { m_hasSVGShadow = hasShadow; }
SVGElement& element() const { return downcast<SVGElement>(nodeForNonAnonymous()); }
protected:
RenderSVGModelObject(SVGElement&, RenderStyle&&);
void willBeDestroyed() override;
private:
bool isRenderSVGModelObject() const final { return true; }
bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction) override;
void absoluteFocusRingQuads(Vector<FloatQuad>&) final;
bool m_hasSVGShadow;
};
}
SPECIALIZE_TYPE_TRAITS_RENDER_OBJECT(RenderSVGModelObject, isRenderSVGModelObject())
#endif