diff options
author | 2017-08-17 15:58:06 -0400 | |
---|---|---|
committer | 2017-08-18 12:47:28 +0000 | |
commit | 3fd295550f8c4fecd4bc61ce916738d49310eb67 (patch) | |
tree | 551160c13d73e996e8f624f21d6f9ba94ca711dd /tools | |
parent | cc4221be586a00d5190e765ebdb6c5e5731eefa9 (diff) |
Add GrTextureOp and use to implement SkGpuDevice::drawImage[Rect]() when possible
This op draws a texture rectangle in src over blending with no edge antialiasing. It less powerful than NonAAFillRectOp/GrPaint but has less CPU overhead.
Change-Id: Ia6107bb67c1c2a83de14c665aff64b0de2750fba
Reviewed-on: https://skia-review.googlesource.com/33802
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/gpu/GrTest.cpp | 44 |
1 files changed, 23 insertions, 21 deletions
diff --git a/tools/gpu/GrTest.cpp b/tools/gpu/GrTest.cpp index c5af01e0df..57ff77e5e7 100644 --- a/tools/gpu/GrTest.cpp +++ b/tools/gpu/GrTest.cpp @@ -316,32 +316,34 @@ DRAW_OP_TEST_EXTERN(SmallPathOp); DRAW_OP_TEST_EXTERN(RegionOp); DRAW_OP_TEST_EXTERN(RRectOp); DRAW_OP_TEST_EXTERN(TesselatingPathOp); +DRAW_OP_TEST_EXTERN(TextureOp); void GrDrawRandomOp(SkRandom* random, GrRenderTargetContext* renderTargetContext, GrPaint&& paint) { GrContext* context = renderTargetContext->surfPriv().getContext(); using MakeDrawOpFn = std::unique_ptr<GrDrawOp>(GrPaint&&, SkRandom*, GrContext*, GrFSAAType); static constexpr MakeDrawOpFn* gFactories[] = { - DRAW_OP_TEST_ENTRY(AAConvexPathOp), - DRAW_OP_TEST_ENTRY(AAFillRectOp), - DRAW_OP_TEST_ENTRY(AAFlatteningConvexPathOp), - DRAW_OP_TEST_ENTRY(AAHairlineOp), - DRAW_OP_TEST_ENTRY(AAStrokeRectOp), - DRAW_OP_TEST_ENTRY(CircleOp), - DRAW_OP_TEST_ENTRY(DashOp), - DRAW_OP_TEST_ENTRY(DefaultPathOp), - DRAW_OP_TEST_ENTRY(DIEllipseOp), - DRAW_OP_TEST_ENTRY(EllipseOp), - DRAW_OP_TEST_ENTRY(GrAtlasTextOp), - DRAW_OP_TEST_ENTRY(GrDrawAtlasOp), - DRAW_OP_TEST_ENTRY(GrDrawVerticesOp), - DRAW_OP_TEST_ENTRY(NonAAFillRectOp), - DRAW_OP_TEST_ENTRY(NonAALatticeOp), - DRAW_OP_TEST_ENTRY(NonAAStrokeRectOp), - DRAW_OP_TEST_ENTRY(ShadowRRectOp), - DRAW_OP_TEST_ENTRY(SmallPathOp), - DRAW_OP_TEST_ENTRY(RegionOp), - DRAW_OP_TEST_ENTRY(RRectOp), - DRAW_OP_TEST_ENTRY(TesselatingPathOp), + DRAW_OP_TEST_ENTRY(AAConvexPathOp), + DRAW_OP_TEST_ENTRY(AAFillRectOp), + DRAW_OP_TEST_ENTRY(AAFlatteningConvexPathOp), + DRAW_OP_TEST_ENTRY(AAHairlineOp), + DRAW_OP_TEST_ENTRY(AAStrokeRectOp), + DRAW_OP_TEST_ENTRY(CircleOp), + DRAW_OP_TEST_ENTRY(DashOp), + DRAW_OP_TEST_ENTRY(DefaultPathOp), + DRAW_OP_TEST_ENTRY(DIEllipseOp), + DRAW_OP_TEST_ENTRY(EllipseOp), + DRAW_OP_TEST_ENTRY(GrAtlasTextOp), + DRAW_OP_TEST_ENTRY(GrDrawAtlasOp), + DRAW_OP_TEST_ENTRY(GrDrawVerticesOp), + DRAW_OP_TEST_ENTRY(NonAAFillRectOp), + DRAW_OP_TEST_ENTRY(NonAALatticeOp), + DRAW_OP_TEST_ENTRY(NonAAStrokeRectOp), + DRAW_OP_TEST_ENTRY(ShadowRRectOp), + DRAW_OP_TEST_ENTRY(SmallPathOp), + DRAW_OP_TEST_ENTRY(RegionOp), + DRAW_OP_TEST_ENTRY(RRectOp), + DRAW_OP_TEST_ENTRY(TesselatingPathOp), + DRAW_OP_TEST_ENTRY(TextureOp), }; static constexpr size_t kTotal = SK_ARRAY_COUNT(gFactories); |