36 lines
1.0 KiB
C
36 lines
1.0 KiB
C
|
/*
|
||
|
* 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
|