Home | History | Annotate | Download | only in layers
      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