aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects/SkColorCubeFilter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/effects/SkColorCubeFilter.cpp')
-rw-r--r--src/effects/SkColorCubeFilter.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/effects/SkColorCubeFilter.cpp b/src/effects/SkColorCubeFilter.cpp
index bfe28396ff..f4ffefc889 100644
--- a/src/effects/SkColorCubeFilter.cpp
+++ b/src/effects/SkColorCubeFilter.cpp
@@ -354,12 +354,12 @@ GrFragmentProcessor* SkColorCubeFilter::asFragmentProcessor(GrContext* context)
desc.fHeight = fCache.cubeDimension() * fCache.cubeDimension();
desc.fConfig = kRGBA_8888_GrPixelConfig;
- GrSurface* surface = static_cast<GrSurface*>(context->findAndRefCachedResource(key));
- SkAutoTUnref<GrTexture> textureCube;
- if (surface) {
- textureCube.reset(surface->asTexture());
- } else {
- textureCube.reset(context->createTexture(NULL, desc, key, fCubeData->data(), 0));
+ SkAutoTUnref<GrTexture> textureCube(context->findAndRefCachedTexture(key));
+ if (!textureCube) {
+ textureCube.reset(context->createTexture(desc, fCubeData->data(), 0));
+ if (textureCube) {
+ SkAssertResult(context->addResourceToCache(key, textureCube));
+ }
}
return textureCube ? GrColorCubeEffect::Create(textureCube) : NULL;