diff options
author | Yuqian Li <liyuqian@google.com> | 2017-08-04 14:52:09 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-08-07 14:34:30 +0000 |
commit | 54043a0c32daeeba2af6f6a14799e01cf869cf4d (patch) | |
tree | a052230850d3e29b154f8a5e32bfb0a7e7600502 /src/core/SkThreadedBMPDevice.cpp | |
parent | 1aa731a24c5c426485a913951bad366c7b3b5bd5 (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.cpp | 3 |
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++] = { \ |