Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: src/lazy/SkDiscardablePixelRef.cpp

Issue 295243006: hide discardable factory from public imagegenerator api (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright 2013 Google Inc. 2 * Copyright 2013 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "SkDiscardablePixelRef.h" 8 #include "SkDiscardablePixelRef.h"
9 #include "SkDiscardableMemory.h" 9 #include "SkDiscardableMemory.h"
10 #include "SkImageGenerator.h" 10 #include "SkImageGenerator.h"
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 rec->fPixels = pixels; 70 rec->fPixels = pixels;
71 rec->fColorTable = NULL; 71 rec->fColorTable = NULL;
72 rec->fRowBytes = fRowBytes; 72 rec->fRowBytes = fRowBytes;
73 return true; 73 return true;
74 } 74 }
75 75
76 void SkDiscardablePixelRef::onUnlockPixels() { 76 void SkDiscardablePixelRef::onUnlockPixels() {
77 fDiscardableMemory->unlock(); 77 fDiscardableMemory->unlock();
78 } 78 }
79 79
80 bool SkInstallDiscardablePixelRef(SkImageGenerator* generator, 80 bool SkInstallDiscardablePixelRef(SkImageGenerator* generator, SkBitmap* dst,
81 SkBitmap* dst,
82 SkDiscardableMemory::Factory* factory) { 81 SkDiscardableMemory::Factory* factory) {
83 SkImageInfo info; 82 SkImageInfo info;
84 SkAutoTDelete<SkImageGenerator> autoGenerator(generator); 83 SkAutoTDelete<SkImageGenerator> autoGenerator(generator);
85 if ((NULL == autoGenerator.get()) 84 if ((NULL == autoGenerator.get())
86 || (!autoGenerator->getInfo(&info)) 85 || (!autoGenerator->getInfo(&info))
87 || (!dst->setConfig(info, 0))) { 86 || (!dst->setConfig(info, 0))) {
88 return false; 87 return false;
89 } 88 }
90 SkASSERT(dst->colorType() != kUnknown_SkColorType); 89 SkASSERT(dst->colorType() != kUnknown_SkColorType);
91 if (dst->empty()) { // Use a normal pixelref. 90 if (dst->empty()) { // Use a normal pixelref.
92 return dst->allocPixels(); 91 return dst->allocPixels();
93 } 92 }
94 SkAutoTUnref<SkDiscardablePixelRef> ref( 93 SkAutoTUnref<SkDiscardablePixelRef> ref(
95 SkNEW_ARGS(SkDiscardablePixelRef, 94 SkNEW_ARGS(SkDiscardablePixelRef,
96 (info, autoGenerator.detach(), dst->rowBytes(), factory))); 95 (info, autoGenerator.detach(), dst->rowBytes(), factory)));
97 dst->setPixelRef(ref); 96 dst->setPixelRef(ref);
98 return true; 97 return true;
99 } 98 }
99
100 // This is the public API
101 bool SkInstallDiscardablePixelRef(SkImageGenerator* generator, SkBitmap* dst) {
102 return SkInstallDiscardablePixelRef(generator, dst, NULL);
103 }
104
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698