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

Unified Diff: skia/images/SkImageRef.cpp

Issue 113827: Remove the remainder of the skia source code from the Chromium repo.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « skia/images/SkImageDecoder_wbmp.cpp ('k') | skia/images/SkImageRefPool.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: skia/images/SkImageRef.cpp
===================================================================
--- skia/images/SkImageRef.cpp (revision 16859)
+++ skia/images/SkImageRef.cpp (working copy)
@@ -1,165 +0,0 @@
-#include "SkImageRef.h"
-#include "SkBitmap.h"
-#include "SkFlattenable.h"
-#include "SkImageDecoder.h"
-#include "SkStream.h"
-#include "SkTemplates.h"
-#include "SkThread.h"
-
-// can't be static, as SkImageRef_Pool needs to see it
-SkMutex gImageRefMutex;
-
-///////////////////////////////////////////////////////////////////////////////
-
-SkImageRef::SkImageRef(SkStream* stream, SkBitmap::Config config,
- int sampleSize)
- : SkPixelRef(&gImageRefMutex), fErrorInDecoding(false) {
- SkASSERT(stream);
- SkASSERT(1 == stream->getRefCnt());
-
- fStream = stream;
- fConfig = config;
- fSampleSize = sampleSize;
- fPrev = fNext = NULL;
-
-#ifdef DUMP_IMAGEREF_LIFECYCLE
- SkDebugf("add ImageRef %p [%d] data=%d\n",
- this, config, (int)stream->getLength());
-#endif
-}
-
-SkImageRef::~SkImageRef() {
- SkASSERT(&gImageRefMutex == this->mutex());
-
-#ifdef DUMP_IMAGEREF_LIFECYCLE
- SkDebugf("delete ImageRef %p [%d] data=%d\n",
- this, fConfig, (int)fStream->getLength());
-#endif
-
- delete fStream;
-}
-
-bool SkImageRef::getInfo(SkBitmap* bitmap) {
- SkAutoMutexAcquire ac(gImageRefMutex);
-
- if (!this->prepareBitmap(SkImageDecoder::kDecodeBounds_Mode)) {
- return false;
- }
-
- SkASSERT(SkBitmap::kNo_Config != fBitmap.config());
- if (bitmap) {
- bitmap->setConfig(fBitmap.config(), fBitmap.width(), fBitmap.height());
- }
- return true;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-
-bool SkImageRef::onDecode(SkImageDecoder* codec, SkStream* stream,
- SkBitmap* bitmap, SkBitmap::Config config,
- SkImageDecoder::Mode mode) {
- return codec->decode(stream, bitmap, config, mode);
-}
-
-bool SkImageRef::prepareBitmap(SkImageDecoder::Mode mode) {
- SkASSERT(&gImageRefMutex == this->mutex());
-
- if (fErrorInDecoding) {
- return false;
- }
-
- /* As soon as we really know our config, we record it, so that on
- subsequent calls to the codec, we are sure we will always get the same
- result.
- */
- if (SkBitmap::kNo_Config != fBitmap.config()) {
- fConfig = fBitmap.config();
- }
-
- if (NULL != fBitmap.getPixels() ||
- (SkBitmap::kNo_Config != fBitmap.config() &&
- SkImageDecoder::kDecodeBounds_Mode == mode)) {
- return true;
- }
-
- SkASSERT(fBitmap.getPixels() == NULL);
-
- fStream->rewind();
-
- SkImageDecoder* codec = SkImageDecoder::Factory(fStream);
- if (codec) {
- SkAutoTDelete<SkImageDecoder> ad(codec);
-
- codec->setSampleSize(fSampleSize);
- if (this->onDecode(codec, fStream, &fBitmap, fConfig, mode)) {
- return true;
- }
- }
-
-#ifdef DUMP_IMAGEREF_LIFECYCLE
- if (NULL == codec) {
- SkDebugf("--- ImageRef: <%s> failed to find codec\n", fName.c_str());
- } else {
- SkDebugf("--- ImageRef: <%s> failed in codec for %d mode\n",
- fName.c_str(), mode);
- }
-#endif
- fErrorInDecoding = true;
- fBitmap.reset();
- return false;
-}
-
-void* SkImageRef::onLockPixels(SkColorTable** ct) {
- SkASSERT(&gImageRefMutex == this->mutex());
-
- if (NULL == fBitmap.getPixels()) {
- (void)this->prepareBitmap(SkImageDecoder::kDecodePixels_Mode);
- }
-
- if (ct) {
- *ct = fBitmap.getColorTable();
- }
- return fBitmap.getPixels();
-}
-
-void SkImageRef::onUnlockPixels() {
- // we're already have the mutex locked
- SkASSERT(&gImageRefMutex == this->mutex());
-}
-
-size_t SkImageRef::ramUsed() const {
- size_t size = 0;
-
- if (fBitmap.getPixels()) {
- size = fBitmap.getSize();
- if (fBitmap.getColorTable()) {
- size += fBitmap.getColorTable()->count() * sizeof(SkPMColor);
- }
- }
- return size;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-
-SkImageRef::SkImageRef(SkFlattenableReadBuffer& buffer)
- : INHERITED(buffer, &gImageRefMutex), fErrorInDecoding(false) {
- fConfig = (SkBitmap::Config)buffer.readU8();
- fSampleSize = buffer.readU8();
- size_t length = buffer.readU32();
- fStream = SkNEW_ARGS(SkMemoryStream, (length));
- buffer.read((void*)fStream->getMemoryBase(), length);
-
- fPrev = fNext = NULL;
-}
-
-void SkImageRef::flatten(SkFlattenableWriteBuffer& buffer) const {
- this->INHERITED::flatten(buffer);
-
- buffer.write8(fConfig);
- buffer.write8(fSampleSize);
- size_t length = fStream->getLength();
- buffer.write32(length);
- fStream->rewind();
- buffer.readFromStream(fStream, length);
-}
-
« no previous file with comments | « skia/images/SkImageDecoder_wbmp.cpp ('k') | skia/images/SkImageRefPool.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698