blob: 85fa855cbde26f68f526c0ff3f839604e5613077 [file] [log] [blame]
Greg Daniel164a9f02016-02-22 09:56:40 -05001/*
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
Greg Daniel54bfb182018-11-20 17:12:36 -050011#include "GrVkVulkan.h"
12
Greg Daniel164a9f02016-02-22 09:56:40 -050013#include "GrTypes.h"
Greg Daniel164a9f02016-02-22 09:56:40 -050014#include "GrVkResource.h"
15
Greg Daniel164a9f02016-02-22 09:56:40 -050016class GrVkImageView : public GrVkResource {
17public:
18 enum Type {
19 kColor_Type,
20 kStencil_Type
21 };
halcanary9d524f22016-03-29 09:03:52 -070022
Greg Danielc2dd5ed2017-05-05 13:49:11 -040023 static const GrVkImageView* Create(const GrVkGpu* gpu, VkImage image, VkFormat format,
jvanverth62340062016-04-26 08:01:44 -070024 Type viewType, uint32_t miplevels);
Greg Daniel164a9f02016-02-22 09:56:40 -050025
26 VkImageView imageView() const { return fImageView; }
27
jvanverth7ec92412016-07-06 09:24:57 -070028#ifdef SK_TRACE_VK_RESOURCES
29 void dumpInfo() const override {
30 SkDebugf("GrVkImageView: %d (%d refs)\n", fImageView, this->getRefCnt());
31 }
32#endif
33
Greg Daniel164a9f02016-02-22 09:56:40 -050034private:
35 GrVkImageView(VkImageView imageView) : INHERITED(), fImageView(imageView) {}
36
37 GrVkImageView(const GrVkImageView&);
38 GrVkImageView& operator=(const GrVkImageView&);
39
40 void freeGPUData(const GrVkGpu* gpu) const override;
41
42 VkImageView fImageView;
43
44 typedef GrVkResource INHERITED;
45};
46
jvanverthe50f3e72016-03-28 07:03:06 -070047#endif