1// 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/d3d/VertexBuffer.h" 13 14namespace rx 15{ 16class Renderer11; 17 18class VertexBuffer11 : public VertexBuffer 19{ 20 public: 21 explicit VertexBuffer11(rx::Renderer11 *const renderer); 22 virtual ~VertexBuffer11(); 23 24 virtual gl::Error initialize(unsigned int size, bool dynamicUsage); 25 26 static VertexBuffer11 *makeVertexBuffer11(VertexBuffer *vetexBuffer); 27 28 virtual gl::Error storeVertexAttributes(const gl::VertexAttribute &attrib, const gl::VertexAttribCurrentValueData ¤tValue, 29 GLint start, GLsizei count, GLsizei instances, unsigned int offset); 30 31 virtual gl::Error getSpaceRequired(const gl::VertexAttribute &attrib, GLsizei count, GLsizei instances, 32 unsigned int *outSpaceRequired) const; 33 34 virtual unsigned int getBufferSize() const; 35 virtual gl::Error setBufferSize(unsigned int size); 36 virtual gl::Error discard(); 37 38 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; 48}; 49 50} 51 52#endif // LIBGLESV2_RENDERER_VERTEXBUFFER11_H_ 53