blob: ce3873ac016d0d9d4a1aff6c929499c28f01218b [file] [log] [blame]
Greg Danielc2dd5ed2017-05-05 13:49:11 -04001/*
2 * Copyright 2017 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 GrVkBufferView_DEFINED
9#define GrVkBufferView_DEFINED
10
11#include "GrTypes.h"
Greg Danielc2dd5ed2017-05-05 13:49:11 -040012#include "GrVkResource.h"
Greg Daniel487132b2018-12-20 14:09:36 -050013#include "vk/GrVkTypes.h"
Greg Danielc2dd5ed2017-05-05 13:49:11 -040014
Greg Danielc2dd5ed2017-05-05 13:49:11 -040015class GrVkBufferView : public GrVkResource {
16public:
17 static const GrVkBufferView* Create(const GrVkGpu* gpu, VkBuffer buffer, VkFormat format,
18 VkDeviceSize offset, VkDeviceSize range);
19
20 VkBufferView bufferView() const { return fBufferView; }
21
22#ifdef SK_TRACE_VK_RESOURCES
23 void dumpInfo() const override {
24 SkDebugf("GrVkBufferView: %d (%d refs)\n", fBufferView, this->getRefCnt());
25 }
26#endif
27
28private:
29 GrVkBufferView(VkBufferView bufferView) : INHERITED(), fBufferView(bufferView) {}
30
Ethan Nicholas8e265a72018-12-12 16:22:40 -050031 void freeGPUData(GrVkGpu* gpu) const override;
Greg Danielc2dd5ed2017-05-05 13:49:11 -040032
33 VkBufferView fBufferView;
34
35 typedef GrVkResource INHERITED;
36};
37
38#endif