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

Side by Side Diff: gm/xfermodes2.cpp

Issue 1793303002: Reland of "more shader-->sp conversions (patchset #5 id:80001 of https://codereview.chromium… (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: make pictureRef a value, so its clearer what's going on Created 4 years, 9 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 unified diff | Download patch
« no previous file with comments | « gm/xfermodes.cpp ('k') | gm/xfermodes3.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2013 Google Inc. 3 * Copyright 2013 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 #include "gm.h" 8 #include "gm.h"
9 #include "SkBitmap.h" 9 #include "SkBitmap.h"
10 #include "SkShader.h" 10 #include "SkShader.h"
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 SkPackARGB32(0xFF, 0xD6, 0xD3, 0xD6), 92 SkPackARGB32(0xFF, 0xD6, 0xD3, 0xD6),
93 SkPackARGB32(0xFF, 0xD6, 0xD3, 0xD6), 93 SkPackARGB32(0xFF, 0xD6, 0xD3, 0xD6),
94 SkPackARGB32(0xFF, 0x42, 0x41, 0x42) 94 SkPackARGB32(0xFF, 0x42, 0x41, 0x42)
95 }; 95 };
96 SkBitmap bg; 96 SkBitmap bg;
97 bg.allocN32Pixels(2, 2, true); 97 bg.allocN32Pixels(2, 2, true);
98 memcpy(bg.getPixels(), kCheckData, sizeof(kCheckData)); 98 memcpy(bg.getPixels(), kCheckData, sizeof(kCheckData));
99 99
100 SkMatrix lm; 100 SkMatrix lm;
101 lm.setScale(SkIntToScalar(16), SkIntToScalar(16)); 101 lm.setScale(SkIntToScalar(16), SkIntToScalar(16));
102 fBG.reset(SkShader::CreateBitmapShader(bg, 102 fBG = SkShader::MakeBitmapShader(bg, SkShader::kRepeat_TileMode, SkShade r::kRepeat_TileMode,
103 SkShader::kRepeat_TileMode, 103 &lm);
104 SkShader::kRepeat_TileMode,
105 &lm));
106 104
107 SkBitmap srcBmp; 105 SkBitmap srcBmp;
108 srcBmp.allocN32Pixels(kSize, kSize); 106 srcBmp.allocN32Pixels(kSize, kSize);
109 SkPMColor* pixels = reinterpret_cast<SkPMColor*>(srcBmp.getPixels()); 107 SkPMColor* pixels = reinterpret_cast<SkPMColor*>(srcBmp.getPixels());
110 108
111 for (int y = 0; y < kSize; ++y) { 109 for (int y = 0; y < kSize; ++y) {
112 int c = y * (1 << kShift); 110 int c = y * (1 << kShift);
113 SkPMColor rowColor = SkPackARGB32(c, c, 0, c/2); 111 SkPMColor rowColor = SkPackARGB32(c, c, 0, c/2);
114 for (int x = 0; x < kSize; ++x) { 112 for (int x = 0; x < kSize; ++x) {
115 pixels[kSize * y + x] = rowColor; 113 pixels[kSize * y + x] = rowColor;
116 } 114 }
117 } 115 }
118 fSrc.reset(SkShader::CreateBitmapShader(srcBmp, 116 fSrc = SkShader::MakeBitmapShader(srcBmp, SkShader::kClamp_TileMode,
119 SkShader::kClamp_TileMode, 117 SkShader::kClamp_TileMode);
120 SkShader::kClamp_TileMode));
121 SkBitmap dstBmp; 118 SkBitmap dstBmp;
122 dstBmp.allocN32Pixels(kSize, kSize); 119 dstBmp.allocN32Pixels(kSize, kSize);
123 pixels = reinterpret_cast<SkPMColor*>(dstBmp.getPixels()); 120 pixels = reinterpret_cast<SkPMColor*>(dstBmp.getPixels());
124 121
125 for (int x = 0; x < kSize; ++x) { 122 for (int x = 0; x < kSize; ++x) {
126 int c = x * (1 << kShift); 123 int c = x * (1 << kShift);
127 SkPMColor colColor = SkPackARGB32(c, 0, c, c/2); 124 SkPMColor colColor = SkPackARGB32(c, 0, c, c/2);
128 for (int y = 0; y < kSize; ++y) { 125 for (int y = 0; y < kSize; ++y) {
129 pixels[kSize * y + x] = colColor; 126 pixels[kSize * y + x] = colColor;
130 } 127 }
131 } 128 }
132 fDst.reset(SkShader::CreateBitmapShader(dstBmp, 129 fDst = SkShader::MakeBitmapShader(dstBmp, SkShader::kClamp_TileMode,
133 SkShader::kClamp_TileMode, 130 SkShader::kClamp_TileMode);
134 SkShader::kClamp_TileMode));
135 } 131 }
136 132
137 enum { 133 enum {
138 kShift = 2, 134 kShift = 2,
139 kSize = 256 >> kShift, 135 kSize = 256 >> kShift,
140 }; 136 };
141 137
142 SkAutoTUnref<SkShader> fBG; 138 sk_sp<SkShader> fBG;
143 SkAutoTUnref<SkShader> fSrc; 139 sk_sp<SkShader> fSrc;
144 SkAutoTUnref<SkShader> fDst; 140 sk_sp<SkShader> fDst;
145 141
146 typedef GM INHERITED; 142 typedef GM INHERITED;
147 }; 143 };
148 144
149 ////////////////////////////////////////////////////////////////////////////// 145 //////////////////////////////////////////////////////////////////////////////
150 146
151 static GM* MyFactory(void*) { return new Xfermodes2GM; } 147 static GM* MyFactory(void*) { return new Xfermodes2GM; }
152 static GMRegistry reg(MyFactory); 148 static GMRegistry reg(MyFactory);
153 149
154 } 150 }
OLDNEW
« no previous file with comments | « gm/xfermodes.cpp ('k') | gm/xfermodes3.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698