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 | 9 |
10 #include "GrContext.h" | 10 #include "GrContext.h" |
11 | 11 |
12 #include "effects/GrSingleTextureEffect.h" | 12 #include "effects/GrSingleTextureEffect.h" |
13 #include "effects/GrConfigConversionEffect.h" | 13 #include "effects/GrConfigConversionEffect.h" |
14 | 14 |
15 #include "GrAARectRenderer.h" | 15 #include "GrAARectRenderer.h" |
16 #include "GrBufferAllocPool.h" | 16 #include "GrBufferAllocPool.h" |
17 #include "GrGpu.h" | 17 #include "GrGpu.h" |
18 #include "GrDrawTargetCaps.h" | 18 #include "GrDrawTargetCaps.h" |
19 #include "GrIndexBuffer.h" | 19 #include "GrIndexBuffer.h" |
20 #include "GrInOrderDrawBuffer.h" | 20 #include "GrInOrderDrawBuffer.h" |
| 21 #include "GrLayerCache.h" |
21 #include "GrOvalRenderer.h" | 22 #include "GrOvalRenderer.h" |
22 #include "GrPathRenderer.h" | 23 #include "GrPathRenderer.h" |
23 #include "GrPathUtils.h" | 24 #include "GrPathUtils.h" |
24 #include "GrResourceCache.h" | 25 #include "GrResourceCache.h" |
25 #include "GrSoftwarePathRenderer.h" | 26 #include "GrSoftwarePathRenderer.h" |
26 #include "GrStencilBuffer.h" | 27 #include "GrStencilBuffer.h" |
27 #include "GrTextStrike.h" | 28 #include "GrTextStrike.h" |
28 #include "GrTracing.h" | 29 #include "GrTracing.h" |
29 #include "SkGr.h" | 30 #include "SkGr.h" |
30 #include "SkRTConf.h" | 31 #include "SkRTConf.h" |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 fDrawState = SkNEW(GrDrawState); | 118 fDrawState = SkNEW(GrDrawState); |
118 fGpu->setDrawState(fDrawState); | 119 fGpu->setDrawState(fDrawState); |
119 | 120 |
120 fTextureCache = SkNEW_ARGS(GrResourceCache, | 121 fTextureCache = SkNEW_ARGS(GrResourceCache, |
121 (MAX_RESOURCE_CACHE_COUNT, | 122 (MAX_RESOURCE_CACHE_COUNT, |
122 MAX_RESOURCE_CACHE_BYTES)); | 123 MAX_RESOURCE_CACHE_BYTES)); |
123 fTextureCache->setOverbudgetCallback(OverbudgetCB, this); | 124 fTextureCache->setOverbudgetCallback(OverbudgetCB, this); |
124 | 125 |
125 fFontCache = SkNEW_ARGS(GrFontCache, (fGpu)); | 126 fFontCache = SkNEW_ARGS(GrFontCache, (fGpu)); |
126 | 127 |
| 128 fLayerCache.reset(SkNEW_ARGS(GrLayerCache, (fGpu))); |
| 129 |
127 fLastDrawWasBuffered = kNo_BufferedDraw; | 130 fLastDrawWasBuffered = kNo_BufferedDraw; |
128 | 131 |
129 fAARectRenderer = SkNEW(GrAARectRenderer); | 132 fAARectRenderer = SkNEW(GrAARectRenderer); |
130 fOvalRenderer = SkNEW(GrOvalRenderer); | 133 fOvalRenderer = SkNEW(GrOvalRenderer); |
131 | 134 |
132 fDidTestPMConversions = false; | 135 fDidTestPMConversions = false; |
133 | 136 |
134 this->setupDrawBuffer(); | 137 this->setupDrawBuffer(); |
135 | 138 |
136 return true; | 139 return true; |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 | 193 |
191 delete fDrawBufferIBAllocPool; | 194 delete fDrawBufferIBAllocPool; |
192 fDrawBufferIBAllocPool = NULL; | 195 fDrawBufferIBAllocPool = NULL; |
193 | 196 |
194 fAARectRenderer->reset(); | 197 fAARectRenderer->reset(); |
195 fOvalRenderer->reset(); | 198 fOvalRenderer->reset(); |
196 | 199 |
197 fTextureCache->purgeAllUnlocked(); | 200 fTextureCache->purgeAllUnlocked(); |
198 | 201 |
199 fFontCache->freeAll(); | 202 fFontCache->freeAll(); |
| 203 fLayerCache->freeAll(); |
200 fGpu->markContextDirty(); | 204 fGpu->markContextDirty(); |
201 } | 205 } |
202 | 206 |
203 void GrContext::resetContext(uint32_t state) { | 207 void GrContext::resetContext(uint32_t state) { |
204 fGpu->markContextDirty(state); | 208 fGpu->markContextDirty(state); |
205 } | 209 } |
206 | 210 |
207 void GrContext::freeGpuResources() { | 211 void GrContext::freeGpuResources() { |
208 this->flush(); | 212 this->flush(); |
209 | 213 |
210 fGpu->purgeResources(); | 214 fGpu->purgeResources(); |
211 | 215 |
212 fAARectRenderer->reset(); | 216 fAARectRenderer->reset(); |
213 fOvalRenderer->reset(); | 217 fOvalRenderer->reset(); |
214 | 218 |
215 fTextureCache->purgeAllUnlocked(); | 219 fTextureCache->purgeAllUnlocked(); |
216 fFontCache->freeAll(); | 220 fFontCache->freeAll(); |
| 221 fLayerCache->freeAll(); |
217 // a path renderer may be holding onto resources | 222 // a path renderer may be holding onto resources |
218 SkSafeSetNull(fPathRendererChain); | 223 SkSafeSetNull(fPathRendererChain); |
219 SkSafeSetNull(fSoftwarePathRenderer); | 224 SkSafeSetNull(fSoftwarePathRenderer); |
220 } | 225 } |
221 | 226 |
222 size_t GrContext::getGpuTextureCacheBytes() const { | 227 size_t GrContext::getGpuTextureCacheBytes() const { |
223 return fTextureCache->getCachedResourceBytes(); | 228 return fTextureCache->getCachedResourceBytes(); |
224 } | 229 } |
225 | 230 |
226 int GrContext::getGpuTextureCacheResourceCount() const { | 231 int GrContext::getGpuTextureCacheResourceCount() const { |
(...skipping 1566 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1793 } | 1798 } |
1794 return path; | 1799 return path; |
1795 } | 1800 } |
1796 | 1801 |
1797 /////////////////////////////////////////////////////////////////////////////// | 1802 /////////////////////////////////////////////////////////////////////////////// |
1798 #if GR_CACHE_STATS | 1803 #if GR_CACHE_STATS |
1799 void GrContext::printCacheStats() const { | 1804 void GrContext::printCacheStats() const { |
1800 fTextureCache->printStats(); | 1805 fTextureCache->printStats(); |
1801 } | 1806 } |
1802 #endif | 1807 #endif |
OLD | NEW |