• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2022 Google LLC
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 
8 #include "experimental/graphite/src/GraphiteResourceKey.h"
9 
10 namespace skgpu {
11 
GenerateResourceType()12 ResourceType GraphiteResourceKey::GenerateResourceType() {
13     static std::atomic<int32_t> nextType{ResourceKey::kInvalidDomain + 1};
14 
15     int32_t type = nextType.fetch_add(1, std::memory_order_relaxed);
16     if (type > SkTo<int32_t>(UINT16_MAX)) {
17         SK_ABORT("Too many Graphite Resource Types");
18     }
19 
20     return static_cast<ResourceType>(type);
21 }
22 
23 } // namespace skgpu
24 
25