Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(761)

Unified Diff: tests/RecordReplaceDrawTest.cpp

Issue 608823002: Update RecordReplaceDrawTest to generate and pass pictures (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Reordered #include files Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/gpu/SkGpuDevice.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/RecordReplaceDrawTest.cpp
diff --git a/tests/RecordReplaceDrawTest.cpp b/tests/RecordReplaceDrawTest.cpp
index 618be72709106cc531951136621e3264ee32693b..5b6d12c0d3dcbfdf20c7de0756f163ad6ae02aec 100644
--- a/tests/RecordReplaceDrawTest.cpp
+++ b/tests/RecordReplaceDrawTest.cpp
@@ -8,13 +8,14 @@
#if SK_SUPPORT_GPU
#include "Test.h"
-#include "RecordTestUtils.h"
+#include "GrRecordReplaceDraw.h"
+#include "RecordTestUtils.h"
#include "SkBBHFactory.h"
+#include "SkPictureRecorder.h"
#include "SkRecordDraw.h"
#include "SkRecorder.h"
#include "SkUtils.h"
-#include "GrRecordReplaceDraw.h"
static const int kWidth = 100;
static const int kHeight = 100;
@@ -30,18 +31,25 @@ private:
// Make sure the abort callback works
DEF_TEST(RecordReplaceDraw_Abort, r) {
- // Record two commands.
- SkRecord record;
- SkRecorder recorder(&record, kWidth, kHeight);
- recorder.drawRect(SkRect::MakeWH(SkIntToScalar(kWidth), SkIntToScalar(kHeight)), SkPaint());
- recorder.clipRect(SkRect::MakeWH(SkIntToScalar(kWidth), SkIntToScalar(kHeight)));
+ SkAutoTUnref<const SkPicture> pic;
+
+ {
+ // Record two commands.
+ SkPictureRecorder recorder;
+ SkCanvas* canvas = recorder.beginRecording(SkIntToScalar(kWidth), SkIntToScalar(kHeight));
+
+ canvas->drawRect(SkRect::MakeWH(SkIntToScalar(kWidth), SkIntToScalar(kHeight)), SkPaint());
+ canvas->clipRect(SkRect::MakeWH(SkIntToScalar(kWidth), SkIntToScalar(kHeight)));
+
+ pic.reset(recorder.endRecording());
+ }
SkRecord rerecord;
SkRecorder canvas(&rerecord, kWidth, kHeight);
GrReplacements replacements;
JustOneDraw callback;
- GrRecordReplaceDraw(record, &canvas, NULL/*bbh*/, &replacements, &callback);
+ GrRecordReplaceDraw(pic, &canvas, &replacements, SkMatrix::I(), &callback);
REPORTER_ASSERT(r, 3 == rerecord.count());
assert_type<SkRecords::Save>(r, rerecord, 0);
@@ -51,15 +59,23 @@ DEF_TEST(RecordReplaceDraw_Abort, r) {
// Make sure GrRecordReplaceDraw balances unbalanced saves
DEF_TEST(RecordReplaceDraw_Unbalanced, r) {
- SkRecord record;
- SkRecorder recorder(&record, kWidth, kHeight);
- recorder.save(); // We won't balance this, but GrRecordReplaceDraw will for us.
+ SkAutoTUnref<const SkPicture> pic;
+
+ {
+ SkPictureRecorder recorder;
+ SkCanvas* canvas = recorder.beginRecording(SkIntToScalar(kWidth), SkIntToScalar(kHeight));
+
+ // We won't balance this, but GrRecordReplaceDraw will for us.
+ canvas->save();
+
+ pic.reset(recorder.endRecording());
+ }
SkRecord rerecord;
SkRecorder canvas(&rerecord, kWidth, kHeight);
GrReplacements replacements;
- GrRecordReplaceDraw(record, &canvas, NULL/*bbh*/, &replacements, NULL/*callback*/);
+ GrRecordReplaceDraw(pic, &canvas, &replacements, SkMatrix::I(), NULL/*callback*/);
REPORTER_ASSERT(r, 4 == rerecord.count());
assert_type<SkRecords::Save>(r, rerecord, 0);
@@ -82,14 +98,23 @@ static SkImage* make_image(SkColor color) {
// Test out the layer replacement functionality with and w/o a BBH
void test_replacements(skiatest::Reporter* r, bool useBBH) {
- SkRecord record;
- SkRecorder recorder(&record, kWidth, kHeight);
- SkAutoTDelete<SkPaint> paint(SkNEW(SkPaint));
- recorder.saveLayer(NULL, paint);
- recorder.clear(SK_ColorRED);
- recorder.restore();
- recorder.drawRect(SkRect::MakeWH(SkIntToScalar(kWidth/2), SkIntToScalar(kHeight/2)),
- SkPaint());
+ SkAutoTUnref<const SkPicture> pic;
+
+ {
+ SkRTreeFactory bbhFactory;
+ SkPictureRecorder recorder;
+ SkCanvas* canvas = recorder.beginRecording(SkIntToScalar(kWidth), SkIntToScalar(kHeight),
+ useBBH ? &bbhFactory : NULL);
+
+ SkAutoTDelete<SkPaint> paint(SkNEW(SkPaint));
+ canvas->saveLayer(NULL, paint);
+ canvas->clear(SK_ColorRED);
+ canvas->restore();
+ canvas->drawRect(SkRect::MakeWH(SkIntToScalar(kWidth / 2), SkIntToScalar(kHeight / 2)),
+ SkPaint());
+
+ pic.reset(recorder.endRecording());
+ }
GrReplacements replacements;
GrReplacements::ReplacementInfo* ri = replacements.push();
@@ -102,15 +127,9 @@ void test_replacements(skiatest::Reporter* r, bool useBBH) {
SkAutoTUnref<SkBBoxHierarchy> bbh;
- if (useBBH) {
- SkRTreeFactory factory;
- bbh.reset((factory)(kWidth, kHeight));
- SkRecordFillBounds(record, bbh);
- }
-
SkRecord rerecord;
SkRecorder canvas(&rerecord, kWidth, kHeight);
- GrRecordReplaceDraw(record, &canvas, bbh, &replacements, NULL/*callback*/);
+ GrRecordReplaceDraw(pic, &canvas, &replacements, SkMatrix::I(), NULL/*callback*/);
REPORTER_ASSERT(r, 7 == rerecord.count());
assert_type<SkRecords::Save>(r, rerecord, 0);
« no previous file with comments | « src/gpu/SkGpuDevice.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698