Home | History | Annotate | Download | only in debug
      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_DEBUG_TRACED_PICTURE_H_
      6 #define CC_DEBUG_TRACED_PICTURE_H_
      7 
      8 #include <string>
      9 
     10 #include "base/debug/trace_event.h"
     11 #include "base/memory/scoped_ptr.h"
     12 #include "cc/resources/picture.h"
     13 
     14 namespace cc {
     15 
     16 class TracedPicture : public base::debug::ConvertableToTraceFormat {
     17  public:
     18   explicit TracedPicture(scoped_refptr<Picture>);
     19 
     20   static scoped_refptr<base::debug::ConvertableToTraceFormat>
     21     AsTraceablePicture(Picture* picture);
     22 
     23   static scoped_refptr<base::debug::ConvertableToTraceFormat>
     24     AsTraceablePictureAlias(Picture* original);
     25 
     26   virtual void AppendAsTraceFormat(std::string* out) const OVERRIDE;
     27 
     28  private:
     29   virtual ~TracedPicture();
     30 
     31   void AppendPicture(std::string* out) const;
     32   void AppendPictureAlias(std::string* out) const;
     33 
     34   scoped_refptr<Picture> picture_;
     35   bool is_alias_;
     36 
     37   DISALLOW_COPY_AND_ASSIGN(TracedPicture);
     38 };
     39 
     40 }  // namespace cc
     41 
     42 #endif  // CC_DEBUG_TRACED_PICTURE_H_
     43