OLD | NEW |
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 |
11 #include "SkTypes.h" | 11 #include "SkTypes.h" |
12 | 12 |
13 #if SK_SUPPORT_GPU && SK_ALLOW_STATIC_GLOBAL_INITIALIZERS | 13 #if SK_SUPPORT_GPU && SK_ALLOW_STATIC_GLOBAL_INITIALIZERS |
14 | 14 |
15 #include "GrAutoLocaleSetter.h" | 15 #include "GrAutoLocaleSetter.h" |
16 #include "GrBatchTest.h" | 16 #include "GrBatchTest.h" |
17 #include "GrContextFactory.h" | 17 #include "GrContextFactory.h" |
| 18 #include "GrDrawContext.h" |
18 #include "GrDrawingManager.h" | 19 #include "GrDrawingManager.h" |
19 #include "GrInvariantOutput.h" | 20 #include "GrInvariantOutput.h" |
20 #include "GrPipeline.h" | 21 #include "GrPipeline.h" |
21 #include "GrResourceProvider.h" | 22 #include "GrResourceProvider.h" |
22 #include "GrTest.h" | 23 #include "GrTest.h" |
23 #include "GrXferProcessor.h" | 24 #include "GrXferProcessor.h" |
24 #include "SkChecksum.h" | 25 #include "SkChecksum.h" |
25 #include "SkRandom.h" | 26 #include "SkRandom.h" |
26 #include "Test.h" | 27 #include "Test.h" |
27 | 28 |
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
349 | 350 |
350 SkAutoTUnref<GrDrawBatch> batch(GrRandomDrawBatch(&random, context)); | 351 SkAutoTUnref<GrDrawBatch> batch(GrRandomDrawBatch(&random, context)); |
351 SkASSERT(batch); | 352 SkASSERT(batch); |
352 | 353 |
353 GrProcessorTestData ptd(&random, context, context->caps(), rt, dummyText
ures); | 354 GrProcessorTestData ptd(&random, context, context->caps(), rt, dummyText
ures); |
354 set_random_color_coverage_stages(&pipelineBuilder, &ptd, maxStages); | 355 set_random_color_coverage_stages(&pipelineBuilder, &ptd, maxStages); |
355 set_random_xpf(&pipelineBuilder, &ptd); | 356 set_random_xpf(&pipelineBuilder, &ptd); |
356 set_random_state(&pipelineBuilder, &random); | 357 set_random_state(&pipelineBuilder, &random); |
357 set_random_stencil(&pipelineBuilder, &random); | 358 set_random_stencil(&pipelineBuilder, &random); |
358 | 359 |
359 GrTestTarget tt; | 360 SkAutoTUnref<GrDrawContext> drawContext(context->drawContext(rt)); |
360 context->getTestTarget(&tt, rt); | 361 if (!drawContext) { |
| 362 SkDebugf("Could not allocate drawContext"); |
| 363 return false; |
| 364 } |
361 | 365 |
362 tt.target()->drawBatch(pipelineBuilder, batch); | 366 drawContext->internal_drawBatch(pipelineBuilder, batch); |
363 } | 367 } |
364 // Flush everything, test passes if flush is successful(ie, no asserts are h
it, no crashes) | 368 // Flush everything, test passes if flush is successful(ie, no asserts are h
it, no crashes) |
365 drawingManager->flush(); | 369 drawingManager->flush(); |
366 | 370 |
367 // Validate that GrFPs work correctly without an input. | 371 // Validate that GrFPs work correctly without an input. |
368 GrSurfaceDesc rtDesc; | 372 GrSurfaceDesc rtDesc; |
369 rtDesc.fWidth = kRenderTargetWidth; | 373 rtDesc.fWidth = kRenderTargetWidth; |
370 rtDesc.fHeight = kRenderTargetHeight; | 374 rtDesc.fHeight = kRenderTargetHeight; |
371 rtDesc.fFlags = kRenderTarget_GrSurfaceFlag; | 375 rtDesc.fFlags = kRenderTarget_GrSurfaceFlag; |
372 rtDesc.fConfig = kRGBA_8888_GrPixelConfig; | 376 rtDesc.fConfig = kRGBA_8888_GrPixelConfig; |
(...skipping 10 matching lines...) Expand all Loading... |
383 builder.setXPFactory(GrPorterDuffXPFactory::Create(SkXfermode::kSrc_
Mode))->unref(); | 387 builder.setXPFactory(GrPorterDuffXPFactory::Create(SkXfermode::kSrc_
Mode))->unref(); |
384 builder.setRenderTarget(rt); | 388 builder.setRenderTarget(rt); |
385 builder.setClip(clip); | 389 builder.setClip(clip); |
386 | 390 |
387 SkAutoTUnref<const GrFragmentProcessor> fp( | 391 SkAutoTUnref<const GrFragmentProcessor> fp( |
388 GrProcessorTestFactory<GrFragmentProcessor>::CreateIdx(i, &ptd))
; | 392 GrProcessorTestFactory<GrFragmentProcessor>::CreateIdx(i, &ptd))
; |
389 SkAutoTUnref<const GrFragmentProcessor> blockFP( | 393 SkAutoTUnref<const GrFragmentProcessor> blockFP( |
390 BlockInputFragmentProcessor::Create(fp)); | 394 BlockInputFragmentProcessor::Create(fp)); |
391 builder.addColorFragmentProcessor(blockFP); | 395 builder.addColorFragmentProcessor(blockFP); |
392 | 396 |
393 GrTestTarget tt; | 397 SkAutoTUnref<GrDrawContext> drawContext(context->drawContext(rt)); |
394 context->getTestTarget(&tt, rt); | 398 if (!drawContext) { |
| 399 SkDebugf("Could not allocate a drawcontext"); |
| 400 return false; |
| 401 } |
395 | 402 |
396 tt.target()->drawBatch(builder, batch); | 403 drawContext->internal_drawBatch(builder, batch); |
397 drawingManager->flush(); | 404 drawingManager->flush(); |
398 } | 405 } |
399 } | 406 } |
400 | 407 |
401 return true; | 408 return true; |
402 } | 409 } |
403 | 410 |
404 static int get_glprograms_max_stages(GrContext* context) { | 411 static int get_glprograms_max_stages(GrContext* context) { |
405 GrGLGpu* gpu = static_cast<GrGLGpu*>(context->getGpu()); | 412 GrGLGpu* gpu = static_cast<GrGLGpu*>(context->getGpu()); |
406 /* | 413 /* |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
452 GrContextOptions opts; | 459 GrContextOptions opts; |
453 opts.fSuppressPrints = true; | 460 opts.fSuppressPrints = true; |
454 GrContextFactory debugFactory(opts); | 461 GrContextFactory debugFactory(opts); |
455 skiatest::RunWithGPUTestContexts(test_glprograms_native, skiatest::kNative_G
PUTestContexts, | 462 skiatest::RunWithGPUTestContexts(test_glprograms_native, skiatest::kNative_G
PUTestContexts, |
456 reporter, &debugFactory); | 463 reporter, &debugFactory); |
457 skiatest::RunWithGPUTestContexts(test_glprograms_other_contexts, | 464 skiatest::RunWithGPUTestContexts(test_glprograms_other_contexts, |
458 skiatest::kOther_GPUTestContexts, reporter,
&debugFactory); | 465 skiatest::kOther_GPUTestContexts, reporter,
&debugFactory); |
459 } | 466 } |
460 | 467 |
461 #endif | 468 #endif |
OLD | NEW |