1*c8dee2aaSAndroid Build Coastguard Worker /* 2*c8dee2aaSAndroid Build Coastguard Worker * Copyright 2022 Google LLC 3*c8dee2aaSAndroid Build Coastguard Worker * 4*c8dee2aaSAndroid Build Coastguard Worker * Use of this source code is governed by a BSD-style license that can be 5*c8dee2aaSAndroid Build Coastguard Worker * found in the LICENSE file. 6*c8dee2aaSAndroid Build Coastguard Worker */ 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard Worker #ifndef skgpu_graphite_UniquePaintParamsID_DEFINED 9*c8dee2aaSAndroid Build Coastguard Worker #define skgpu_graphite_UniquePaintParamsID_DEFINED 10*c8dee2aaSAndroid Build Coastguard Worker 11*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkTypes.h" 12*c8dee2aaSAndroid Build Coastguard Worker 13*c8dee2aaSAndroid Build Coastguard Worker namespace skgpu::graphite { 14*c8dee2aaSAndroid Build Coastguard Worker 15*c8dee2aaSAndroid Build Coastguard Worker // This class boils down to a unique uint that can be used instead of a variable length 16*c8dee2aaSAndroid Build Coastguard Worker // key derived from a PaintParams. 17*c8dee2aaSAndroid Build Coastguard Worker class UniquePaintParamsID { 18*c8dee2aaSAndroid Build Coastguard Worker public: UniquePaintParamsID(uint32_t id)19*c8dee2aaSAndroid Build Coastguard Worker explicit UniquePaintParamsID(uint32_t id) : fID(id) {} 20*c8dee2aaSAndroid Build Coastguard Worker InvalidID()21*c8dee2aaSAndroid Build Coastguard Worker static UniquePaintParamsID InvalidID() { return UniquePaintParamsID(); } 22*c8dee2aaSAndroid Build Coastguard Worker UniquePaintParamsID()23*c8dee2aaSAndroid Build Coastguard Worker UniquePaintParamsID() : fID(SK_InvalidUniqueID) {} 24*c8dee2aaSAndroid Build Coastguard Worker 25*c8dee2aaSAndroid Build Coastguard Worker bool operator==(const UniquePaintParamsID &that) const { return fID == that.fID; } 26*c8dee2aaSAndroid Build Coastguard Worker bool operator!=(const UniquePaintParamsID &that) const { return !(*this == that); } 27*c8dee2aaSAndroid Build Coastguard Worker isValid()28*c8dee2aaSAndroid Build Coastguard Worker bool isValid() const { return fID != SK_InvalidUniqueID; } asUInt()29*c8dee2aaSAndroid Build Coastguard Worker uint32_t asUInt() const { return fID; } 30*c8dee2aaSAndroid Build Coastguard Worker 31*c8dee2aaSAndroid Build Coastguard Worker private: 32*c8dee2aaSAndroid Build Coastguard Worker uint32_t fID; 33*c8dee2aaSAndroid Build Coastguard Worker }; 34*c8dee2aaSAndroid Build Coastguard Worker 35*c8dee2aaSAndroid Build Coastguard Worker } // skgpu::graphite 36*c8dee2aaSAndroid Build Coastguard Worker 37*c8dee2aaSAndroid Build Coastguard Worker #endif // skgpu_graphite_UniquePaintParamsID_DEFINED 38