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

Side by Side Diff: tests/GLProgramsTest.cpp

Issue 543623004: Removing vertex attrib indices (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: cleanup 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 unified diff | Download patch
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2011 Google Inc. 3 * Copyright 2011 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 8
9 // This is a GPU-backend specific test. It relies on static intializers to work 9 // This is a GPU-backend specific test. It relies on static intializers to work
10 10
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 static const int stop = -1; 190 static const int stop = -1;
191 if (t == stop) { 191 if (t == stop) {
192 int breakpointhere = 9; 192 int breakpointhere = 9;
193 } 193 }
194 #endif 194 #endif
195 195
196 GrGLProgramDesc pdesc; 196 GrGLProgramDesc pdesc;
197 197
198 int currAttribIndex = 1; // we need to always leave room for position 198 int currAttribIndex = 1; // we need to always leave room for position
199 int currTextureCoordSet = 0; 199 int currTextureCoordSet = 0;
200 int attribIndices[2] = { 0, 0 };
201 GrTexture* dummyTextures[] = {dummyTexture1.get(), dummyTexture2.get()}; 200 GrTexture* dummyTextures[] = {dummyTexture1.get(), dummyTexture2.get()};
202 201
203 int numStages = random.nextULessThan(maxStages + 1); 202 int numStages = random.nextULessThan(maxStages + 1);
204 int numColorStages = random.nextULessThan(numStages + 1); 203 int numColorStages = random.nextULessThan(numStages + 1);
205 int numCoverageStages = numStages - numColorStages; 204 int numCoverageStages = numStages - numColorStages;
206 205
207 SkAutoSTMalloc<8, const GrEffectStage*> stages(numStages); 206 SkAutoSTMalloc<8, const GrEffectStage*> stages(numStages);
208 207
209 bool useFixedFunctionPathRendering = this->glCaps().pathRenderingSupport () && 208 bool useFixedFunctionPathRendering = this->glCaps().pathRenderingSupport () &&
210 this->glPathRendering()->texturingMode() == GrGLPathRendering::Fixed Function_TexturingMode && 209 this->glPathRendering()->texturingMode() == GrGLPathRendering::Fixed Function_TexturingMode &&
211 random.nextBool(); 210 random.nextBool();
212 211
213 SkAutoTDelete<GrEffectStage> geometryProcessor; 212 SkAutoTDelete<GrEffectStage> geometryProcessor;
214 bool hasGeometryProcessor = useFixedFunctionPathRendering ? false : rand om.nextBool(); 213 /*bool hasGeometryProcessor = useFixedFunctionPathRendering ? false : ra ndom.nextBool();
215 if (hasGeometryProcessor) { 214 if (hasGeometryProcessor) {
216 while (true) { 215 while (true) {
217 SkAutoTUnref<const GrEffect> effect(GrEffectTestFactory::CreateS tage( 216 SkAutoTUnref<const GrEffect> effect(GrEffectTestFactory::CreateS tage(
218 &random, 217 &random,
219 this->getContext(), 218 this->getContext(),
220 *this->caps(), 219 *this->caps(),
221 dummyTextures)); 220 dummyTextures));
222 SkASSERT(effect); 221 SkASSERT(effect);
223 222
224 // Only geometryProcessor can use vertex shader 223 // Only geometryProcessor can use vertex shader
225 if (!effect->requiresVertexShader()) { 224 if (!effect->requiresVertexShader()) {
226 continue; 225 continue;
227 } 226 }
228 227
229 int numAttribs = effect->numVertexAttribs();
230 for (int i = 0; i < numAttribs; ++i) {
231 attribIndices[i] = currAttribIndex++;
232 }
233 GrEffectStage* stage = SkNEW_ARGS(GrEffectStage, 228 GrEffectStage* stage = SkNEW_ARGS(GrEffectStage,
234 (effect.get(), attribIndices[0 ], attribIndices[1])); 229 (effect.get()));
235 geometryProcessor.reset(stage); 230 geometryProcessor.reset(stage);
236 break; 231 break;
237 } 232 }
238 } 233 }*/
239 for (int s = 0; s < numStages;) { 234 for (int s = 0; s < numStages;) {
240 SkAutoTUnref<const GrEffect> effect(GrEffectTestFactory::CreateStage ( 235 SkAutoTUnref<const GrEffect> effect(GrEffectTestFactory::CreateStage (
241 &ran dom, 236 &ran dom,
242 this ->getContext(), 237 this ->getContext(),
243 *thi s->caps(), 238 *thi s->caps(),
244 dumm yTextures)); 239 dumm yTextures));
245 SkASSERT(effect); 240 SkASSERT(effect);
246 241
247 // Only geometryProcessor can use vertex shader 242 // Only geometryProcessor can use vertex shader
248 if (effect->requiresVertexShader()) { 243 if (effect->requiresVertexShader()) {
249 continue; 244 continue;
250 } 245 }
251 246
252 // If adding this effect would exceed the max texture coord set coun t then generate a 247 // If adding this effect would exceed the max texture coord set coun t then generate a
253 // new random effect. 248 // new random effect.
254 if (useFixedFunctionPathRendering) { 249 if (useFixedFunctionPathRendering) {
255 int numTransforms = effect->numTransforms(); 250 int numTransforms = effect->numTransforms();
256 if (currTextureCoordSet + numTransforms > this->glCaps().maxFixe dFunctionTextureCoords()) { 251 if (currTextureCoordSet + numTransforms > this->glCaps().maxFixe dFunctionTextureCoords()) {
257 continue; 252 continue;
258 } 253 }
259 currTextureCoordSet += numTransforms; 254 currTextureCoordSet += numTransforms;
260 } 255 }
261 GrEffectStage* stage = SkNEW_ARGS(GrEffectStage, 256 GrEffectStage* stage = SkNEW_ARGS(GrEffectStage,
262 (effect.get(), attribIndices[0], a ttribIndices[1])); 257 (effect.get()));
263 258
264 stages[s] = stage; 259 stages[s] = stage;
265 ++s; 260 ++s;
266 } 261 }
267 const GrTexture* dstTexture = random.nextBool() ? dummyTextures[0] : dum myTextures[1]; 262 const GrTexture* dstTexture = random.nextBool() ? dummyTextures[0] : dum myTextures[1];
268 if (!pdesc.setRandom(&random, 263 if (!pdesc.setRandom(&random,
269 this, 264 this,
270 dummyTextures[0]->asRenderTarget(), 265 dummyTextures[0]->asRenderTarget(),
271 dstTexture, 266 dstTexture,
272 geometryProcessor.get(), 267 geometryProcessor.get(),
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 SkRect::MakeWH(SK_Scalar1, SK_Scalar1), SK_Scalar1)); 323 SkRect::MakeWH(SK_Scalar1, SK_Scalar1), SK_Scalar1));
329 GrConfigConversionEffect::Create(NULL, 324 GrConfigConversionEffect::Create(NULL,
330 false, 325 false,
331 GrConfigConversionEffect::kNone_PMConversio n, 326 GrConfigConversionEffect::kNone_PMConversio n,
332 SkMatrix::I()); 327 SkMatrix::I());
333 SkScalar matrix[20]; 328 SkScalar matrix[20];
334 SkAutoTUnref<SkColorMatrixFilter> cmf(SkColorMatrixFilter::Create(matrix)); 329 SkAutoTUnref<SkColorMatrixFilter> cmf(SkColorMatrixFilter::Create(matrix));
335 } 330 }
336 331
337 #endif 332 #endif
OLDNEW
« include/gpu/GrShaderVar.h ('K') | « src/gpu/gl/builders/GrGLVertexShaderBuilder.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698