blob: cae781e311507865cbea1db766d95f3570be74f9 [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:
18 static GrVkVertexBuffer* Create(GrVkGpu* gpu, size_t size, bool dynamic);
19
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