| 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 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 248 | 248 |
| 249 return GrDistanceFieldTextContext::Create(this, leakyProperties, enableDista
nceFieldFonts); | 249 return GrDistanceFieldTextContext::Create(this, leakyProperties, enableDista
nceFieldFonts); |
| 250 } | 250 } |
| 251 | 251 |
| 252 //////////////////////////////////////////////////////////////////////////////// | 252 //////////////////////////////////////////////////////////////////////////////// |
| 253 | 253 |
| 254 GrTexture* GrContext::findAndRefTexture(const GrSurfaceDesc& desc, | 254 GrTexture* GrContext::findAndRefTexture(const GrSurfaceDesc& desc, |
| 255 const GrCacheID& cacheID, | 255 const GrCacheID& cacheID, |
| 256 const GrTextureParams* params) { | 256 const GrTextureParams* params) { |
| 257 GrResourceKey resourceKey = GrTexturePriv::ComputeKey(fGpu, params, desc, ca
cheID); | 257 GrResourceKey resourceKey = GrTexturePriv::ComputeKey(fGpu, params, desc, ca
cheID); |
| 258 GrGpuResource* resource = fResourceCache->find(resourceKey); | 258 |
| 259 GrGpuResource* resource = this->findAndRefCachedResource(resourceKey); |
| 259 if (resource) { | 260 if (resource) { |
| 260 resource->ref(); | 261 SkASSERT(static_cast<GrSurface*>(resource)->asTexture()); |
| 261 return static_cast<GrSurface*>(resource)->asTexture(); | 262 return static_cast<GrSurface*>(resource)->asTexture(); |
| 262 } else { | |
| 263 return NULL; | |
| 264 } | 263 } |
| 264 return NULL; |
| 265 } | 265 } |
| 266 | 266 |
| 267 bool GrContext::isTextureInCache(const GrSurfaceDesc& desc, | 267 bool GrContext::isTextureInCache(const GrSurfaceDesc& desc, |
| 268 const GrCacheID& cacheID, | 268 const GrCacheID& cacheID, |
| 269 const GrTextureParams* params) const { | 269 const GrTextureParams* params) const { |
| 270 GrResourceKey resourceKey = GrTexturePriv::ComputeKey(fGpu, params, desc, ca
cheID); | 270 GrResourceKey resourceKey = GrTexturePriv::ComputeKey(fGpu, params, desc, ca
cheID); |
| 271 return fResourceCache->hasKey(resourceKey); | 271 return fResourceCache2->hasContentKey(resourceKey); |
| 272 } | 272 } |
| 273 | 273 |
| 274 void GrContext::addStencilBuffer(GrStencilBuffer* sb) { | 274 void GrContext::addStencilBuffer(GrStencilBuffer* sb) { |
| 275 ASSERT_OWNED_RESOURCE(sb); | 275 ASSERT_OWNED_RESOURCE(sb); |
| 276 | 276 |
| 277 GrResourceKey resourceKey = GrStencilBuffer::ComputeKey(sb->width(), | 277 GrResourceKey resourceKey = GrStencilBuffer::ComputeKey(sb->width(), |
| 278 sb->height(), | 278 sb->height(), |
| 279 sb->numSamples()); | 279 sb->numSamples()); |
| 280 fResourceCache->addResource(resourceKey, sb); | 280 fResourceCache->addResource(resourceKey, sb); |
| 281 } | 281 } |
| 282 | 282 |
| 283 GrStencilBuffer* GrContext::findStencilBuffer(int width, int height, | 283 GrStencilBuffer* GrContext::findAndRefStencilBuffer(int width, int height, int s
ampleCnt) { |
| 284 int sampleCnt) { | 284 GrResourceKey resourceKey = GrStencilBuffer::ComputeKey(width, height, sampl
eCnt); |
| 285 GrResourceKey resourceKey = GrStencilBuffer::ComputeKey(width, | 285 GrGpuResource* resource = this->findAndRefCachedResource(resourceKey); |
| 286 height, | |
| 287 sampleCnt); | |
| 288 GrGpuResource* resource = fResourceCache->find(resourceKey); | |
| 289 return static_cast<GrStencilBuffer*>(resource); | 286 return static_cast<GrStencilBuffer*>(resource); |
| 290 } | 287 } |
| 291 | 288 |
| 292 static void stretch_image(void* dst, | 289 static void stretch_image(void* dst, |
| 293 int dstW, | 290 int dstW, |
| 294 int dstH, | 291 int dstH, |
| 295 const void* src, | 292 const void* src, |
| 296 int srcW, | 293 int srcW, |
| 297 int srcH, | 294 int srcH, |
| 298 size_t bpp) { | 295 size_t bpp) { |
| (...skipping 1449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1748 } else { | 1745 } else { |
| 1749 return NULL; | 1746 return NULL; |
| 1750 } | 1747 } |
| 1751 } | 1748 } |
| 1752 | 1749 |
| 1753 void GrContext::addResourceToCache(const GrResourceKey& resourceKey, GrGpuResour
ce* resource) { | 1750 void GrContext::addResourceToCache(const GrResourceKey& resourceKey, GrGpuResour
ce* resource) { |
| 1754 fResourceCache->addResource(resourceKey, resource); | 1751 fResourceCache->addResource(resourceKey, resource); |
| 1755 } | 1752 } |
| 1756 | 1753 |
| 1757 GrGpuResource* GrContext::findAndRefCachedResource(const GrResourceKey& resource
Key) { | 1754 GrGpuResource* GrContext::findAndRefCachedResource(const GrResourceKey& resource
Key) { |
| 1758 GrGpuResource* resource = fResourceCache->find(resourceKey); | 1755 GrGpuResource* resource = fResourceCache2->findAndRefContentResource(resourc
eKey); |
| 1759 SkSafeRef(resource); | 1756 if (resource) { |
| 1757 fResourceCache->makeResourceMRU(resource); |
| 1758 } |
| 1760 return resource; | 1759 return resource; |
| 1761 } | 1760 } |
| 1762 | 1761 |
| 1763 void GrContext::addGpuTraceMarker(const GrGpuTraceMarker* marker) { | 1762 void GrContext::addGpuTraceMarker(const GrGpuTraceMarker* marker) { |
| 1764 fGpu->addGpuTraceMarker(marker); | 1763 fGpu->addGpuTraceMarker(marker); |
| 1765 if (fDrawBuffer) { | 1764 if (fDrawBuffer) { |
| 1766 fDrawBuffer->addGpuTraceMarker(marker); | 1765 fDrawBuffer->addGpuTraceMarker(marker); |
| 1767 } | 1766 } |
| 1768 } | 1767 } |
| 1769 | 1768 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1780 fResourceCache->printStats(); | 1779 fResourceCache->printStats(); |
| 1781 } | 1780 } |
| 1782 #endif | 1781 #endif |
| 1783 | 1782 |
| 1784 #if GR_GPU_STATS | 1783 #if GR_GPU_STATS |
| 1785 const GrContext::GPUStats* GrContext::gpuStats() const { | 1784 const GrContext::GPUStats* GrContext::gpuStats() const { |
| 1786 return fGpu->gpuStats(); | 1785 return fGpu->gpuStats(); |
| 1787 } | 1786 } |
| 1788 #endif | 1787 #endif |
| 1789 | 1788 |
| OLD | NEW |