aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkThreadedBMPDevice.cpp
diff options
context:
space:
mode:
authorGravatar Yuqian Li <liyuqian@google.com>2017-08-04 14:52:09 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-08-07 14:34:30 +0000
commit54043a0c32daeeba2af6f6a14799e01cf869cf4d (patch)
treea052230850d3e29b154f8a5e32bfb0a7e7600502 /src/core/SkThreadedBMPDevice.cpp
parent1aa731a24c5c426485a913951bad366c7b3b5bd5 (diff)
Flush threaded device when reaching max queue size
Our SkThreadedBMPDevice is very experimental so I didn't handle this edge case earlier. Maybe it's now a good time to fix it. Bug: skia: Change-Id: Ie3938475449c1341d34200ff3afe4589836950fc Reviewed-on: https://skia-review.googlesource.com/31203 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Yuqian Li <liyuqian@google.com>
Diffstat (limited to 'src/core/SkThreadedBMPDevice.cpp')
-rw-r--r--src/core/SkThreadedBMPDevice.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/core/SkThreadedBMPDevice.cpp b/src/core/SkThreadedBMPDevice.cpp
index 63b8ee0d2a..ac004b1a76 100644
--- a/src/core/SkThreadedBMPDevice.cpp
+++ b/src/core/SkThreadedBMPDevice.cpp
@@ -268,6 +268,9 @@ SkIRect SkThreadedBMPDevice::transformDrawBounds(const SkRect& drawBounds) const
// The do {...} while (false) is to enforce trailing semicolon as suggested by mtklein@
#define THREADED_DRAW(drawBounds, actualDrawCall) \
do { \
+ if (fQueueSize == MAX_QUEUE_SIZE) { \
+ this->flush(); \
+ } \
DrawState ds(this); \
SkASSERT(fQueueSize < MAX_QUEUE_SIZE); \
fQueue[fQueueSize++] = { \