1b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com// 2b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com// Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved. 3b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com// Use of this source code is governed by a BSD-style license that can be 4b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com// found in the LICENSE file. 5b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com// 6b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com 7b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com// VertexBuffer9.h: Defines the D3D9 VertexBuffer implementation. 8b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com 9b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com#ifndef LIBGLESV2_RENDERER_VERTEXBUFFER9_H_ 10b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com#define LIBGLESV2_RENDERER_VERTEXBUFFER9_H_ 11b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com 12b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com#include "libGLESv2/renderer/VertexBuffer.h" 13b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com 14b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.comnamespace rx 15b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com{ 16486d9e9b6b4ed31f66d2624b8e822020fe40a1f7shannon.woods@transgaming.comclass Renderer9; 17b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com 18b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.comclass VertexBuffer9 : public VertexBuffer 19b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com{ 20b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com public: 21b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com explicit VertexBuffer9(rx::Renderer9 *const renderer); 22b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com virtual ~VertexBuffer9(); 23b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com 24b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com virtual bool initialize(unsigned int size, bool dynamicUsage); 25b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com 26b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com static VertexBuffer9 *makeVertexBuffer9(VertexBuffer *vertexBuffer); 27b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com 28a857c36bc1e9f1178c5eaa3e80bfe543a5408467Jamie Madill virtual bool storeVertexAttributes(const gl::VertexAttribute &attrib, const gl::VertexAttribCurrentValueData ¤tValue, 29a857c36bc1e9f1178c5eaa3e80bfe543a5408467Jamie Madill GLint start, GLsizei count, GLsizei instances, unsigned int offset); 30b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com 31a36ead4a7d5641181ab994a13b7d5027c1b5bd07Geoff Lang virtual bool getSpaceRequired(const gl::VertexAttribute &attrib, GLsizei count, GLsizei instances, unsigned int *outSpaceRequired) const; 32b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com 33b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com virtual unsigned int getBufferSize() const; 34b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com virtual bool setBufferSize(unsigned int size); 35b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com virtual bool discard(); 36b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com 37b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com IDirect3DVertexBuffer9 *getBuffer() const; 38b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com 39b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com private: 40b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com DISALLOW_COPY_AND_ASSIGN(VertexBuffer9); 41b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com 42b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com rx::Renderer9 *const mRenderer; 43b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com 44b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com IDirect3DVertexBuffer9 *mVertexBuffer; 45b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com unsigned int mBufferSize; 46b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com bool mDynamicUsage; 47b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com 48a36ead4a7d5641181ab994a13b7d5027c1b5bd07Geoff Lang static bool spaceRequired(const gl::VertexAttribute &attrib, std::size_t count, GLsizei instances, 49a36ead4a7d5641181ab994a13b7d5027c1b5bd07Geoff Lang unsigned int *outSpaceRequired); 50b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com}; 51b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com 52b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com} 53b80a190156f46ce50c6872b8b079c93f24256e9cdaniel@transgaming.com 54315b6403eb0d36c7311204def76dc75fff69caafshannon.woods@transgaming.com#endif // LIBGLESV2_RENDERER_VERTEXBUFFER9_H_ 55