Home | History | Annotate | Download | only in layers
      1 // Copyright 2013 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_LAYER_CLIENT_H_
      6 #define CC_LAYERS_LAYER_CLIENT_H_
      7 
      8 #include <string>
      9 
     10 #include "base/memory/ref_counted.h"
     11 #include "cc/base/cc_export.h"
     12 
     13 namespace base {
     14 namespace debug {
     15 class ConvertableToTraceFormat;
     16 }
     17 }
     18 
     19 namespace cc {
     20 
     21 class CC_EXPORT LayerClient {
     22  public:
     23   virtual std::string DebugName() = 0;
     24 
     25   // Returns a pointer to a debug info object, if one has been computed.
     26   // If not, returns NULL. If the returned pointer is non-NULL, the caller takes
     27   // ownership of the pointer.
     28   virtual scoped_refptr<base::debug::ConvertableToTraceFormat>
     29       TakeDebugInfo() = 0;
     30 
     31  protected:
     32   virtual ~LayerClient() {}
     33 };
     34 
     35 }  // namespace cc
     36 
     37 #endif  // CC_LAYERS_LAYER_CLIENT_H_
     38