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 10 class SkCanvas; 11 12 namespace gfx { 13 class Rect; 14 class RectF; 15 } 16 17 namespace cc { 18 19 class 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 gfx::RectF* opaque, 29 GraphicsContextStatus gc_status) = 0; 30 31 // Called by the content layer during the update phase. 32 // If the client paints LCD text, it may want to invalidate the layer. 33 virtual void DidChangeLayerCanUseLCDText() = 0; 34 35 // If true the layer may skip clearing the background before rasterizing, 36 // because it will cover any uncleared data with content. 37 virtual bool FillsBoundsCompletely() const = 0; 38 39 protected: 40 virtual ~ContentLayerClient() {} 41 }; 42 43 } // namespace cc 44 45 #endif // CC_LAYERS_CONTENT_LAYER_CLIENT_H_ 46