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

Side by Side Diff: src/gpu/effects/GrBicubicEffect.cpp

Issue 1388113002: Bye bye processor data manager (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: remove files Created 5 years, 2 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 | « src/gpu/effects/GrBicubicEffect.h ('k') | src/gpu/effects/GrConfigConversionEffect.h » ('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 * Copyright 2014 Google Inc. 2 * Copyright 2014 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "GrBicubicEffect.h" 8 #include "GrBicubicEffect.h"
9 #include "GrInvariantOutput.h" 9 #include "GrInvariantOutput.h"
10 #include "gl/builders/GrGLProgramBuilder.h" 10 #include "gl/builders/GrGLProgramBuilder.h"
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 119
120 static inline void convert_row_major_scalar_coeffs_to_column_major_floats(float dst[16], 120 static inline void convert_row_major_scalar_coeffs_to_column_major_floats(float dst[16],
121 const SkScalar src[16]) { 121 const SkScalar src[16]) {
122 for (int y = 0; y < 4; y++) { 122 for (int y = 0; y < 4; y++) {
123 for (int x = 0; x < 4; x++) { 123 for (int x = 0; x < 4; x++) {
124 dst[x * 4 + y] = SkScalarToFloat(src[y * 4 + x]); 124 dst[x * 4 + y] = SkScalarToFloat(src[y * 4 + x]);
125 } 125 }
126 } 126 }
127 } 127 }
128 128
129 GrBicubicEffect::GrBicubicEffect(GrProcessorDataManager* procDataManager, 129 GrBicubicEffect::GrBicubicEffect(GrTexture* texture,
130 GrTexture* texture,
131 const SkScalar coefficients[16], 130 const SkScalar coefficients[16],
132 const SkMatrix &matrix, 131 const SkMatrix &matrix,
133 const SkShader::TileMode tileModes[2]) 132 const SkShader::TileMode tileModes[2])
134 : INHERITED(procDataManager, texture, matrix, 133 : INHERITED(texture, matrix, GrTextureParams(tileModes, GrTextureParams::kNone _FilterMode))
135 GrTextureParams(tileModes, GrTextureParams::kNone_FilterMode))
136 , fDomain(GrTextureDomain::IgnoredDomain()) { 134 , fDomain(GrTextureDomain::IgnoredDomain()) {
137 this->initClassID<GrBicubicEffect>(); 135 this->initClassID<GrBicubicEffect>();
138 convert_row_major_scalar_coeffs_to_column_major_floats(fCoefficients, coeffi cients); 136 convert_row_major_scalar_coeffs_to_column_major_floats(fCoefficients, coeffi cients);
139 } 137 }
140 138
141 GrBicubicEffect::GrBicubicEffect(GrProcessorDataManager* procDataManager, 139 GrBicubicEffect::GrBicubicEffect(GrTexture* texture,
142 GrTexture* texture,
143 const SkScalar coefficients[16], 140 const SkScalar coefficients[16],
144 const SkMatrix &matrix, 141 const SkMatrix &matrix,
145 const SkRect& domain) 142 const SkRect& domain)
146 : INHERITED(procDataManager, texture, matrix, 143 : INHERITED(texture, matrix,
147 GrTextureParams(SkShader::kClamp_TileMode, GrTextureParams::kNone_ FilterMode)) 144 GrTextureParams(SkShader::kClamp_TileMode, GrTextureParams::kNone_ FilterMode))
148 , fDomain(domain, GrTextureDomain::kClamp_Mode) { 145 , fDomain(domain, GrTextureDomain::kClamp_Mode) {
149 this->initClassID<GrBicubicEffect>(); 146 this->initClassID<GrBicubicEffect>();
150 convert_row_major_scalar_coeffs_to_column_major_floats(fCoefficients, coeffi cients); 147 convert_row_major_scalar_coeffs_to_column_major_floats(fCoefficients, coeffi cients);
151 } 148 }
152 149
153 GrBicubicEffect::~GrBicubicEffect() { 150 GrBicubicEffect::~GrBicubicEffect() {
154 } 151 }
155 152
156 void GrBicubicEffect::onGetGLProcessorKey(const GrGLSLCaps& caps, 153 void GrBicubicEffect::onGetGLProcessorKey(const GrGLSLCaps& caps,
(...skipping 18 matching lines...) Expand all
175 172
176 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrBicubicEffect); 173 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrBicubicEffect);
177 174
178 const GrFragmentProcessor* GrBicubicEffect::TestCreate(GrProcessorTestData* d) { 175 const GrFragmentProcessor* GrBicubicEffect::TestCreate(GrProcessorTestData* d) {
179 int texIdx = d->fRandom->nextBool() ? GrProcessorUnitTest::kSkiaPMTextureIdx : 176 int texIdx = d->fRandom->nextBool() ? GrProcessorUnitTest::kSkiaPMTextureIdx :
180 GrProcessorUnitTest::kAlphaTextureIdx; 177 GrProcessorUnitTest::kAlphaTextureIdx;
181 SkScalar coefficients[16]; 178 SkScalar coefficients[16];
182 for (int i = 0; i < 16; i++) { 179 for (int i = 0; i < 16; i++) {
183 coefficients[i] = d->fRandom->nextSScalar1(); 180 coefficients[i] = d->fRandom->nextSScalar1();
184 } 181 }
185 return GrBicubicEffect::Create(d->fProcDataManager, d->fTextures[texIdx], co efficients); 182 return GrBicubicEffect::Create(d->fTextures[texIdx], coefficients);
186 } 183 }
187 184
188 ////////////////////////////////////////////////////////////////////////////// 185 //////////////////////////////////////////////////////////////////////////////
189 186
190 bool GrBicubicEffect::ShouldUseBicubic(const SkMatrix& matrix, 187 bool GrBicubicEffect::ShouldUseBicubic(const SkMatrix& matrix,
191 GrTextureParams::FilterMode* filterMode) { 188 GrTextureParams::FilterMode* filterMode) {
192 if (matrix.isIdentity()) { 189 if (matrix.isIdentity()) {
193 *filterMode = GrTextureParams::kNone_FilterMode; 190 *filterMode = GrTextureParams::kNone_FilterMode;
194 return false; 191 return false;
195 } 192 }
(...skipping 14 matching lines...) Expand all
210 // Use bilerp to handle rotation or fractional translation. 207 // Use bilerp to handle rotation or fractional translation.
211 *filterMode = GrTextureParams::kBilerp_FilterMode; 208 *filterMode = GrTextureParams::kBilerp_FilterMode;
212 } 209 }
213 return false; 210 return false;
214 } 211 }
215 // When we use the bicubic filtering effect each sample is read from the tex ture using 212 // When we use the bicubic filtering effect each sample is read from the tex ture using
216 // nearest neighbor sampling. 213 // nearest neighbor sampling.
217 *filterMode = GrTextureParams::kNone_FilterMode; 214 *filterMode = GrTextureParams::kNone_FilterMode;
218 return true; 215 return true;
219 } 216 }
OLDNEW
« no previous file with comments | « src/gpu/effects/GrBicubicEffect.h ('k') | src/gpu/effects/GrConfigConversionEffect.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698