Home | History | Annotate | Download | only in gpu
      1 /*
      2  * Copyright 2010 Google Inc.
      3  *
      4  * Use of this source code is governed by a BSD-style license that can be
      5  * found in the LICENSE file.
      6  */
      7 
      8 #ifndef GrKey_DEFINED
      9 #define GrKey_DEFINED
     10 
     11 class GrKey : public SkRefCnt {
     12 public:
     13     SK_DECLARE_INST_COUNT(GrKey)
     14 
     15     typedef intptr_t Hash;
     16 
     17     explicit GrKey(Hash hash) : fHash(hash) {}
     18 
     19     intptr_t getHash() const { return fHash; }
     20 
     21     bool operator<(const GrKey& rh) const {
     22         return fHash < rh.fHash || (fHash == rh.fHash && this->lt(rh));
     23     }
     24     bool operator==(const GrKey& rh) const {
     25         return fHash == rh.fHash && this->eq(rh);
     26     }
     27 
     28 protected:
     29     virtual bool lt(const GrKey& rh) const = 0;
     30     virtual bool eq(const GrKey& rh) const = 0;
     31 
     32 private:
     33     const Hash fHash;
     34 
     35     typedef SkRefCnt INHERITED;
     36 };
     37 
     38 #endif
     39