blob: e6adf6b9a946969dec22710aa992b88190ec6137 [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
Mike Kleinc0bd9f92019-04-23 12:05:21 -050011#include "include/gpu/GrTypes.h"
12#include "include/gpu/vk/GrVkTypes.h"
13#include "src/gpu/vk/GrVkResource.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