| Index: tests/BitmapHeapTest.cpp
|
| diff --git a/tests/BitmapHeapTest.cpp b/tests/BitmapHeapTest.cpp
|
| deleted file mode 100644
|
| index f9d4ee19bb5da1e37da88c68133231fced96c3e7..0000000000000000000000000000000000000000
|
| --- a/tests/BitmapHeapTest.cpp
|
| +++ /dev/null
|
| @@ -1,94 +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 "SkBitmapHeap.h"
|
| -#include "SkColor.h"
|
| -#include "SkFlattenable.h"
|
| -#include "SkWriteBuffer.h"
|
| -#include "SkPictureFlat.h"
|
| -#include "SkRefCnt.h"
|
| -#include "SkShader.h"
|
| -#include "Test.h"
|
| -
|
| -struct SimpleFlatController : public SkFlatController {
|
| - SimpleFlatController() : SkFlatController() {}
|
| - ~SimpleFlatController() { fAllocations.freeAll(); }
|
| - void* allocThrow(size_t bytes) override {
|
| - fAllocations.push(sk_malloc_throw(bytes));
|
| - return fAllocations.top();
|
| - }
|
| - void unalloc(void*) override { }
|
| - void setBitmapStorage(SkBitmapHeap* h) { this->setBitmapHeap(h); }
|
| -private:
|
| - SkTDArray<void*> fAllocations;
|
| -};
|
| -
|
| -struct SkShaderTraits {
|
| - static void Flatten(SkWriteBuffer& buffer, const SkShader& shader) {
|
| - buffer.writeFlattenable(&shader);
|
| - }
|
| -};
|
| -typedef SkFlatDictionary<SkShader, SkShaderTraits> FlatDictionary;
|
| -
|
| -class SkBitmapHeapTester {
|
| -public:
|
| - static int32_t GetRefCount(const SkBitmapHeapEntry* entry) {
|
| - return entry->fRefCount;
|
| - }
|
| -};
|
| -
|
| -DEF_TEST(BitmapHeap, reporter) {
|
| - // Create a bitmap shader.
|
| - SkBitmap bm;
|
| - bm.allocN32Pixels(2, 2);
|
| - bm.eraseColor(SK_ColorRED);
|
| - uint32_t* pixel = bm.getAddr32(1,0);
|
| - *pixel = SK_ColorBLUE;
|
| -
|
| - auto bitmapShader = SkShader::MakeBitmapShader(bm, SkShader::kRepeat_TileMode,
|
| - SkShader::kRepeat_TileMode);
|
| -
|
| - // Flatten, storing it in the bitmap heap.
|
| - SkBitmapHeap heap(1, 1);
|
| - SimpleFlatController controller;
|
| - controller.setBitmapStorage(&heap);
|
| - FlatDictionary dictionary(&controller);
|
| -
|
| - // Dictionary and heap start off empty.
|
| - REPORTER_ASSERT(reporter, heap.count() == 0);
|
| - REPORTER_ASSERT(reporter, dictionary.count() == 0);
|
| -
|
| - heap.deferAddingOwners();
|
| - int index = dictionary.find(*bitmapShader);
|
| - heap.endAddingOwnersDeferral(true);
|
| -
|
| - // The dictionary and heap should now each have one entry.
|
| - REPORTER_ASSERT(reporter, 1 == index);
|
| - REPORTER_ASSERT(reporter, heap.count() == 1);
|
| - REPORTER_ASSERT(reporter, dictionary.count() == 1);
|
| -
|
| - // The bitmap entry's refcount should be 1, then 0 after release.
|
| - SkBitmapHeapEntry* entry = heap.getEntry(0);
|
| - REPORTER_ASSERT(reporter, SkBitmapHeapTester::GetRefCount(entry) == 1);
|
| -
|
| - entry->releaseRef();
|
| - REPORTER_ASSERT(reporter, SkBitmapHeapTester::GetRefCount(entry) == 0);
|
| -
|
| - // Now clear out the heap, after which it should be empty.
|
| - heap.freeMemoryIfPossible(~0U);
|
| - REPORTER_ASSERT(reporter, heap.count() == 0);
|
| -
|
| - // Now attempt to flatten the shader again.
|
| - heap.deferAddingOwners();
|
| - index = dictionary.find(*bitmapShader);
|
| - heap.endAddingOwnersDeferral(false);
|
| -
|
| - // The bitmap heap should contain the bitmap, but with no references.
|
| - REPORTER_ASSERT(reporter, heap.count() == 1);
|
| - REPORTER_ASSERT(reporter, SkBitmapHeapTester::GetRefCount(heap.getEntry(0)) == 0);
|
| -}
|
|
|