| Index: src/utils/SkBitmapChecksummer.cpp
|
| ===================================================================
|
| --- src/utils/SkBitmapChecksummer.cpp (revision 8638)
|
| +++ src/utils/SkBitmapChecksummer.cpp (working copy)
|
| @@ -1,69 +0,0 @@
|
| -
|
| -/*
|
| - * Copyright 2012 Google Inc.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license that can be
|
| - * found in the LICENSE file.
|
| - */
|
| -
|
| -#include "SkBitmap.h"
|
| -#include "SkBitmapChecksummer.h"
|
| -#include "SkBitmapTransformer.h"
|
| -#include "SkCityHash.h"
|
| -#include "SkEndian.h"
|
| -
|
| -/**
|
| - * Write an integer value into a bytebuffer in little-endian order.
|
| - */
|
| -static void write_int_to_buffer(int val, char* buf) {
|
| - val = SkEndian_SwapLE32(val);
|
| - for (int byte=0; byte<4; byte++) {
|
| - *buf++ = (char)(val & 0xff);
|
| - val = val >> 8;
|
| - }
|
| -}
|
| -
|
| -/*static*/ uint64_t SkBitmapChecksummer::Compute64Internal(
|
| - const SkBitmap& bitmap, const SkBitmapTransformer& transformer) {
|
| - size_t pixelBufferSize = transformer.bytesNeededTotal();
|
| - size_t totalBufferSize = pixelBufferSize + 8; // leave room for x/y dimensions
|
| -
|
| - SkAutoMalloc bufferManager(totalBufferSize);
|
| - char *bufferStart = static_cast<char *>(bufferManager.get());
|
| - char *bufPtr = bufferStart;
|
| - // start with the x/y dimensions
|
| - write_int_to_buffer(bitmap.width(), bufPtr);
|
| - bufPtr += 4;
|
| - write_int_to_buffer(bitmap.height(), bufPtr);
|
| - bufPtr += 4;
|
| -
|
| - // add all the pixel data
|
| - if (!transformer.copyBitmapToPixelBuffer(bufPtr, pixelBufferSize)) {
|
| - return 0;
|
| - }
|
| - return SkCityHash::Compute64(bufferStart, totalBufferSize);
|
| -}
|
| -
|
| -/*static*/ uint64_t SkBitmapChecksummer::Compute64(const SkBitmap& bitmap) {
|
| - const SkBitmapTransformer::PixelFormat kPixelFormat =
|
| - SkBitmapTransformer::kARGB_8888_Premul_PixelFormat;
|
| -
|
| - // First, try to transform the existing bitmap.
|
| - const SkBitmapTransformer transformer =
|
| - SkBitmapTransformer(bitmap, kPixelFormat);
|
| - if (transformer.isValid(false)) {
|
| - return Compute64Internal(bitmap, transformer);
|
| - }
|
| -
|
| - // Hmm, that didn't work. Maybe if we create a new
|
| - // kARGB_8888_Config version of the bitmap it will work better?
|
| - SkBitmap copyBitmap;
|
| - bitmap.copyTo(©Bitmap, SkBitmap::kARGB_8888_Config);
|
| - const SkBitmapTransformer copyTransformer =
|
| - SkBitmapTransformer(copyBitmap, kPixelFormat);
|
| - if (copyTransformer.isValid(true)) {
|
| - return Compute64Internal(copyBitmap, copyTransformer);
|
| - } else {
|
| - return 0;
|
| - }
|
| -}
|
|
|