aboutsummaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
authorPatrick Scott <phanna@android.com>2010-11-02 14:38:04 -0400
committerPatrick Scott <phanna@android.com>2010-11-02 14:38:52 -0400
commit64753df8a61f0423e703d76bbdba820d085b7f3a (patch)
tree4dc85b778d34900a256fe4ec09defefeacb183a2 /src/core
parent95662ea6ee460cc84014c41a8c13e881cd8be8ed (diff)
downloadexternal_skia-64753df8a61f0423e703d76bbdba820d085b7f3a.zip
external_skia-64753df8a61f0423e703d76bbdba820d085b7f3a.tar.gz
external_skia-64753df8a61f0423e703d76bbdba820d085b7f3a.tar.bz2
Fix drawing pictures in different threads.
Use a mutex to avoid trying to concurrently draw the same picture. Change-Id: I6bef66d7824b12e796f32b635f2c344b4170fcd8
Diffstat (limited to 'src/core')
-rw-r--r--src/core/SkPicturePlayback.cpp2
-rw-r--r--src/core/SkPicturePlayback.h2
2 files changed, 4 insertions, 0 deletions
diff --git a/src/core/SkPicturePlayback.cpp b/src/core/SkPicturePlayback.cpp
index f488565..c73e21c 100644
--- a/src/core/SkPicturePlayback.cpp
+++ b/src/core/SkPicturePlayback.cpp
@@ -528,6 +528,8 @@ void SkPicturePlayback::draw(SkCanvas& canvas) {
SkipClipRec skipRect, skipRegion, skipPath;
#endif
+ SkAutoMutexAcquire autoMutex(fDrawMutex);
+
TextContainer text;
fReader.rewind();
diff --git a/src/core/SkPicturePlayback.h b/src/core/SkPicturePlayback.h
index ae9641a..f5bf038 100644
--- a/src/core/SkPicturePlayback.h
+++ b/src/core/SkPicturePlayback.h
@@ -12,6 +12,7 @@
#include "SkRegion.h"
#include "SkPictureFlat.h"
#include "SkShape.h"
+#include "SkThread.h"
class SkPictureRecord;
class SkStream;
@@ -172,6 +173,7 @@ private:
SkRefCntPlayback fRCPlayback;
SkTypefacePlayback fTFPlayback;
SkFactoryPlayback* fFactoryPlayback;
+ SkMutex fDrawMutex;
};
#endif