blob: af65a7eed0cf20fdb017f584c1c8b5485c1d3b33 [file] [log] [blame]
Greg Daniel164a9f02016-02-22 09:56:40 -05001/*
2 * Copyright 2015 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 GrVkVertexBuffer_DEFINED
9#define GrVkVertexBuffer_DEFINED
10
cdalton397536c2016-03-25 12:15:03 -070011#include "GrBuffer.h"
Greg Daniel164a9f02016-02-22 09:56:40 -050012#include "GrVkBuffer.h"
Greg Daniel164a9f02016-02-22 09:56:40 -050013
14class GrVkGpu;
15
cdalton397536c2016-03-25 12:15:03 -070016class GrVkVertexBuffer : public GrBuffer, public GrVkBuffer {
Greg Daniel164a9f02016-02-22 09:56:40 -050017public:
Brian Salomon12d22642019-01-29 14:38:50 -050018 static sk_sp<GrVkVertexBuffer> Make(GrVkGpu* gpu, size_t size, bool dynamic);
Greg Daniel164a9f02016-02-22 09:56:40 -050019
20protected:
21 void onAbandon() override;
22 void onRelease() override;
23
24private:
25 GrVkVertexBuffer(GrVkGpu* gpu, const GrVkBuffer::Desc& desc,
26 const GrVkBuffer::Resource* resource);
27
cdalton397536c2016-03-25 12:15:03 -070028 void onMap() override;
Greg Daniel164a9f02016-02-22 09:56:40 -050029 void onUnmap() override;
30 bool onUpdateData(const void* src, size_t srcSizeInBytes) override;
31
32 GrVkGpu* getVkGpu() const;
33
cdalton397536c2016-03-25 12:15:03 -070034 typedef GrBuffer INHERITED;
Greg Daniel164a9f02016-02-22 09:56:40 -050035};
36
37#endif