diff options
Diffstat (limited to 'cc/playback/clip_display_item.h')
-rw-r--r-- | cc/playback/clip_display_item.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/cc/playback/clip_display_item.h b/cc/playback/clip_display_item.h new file mode 100644 index 0000000..a4acc9f --- /dev/null +++ b/cc/playback/clip_display_item.h @@ -0,0 +1,48 @@ +// Copyright 2014 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_PLAYBACK_CLIP_DISPLAY_ITEM_H_ +#define CC_PLAYBACK_CLIP_DISPLAY_ITEM_H_ + +#include <vector> + +#include "base/memory/scoped_ptr.h" +#include "cc/base/cc_export.h" +#include "cc/playback/display_item.h" +#include "third_party/skia/include/core/SkRRect.h" +#include "ui/gfx/geometry/rect.h" + +class SkCanvas; +class SkDrawPictureCallback; + +namespace cc { + +class CC_EXPORT ClipDisplayItem : public DisplayItem { + public: + ClipDisplayItem(); + ~ClipDisplayItem() override; + + void SetNew(gfx::Rect clip_rect, + const std::vector<SkRRect>& rounded_clip_rects); + + void Raster(SkCanvas* canvas, SkDrawPictureCallback* callback) const override; + void AsValueInto(base::trace_event::TracedValue* array) const override; + + private: + gfx::Rect clip_rect_; + std::vector<SkRRect> rounded_clip_rects_; +}; + +class CC_EXPORT EndClipDisplayItem : public DisplayItem { + public: + EndClipDisplayItem(); + ~EndClipDisplayItem() override; + + void Raster(SkCanvas* canvas, SkDrawPictureCallback* callback) const override; + void AsValueInto(base::trace_event::TracedValue* array) const override; +}; + +} // namespace cc + +#endif // CC_PLAYBACK_CLIP_DISPLAY_ITEM_H_ |