|  | // Copyright (c) 2016 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #ifndef GPU_VULKAN_VULKAN_IMAGE_VIEW_H_ | 
|  | #define GPU_VULKAN_VULKAN_IMAGE_VIEW_H_ | 
|  |  | 
|  | #include <vulkan/vulkan.h> | 
|  |  | 
|  | #include "base/macros.h" | 
|  |  | 
|  | namespace gpu { | 
|  |  | 
|  | class VulkanDeviceQueue; | 
|  |  | 
|  | class VulkanImageView { | 
|  | public: | 
|  | enum ImageType { | 
|  | IMAGE_TYPE_COLOR, | 
|  | IMAGE_TYPE_DEPTH, | 
|  | IMAGE_TYPE_STENCIL, | 
|  | IMAGE_TYPE_DEPTH_STENCIL, | 
|  |  | 
|  | NUM_IMAGE_TYPES, | 
|  | IMAGE_TYPE_INVALID = -1, | 
|  | }; | 
|  |  | 
|  | explicit VulkanImageView(VulkanDeviceQueue* device_queue); | 
|  | ~VulkanImageView(); | 
|  |  | 
|  | bool Initialize(VkImage image, | 
|  | VkImageViewType image_view_type, | 
|  | ImageType image_type, | 
|  | VkFormat format, | 
|  | uint32_t width, | 
|  | uint32_t height, | 
|  | uint32_t base_mip_level, | 
|  | uint32_t num_mips, | 
|  | uint32_t base_layer_level, | 
|  | uint32_t num_layers); | 
|  | void Destroy(); | 
|  |  | 
|  | ImageType image_type() const { return image_type_; } | 
|  | VkImageView handle() const { return handle_; } | 
|  | VkFormat format() const { return format_; } | 
|  | uint32_t width() const { return width_; } | 
|  | uint32_t height() const { return height_; } | 
|  | uint32_t mips() const { return mips_; } | 
|  | uint32_t layers() const { return layers_; } | 
|  |  | 
|  | private: | 
|  | VulkanDeviceQueue* device_queue_ = nullptr; | 
|  | ImageType image_type_ = IMAGE_TYPE_INVALID; | 
|  | VkImageView handle_ = VK_NULL_HANDLE; | 
|  | VkFormat format_ = VK_FORMAT_UNDEFINED; | 
|  | uint32_t width_ = 0; | 
|  | uint32_t height_ = 0; | 
|  | uint32_t mips_ = 0; | 
|  | uint32_t layers_ = 0; | 
|  |  | 
|  | DISALLOW_COPY_AND_ASSIGN(VulkanImageView); | 
|  | }; | 
|  |  | 
|  | }  // namespace gpu | 
|  |  | 
|  | #endif  // GPU_VULKAN_VULKAN_IMAGE_VIEW_H_ |