blob: 9497fd31f39b6b36bb5cba3d3fb7a6d8b930ab8b [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
Brian Salomondbf70722019-02-07 11:31:24 -050011#include "GrGpuBuffer.h"
Greg Daniel164a9f02016-02-22 09:56:40 -050012#include "GrVkBuffer.h"
Greg Daniel164a9f02016-02-22 09:56:40 -050013
14class GrVkGpu;
15
Brian Salomondbf70722019-02-07 11:31:24 -050016class GrVkVertexBuffer : public GrGpuBuffer, 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
Brian Salomondbf70722019-02-07 11:31:24 -050034 typedef GrGpuBuffer INHERITED;
Greg Daniel164a9f02016-02-22 09:56:40 -050035};
36
37#endif