blob: 2931d858f24043decef9418b7cc0ccda3da942bb [file] [log] [blame]
egdaniela95220d2016-07-21 11:50:37 -07001/*
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 GrVkDescriptorSet_DEFINED
9#define GrVkDescriptorSet_DEFINED
10
11#include "GrVkDescriptorSetManager.h"
12#include "GrVkResource.h"
Greg Daniel487132b2018-12-20 14:09:36 -050013#include "vk/GrVkTypes.h"
egdaniela95220d2016-07-21 11:50:37 -070014
15class GrVkDescriptorPool;
16class GrVkGpu;
17
18class GrVkDescriptorSet : public GrVkRecycledResource {
19public:
20 GrVkDescriptorSet(VkDescriptorSet descSet,
21 GrVkDescriptorPool* pool,
22 GrVkDescriptorSetManager::Handle handle);
23
24 ~GrVkDescriptorSet() override {}
25
26 VkDescriptorSet descriptorSet() const { return fDescSet; }
27
28#ifdef SK_TRACE_VK_RESOURCES
29 void dumpInfo() const override {
30 SkDebugf("GrVkDescriptorSet: %d (%d refs)\n", fDescSet, this->getRefCnt());
31 }
32#endif
33
34private:
Ethan Nicholas8e265a72018-12-12 16:22:40 -050035 void freeGPUData(GrVkGpu* gpu) const override;
Greg Danielcef213c2017-04-21 11:52:27 -040036 void abandonGPUData() const override;
egdaniela95220d2016-07-21 11:50:37 -070037 void onRecycle(GrVkGpu* gpu) const override;
38
39 VkDescriptorSet fDescSet;
40 SkDEBUGCODE(mutable) GrVkDescriptorPool* fPool;
41 GrVkDescriptorSetManager::Handle fHandle;
42};
43
44#endif