1 /*
2 * Copyright 2014 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8 #include "SkCanvas.h"
9 #include "SkPicture.h"
10 #include "SkPictureRecorder.h"
11 #include "SkShader.h"
12 #include "Test.h"
13
14 // Test that attempting to create a picture shader with a nullptr picture or
15 // empty picture returns a shader that draws nothing.
DEF_TEST(PictureShader_empty,reporter)16 DEF_TEST(PictureShader_empty, reporter) {
17 SkPaint paint;
18
19 SkBitmap bitmap;
20 bitmap.allocN32Pixels(1,1);
21
22 SkCanvas canvas(bitmap);
23 canvas.clear(SK_ColorGREEN);
24
25 paint.setShader(SkShader::MakePictureShader(
26 nullptr, SkShader::kClamp_TileMode, SkShader::kClamp_TileMode, nullptr, nullptr));
27
28 canvas.drawRect(SkRect::MakeWH(1,1), paint);
29 REPORTER_ASSERT(reporter, *bitmap.getAddr32(0,0) == SK_ColorGREEN);
30
31
32 SkPictureRecorder factory;
33 factory.beginRecording(0, 0, nullptr, 0);
34 paint.setShader(SkShader::MakePictureShader(factory.finishRecordingAsPicture(),
35 SkShader::kClamp_TileMode,
36 SkShader::kClamp_TileMode, nullptr, nullptr));
37
38 canvas.drawRect(SkRect::MakeWH(1,1), paint);
39 REPORTER_ASSERT(reporter, *bitmap.getAddr32(0,0) == SK_ColorGREEN);
40 }
41