Index: tests/LayerDrawLooperTest.cpp |
diff --git a/tests/LayerDrawLooperTest.cpp b/tests/LayerDrawLooperTest.cpp |
index 68dd5e06e7bbbafdd5bd6ddf637841a8a8401f8f..1facb23b510dae972e7942fea632a8793649c439 100644 |
--- a/tests/LayerDrawLooperTest.cpp |
+++ b/tests/LayerDrawLooperTest.cpp |
@@ -15,6 +15,7 @@ |
#include "SkRect.h" |
#include "SkRefCnt.h" |
#include "SkScalar.h" |
+#include "SkSmallAllocator.h" |
#include "SkXfermode.h" |
#include "Test.h" |
@@ -57,10 +58,12 @@ static void test_frontToBack(skiatest::Reporter* reporter) { |
SkCanvas canvas(&device); |
SkPaint paint; |
SkAutoTUnref<SkLayerDrawLooper> looper(looperBuilder.detachLooper()); |
- looper->init(&canvas); |
+ SkSmallAllocator<1, 32> allocator; |
+ void* buffer = allocator.reserveT<SkDrawLooper::Context>(looper->contextSize()); |
+ SkDrawLooper::Context* context = looper->createContext(&canvas, buffer); |
// The back layer should come first. |
- REPORTER_ASSERT(reporter, looper->next(&canvas, &paint)); |
+ REPORTER_ASSERT(reporter, context->next(&canvas, &paint)); |
REPORTER_ASSERT(reporter, SkXfermode::IsMode(paint.getXfermode(), SkXfermode::kSrc_Mode)); |
canvas.drawRect(SkRect::MakeWH(50.0f, 50.0f), paint); |
REPORTER_ASSERT(reporter, 10.0f == device.fLastMatrix.getTranslateX()); |
@@ -68,14 +71,14 @@ static void test_frontToBack(skiatest::Reporter* reporter) { |
paint.reset(); |
// Then the front layer. |
- REPORTER_ASSERT(reporter, looper->next(&canvas, &paint)); |
+ REPORTER_ASSERT(reporter, context->next(&canvas, &paint)); |
REPORTER_ASSERT(reporter, SkXfermode::IsMode(paint.getXfermode(), SkXfermode::kSrcOver_Mode)); |
canvas.drawRect(SkRect::MakeWH(50.0f, 50.0f), paint); |
REPORTER_ASSERT(reporter, 0.0f == device.fLastMatrix.getTranslateX()); |
REPORTER_ASSERT(reporter, 0.0f == device.fLastMatrix.getTranslateY()); |
// Only two layers were added, so that should be the end. |
- REPORTER_ASSERT(reporter, !looper->next(&canvas, &paint)); |
+ REPORTER_ASSERT(reporter, !context->next(&canvas, &paint)); |
} |
static void test_backToFront(skiatest::Reporter* reporter) { |
@@ -95,10 +98,12 @@ static void test_backToFront(skiatest::Reporter* reporter) { |
SkCanvas canvas(&device); |
SkPaint paint; |
SkAutoTUnref<SkLayerDrawLooper> looper(looperBuilder.detachLooper()); |
- looper->init(&canvas); |
+ SkSmallAllocator<1, 32> allocator; |
+ void* buffer = allocator.reserveT<SkDrawLooper::Context>(looper->contextSize()); |
+ SkDrawLooper::Context* context = looper->createContext(&canvas, buffer); |
// The back layer should come first. |
- REPORTER_ASSERT(reporter, looper->next(&canvas, &paint)); |
+ REPORTER_ASSERT(reporter, context->next(&canvas, &paint)); |
REPORTER_ASSERT(reporter, SkXfermode::IsMode(paint.getXfermode(), SkXfermode::kSrcOver_Mode)); |
canvas.drawRect(SkRect::MakeWH(50.0f, 50.0f), paint); |
REPORTER_ASSERT(reporter, 0.0f == device.fLastMatrix.getTranslateX()); |
@@ -106,14 +111,14 @@ static void test_backToFront(skiatest::Reporter* reporter) { |
paint.reset(); |
// Then the front layer. |
- REPORTER_ASSERT(reporter, looper->next(&canvas, &paint)); |
+ REPORTER_ASSERT(reporter, context->next(&canvas, &paint)); |
REPORTER_ASSERT(reporter, SkXfermode::IsMode(paint.getXfermode(), SkXfermode::kSrc_Mode)); |
canvas.drawRect(SkRect::MakeWH(50.0f, 50.0f), paint); |
REPORTER_ASSERT(reporter, 10.0f == device.fLastMatrix.getTranslateX()); |
REPORTER_ASSERT(reporter, 20.0f == device.fLastMatrix.getTranslateY()); |
// Only two layers were added, so that should be the end. |
- REPORTER_ASSERT(reporter, !looper->next(&canvas, &paint)); |
+ REPORTER_ASSERT(reporter, !context->next(&canvas, &paint)); |
} |
static void test_mixed(skiatest::Reporter* reporter) { |
@@ -133,10 +138,12 @@ static void test_mixed(skiatest::Reporter* reporter) { |
SkCanvas canvas(&device); |
SkPaint paint; |
SkAutoTUnref<SkLayerDrawLooper> looper(looperBuilder.detachLooper()); |
- looper->init(&canvas); |
+ SkSmallAllocator<1, 32> allocator; |
+ void* buffer = allocator.reserveT<SkDrawLooper::Context>(looper->contextSize()); |
+ SkDrawLooper::Context* context = looper->createContext(&canvas, buffer); |
// The back layer should come first. |
- REPORTER_ASSERT(reporter, looper->next(&canvas, &paint)); |
+ REPORTER_ASSERT(reporter, context->next(&canvas, &paint)); |
REPORTER_ASSERT(reporter, SkXfermode::IsMode(paint.getXfermode(), SkXfermode::kSrcOver_Mode)); |
canvas.drawRect(SkRect::MakeWH(50.0f, 50.0f), paint); |
REPORTER_ASSERT(reporter, 0.0f == device.fLastMatrix.getTranslateX()); |
@@ -144,14 +151,14 @@ static void test_mixed(skiatest::Reporter* reporter) { |
paint.reset(); |
// Then the front layer. |
- REPORTER_ASSERT(reporter, looper->next(&canvas, &paint)); |
+ REPORTER_ASSERT(reporter, context->next(&canvas, &paint)); |
REPORTER_ASSERT(reporter, SkXfermode::IsMode(paint.getXfermode(), SkXfermode::kSrc_Mode)); |
canvas.drawRect(SkRect::MakeWH(50.0f, 50.0f), paint); |
REPORTER_ASSERT(reporter, 10.0f == device.fLastMatrix.getTranslateX()); |
REPORTER_ASSERT(reporter, 20.0f == device.fLastMatrix.getTranslateY()); |
// Only two layers were added, so that should be the end. |
- REPORTER_ASSERT(reporter, !looper->next(&canvas, &paint)); |
+ REPORTER_ASSERT(reporter, !context->next(&canvas, &paint)); |
} |
DEF_TEST(LayerDrawLooper, reporter) { |