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