1*c8dee2aaSAndroid Build Coastguard Worker /* 2*c8dee2aaSAndroid Build Coastguard Worker * Copyright 2018 Google Inc. 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 GrVkImageLayout_DEFINED 9*c8dee2aaSAndroid Build Coastguard Worker #define GrVkImageLayout_DEFINED 10*c8dee2aaSAndroid Build Coastguard Worker 11*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkRefCnt.h" 12*c8dee2aaSAndroid Build Coastguard Worker #include "include/gpu/ganesh/vk/GrVkTypes.h" 13*c8dee2aaSAndroid Build Coastguard Worker 14*c8dee2aaSAndroid Build Coastguard Worker class GrVkImageLayout : public SkRefCnt { 15*c8dee2aaSAndroid Build Coastguard Worker public: GrVkImageLayout(VkImageLayout layout)16*c8dee2aaSAndroid Build Coastguard Worker GrVkImageLayout(VkImageLayout layout) : fLayout(layout) {} 17*c8dee2aaSAndroid Build Coastguard Worker setImageLayout(VkImageLayout layout)18*c8dee2aaSAndroid Build Coastguard Worker void setImageLayout(VkImageLayout layout) { 19*c8dee2aaSAndroid Build Coastguard Worker // Defaulting to use std::memory_order_seq_cst 20*c8dee2aaSAndroid Build Coastguard Worker fLayout.store(layout); 21*c8dee2aaSAndroid Build Coastguard Worker } 22*c8dee2aaSAndroid Build Coastguard Worker getImageLayout()23*c8dee2aaSAndroid Build Coastguard Worker VkImageLayout getImageLayout() const { 24*c8dee2aaSAndroid Build Coastguard Worker // Defaulting to use std::memory_order_seq_cst 25*c8dee2aaSAndroid Build Coastguard Worker return fLayout.load(); 26*c8dee2aaSAndroid Build Coastguard Worker } 27*c8dee2aaSAndroid Build Coastguard Worker 28*c8dee2aaSAndroid Build Coastguard Worker private: 29*c8dee2aaSAndroid Build Coastguard Worker std::atomic<VkImageLayout> fLayout; 30*c8dee2aaSAndroid Build Coastguard Worker }; 31*c8dee2aaSAndroid Build Coastguard Worker 32*c8dee2aaSAndroid Build Coastguard Worker #endif 33