blob: cd945ac5b38fbb7660b68d9772ac63cffeebbfd1 [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 GrVkIndexBuffer_DEFINED
9#define GrVkIndexBuffer_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 GrVkIndexBuffer : public GrBuffer, public GrVkBuffer {
Greg Daniel164a9f02016-02-22 09:56:40 -050017
18public:
19 static GrVkIndexBuffer* Create(GrVkGpu* gpu, size_t size, bool dynamic);
20
21protected:
22 void onAbandon() override;
23 void onRelease() override;
24
25private:
26 GrVkIndexBuffer(GrVkGpu* gpu, const GrVkBuffer::Desc& desc,
27 const GrVkBuffer::Resource* resource);
28
cdalton397536c2016-03-25 12:15:03 -070029 void onMap() override;
Greg Daniel164a9f02016-02-22 09:56:40 -050030 void onUnmap() override;
31 bool onUpdateData(const void* src, size_t srcSizeInBytes) override;
32
33 GrVkGpu* getVkGpu() const;
34
cdalton397536c2016-03-25 12:15:03 -070035 typedef GrBuffer INHERITED;
Greg Daniel164a9f02016-02-22 09:56:40 -050036};
37
38#endif