// Copyright 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CC_DEBUG_TRACED_PICTURE_H_ #define CC_DEBUG_TRACED_PICTURE_H_ #include <string> #include "base/debug/trace_event.h" #include "base/memory/scoped_ptr.h" #include "cc/resources/picture.h" namespace cc { class TracedPicture : public base::debug::ConvertableToTraceFormat { public: explicit TracedPicture(scoped_refptr<Picture>); static scoped_refptr<base::debug::ConvertableToTraceFormat> AsTraceablePicture(Picture* picture); static scoped_refptr<base::debug::ConvertableToTraceFormat> AsTraceablePictureAlias(Picture* original); virtual void AppendAsTraceFormat(std::string* out) const OVERRIDE; private: virtual ~TracedPicture(); void AppendPicture(std::string* out) const; void AppendPictureAlias(std::string* out) const; scoped_refptr<Picture> picture_; bool is_alias_; DISALLOW_COPY_AND_ASSIGN(TracedPicture); }; } // namespace cc #endif // CC_DEBUG_TRACED_PICTURE_H_