OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2011 Google Inc. | 3 * Copyright 2011 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 "GrContext.h" | 9 #include "GrContext.h" |
10 | 10 |
(...skipping 27 matching lines...) Expand all Loading... |
38 #include "GrVertices.h" | 38 #include "GrVertices.h" |
39 #include "SkDashPathPriv.h" | 39 #include "SkDashPathPriv.h" |
40 #include "SkConfig8888.h" | 40 #include "SkConfig8888.h" |
41 #include "SkGrPriv.h" | 41 #include "SkGrPriv.h" |
42 #include "SkRRect.h" | 42 #include "SkRRect.h" |
43 #include "SkStrokeRec.h" | 43 #include "SkStrokeRec.h" |
44 #include "SkSurfacePriv.h" | 44 #include "SkSurfacePriv.h" |
45 #include "SkTLazy.h" | 45 #include "SkTLazy.h" |
46 #include "SkTLS.h" | 46 #include "SkTLS.h" |
47 #include "SkTraceEvent.h" | 47 #include "SkTraceEvent.h" |
48 | 48 #include "SkTTopoSort.h" |
49 | 49 |
50 #include "batches/GrBatch.h" | 50 #include "batches/GrBatch.h" |
51 | 51 |
52 #include "effects/GrConfigConversionEffect.h" | 52 #include "effects/GrConfigConversionEffect.h" |
53 #include "effects/GrDashingEffect.h" | 53 #include "effects/GrDashingEffect.h" |
54 #include "effects/GrSingleTextureEffect.h" | 54 #include "effects/GrSingleTextureEffect.h" |
55 | 55 |
56 #define ASSERT_OWNED_RESOURCE(R) SkASSERT(!(R) || (R)->getContext() == this) | 56 #define ASSERT_OWNED_RESOURCE(R) SkASSERT(!(R) || (R)->getContext() == this) |
57 #define RETURN_IF_ABANDONED if (fDrawingManager->abandoned()) { return; } | 57 #define RETURN_IF_ABANDONED if (fDrawingManager->abandoned()) { return; } |
58 #define RETURN_FALSE_IF_ABANDONED if (fDrawingManager->abandoned()) { return fal
se; } | 58 #define RETURN_FALSE_IF_ABANDONED if (fDrawingManager->abandoned()) { return fal
se; } |
(...skipping 29 matching lines...) Expand all Loading... |
88 this->cleanup(); | 88 this->cleanup(); |
89 } | 89 } |
90 | 90 |
91 void GrDrawingManager::reset() { | 91 void GrDrawingManager::reset() { |
92 for (int i = 0; i < fDrawTargets.count(); ++i) { | 92 for (int i = 0; i < fDrawTargets.count(); ++i) { |
93 fDrawTargets[i]->reset(); | 93 fDrawTargets[i]->reset(); |
94 } | 94 } |
95 } | 95 } |
96 | 96 |
97 void GrDrawingManager::flush() { | 97 void GrDrawingManager::flush() { |
| 98 SkDEBUGCODE(bool result =) |
| 99 SkTTopoSort<GrDrawTarget, GrDrawTarget::TopoSortTraits>(
&fDrawTargets); |
| 100 SkASSERT(result); |
| 101 |
98 for (int i = 0; i < fDrawTargets.count(); ++i) { | 102 for (int i = 0; i < fDrawTargets.count(); ++i) { |
99 fDrawTargets[i]->flush(); | 103 fDrawTargets[i]->flush(); |
100 } | 104 } |
| 105 |
| 106 #ifndef ENABLE_MDB |
| 107 // When MDB is disabled we keep reusing the same drawTarget |
| 108 if (fDrawTargets.count()) { |
| 109 SkASSERT(fDrawTargets.count() == 1); |
| 110 fDrawTargets[0]->resetFlag(GrDrawTarget::kWasOutput_Flag); |
| 111 } |
| 112 #endif |
101 } | 113 } |
102 | 114 |
103 GrTextContext* GrDrawingManager::textContext(const SkSurfaceProps& props, | 115 GrTextContext* GrDrawingManager::textContext(const SkSurfaceProps& props, |
104 GrRenderTarget* rt) { | 116 GrRenderTarget* rt) { |
105 if (this->abandoned()) { | 117 if (this->abandoned()) { |
106 return nullptr; | 118 return nullptr; |
107 } | 119 } |
108 | 120 |
109 SkASSERT(props.pixelGeometry() < kNumPixelGeometries); | 121 SkASSERT(props.pixelGeometry() < kNumPixelGeometries); |
110 bool useDIF = props.isUseDeviceIndependentFonts(); | 122 bool useDIF = props.isUseDeviceIndependentFonts(); |
(...skipping 13 matching lines...) Expand all Loading... |
124 if (!fTextContexts[props.pixelGeometry()][useDIF]) { | 136 if (!fTextContexts[props.pixelGeometry()][useDIF]) { |
125 fTextContexts[props.pixelGeometry()][useDIF] = GrAtlasTextContext::Creat
e(fContext, props); | 137 fTextContexts[props.pixelGeometry()][useDIF] = GrAtlasTextContext::Creat
e(fContext, props); |
126 } | 138 } |
127 | 139 |
128 return fTextContexts[props.pixelGeometry()][useDIF]; | 140 return fTextContexts[props.pixelGeometry()][useDIF]; |
129 } | 141 } |
130 | 142 |
131 GrDrawTarget* GrDrawingManager::newDrawTarget(GrRenderTarget* rt) { | 143 GrDrawTarget* GrDrawingManager::newDrawTarget(GrRenderTarget* rt) { |
132 SkASSERT(fContext); | 144 SkASSERT(fContext); |
133 | 145 |
| 146 #ifndef ENABLE_MDB |
134 // When MDB is disabled we always just return the single drawTarget | 147 // When MDB is disabled we always just return the single drawTarget |
135 #ifndef ENABLE_MDB | |
136 if (fDrawTargets.count()) { | 148 if (fDrawTargets.count()) { |
137 SkASSERT(fDrawTargets.count() == 1); | 149 SkASSERT(fDrawTargets.count() == 1); |
138 // DrawingManager gets the creation ref - this ref is for the caller | 150 // DrawingManager gets the creation ref - this ref is for the caller |
139 return SkRef(fDrawTargets[0]); | 151 return SkRef(fDrawTargets[0]); |
140 } | 152 } |
141 #endif | 153 #endif |
142 | 154 |
143 GrDrawTarget* dt = new GrDrawTarget(fContext->getGpu(), fContext->resourcePr
ovider()); | 155 GrDrawTarget* dt = new GrDrawTarget(fContext->getGpu(), fContext->resourcePr
ovider()); |
144 | 156 |
145 *fDrawTargets.append() = dt; | 157 *fDrawTargets.append() = dt; |
(...skipping 650 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
796 | 808 |
797 void GrContext::setResourceCacheLimits(int maxTextures, size_t maxTextureBytes)
{ | 809 void GrContext::setResourceCacheLimits(int maxTextures, size_t maxTextureBytes)
{ |
798 fResourceCache->setLimits(maxTextures, maxTextureBytes); | 810 fResourceCache->setLimits(maxTextures, maxTextureBytes); |
799 } | 811 } |
800 | 812 |
801 ////////////////////////////////////////////////////////////////////////////// | 813 ////////////////////////////////////////////////////////////////////////////// |
802 | 814 |
803 void GrContext::dumpMemoryStatistics(SkTraceMemoryDump* traceMemoryDump) const { | 815 void GrContext::dumpMemoryStatistics(SkTraceMemoryDump* traceMemoryDump) const { |
804 fResourceCache->dumpMemoryStatistics(traceMemoryDump); | 816 fResourceCache->dumpMemoryStatistics(traceMemoryDump); |
805 } | 817 } |
OLD | NEW |