// Copyright 2017 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 CC_TREES_CLIP_EXPANDER_H_ #define CC_TREES_CLIP_EXPANDER_H_ #include "cc/cc_export.h" #include "ui/gfx/geometry/rect.h" namespace cc { class PropertyTrees; class CC_EXPORT ClipExpander { public: explicit ClipExpander(int filter_effect_id); ClipExpander(const ClipExpander& other); bool operator==(const ClipExpander& other) const; bool operator!=(const ClipExpander& other) const { return !(*this == other); } // Maps "forward" to determine which pixels in a destination rect are affected // by pixels in the given source rect. gfx::Rect MapRect(const gfx::Rect& rect, const PropertyTrees* property_trees) const; // Maps "backward" to determine which pixels in the source affect the pixels // in the given destination rect. gfx::Rect MapRectReverse(const gfx::Rect& rect, const PropertyTrees* property_trees) const; // The id of the effect node in whose transform space the expansion happens. int target_effect_id() const { return target_effect_id_; } private: int target_effect_id_; }; } // namespace cc #endif // CC_TREES_CLIP_EXPANDER_H_