Index: tests/CanvasTest.cpp |
diff --git a/tests/CanvasTest.cpp b/tests/CanvasTest.cpp |
index 216a408155a035acd3a1446cb031a411753c9639..e3986b541737be1694bb532a8ac8164e84d7d7d6 100644 |
--- a/tests/CanvasTest.cpp |
+++ b/tests/CanvasTest.cpp |
@@ -152,12 +152,12 @@ static const char* const kNWayIndirect2StateAssertMessageFormat = |
static const char* const kPdfAssertMessageFormat = |
"PDF sanity check failed %s"; |
-static void createBitmap(SkBitmap* bm, SkColor color) { |
+static void create_bitmap(SkBitmap* bm, SkColor color) { |
bm->allocN32Pixels(kWidth, kHeight); |
bm->eraseColor(color); |
} |
-static SkSurface* createSurface(SkColor color) { |
+static SkSurface* create_surface(SkColor color) { |
SkSurface* surface = SkSurface::NewRasterPMColor(kWidth, kHeight); |
surface->getCanvas()->clear(color); |
return surface; |
@@ -249,7 +249,7 @@ const SkPoint kTestPoints[3] = { |
const size_t kTestPointCount = 3; |
static SkBitmap testBitmap() { |
SkBitmap bitmap; |
- createBitmap(&bitmap, 0x05060708); |
+ create_bitmap(&bitmap, 0x05060708); |
return bitmap; |
} |
SkBitmap kTestBitmap; // cannot be created during static init |
@@ -267,7 +267,8 @@ SkPoint kTestPoints2[] = { |
{ SkIntToScalar(9), SkIntToScalar(1) }, |
{ SkIntToScalar(10), SkIntToScalar(1) }, |
}; |
- |
+SkSurface* kTestSurface; |
+SkImage* kTestImage; |
reed1
2014/09/30 13:44:55
ugh -- can we find a way to not use these globals?
Rémi Piotaix
2014/09/30 15:44:50
Seems that we can't.
The use of the same bitmap/im
|
/////////////////////////////////////////////////////////////////////////////// |
// Macros for defining test steps |
@@ -282,7 +283,7 @@ public: \ |
}; \ |
static NAME##_TestStep NAME##_TestStepInstance; |
-#define TEST_STEP_NO_PDF(NAME, FUNCTION) \ |
+#define TEST_STEP_NO_PDF(NAME, FUNCTION) \ |
class NAME##_TestStep : public CanvasTestStep{ \ |
public: \ |
NAME##_TestStep() : CanvasTestStep(false) {} \ |
@@ -363,6 +364,8 @@ SIMPLE_TEST_STEP(DrawData, drawData(kTestText.c_str(), kTestText.size())); |
SIMPLE_TEST_STEP(BeginGroup, beginCommentGroup(kTestText.c_str())); |
SIMPLE_TEST_STEP(AddComment, addComment(kTestText.c_str(), kTestText.c_str())); |
SIMPLE_TEST_STEP(EndGroup, endCommentGroup()); |
+SIMPLE_TEST_STEP(DrawImage, drawImage(kTestImage, 0, 0)); |
+SIMPLE_TEST_STEP(DrawImageRect, drawImageRect(kTestImage, 0, SkRect::MakeWH(kWidth, kHeight))); |
/////////////////////////////////////////////////////////////////////////////// |
// Complex test steps |
@@ -463,7 +466,7 @@ static void DrawPictureTestStep(SkCanvas* canvas, |
skiatest::Reporter*, |
CanvasTestStep*) { |
SkPictureRecorder recorder; |
- SkCanvas* testCanvas = recorder.beginRecording(SkIntToScalar(kWidth), SkIntToScalar(kHeight), |
+ SkCanvas* testCanvas = recorder.beginRecording(SkIntToScalar(kWidth), SkIntToScalar(kHeight), |
NULL, 0); |
testCanvas->scale(SkIntToScalar(2), SkIntToScalar(1)); |
testCanvas->clipRect(kTestRect); |
@@ -689,15 +692,15 @@ public: |
testStep->setAssertMessageFormat(kPictureDrawAssertMessageFormat); |
SkPictureRecorder referenceRecorder; |
SkCanvas* referenceCanvas = |
- referenceRecorder.DEPRECATED_beginRecording(SkIntToScalar(kWidth), |
- SkIntToScalar(kHeight), |
+ referenceRecorder.DEPRECATED_beginRecording(SkIntToScalar(kWidth), |
+ SkIntToScalar(kHeight), |
NULL, recordFlags); |
testStep->draw(referenceCanvas, reporter); |
SkPictureRecorder testRecorder; |
SkCanvas* testCanvas = |
- testRecorder.DEPRECATED_beginRecording(SkIntToScalar(kWidth), |
- SkIntToScalar(kHeight), |
+ testRecorder.DEPRECATED_beginRecording(SkIntToScalar(kWidth), |
+ SkIntToScalar(kHeight), |
NULL, recordFlags); |
testStep->draw(testCanvas, reporter); |
testStep->setAssertMessageFormat(kPictureSecondDrawAssertMessageFormat); |
@@ -733,7 +736,7 @@ public: |
CanvasTestStep* testStep, |
const SkCanvas& referenceCanvas, bool silent) { |
- SkAutoTUnref<SkSurface> surface(createSurface(0xFFFFFFFF)); |
+ SkAutoTUnref<SkSurface> surface(create_surface(0xFFFFFFFF)); |
SkAutoTUnref<SkDeferredCanvas> deferredCanvas(SkDeferredCanvas::Create(surface.get())); |
testStep->setAssertMessageFormat(kDeferredDrawAssertMessageFormat); |
@@ -775,7 +778,7 @@ static void TestProxyCanvasStateConsistency( |
const SkCanvas& referenceCanvas) { |
SkBitmap indirectStore; |
- createBitmap(&indirectStore, 0xFFFFFFFF); |
+ create_bitmap(&indirectStore, 0xFFFFFFFF); |
SkCanvas indirectCanvas(indirectStore); |
SkProxyCanvas proxyCanvas(&indirectCanvas); |
testStep->setAssertMessageFormat(kProxyDrawAssertMessageFormat); |
@@ -797,11 +800,11 @@ static void TestNWayCanvasStateConsistency( |
const SkCanvas& referenceCanvas) { |
SkBitmap indirectStore1; |
- createBitmap(&indirectStore1, 0xFFFFFFFF); |
+ create_bitmap(&indirectStore1, 0xFFFFFFFF); |
SkCanvas indirectCanvas1(indirectStore1); |
SkBitmap indirectStore2; |
- createBitmap(&indirectStore2, 0xFFFFFFFF); |
+ create_bitmap(&indirectStore2, 0xFFFFFFFF); |
SkCanvas indirectCanvas2(indirectStore2); |
SkISize canvasSize = referenceCanvas.getDeviceSize(); |
@@ -833,7 +836,7 @@ static void TestNWayCanvasStateConsistency( |
static void TestOverrideStateConsistency(skiatest::Reporter* reporter, |
CanvasTestStep* testStep) { |
SkBitmap referenceStore; |
- createBitmap(&referenceStore, 0xFFFFFFFF); |
+ create_bitmap(&referenceStore, 0xFFFFFFFF); |
SkCanvas referenceCanvas(referenceStore); |
testStep->setAssertMessageFormat(kCanvasDrawAssertMessageFormat); |
testStep->draw(&referenceCanvas, reporter); |
@@ -905,6 +908,8 @@ DEF_TEST(Canvas, reporter) { |
// Init global here because bitmap pixels cannot be alocated during |
// static initialization |
kTestBitmap = testBitmap(); |
+ kTestSurface = create_surface(SK_ColorGREEN); |
+ kTestImage = kTestSurface->newImageSnapshot(); |
Justin Novosad
2014/09/30 18:06:46
I guess these globals could be packaged into a loc
Rémi Piotaix
2014/10/02 18:45:24
Done here: https://codereview.chromium.org/6170930
|
for (int testStep = 0; testStep < testStepArray().count(); testStep++) { |
TestOverrideStateConsistency(reporter, testStepArray()[testStep]); |
@@ -917,6 +922,8 @@ DEF_TEST(Canvas, reporter) { |
// Explicitly call reset(), so we don't leak the pixels (since kTestBitmap is a global) |
kTestBitmap.reset(); |
+ kTestSurface->unref(); |
+ kTestImage->unref(); |
test_newraster(reporter); |
} |