blob: ebb1d0fb3b17969d45f693ead50fc1dec0bdbf4c [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SVGMaskPainter_h
#define SVGMaskPainter_h
#include "platform/geometry/FloatRect.h"
#include "wtf/Allocator.h"
namespace blink {
class GraphicsContext;
class LayoutObject;
class LayoutSVGResourceMasker;
class SVGMaskPainter {
STACK_ALLOCATED();
public:
SVGMaskPainter(LayoutSVGResourceMasker& mask) : m_mask(mask) {}
bool prepareEffect(const LayoutObject&, GraphicsContext&);
void finishEffect(const LayoutObject&, GraphicsContext&);
private:
void drawMaskForLayoutObject(GraphicsContext&,
const LayoutObject&,
const FloatRect& targetBoundingBox,
const FloatRect& targetVisualRect);
LayoutSVGResourceMasker& m_mask;
};
} // namespace blink
#endif // SVGMaskPainter_h