Home | History | Annotate | Download | only in utils
      1 
      2 /*
      3  * Copyright 2012 Google Inc.
      4  *
      5  * Use of this source code is governed by a BSD-style license that can be
      6  * found in the LICENSE file.
      7  */
      8 
      9 #ifndef SkBitmapHasher_DEFINED
     10 #define SkBitmapHasher_DEFINED
     11 
     12 #include "SkBitmap.h"
     13 
     14 /**
     15  * Static class that generates a uint64 hash digest from an SkBitmap.
     16  */
     17 class SkBitmapHasher {
     18 public:
     19     /**
     20      * Fills in "result" with a hash of the pixels in this bitmap.
     21      *
     22      * If this is unable to compute the hash for some reason,
     23      * it returns false.
     24      *
     25      * Note: depending on the bitmap colortype, we may need to create an
     26      * intermediate SkBitmap and copy the pixels over to it... so in some
     27      * cases, performance and memory usage can suffer.
     28      */
     29     static bool ComputeDigest(const SkBitmap& bitmap, uint64_t *result);
     30 
     31 private:
     32     static bool ComputeDigestInternal(const SkBitmap& bitmap, uint64_t *result);
     33 };
     34 
     35 #endif
     36