1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CC_LAYERS_CONTENT_LAYER_CLIENT_H_
6 #define CC_LAYERS_CONTENT_LAYER_CLIENT_H_
8 #include "cc/base/cc_export.h"
9 #include "cc/resources/display_item_list.h"
20 class CC_EXPORT ContentLayerClient
{
22 enum PaintingControlSetting
{
23 PAINTING_BEHAVIOR_NORMAL
,
24 DISPLAY_LIST_CONSTRUCTION_DISABLED
,
25 DISPLAY_LIST_CACHING_DISABLED
28 virtual void PaintContents(SkCanvas
* canvas
,
29 const gfx::Rect
& clip
,
30 PaintingControlSetting painting_status
) = 0;
32 virtual scoped_refptr
<DisplayItemList
> PaintContentsToDisplayList(
33 const gfx::Rect
& clip
,
34 PaintingControlSetting painting_status
) = 0;
36 // If true the layer may skip clearing the background before rasterizing,
37 // because it will cover any uncleared data with content.
38 virtual bool FillsBoundsCompletely() const = 0;
41 virtual ~ContentLayerClient() {}
46 #endif // CC_LAYERS_CONTENT_LAYER_CLIENT_H_