| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 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 "gm.h" | 8 #include "gm.h" |
| 9 #if SK_SUPPORT_GPU | 9 #if SK_SUPPORT_GPU |
| 10 #include "GrContext.h" | 10 #include "GrContext.h" |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 55 case kEffect_Type: | 55 case kEffect_Type: |
| 56 name.append("_effect"); | 56 name.append("_effect"); |
| 57 break; | 57 break; |
| 58 } | 58 } |
| 59 return name; | 59 return name; |
| 60 } | 60 } |
| 61 | 61 |
| 62 SkISize onISize() override { return SkISize::Make(kImageWidth, kImageHeight)
; } | 62 SkISize onISize() override { return SkISize::Make(kImageWidth, kImageHeight)
; } |
| 63 | 63 |
| 64 void onDraw(SkCanvas* canvas) override { | 64 void onDraw(SkCanvas* canvas) override { |
| 65 GrContext* context = nullptr; | 65 GrDrawContext* drawContext = canvas->internal_private_accessTopLayerDraw
Context(); |
| 66 #if SK_SUPPORT_GPU | 66 if (kEffect_Type == fType && !drawContext) { |
| 67 GrRenderTarget* rt = canvas->internal_private_accessTopLayerRenderTarget
(); | |
| 68 context = rt ? rt->getContext() : nullptr; | |
| 69 sk_sp<GrDrawContext> drawContext; | |
| 70 if (kEffect_Type == fType) { | |
| 71 if (!context) { | |
| 72 skiagm::GM::DrawGpuOnlyMessage(canvas); | |
| 73 return; | |
| 74 } | |
| 75 | |
| 76 drawContext = context->drawContext(sk_ref_sp(rt)); | |
| 77 if (!drawContext) { | |
| 78 return; | |
| 79 } | |
| 80 } | |
| 81 #endif | |
| 82 if (kEffect_Type == fType && nullptr == context) { | |
| 83 skiagm::GM::DrawGpuOnlyMessage(canvas); | 67 skiagm::GM::DrawGpuOnlyMessage(canvas); |
| 84 return; | 68 return; |
| 85 } | 69 } |
| 86 | 70 |
| 87 SkPaint paint; | 71 SkPaint paint; |
| 88 if (kAA_Draw_Type == fType) { | 72 if (kAA_Draw_Type == fType) { |
| 89 paint.setAntiAlias(true); | 73 paint.setAntiAlias(true); |
| 90 } | 74 } |
| 91 | 75 |
| 92 static const SkRect kMaxTileBound = SkRect::MakeWH(SkIntToScalar(kTileX)
, | 76 static const SkRect kMaxTileBound = SkRect::MakeWH(SkIntToScalar(kTileX)
, |
| (...skipping 28 matching lines...) Expand all Loading... |
| 121 pipelineBuilder.setXPFactory( | 105 pipelineBuilder.setXPFactory( |
| 122 GrPorterDuffXPFactory::Create(SkXfermode::kSrc_Mode)
)->unref(); | 106 GrPorterDuffXPFactory::Create(SkXfermode::kSrc_Mode)
)->unref(); |
| 123 | 107 |
| 124 SkRRect rrect = fRRects[curRRect]; | 108 SkRRect rrect = fRRects[curRRect]; |
| 125 rrect.offset(SkIntToScalar(x), SkIntToScalar(y)); | 109 rrect.offset(SkIntToScalar(x), SkIntToScalar(y)); |
| 126 GrPrimitiveEdgeType edgeType = (GrPrimitiveEdgeType) et; | 110 GrPrimitiveEdgeType edgeType = (GrPrimitiveEdgeType) et; |
| 127 SkAutoTUnref<GrFragmentProcessor> fp(GrRRectEffect::Crea
te(edgeType, | 111 SkAutoTUnref<GrFragmentProcessor> fp(GrRRectEffect::Crea
te(edgeType, |
| 128
rrect)); | 112
rrect)); |
| 129 if (fp) { | 113 if (fp) { |
| 130 pipelineBuilder.addCoverageFragmentProcessor(fp); | 114 pipelineBuilder.addCoverageFragmentProcessor(fp); |
| 131 pipelineBuilder.setRenderTarget(rt); | 115 pipelineBuilder.setRenderTarget(drawContext->accessR
enderTarget()); |
| 132 | 116 |
| 133 SkRect bounds = rrect.getBounds(); | 117 SkRect bounds = rrect.getBounds(); |
| 134 bounds.outset(2.f, 2.f); | 118 bounds.outset(2.f, 2.f); |
| 135 | 119 |
| 136 SkAutoTUnref<GrDrawBatch> batch( | 120 SkAutoTUnref<GrDrawBatch> batch( |
| 137 GrRectBatchFactory::CreateNonAAFill(0xff0000
00, SkMatrix::I(), | 121 GrRectBatchFactory::CreateNonAAFill(0xff0000
00, SkMatrix::I(), |
| 138 bounds,
nullptr, nullptr)); | 122 bounds,
nullptr, nullptr)); |
| 139 drawContext->drawContextPriv().testingOnly_drawBatch
(pipelineBuilder, | 123 drawContext->drawContextPriv().testingOnly_drawBatch
(pipelineBuilder, |
| 140
batch); | 124
batch); |
| 141 } else { | 125 } else { |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 271 | 255 |
| 272 DEF_GM( return new RRectGM(RRectGM::kAA_Draw_Type); ) | 256 DEF_GM( return new RRectGM(RRectGM::kAA_Draw_Type); ) |
| 273 DEF_GM( return new RRectGM(RRectGM::kBW_Draw_Type); ) | 257 DEF_GM( return new RRectGM(RRectGM::kBW_Draw_Type); ) |
| 274 DEF_GM( return new RRectGM(RRectGM::kAA_Clip_Type); ) | 258 DEF_GM( return new RRectGM(RRectGM::kAA_Clip_Type); ) |
| 275 DEF_GM( return new RRectGM(RRectGM::kBW_Clip_Type); ) | 259 DEF_GM( return new RRectGM(RRectGM::kBW_Clip_Type); ) |
| 276 #if SK_SUPPORT_GPU | 260 #if SK_SUPPORT_GPU |
| 277 DEF_GM( return new RRectGM(RRectGM::kEffect_Type); ) | 261 DEF_GM( return new RRectGM(RRectGM::kEffect_Type); ) |
| 278 #endif | 262 #endif |
| 279 | 263 |
| 280 } | 264 } |
| OLD | NEW |