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

Side by Side Diff: src/gpu/SkGpuDevice.cpp

Issue 1472333003: Clean up Ganesh path render a little bit (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Ooops Created 5 years 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
« no previous file with comments | « src/gpu/GrDrawContext.cpp ('k') | src/gpu/SkGpuDevice_drawTexture.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2011 Google Inc. 2 * Copyright 2011 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 "SkGpuDevice.h" 8 #include "SkGpuDevice.h"
9 9
10 #include "GrBlurUtils.h" 10 #include "GrBlurUtils.h"
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 nullptr, 449 nullptr,
450 nullptr, 450 nullptr,
451 nullptr, 451 nullptr,
452 0); 452 0);
453 } 453 }
454 454
455 /////////////////////////////////////////////////////////////////////////////// 455 ///////////////////////////////////////////////////////////////////////////////
456 456
457 void SkGpuDevice::drawRect(const SkDraw& draw, const SkRect& rect, const SkPaint & paint) { 457 void SkGpuDevice::drawRect(const SkDraw& draw, const SkRect& rect, const SkPaint & paint) {
458 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice::drawRect", fContext); 458 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice::drawRect", fContext);
459
460 CHECK_FOR_ANNOTATION(paint); 459 CHECK_FOR_ANNOTATION(paint);
461 CHECK_SHOULD_DRAW(draw); 460 CHECK_SHOULD_DRAW(draw);
462 461
463 bool doStroke = paint.getStyle() != SkPaint::kFill_Style; 462 bool doStroke = paint.getStyle() != SkPaint::kFill_Style;
464 SkScalar width = paint.getStrokeWidth(); 463 SkScalar width = paint.getStrokeWidth();
465 464
466 /* 465 /*
467 We have special code for hairline strokes, miter-strokes, bevel-stroke 466 We have special code for hairline strokes, miter-strokes, bevel-stroke
468 and fills. Anything else we just call our path code. 467 and fills. Anything else we just call our path code.
469 */ 468 */
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
562 return; 561 return;
563 } 562 }
564 563
565 SkASSERT(!strokeInfo.isDashed()); 564 SkASSERT(!strokeInfo.isDashed());
566 565
567 fDrawContext->drawRRect(fClip, grPaint, *draw.fMatrix, rect, strokeInfo); 566 fDrawContext->drawRRect(fClip, grPaint, *draw.fMatrix, rect, strokeInfo);
568 } 567 }
569 568
570 void SkGpuDevice::drawDRRect(const SkDraw& draw, const SkRRect& outer, 569 void SkGpuDevice::drawDRRect(const SkDraw& draw, const SkRRect& outer,
571 const SkRRect& inner, const SkPaint& paint) { 570 const SkRRect& inner, const SkPaint& paint) {
571 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice::drawDRRect", fContext);
572 CHECK_FOR_ANNOTATION(paint);
573 CHECK_SHOULD_DRAW(draw);
574
572 SkStrokeRec stroke(paint); 575 SkStrokeRec stroke(paint);
573 if (stroke.isFillStyle()) {
574 576
575 CHECK_FOR_ANNOTATION(paint); 577 if (stroke.isFillStyle() && !paint.getMaskFilter() && !paint.getPathEffect() ) {
576 CHECK_SHOULD_DRAW(draw);
577
578 GrPaint grPaint; 578 GrPaint grPaint;
579 if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix, &grPaint)) { 579 if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix, &grPaint)) {
580 return; 580 return;
581 } 581 }
582 582
583 if (nullptr == paint.getMaskFilter() && nullptr == paint.getPathEffect() ) { 583 fDrawContext->drawDRRect(fClip, grPaint, *draw.fMatrix, outer, inner);
584 fDrawContext->drawDRRect(fClip, grPaint, *draw.fMatrix, outer, inner ); 584 return;
585 return;
586 }
587 } 585 }
588 586
589 SkPath path; 587 SkPath path;
590 path.setIsVolatile(true); 588 path.setIsVolatile(true);
591 path.addRRect(outer); 589 path.addRRect(outer);
592 path.addRRect(inner); 590 path.addRRect(inner);
593 path.setFillType(SkPath::kEvenOdd_FillType); 591 path.setFillType(SkPath::kEvenOdd_FillType);
594 592
595 this->drawPath(draw, path, paint, nullptr, true); 593 GrBlurUtils::drawPathWithMaskFilter(fContext, fDrawContext, fRenderTarget,
594 fClip, path, paint,
595 *draw.fMatrix, nullptr,
596 draw.fClip->getBounds(), true);
596 } 597 }
597 598
598 599
599 ///////////////////////////////////////////////////////////////////////////// 600 /////////////////////////////////////////////////////////////////////////////
600 601
601 void SkGpuDevice::drawOval(const SkDraw& draw, const SkRect& oval, const SkPaint & paint) { 602 void SkGpuDevice::drawOval(const SkDraw& draw, const SkRect& oval, const SkPaint & paint) {
602 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice::drawOval", fContext); 603 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice::drawOval", fContext);
603 CHECK_FOR_ANNOTATION(paint); 604 CHECK_FOR_ANNOTATION(paint);
604 CHECK_SHOULD_DRAW(draw); 605 CHECK_SHOULD_DRAW(draw);
605 606
(...skipping 1261 matching lines...) Expand 10 before | Expand all | Expand 10 after
1867 return SkImageFilter::Cache::Create(kDefaultImageFilterCacheSize); 1868 return SkImageFilter::Cache::Create(kDefaultImageFilterCacheSize);
1868 } 1869 }
1869 1870
1870 SkImageFilter::Cache* SkGpuDevice::getImageFilterCache() { 1871 SkImageFilter::Cache* SkGpuDevice::getImageFilterCache() {
1871 // We always return a transient cache, so it is freed after each 1872 // We always return a transient cache, so it is freed after each
1872 // filter traversal. 1873 // filter traversal.
1873 return SkGpuDevice::NewImageFilterCache(); 1874 return SkGpuDevice::NewImageFilterCache();
1874 } 1875 }
1875 1876
1876 #endif 1877 #endif
OLDNEW
« no previous file with comments | « src/gpu/GrDrawContext.cpp ('k') | src/gpu/SkGpuDevice_drawTexture.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698