OLD | NEW |
---|---|
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 10 matching lines...) Expand all Loading... | |
21 | 21 |
22 #define ATLAS_TEXTURE_WIDTH 1024 | 22 #define ATLAS_TEXTURE_WIDTH 1024 |
23 #define ATLAS_TEXTURE_HEIGHT 1024 | 23 #define ATLAS_TEXTURE_HEIGHT 1024 |
24 | 24 |
25 #define PLOT_WIDTH 256 | 25 #define PLOT_WIDTH 256 |
26 #define PLOT_HEIGHT 256 | 26 #define PLOT_HEIGHT 256 |
27 | 27 |
28 #define NUM_PLOTS_X (ATLAS_TEXTURE_WIDTH / PLOT_WIDTH) | 28 #define NUM_PLOTS_X (ATLAS_TEXTURE_WIDTH / PLOT_WIDTH) |
29 #define NUM_PLOTS_Y (ATLAS_TEXTURE_HEIGHT / PLOT_HEIGHT) | 29 #define NUM_PLOTS_Y (ATLAS_TEXTURE_HEIGHT / PLOT_HEIGHT) |
30 | 30 |
31 #ifdef SK_DEVELOPER | |
scroggo
2014/10/20 15:27:38
This is a good change that can go in separately.
| |
31 SK_CONF_DECLARE(bool, c_DumpPathCache, "gpu.dumpPathCache", false, | 32 SK_CONF_DECLARE(bool, c_DumpPathCache, "gpu.dumpPathCache", false, |
32 "Dump the contents of the path cache before every purge."); | 33 "Dump the contents of the path cache before every purge."); |
34 #endif | |
33 | 35 |
34 //////////////////////////////////////////////////////////////////////////////// | 36 //////////////////////////////////////////////////////////////////////////////// |
35 GrAADistanceFieldPathRenderer::~GrAADistanceFieldPathRenderer() { | 37 GrAADistanceFieldPathRenderer::~GrAADistanceFieldPathRenderer() { |
36 PathDataList::Iter iter; | 38 PathDataList::Iter iter; |
37 iter.init(fPathList, PathDataList::Iter::kHead_IterStart); | 39 iter.init(fPathList, PathDataList::Iter::kHead_IterStart); |
38 PathData* pathData; | 40 PathData* pathData; |
39 while ((pathData = iter.get())) { | 41 while ((pathData = iter.get())) { |
40 iter.next(); | 42 iter.next(); |
41 fPathList.remove(pathData); | 43 fPathList.remove(pathData); |
42 SkDELETE(pathData); | 44 SkDELETE(pathData); |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
179 | 181 |
180 // if atlas full | 182 // if atlas full |
181 if (NULL == plot) { | 183 if (NULL == plot) { |
182 if (this->freeUnusedPlot()) { | 184 if (this->freeUnusedPlot()) { |
183 plot = fAtlas->addToAtlas(&fPlotUsage, width, height, dfStorage.get( ), | 185 plot = fAtlas->addToAtlas(&fPlotUsage, width, height, dfStorage.get( ), |
184 &atlasLocation); | 186 &atlasLocation); |
185 if (plot) { | 187 if (plot) { |
186 goto HAS_ATLAS; | 188 goto HAS_ATLAS; |
187 } | 189 } |
188 } | 190 } |
189 | 191 |
192 #ifdef SK_DEVELOPER | |
190 if (c_DumpPathCache) { | 193 if (c_DumpPathCache) { |
191 #ifdef SK_DEVELOPER | |
192 GrTexture* texture = fAtlas->getTexture(); | 194 GrTexture* texture = fAtlas->getTexture(); |
193 texture->surfacePriv().savePixels("pathcache.png"); | 195 SkSaveGrSurfacePixelsAsPNG(texture, "pathcache.png"); |
196 } | |
194 #endif | 197 #endif |
195 } | |
196 | 198 |
197 // before we purge the cache, we must flush any accumulated draws | 199 // before we purge the cache, we must flush any accumulated draws |
198 fContext->flush(); | 200 fContext->flush(); |
199 | 201 |
200 if (this->freeUnusedPlot()) { | 202 if (this->freeUnusedPlot()) { |
201 plot = fAtlas->addToAtlas(&fPlotUsage, width, height, dfStorage.get( ), | 203 plot = fAtlas->addToAtlas(&fPlotUsage, width, height, dfStorage.get( ), |
202 &atlasLocation); | 204 &atlasLocation); |
203 if (plot) { | 205 if (plot) { |
204 goto HAS_ATLAS; | 206 goto HAS_ATLAS; |
205 } | 207 } |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
332 | 334 |
333 | 335 |
334 vm.mapRect(&r); | 336 vm.mapRect(&r); |
335 target->drawIndexedInstances(kTriangles_GrPrimitiveType, 1, 4, 6, &r); | 337 target->drawIndexedInstances(kTriangles_GrPrimitiveType, 1, 4, 6, &r); |
336 target->resetVertexSource(); | 338 target->resetVertexSource(); |
337 target->resetIndexSource(); | 339 target->resetIndexSource(); |
338 | 340 |
339 return true; | 341 return true; |
340 } | 342 } |
341 | 343 |
OLD | NEW |