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 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: ~ContentLayerClient()39 virtual ~ContentLayerClient() {} 40 }; 41 42 } // namespace cc 43 44 #endif // CC_LAYERS_CONTENT_LAYER_CLIENT_H_ 45