1 // 2 // Copyright (c) 2002-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 // Indexffer9.h: Defines the D3D9 IndexBuffer implementation. 8 9 #ifndef LIBANGLE_RENDERER_D3D_D3D9_INDEXBUFFER9_H_ 10 #define LIBANGLE_RENDERER_D3D_D3D9_INDEXBUFFER9_H_ 11 12 #include "libANGLE/renderer/d3d/IndexBuffer.h" 13 14 namespace rx 15 { 16 class Renderer9; 17 18 class IndexBuffer9 : public IndexBuffer 19 { 20 public: 21 explicit IndexBuffer9(Renderer9 *const renderer); 22 ~IndexBuffer9() override; 23 24 gl::Error initialize(unsigned int bufferSize, GLenum indexType, bool dynamic) override; 25 26 gl::Error mapBuffer(unsigned int offset, unsigned int size, void **outMappedMemory) override; 27 gl::Error unmapBuffer() override; 28 29 GLenum getIndexType() const override; 30 unsigned int getBufferSize() const override; 31 gl::Error setSize(unsigned int bufferSize, GLenum indexType) override; 32 33 gl::Error discard() override; 34 35 D3DFORMAT getIndexFormat() const; 36 IDirect3DIndexBuffer9 *getBuffer() const; 37 38 private: 39 Renderer9 *const mRenderer; 40 41 IDirect3DIndexBuffer9 *mIndexBuffer; 42 unsigned int mBufferSize; 43 GLenum mIndexType; 44 bool mDynamic; 45 }; 46 47 } 48 49 #endif // LIBANGLE_RENDERER_D3D_D3D9_INDEXBUFFER9_H_ 50