diff options
author | reed <reed@google.com> | 2016-01-08 06:30:14 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-08 06:30:14 -0800 |
commit | 7c554222ddd03d3817ab197a0bd92badc6f1f7c9 (patch) | |
tree | 4eabf4a0e232abd8e83281d343753d0b7c880609 /src/pipe/utils | |
parent | 57fa241d6f43557e4243a46f8b5a4ed447ccb8d2 (diff) |
remove SkGPipe
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1568883003
Review URL: https://codereview.chromium.org/1568883003
Diffstat (limited to 'src/pipe/utils')
-rw-r--r-- | src/pipe/utils/SamplePipeControllers.cpp | 115 | ||||
-rw-r--r-- | src/pipe/utils/SamplePipeControllers.h | 87 |
2 files changed, 0 insertions, 202 deletions
diff --git a/src/pipe/utils/SamplePipeControllers.cpp b/src/pipe/utils/SamplePipeControllers.cpp deleted file mode 100644 index fea9d6842b..0000000000 --- a/src/pipe/utils/SamplePipeControllers.cpp +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright 2012 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "SamplePipeControllers.h" - -#include "SkCanvas.h" -#include "SkGPipe.h" -#include "SkMatrix.h" - -PipeController::PipeController(SkCanvas* target, SkPicture::InstallPixelRefProc proc) -:fReader(target) { - fBlock = nullptr; - fBlockSize = fBytesWritten = 0; - fReader.setBitmapDecoder(proc); -} - -PipeController::~PipeController() { - sk_free(fBlock); -} - -void* PipeController::requestBlock(size_t minRequest, size_t *actual) { - sk_free(fBlock); - fBlockSize = minRequest; - fBlock = sk_malloc_throw(fBlockSize); - fBytesWritten = 0; - *actual = fBlockSize; - return fBlock; -} - -void PipeController::notifyWritten(size_t bytes) { - fStatus = fReader.playback(this->getData(), bytes); - SkASSERT(SkGPipeReader::kError_Status != fStatus); - fBytesWritten += bytes; -} - -//////////////////////////////////////////////////////////////////////////////// - -TiledPipeController::TiledPipeController(const SkBitmap& bitmap, - SkPicture::InstallPixelRefProc proc, - const SkMatrix* initial) -: INHERITED(nullptr, proc) { - int32_t top = 0; - int32_t bottom; - int32_t height = bitmap.height() / NumberOfTiles; - SkIRect rect; - for (int i = 0; i < NumberOfTiles; i++) { - bottom = i + 1 == NumberOfTiles ? bitmap.height() : top + height; - rect.setLTRB(0, top, bitmap.width(), bottom); - top = bottom; - - SkDEBUGCODE(bool extracted = )bitmap.extractSubset(&fBitmaps[i], rect); - SkASSERT(extracted); - SkCanvas* canvas = new SkCanvas(fBitmaps[i]); - if (initial != nullptr) { - canvas->setMatrix(*initial); - } - canvas->translate(SkIntToScalar(-rect.left()), - SkIntToScalar(-rect.top())); - if (0 == i) { - fReader.setCanvas(canvas); - } else { - fReaders[i - 1].setCanvas(canvas); - fReaders[i - 1].setBitmapDecoder(proc); - } - canvas->unref(); - } -} - -void TiledPipeController::notifyWritten(size_t bytes) { - for (int i = 0; i < NumberOfTiles - 1; i++) { - fReaders[i].playback(this->getData(), bytes); - } - this->INHERITED::notifyWritten(bytes); -} - -//////////////////////////////////////////////////////////////////////////////// - -ThreadSafePipeController::ThreadSafePipeController(int numberOfReaders) -: fAllocator(kMinBlockSize) -, fNumberOfReaders(numberOfReaders) { - fBlock = nullptr; - fBytesWritten = 0; -} - -void* ThreadSafePipeController::requestBlock(size_t minRequest, size_t *actual) { - if (fBlock) { - // Save the previous block for later - PipeBlock previousBloc(fBlock, fBytesWritten); - fBlockList.push(previousBloc); - } - int32_t blockSize = SkMax32(SkToS32(minRequest), kMinBlockSize); - fBlock = fAllocator.allocThrow(blockSize); - fBytesWritten = 0; - *actual = blockSize; - return fBlock; -} - -void ThreadSafePipeController::notifyWritten(size_t bytes) { - fBytesWritten += bytes; -} - -void ThreadSafePipeController::draw(SkCanvas* target) { - SkGPipeReader reader(target); - for (int currentBlock = 0; currentBlock < fBlockList.count(); currentBlock++ ) { - reader.playback(fBlockList[currentBlock].fBlock, fBlockList[currentBlock].fBytes); - } - - if (fBlock) { - reader.playback(fBlock, fBytesWritten); - } -} diff --git a/src/pipe/utils/SamplePipeControllers.h b/src/pipe/utils/SamplePipeControllers.h deleted file mode 100644 index b3f057fa8c..0000000000 --- a/src/pipe/utils/SamplePipeControllers.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright 2012 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "SkBitmap.h" -#include "SkChunkAlloc.h" -#include "SkGPipe.h" -#include "SkPicture.h" -#include "SkTDArray.h" - -class SkCanvas; -class SkMatrix; - -class PipeController : public SkGPipeController { -public: - PipeController(SkCanvas* target, SkPicture::InstallPixelRefProc proc = nullptr); - virtual ~PipeController(); - void* requestBlock(size_t minRequest, size_t* actual) override; - void notifyWritten(size_t bytes) override; -protected: - const void* getData() { return (const char*) fBlock + fBytesWritten; } - SkGPipeReader fReader; -private: - void* fBlock; - size_t fBlockSize; - size_t fBytesWritten; - SkGPipeReader::Status fStatus; -}; - -//////////////////////////////////////////////////////////////////////////////// - -class TiledPipeController : public PipeController { -public: - TiledPipeController(const SkBitmap&, SkPicture::InstallPixelRefProc proc = nullptr, - const SkMatrix* initialMatrix = nullptr); - virtual ~TiledPipeController() {}; - void notifyWritten(size_t bytes) override; - int numberOfReaders() const override { return NumberOfTiles; } -private: - enum { - NumberOfTiles = 10 - }; - SkGPipeReader fReaders[NumberOfTiles - 1]; - SkBitmap fBitmaps[NumberOfTiles]; - typedef PipeController INHERITED; -}; - -//////////////////////////////////////////////////////////////////////////////// - -/** - * Borrowed (and modified) from SkDeferredCanvas.cpp::DeferredPipeController. - * Allows playing back from multiple threads, but does not do the threading itself. - */ -class ThreadSafePipeController : public SkGPipeController { -public: - ThreadSafePipeController(int numberOfReaders); - void* requestBlock(size_t minRequest, size_t* actual) override; - void notifyWritten(size_t bytes) override; - int numberOfReaders() const override { return fNumberOfReaders; } - - /** - * Play the stored drawing commands to the specified canvas. If SkGPipeWriter::startRecording - * used the flag SkGPipeWriter::kSimultaneousReaders_Flag, this can be called from different - * threads simultaneously. - */ - void draw(SkCanvas*); -private: - enum { - kMinBlockSize = 4096 - }; - struct PipeBlock { - PipeBlock(void* block, size_t bytes) { fBlock = block, fBytes = bytes; } - // Stream of draw commands written by the SkGPipeWriter. Allocated by fAllocator, which will - // handle freeing it. - void* fBlock; - // Number of bytes that were written to fBlock. - size_t fBytes; - }; - void* fBlock; - size_t fBytesWritten; - SkChunkAlloc fAllocator; - SkTDArray<PipeBlock> fBlockList; - int fNumberOfReaders; -}; |