/* * Copyright 2022 Google LLC * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SkUniquePaintParamsID_DEFINED #define SkUniquePaintParamsID_DEFINED #include "include/core/SkTypes.h" // This class boils down to a unique uint that can be used instead of a variable length // key derived from a PaintParams. class SkUniquePaintParamsID { public: explicit SkUniquePaintParamsID(uint32_t id) : fID(id) { SkASSERT(id != SK_InvalidUniqueID); } static SkUniquePaintParamsID InvalidID() { return SkUniquePaintParamsID(); } SkUniquePaintParamsID() : fID(SK_InvalidUniqueID) {} bool operator==(const SkUniquePaintParamsID &that) const { return fID == that.fID; } bool operator!=(const SkUniquePaintParamsID &that) const { return !(*this == that); } bool isValid() const { return fID != SK_InvalidUniqueID; } uint32_t asUInt() const { return fID; } private: uint32_t fID; }; #endif // SkUniquePaintParamsID_DEFINED