summaryrefslogtreecommitdiffstats
path: root/cc/picture_pile_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'cc/picture_pile_impl.h')
-rw-r--r--cc/picture_pile_impl.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/cc/picture_pile_impl.h b/cc/picture_pile_impl.h
index 93ac072..b041635 100644
--- a/cc/picture_pile_impl.h
+++ b/cc/picture_pile_impl.h
@@ -5,8 +5,11 @@
#ifndef CC_PICTURE_PILE_IMPL_H_
#define CC_PICTURE_PILE_IMPL_H_
+#include <map>
+
#include "base/basictypes.h"
#include "base/memory/ref_counted.h"
+#include "base/threading/thread.h"
#include "cc/cc_export.h"
#include "cc/picture.h"
#include "cc/picture_pile.h"
@@ -20,6 +23,9 @@ class CC_EXPORT PicturePileImpl : public base::RefCounted<PicturePileImpl> {
public:
static scoped_refptr<PicturePileImpl> Create();
+ // Get paint-safe version of this picture for a specific thread.
+ PicturePileImpl* GetCloneForDrawingOnThread(base::Thread*);
+
// Clone a paint-safe version of this picture.
scoped_refptr<PicturePileImpl> CloneForDrawing() const;
@@ -40,6 +46,10 @@ private:
PicturePile::Pile pile_;
+ typedef std::map<base::PlatformThreadId, scoped_refptr<PicturePileImpl> >
+ CloneMap;
+ CloneMap clones_;
+
friend class base::RefCounted<PicturePileImpl>;
DISALLOW_COPY_AND_ASSIGN(PicturePileImpl);
};