content_layer_client.h revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
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.
4
5#ifndef CC_LAYERS_CONTENT_LAYER_CLIENT_H_
6#define CC_LAYERS_CONTENT_LAYER_CLIENT_H_
7
8#include "cc/base/cc_export.h"
9
10class SkCanvas;
11
12namespace gfx {
13class Rect;
14class RectF;
15}
16
17namespace cc {
18
19class CC_EXPORT ContentLayerClient {
20 public:
21  enum GraphicsContextStatus {
22    GRAPHICS_CONTEXT_DISABLED,
23    GRAPHICS_CONTEXT_ENABLED
24  };
25
26  virtual void PaintContents(SkCanvas* canvas,
27                             const gfx::Rect& clip,
28                             GraphicsContextStatus gc_status) = 0;
29
30  // Called by the content layer during the update phase.
31  // If the client paints LCD text, it may want to invalidate the layer.
32  virtual void DidChangeLayerCanUseLCDText() = 0;
33
34  // If true the layer may skip clearing the background before rasterizing,
35  // because it will cover any uncleared data with content.
36  virtual bool FillsBoundsCompletely() const = 0;
37
38 protected:
39  virtual ~ContentLayerClient() {}
40};
41
42}  // namespace cc
43
44#endif  // CC_LAYERS_CONTENT_LAYER_CLIENT_H_
45