| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2010 Google Inc. | 3 * Copyright 2010 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 "GrGpu.h" | 10 #include "GrGpu.h" |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 // TODO: defer this and attach dynamically | 67 // TODO: defer this and attach dynamically |
| 68 if (!this->attachStencilBufferToRenderTarget(tex->asRenderTarget(),
budgeted)) { | 68 if (!this->attachStencilBufferToRenderTarget(tex->asRenderTarget(),
budgeted)) { |
| 69 tex->unref(); | 69 tex->unref(); |
| 70 return NULL; | 70 return NULL; |
| 71 } | 71 } |
| 72 } | 72 } |
| 73 } | 73 } |
| 74 if (!this->caps()->reuseScratchTextures() && !isRT) { | 74 if (!this->caps()->reuseScratchTextures() && !isRT) { |
| 75 tex->cacheAccess().removeScratchKey(); | 75 tex->cacheAccess().removeScratchKey(); |
| 76 } | 76 } |
| 77 if (tex) { |
| 78 fStats.incTextureCreates(); |
| 79 if (srcData) { |
| 80 fStats.incTextureUploads(); |
| 81 } |
| 82 } |
| 77 return tex; | 83 return tex; |
| 78 } | 84 } |
| 79 | 85 |
| 80 bool GrGpu::attachStencilBufferToRenderTarget(GrRenderTarget* rt, bool budgeted)
{ | 86 bool GrGpu::attachStencilBufferToRenderTarget(GrRenderTarget* rt, bool budgeted)
{ |
| 81 SkASSERT(NULL == rt->getStencilBuffer()); | 87 SkASSERT(NULL == rt->getStencilBuffer()); |
| 82 GrScratchKey sbKey; | 88 GrScratchKey sbKey; |
| 83 GrStencilBuffer::ComputeKey(rt->width(), rt->height(), rt->numSamples(), &sb
Key); | 89 GrStencilBuffer::ComputeKey(rt->width(), rt->height(), rt->numSamples(), &sb
Key); |
| 84 SkAutoTUnref<GrStencilBuffer> sb(static_cast<GrStencilBuffer*>( | 90 SkAutoTUnref<GrStencilBuffer> sb(static_cast<GrStencilBuffer*>( |
| 85 this->getContext()->getResourceCache2()->findAndRefScratchResource(sbKey
))); | 91 this->getContext()->getResourceCache2()->findAndRefScratchResource(sbKey
))); |
| 86 if (sb) { | 92 if (sb) { |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 196 this->handleDirtyContext(); | 202 this->handleDirtyContext(); |
| 197 return this->onReadPixels(target, left, top, width, height, | 203 return this->onReadPixels(target, left, top, width, height, |
| 198 config, buffer, rowBytes); | 204 config, buffer, rowBytes); |
| 199 } | 205 } |
| 200 | 206 |
| 201 bool GrGpu::writeTexturePixels(GrTexture* texture, | 207 bool GrGpu::writeTexturePixels(GrTexture* texture, |
| 202 int left, int top, int width, int height, | 208 int left, int top, int width, int height, |
| 203 GrPixelConfig config, const void* buffer, | 209 GrPixelConfig config, const void* buffer, |
| 204 size_t rowBytes) { | 210 size_t rowBytes) { |
| 205 this->handleDirtyContext(); | 211 this->handleDirtyContext(); |
| 206 return this->onWriteTexturePixels(texture, left, top, width, height, | 212 if (this->onWriteTexturePixels(texture, left, top, width, height, |
| 207 config, buffer, rowBytes); | 213 config, buffer, rowBytes)) { |
| 214 fStats.incTextureUploads(); |
| 215 return true; |
| 216 } |
| 217 return false; |
| 208 } | 218 } |
| 209 | 219 |
| 210 void GrGpu::resolveRenderTarget(GrRenderTarget* target) { | 220 void GrGpu::resolveRenderTarget(GrRenderTarget* target) { |
| 211 SkASSERT(target); | 221 SkASSERT(target); |
| 212 this->handleDirtyContext(); | 222 this->handleDirtyContext(); |
| 213 this->onResolveRenderTarget(target); | 223 this->onResolveRenderTarget(target); |
| 214 } | 224 } |
| 215 | 225 |
| 216 typedef GrTraceMarkerSet::Iter TMIter; | 226 typedef GrTraceMarkerSet::Iter TMIter; |
| 217 void GrGpu::saveActiveTraceMarkers() { | 227 void GrGpu::saveActiveTraceMarkers() { |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 302 GrDrawTarget::PathIndexType indexType, | 312 GrDrawTarget::PathIndexType indexType, |
| 303 const float transformValues[], | 313 const float transformValues[], |
| 304 GrDrawTarget::PathTransformType transformType, | 314 GrDrawTarget::PathTransformType transformType, |
| 305 int count, | 315 int count, |
| 306 const GrStencilSettings& stencilSettings) { | 316 const GrStencilSettings& stencilSettings) { |
| 307 this->handleDirtyContext(); | 317 this->handleDirtyContext(); |
| 308 pathRange->willDrawPaths(indices, indexType, count); | 318 pathRange->willDrawPaths(indices, indexType, count); |
| 309 this->onDrawPaths(args, pathRange, indices, indexType, transformValues, | 319 this->onDrawPaths(args, pathRange, indices, indexType, transformValues, |
| 310 transformType, count, stencilSettings); | 320 transformType, count, stencilSettings); |
| 311 } | 321 } |
| OLD | NEW |