blob: 191791af3c4f3ea30dfd9c20ed11dba67631f27a [file] [log] [blame]
daniel@transgaming.com2c4d0702012-12-20 21:08:51 +00001//
2// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
3// Use of this source code is governed by a BSD-style license that can be
4// found in the LICENSE file.
5//
6
7// VertexBuffer11.h: Defines the D3D11 VertexBuffer implementation.
8
9#ifndef LIBGLESV2_RENDERER_VERTEXBUFFER11_H_
10#define LIBGLESV2_RENDERER_VERTEXBUFFER11_H_
11
12#include "libGLESv2/renderer/VertexBuffer.h"
daniel@transgaming.com2c4d0702012-12-20 21:08:51 +000013
daniel@transgaming.com2c4d0702012-12-20 21:08:51 +000014namespace rx
15{
shannon.woods@transgaming.com486d9e92013-02-28 23:15:41 +000016class Renderer11;
daniel@transgaming.com2c4d0702012-12-20 21:08:51 +000017
18class VertexBuffer11 : public VertexBuffer
19{
20 public:
21 explicit VertexBuffer11(rx::Renderer11 *const renderer);
22 virtual ~VertexBuffer11();
23
24 virtual bool initialize(unsigned int size, bool dynamicUsage);
25
26 static VertexBuffer11 *makeVertexBuffer11(VertexBuffer *vetexBuffer);
27
Jamie Madilla857c362013-07-02 11:57:02 -040028 virtual bool storeVertexAttributes(const gl::VertexAttribute &attrib, const gl::VertexAttribCurrentValueData &currentValue,
29 GLint start, GLsizei count, GLsizei instances, unsigned int offset);
daniel@transgaming.com2c4d0702012-12-20 21:08:51 +000030
Geoff Langa36ead42013-08-02 11:54:08 -040031 virtual bool getSpaceRequired(const gl::VertexAttribute &attrib, GLsizei count, GLsizei instances,
32 unsigned int *outSpaceRequired) const;
daniel@transgaming.com2c4d0702012-12-20 21:08:51 +000033
34 virtual unsigned int getBufferSize() const;
35 virtual bool setBufferSize(unsigned int size);
36 virtual bool discard();
37
daniel@transgaming.com2c4d0702012-12-20 21:08:51 +000038 ID3D11Buffer *getBuffer() const;
39
40 private:
41 DISALLOW_COPY_AND_ASSIGN(VertexBuffer11);
42
43 rx::Renderer11 *const mRenderer;
44
45 ID3D11Buffer *mBuffer;
46 unsigned int mBufferSize;
47 bool mDynamicUsage;
daniel@transgaming.com2c4d0702012-12-20 21:08:51 +000048};
49
50}
51
shannon.woods%transgaming.com@gtempaccount.comcf8d2f82013-04-13 03:37:34 +000052#endif // LIBGLESV2_RENDERER_VERTEXBUFFER11_H_