blob: cbeb98ed70122f83f6dc5d934b1664c3a484e57a [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"
13#include "vk/GrVkDefines.h"
14
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:
35 void freeGPUData(const 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