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

Unified Diff: tests/PictureShaderTest.cpp

Issue 1142053004: Empty picture shaders should draw nothing. (Closed) Base URL: https://skia.googlesource.com/skia@master
Patch Set: sort Created 5 years, 7 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/core/SkPictureShader.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/PictureShaderTest.cpp
diff --git a/tests/PictureShaderTest.cpp b/tests/PictureShaderTest.cpp
index 8d933db6003b1e9dcb3809ce9f86e3a6c29e1227..113f4f86eeacb669f62304a36ea4b3d6d08538ad 100644
--- a/tests/PictureShaderTest.cpp
+++ b/tests/PictureShaderTest.cpp
@@ -5,22 +5,38 @@
* found in the LICENSE file.
*/
+#include "SkCanvas.h"
#include "SkPicture.h"
#include "SkPictureRecorder.h"
#include "SkShader.h"
#include "Test.h"
// Test that attempting to create a picture shader with a NULL picture or
-// empty picture returns NULL.
+// empty picture returns a shader that draws nothing.
DEF_TEST(PictureShader_empty, reporter) {
- SkShader* shader = SkShader::CreatePictureShader(NULL,
- SkShader::kClamp_TileMode, SkShader::kClamp_TileMode, NULL, NULL);
- REPORTER_ASSERT(reporter, NULL == shader);
+ SkPaint paint;
+
+ SkBitmap bitmap;
+ bitmap.allocN32Pixels(1,1);
+
+ SkCanvas canvas(bitmap);
+ canvas.clear(SK_ColorGREEN);
+
+ SkShader* shader = SkShader::CreatePictureShader(
+ NULL, SkShader::kClamp_TileMode, SkShader::kClamp_TileMode, NULL, NULL);
+ paint.setShader(shader)->unref();
+
+ canvas.drawRect(SkRect::MakeWH(1,1), paint);
+ REPORTER_ASSERT(reporter, *bitmap.getAddr32(0,0) == SK_ColorGREEN);
+
SkPictureRecorder factory;
factory.beginRecording(0, 0, NULL, 0);
SkAutoTUnref<SkPicture> picture(factory.endRecording());
- shader = SkShader::CreatePictureShader(picture.get(),
- SkShader::kClamp_TileMode, SkShader::kClamp_TileMode, NULL, NULL);
- REPORTER_ASSERT(reporter, NULL == shader);
+ shader = SkShader::CreatePictureShader(
+ picture.get(), SkShader::kClamp_TileMode, SkShader::kClamp_TileMode, NULL, NULL);
+ paint.setShader(shader)->unref();
+
+ canvas.drawRect(SkRect::MakeWH(1,1), paint);
+ REPORTER_ASSERT(reporter, *bitmap.getAddr32(0,0) == SK_ColorGREEN);
}
« no previous file with comments | « src/core/SkPictureShader.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698