1 /*
2  * Copyright 2020 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 #ifndef GrD3DResourceState_DEFINED
9 #define GrD3DResourceState_DEFINED
10 
11 #include "include/core/SkRefCnt.h"
12 #include "include/gpu/d3d/GrD3DTypes.h"
13 
14 class GrD3DResourceState : public SkRefCnt {
15 public:
GrD3DResourceState(D3D12_RESOURCE_STATES state)16     GrD3DResourceState(D3D12_RESOURCE_STATES state) : fState(state) {}
17 
setResourceState(D3D12_RESOURCE_STATES state)18     void setResourceState(D3D12_RESOURCE_STATES state) {
19         // Defaulting to use std::memory_order_seq_cst
20         fState.store(state);
21     }
22 
getResourceState()23     D3D12_RESOURCE_STATES getResourceState() const {
24         // Defaulting to use std::memory_order_seq_cst
25         return fState.load();
26     }
27 
28 private:
29     std::atomic<D3D12_RESOURCE_STATES> fState;
30 };
31 
32 #endif
33