OLD | NEW |
---|---|
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 "GrBitmapTextContext.h" | 10 #include "GrBitmapTextContext.h" |
(...skipping 808 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
819 // at this point we're done with prePathMatrix | 819 // at this point we're done with prePathMatrix |
820 SkDEBUGCODE(prePathMatrix = (const SkMatrix*)0x50FF8001;) | 820 SkDEBUGCODE(prePathMatrix = (const SkMatrix*)0x50FF8001;) |
821 | 821 |
822 GrPaint grPaint; | 822 GrPaint grPaint; |
823 if (!SkPaint2GrPaint(this->context(), fRenderTarget, paint, viewMatrix, true , &grPaint)) { | 823 if (!SkPaint2GrPaint(this->context(), fRenderTarget, paint, viewMatrix, true , &grPaint)) { |
824 return; | 824 return; |
825 } | 825 } |
826 | 826 |
827 const SkRect* cullRect = NULL; // TODO: what is our bounds? | 827 const SkRect* cullRect = NULL; // TODO: what is our bounds? |
828 SkStrokeRec* strokePtr = strokeInfo.getStrokeRecPtr(); | 828 SkStrokeRec* strokePtr = strokeInfo.getStrokeRecPtr(); |
829 if (pathEffect && pathEffect->filterPath(effectPath.init(), *pathPtr, stroke Ptr, | 829 if (!strokeInfo.isDashed() && pathEffect && pathEffect->filterPath(effectPat h.init(), *pathPtr, |
830 cullRect)) { | 830 strokePtr , cullRect)) { |
831 pathPtr = effectPath.get(); | 831 pathPtr = effectPath.get(); |
832 pathIsMutable = true; | 832 pathIsMutable = true; |
833 strokeInfo.removeDash(); | |
834 } | 833 } |
835 | 834 |
836 const SkStrokeRec& stroke = strokeInfo.getStrokeRec(); | 835 const SkStrokeRec& stroke = strokeInfo.getStrokeRec(); |
837 if (paint.getMaskFilter()) { | 836 if (paint.getMaskFilter()) { |
838 if (!stroke.isHairlineStyle()) { | 837 if (!stroke.isHairlineStyle()) { |
839 SkPath* strokedPath = pathIsMutable ? pathPtr : tmpPath.init(); | 838 SkPath* strokedPath = pathIsMutable ? pathPtr : tmpPath.init(); |
839 if (strokeInfo.isDashed()) { | |
840 if (pathEffect->filterPath(strokedPath, *pathPtr, strokePtr, cul lRect)) { | |
841 pathPtr = strokedPath; | |
842 pathIsMutable = true; | |
843 } | |
844 strokeInfo.removeDash(); | |
845 } | |
840 if (stroke.applyToPath(strokedPath, *pathPtr)) { | 846 if (stroke.applyToPath(strokedPath, *pathPtr)) { |
egdaniel
2015/04/28 13:25:48
what happens if both these if statements trigger a
Kimmo Kinnunen
2015/04/28 14:12:30
Yeah, the intention is to first apply the dashing
egdaniel
2015/04/28 14:18:19
So if on line 838, if !pathIsMutable then strokedP
egdaniel
2015/04/28 14:20:09
oh wait I am missing a line. woops ignore all my s
| |
841 pathPtr = strokedPath; | 847 pathPtr = strokedPath; |
842 pathIsMutable = true; | 848 pathIsMutable = true; |
843 strokeInfo.setFillStyle(); | 849 strokeInfo.setFillStyle(); |
844 } | 850 } |
845 } | 851 } |
846 | 852 |
847 // avoid possibly allocating a new path in transform if we can | 853 // avoid possibly allocating a new path in transform if we can |
848 SkPath* devPathPtr = pathIsMutable ? pathPtr : tmpPath.init(); | 854 SkPath* devPathPtr = pathIsMutable ? pathPtr : tmpPath.init(); |
849 if (!pathIsMutable) { | 855 if (!pathIsMutable) { |
850 devPathPtr->setIsVolatile(true); | 856 devPathPtr->setIsVolatile(true); |
(...skipping 1182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2033 #endif | 2039 #endif |
2034 } | 2040 } |
2035 | 2041 |
2036 SkImageFilter::Cache* SkGpuDevice::getImageFilterCache() { | 2042 SkImageFilter::Cache* SkGpuDevice::getImageFilterCache() { |
2037 // We always return a transient cache, so it is freed after each | 2043 // We always return a transient cache, so it is freed after each |
2038 // filter traversal. | 2044 // filter traversal. |
2039 return SkImageFilter::Cache::Create(kDefaultImageFilterCacheSize); | 2045 return SkImageFilter::Cache::Create(kDefaultImageFilterCacheSize); |
2040 } | 2046 } |
2041 | 2047 |
2042 #endif | 2048 #endif |
OLD | NEW |