diff options
Diffstat (limited to 'include/gpu/GrKey.h')
-rw-r--r-- | include/gpu/GrKey.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/include/gpu/GrKey.h b/include/gpu/GrKey.h new file mode 100644 index 0000000..813d82d --- /dev/null +++ b/include/gpu/GrKey.h @@ -0,0 +1,40 @@ + +/* + * Copyright 2010 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + + + +#ifndef GrKey_DEFINED +#define GrKey_DEFINED + +#include "GrRefCnt.h" + +class GrKey : public GrRefCnt { +public: + typedef intptr_t Hash; + + explicit GrKey(Hash hash) : fHash(hash) {} + + intptr_t getHash() const { return fHash; } + + bool operator<(const GrKey& rh) const { + return fHash < rh.fHash || (fHash == rh.fHash && this->lt(rh)); + } + bool operator==(const GrKey& rh) const { + return fHash == rh.fHash && this->eq(rh); + } + +protected: + virtual bool lt(const GrKey& rh) const = 0; + virtual bool eq(const GrKey& rh) const = 0; + +private: + const Hash fHash; +}; + +#endif + |