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 GrDrawContext* drawContext = context->drawContext(rt); |
360 context->getTestTarget(&tt, rt); | |
361 | 361 |
362 tt.target()->drawBatch(pipelineBuilder, batch); | 362 drawContext->internal_drawBatch(&pipelineBuilder, batch); |
363 } | 363 } |
364 // Flush everything, test passes if flush is successful(ie, no asserts are h
it, no crashes) | 364 // Flush everything, test passes if flush is successful(ie, no asserts are h
it, no crashes) |
365 drawingManager->flush(); | 365 drawingManager->flush(); |
366 | 366 |
367 // Validate that GrFPs work correctly without an input. | 367 // Validate that GrFPs work correctly without an input. |
368 GrSurfaceDesc rtDesc; | 368 GrSurfaceDesc rtDesc; |
369 rtDesc.fWidth = kRenderTargetWidth; | 369 rtDesc.fWidth = kRenderTargetWidth; |
370 rtDesc.fHeight = kRenderTargetHeight; | 370 rtDesc.fHeight = kRenderTargetHeight; |
371 rtDesc.fFlags = kRenderTarget_GrSurfaceFlag; | 371 rtDesc.fFlags = kRenderTarget_GrSurfaceFlag; |
372 rtDesc.fConfig = kRGBA_8888_GrPixelConfig; | 372 rtDesc.fConfig = kRGBA_8888_GrPixelConfig; |
(...skipping 10 matching lines...) Expand all Loading... |
383 builder.setXPFactory(GrPorterDuffXPFactory::Create(SkXfermode::kSrc_
Mode))->unref(); | 383 builder.setXPFactory(GrPorterDuffXPFactory::Create(SkXfermode::kSrc_
Mode))->unref(); |
384 builder.setRenderTarget(rt); | 384 builder.setRenderTarget(rt); |
385 builder.setClip(clip); | 385 builder.setClip(clip); |
386 | 386 |
387 SkAutoTUnref<const GrFragmentProcessor> fp( | 387 SkAutoTUnref<const GrFragmentProcessor> fp( |
388 GrProcessorTestFactory<GrFragmentProcessor>::CreateIdx(i, &ptd))
; | 388 GrProcessorTestFactory<GrFragmentProcessor>::CreateIdx(i, &ptd))
; |
389 SkAutoTUnref<const GrFragmentProcessor> blockFP( | 389 SkAutoTUnref<const GrFragmentProcessor> blockFP( |
390 BlockInputFragmentProcessor::Create(fp)); | 390 BlockInputFragmentProcessor::Create(fp)); |
391 builder.addColorFragmentProcessor(blockFP); | 391 builder.addColorFragmentProcessor(blockFP); |
392 | 392 |
393 GrTestTarget tt; | 393 GrDrawContext* drawContext = context->drawContext(rt); |
394 context->getTestTarget(&tt, rt); | 394 drawContext->internal_drawBatch(&builder, batch); |
395 | |
396 tt.target()->drawBatch(builder, batch); | |
397 drawingManager->flush(); | 395 drawingManager->flush(); |
398 } | 396 } |
399 } | 397 } |
400 | 398 |
401 return true; | 399 return true; |
402 } | 400 } |
403 | 401 |
404 static int get_glprograms_max_stages(GrContext* context) { | 402 static int get_glprograms_max_stages(GrContext* context) { |
405 GrGLGpu* gpu = static_cast<GrGLGpu*>(context->getGpu()); | 403 GrGLGpu* gpu = static_cast<GrGLGpu*>(context->getGpu()); |
406 /* | 404 /* |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
452 GrContextOptions opts; | 450 GrContextOptions opts; |
453 opts.fSuppressPrints = true; | 451 opts.fSuppressPrints = true; |
454 GrContextFactory debugFactory(opts); | 452 GrContextFactory debugFactory(opts); |
455 skiatest::RunWithGPUTestContexts(test_glprograms_native, skiatest::kNative_G
PUTestContexts, | 453 skiatest::RunWithGPUTestContexts(test_glprograms_native, skiatest::kNative_G
PUTestContexts, |
456 reporter, &debugFactory); | 454 reporter, &debugFactory); |
457 skiatest::RunWithGPUTestContexts(test_glprograms_other_contexts, | 455 skiatest::RunWithGPUTestContexts(test_glprograms_other_contexts, |
458 skiatest::kOther_GPUTestContexts, reporter,
&debugFactory); | 456 skiatest::kOther_GPUTestContexts, reporter,
&debugFactory); |
459 } | 457 } |
460 | 458 |
461 #endif | 459 #endif |
OLD | NEW |