1 /* 2 * Copyright 2016 Google Inc. 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 GrVkImageView_DEFINED 9 #define GrVkImageView_DEFINED 10 11 #include "GrTypes.h" 12 13 #include "GrVkResource.h" 14 15 #include "vulkan/vulkan.h" 16 17 class GrVkImageView : public GrVkResource { 18 public: 19 enum Type { 20 kColor_Type, 21 kStencil_Type 22 }; 23 24 static const GrVkImageView* Create(GrVkGpu* gpu, VkImage image, VkFormat format, Type viewType); 25 imageView()26 VkImageView imageView() const { return fImageView; } 27 28 private: GrVkImageView(VkImageView imageView)29 GrVkImageView(VkImageView imageView) : INHERITED(), fImageView(imageView) {} 30 31 GrVkImageView(const GrVkImageView&); 32 GrVkImageView& operator=(const GrVkImageView&); 33 34 void freeGPUData(const GrVkGpu* gpu) const override; 35 36 VkImageView fImageView; 37 38 typedef GrVkResource INHERITED; 39 }; 40 41 #endif