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

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

Issue 1316123003: Style Change: SkNEW->new; SkDELETE->delete (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: 2015-08-26 (Wednesday) 15:59:00 EDT Created 5 years, 3 months 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/GrAAConvexTessellator.cpp ('k') | src/gpu/GrAAHairLinePathRenderer.h » ('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 /* 2 /*
3 * Copyright 2014 Google Inc. 3 * Copyright 2014 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 #include "GrAADistanceFieldPathRenderer.h" 9 #include "GrAADistanceFieldPathRenderer.h"
10 10
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 GrAADistanceFieldPathRenderer* dfpr = (GrAADistanceFieldPathRenderer*)pr; 46 GrAADistanceFieldPathRenderer* dfpr = (GrAADistanceFieldPathRenderer*)pr;
47 // remove any paths that use this plot 47 // remove any paths that use this plot
48 PathDataList::Iter iter; 48 PathDataList::Iter iter;
49 iter.init(dfpr->fPathList, PathDataList::Iter::kHead_IterStart); 49 iter.init(dfpr->fPathList, PathDataList::Iter::kHead_IterStart);
50 PathData* pathData; 50 PathData* pathData;
51 while ((pathData = iter.get())) { 51 while ((pathData = iter.get())) {
52 iter.next(); 52 iter.next();
53 if (id == pathData->fID) { 53 if (id == pathData->fID) {
54 dfpr->fPathCache.remove(pathData->fKey); 54 dfpr->fPathCache.remove(pathData->fKey);
55 dfpr->fPathList.remove(pathData); 55 dfpr->fPathList.remove(pathData);
56 SkDELETE(pathData); 56 delete pathData;
57 #ifdef DF_PATH_TRACKING 57 #ifdef DF_PATH_TRACKING
58 ++g_NumFreedPaths; 58 ++g_NumFreedPaths;
59 #endif 59 #endif
60 } 60 }
61 } 61 }
62 } 62 }
63 63
64 //////////////////////////////////////////////////////////////////////////////// 64 ////////////////////////////////////////////////////////////////////////////////
65 GrAADistanceFieldPathRenderer::GrAADistanceFieldPathRenderer() : fAtlas(NULL) {} 65 GrAADistanceFieldPathRenderer::GrAADistanceFieldPathRenderer() : fAtlas(NULL) {}
66 66
67 GrAADistanceFieldPathRenderer::~GrAADistanceFieldPathRenderer() { 67 GrAADistanceFieldPathRenderer::~GrAADistanceFieldPathRenderer() {
68 PathDataList::Iter iter; 68 PathDataList::Iter iter;
69 iter.init(fPathList, PathDataList::Iter::kHead_IterStart); 69 iter.init(fPathList, PathDataList::Iter::kHead_IterStart);
70 PathData* pathData; 70 PathData* pathData;
71 while ((pathData = iter.get())) { 71 while ((pathData = iter.get())) {
72 iter.next(); 72 iter.next();
73 fPathList.remove(pathData); 73 fPathList.remove(pathData);
74 SkDELETE(pathData); 74 delete pathData;
75 } 75 }
76 SkDELETE(fAtlas); 76 delete fAtlas;
77 77
78 #ifdef DF_PATH_TRACKING 78 #ifdef DF_PATH_TRACKING
79 SkDebugf("Cached paths: %d, freed paths: %d\n", g_NumCachedPaths, g_NumFreed Paths); 79 SkDebugf("Cached paths: %d, freed paths: %d\n", g_NumCachedPaths, g_NumFreed Paths);
80 #endif 80 #endif
81 } 81 }
82 82
83 //////////////////////////////////////////////////////////////////////////////// 83 ////////////////////////////////////////////////////////////////////////////////
84 bool GrAADistanceFieldPathRenderer::onCanDrawPath(const CanDrawPathArgs& args) c onst { 84 bool GrAADistanceFieldPathRenderer::onCanDrawPath(const CanDrawPathArgs& args) c onst {
85 85
86 // TODO: Support inverse fill 86 // TODO: Support inverse fill
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 struct Geometry { 118 struct Geometry {
119 Geometry(const SkStrokeRec& stroke) : fStroke(stroke) {} 119 Geometry(const SkStrokeRec& stroke) : fStroke(stroke) {}
120 SkPath fPath; 120 SkPath fPath;
121 SkStrokeRec fStroke; 121 SkStrokeRec fStroke;
122 bool fAntiAlias; 122 bool fAntiAlias;
123 PathData* fPathData; 123 PathData* fPathData;
124 }; 124 };
125 125
126 static GrDrawBatch* Create(const Geometry& geometry, GrColor color, const Sk Matrix& viewMatrix, 126 static GrDrawBatch* Create(const Geometry& geometry, GrColor color, const Sk Matrix& viewMatrix,
127 GrBatchAtlas* atlas, PathCache* pathCache, PathDa taList* pathList) { 127 GrBatchAtlas* atlas, PathCache* pathCache, PathDa taList* pathList) {
128 return SkNEW_ARGS(AADistanceFieldPathBatch, (geometry, color, viewMatrix , 128 return new AADistanceFieldPathBatch(geometry, color, viewMatrix, atlas, pathCache,
129 atlas, pathCache, pathList) ); 129 pathList);
130 } 130 }
131 131
132 const char* name() const override { return "AADistanceFieldPathBatch"; } 132 const char* name() const override { return "AADistanceFieldPathBatch"; }
133 133
134 void getInvariantOutputColor(GrInitInvariantOutput* out) const override { 134 void getInvariantOutputColor(GrInitInvariantOutput* out) const override {
135 out->setKnownFourComponents(fBatch.fColor); 135 out->setKnownFourComponents(fBatch.fColor);
136 } 136 }
137 137
138 void getInvariantOutputCoverage(GrInitInvariantOutput* out) const override { 138 void getInvariantOutputCoverage(GrInitInvariantOutput* out) const override {
139 out->setUnknownSingleComponent(); 139 out->setUnknownSingleComponent();
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 224
225 // check to see if path is cached 225 // check to see if path is cached
226 // TODO: handle stroked vs. filled version of same path 226 // TODO: handle stroked vs. filled version of same path
227 PathData::Key key = { args.fPath.getGenerationID(), desiredDimension }; 227 PathData::Key key = { args.fPath.getGenerationID(), desiredDimension };
228 args.fPathData = fPathCache->find(key); 228 args.fPathData = fPathCache->find(key);
229 if (NULL == args.fPathData || !atlas->hasID(args.fPathData->fID)) { 229 if (NULL == args.fPathData || !atlas->hasID(args.fPathData->fID)) {
230 // Remove the stale cache entry 230 // Remove the stale cache entry
231 if (args.fPathData) { 231 if (args.fPathData) {
232 fPathCache->remove(args.fPathData->fKey); 232 fPathCache->remove(args.fPathData->fKey);
233 fPathList->remove(args.fPathData); 233 fPathList->remove(args.fPathData);
234 SkDELETE(args.fPathData); 234 delete args.fPathData;
235 } 235 }
236 SkScalar scale = desiredDimension/maxDim; 236 SkScalar scale = desiredDimension/maxDim;
237 args.fPathData = SkNEW(PathData); 237 args.fPathData = new PathData;
238 if (!this->addPathToAtlas(target, 238 if (!this->addPathToAtlas(target,
239 dfProcessor, 239 dfProcessor,
240 this->pipeline(), 240 this->pipeline(),
241 &flushInfo, 241 &flushInfo,
242 atlas, 242 atlas,
243 args.fPathData, 243 args.fPathData,
244 args.fPath, 244 args.fPath,
245 args.fStroke, 245 args.fStroke,
246 args.fAntiAlias, 246 args.fAntiAlias,
247 desiredDimension, 247 desiredDimension,
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after
561 PathTestStruct() : fContextID(SK_InvalidGenID), fAtlas(NULL) {} 561 PathTestStruct() : fContextID(SK_InvalidGenID), fAtlas(NULL) {}
562 ~PathTestStruct() { this->reset(); } 562 ~PathTestStruct() { this->reset(); }
563 563
564 void reset() { 564 void reset() {
565 PathDataList::Iter iter; 565 PathDataList::Iter iter;
566 iter.init(fPathList, PathDataList::Iter::kHead_IterStart); 566 iter.init(fPathList, PathDataList::Iter::kHead_IterStart);
567 PathData* pathData; 567 PathData* pathData;
568 while ((pathData = iter.get())) { 568 while ((pathData = iter.get())) {
569 iter.next(); 569 iter.next();
570 fPathList.remove(pathData); 570 fPathList.remove(pathData);
571 SkDELETE(pathData); 571 delete pathData;
572 } 572 }
573 SkDELETE(fAtlas); 573 delete fAtlas;
574 fPathCache.reset(); 574 fPathCache.reset();
575 } 575 }
576 576
577 static void HandleEviction(GrBatchAtlas::AtlasID id, void* pr) { 577 static void HandleEviction(GrBatchAtlas::AtlasID id, void* pr) {
578 PathTestStruct* dfpr = (PathTestStruct*)pr; 578 PathTestStruct* dfpr = (PathTestStruct*)pr;
579 // remove any paths that use this plot 579 // remove any paths that use this plot
580 PathDataList::Iter iter; 580 PathDataList::Iter iter;
581 iter.init(dfpr->fPathList, PathDataList::Iter::kHead_IterStart); 581 iter.init(dfpr->fPathList, PathDataList::Iter::kHead_IterStart);
582 PathData* pathData; 582 PathData* pathData;
583 while ((pathData = iter.get())) { 583 while ((pathData = iter.get())) {
584 iter.next(); 584 iter.next();
585 if (id == pathData->fID) { 585 if (id == pathData->fID) {
586 dfpr->fPathCache.remove(pathData->fKey); 586 dfpr->fPathCache.remove(pathData->fKey);
587 dfpr->fPathList.remove(pathData); 587 dfpr->fPathList.remove(pathData);
588 SkDELETE(pathData); 588 delete pathData;
589 } 589 }
590 } 590 }
591 } 591 }
592 592
593 uint32_t fContextID; 593 uint32_t fContextID;
594 GrBatchAtlas* fAtlas; 594 GrBatchAtlas* fAtlas;
595 PathCache fPathCache; 595 PathCache fPathCache;
596 PathDataList fPathList; 596 PathDataList fPathList;
597 }; 597 };
598 598
(...skipping 18 matching lines...) Expand all
617 geometry.fPath = GrTest::TestPath(random); 617 geometry.fPath = GrTest::TestPath(random);
618 geometry.fAntiAlias = random->nextBool(); 618 geometry.fAntiAlias = random->nextBool();
619 619
620 return AADistanceFieldPathBatch::Create(geometry, color, viewMatrix, 620 return AADistanceFieldPathBatch::Create(geometry, color, viewMatrix,
621 gTestStruct.fAtlas, 621 gTestStruct.fAtlas,
622 &gTestStruct.fPathCache, 622 &gTestStruct.fPathCache,
623 &gTestStruct.fPathList); 623 &gTestStruct.fPathList);
624 } 624 }
625 625
626 #endif 626 #endif
OLDNEW
« no previous file with comments | « src/gpu/GrAAConvexTessellator.cpp ('k') | src/gpu/GrAAHairLinePathRenderer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698