aboutsummaryrefslogtreecommitdiff
path: root/src/deps/skia/include/private/SkUniquePaintParamsID.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/deps/skia/include/private/SkUniquePaintParamsID.h')
-rw-r--r--src/deps/skia/include/private/SkUniquePaintParamsID.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/deps/skia/include/private/SkUniquePaintParamsID.h b/src/deps/skia/include/private/SkUniquePaintParamsID.h
new file mode 100644
index 000000000..2cd89fd2f
--- /dev/null
+++ b/src/deps/skia/include/private/SkUniquePaintParamsID.h
@@ -0,0 +1,35 @@
+/*
+ * 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