1 // 2 // Copyright 2002 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 angle::Result initialize(const gl::Context *context, 25 unsigned int bufferSize, 26 gl::DrawElementsType indexType, 27 bool dynamic) override; 28 29 angle::Result mapBuffer(const gl::Context *context, 30 unsigned int offset, 31 unsigned int size, 32 void **outMappedMemory) override; 33 angle::Result unmapBuffer(const gl::Context *context) override; 34 35 gl::DrawElementsType getIndexType() const override; 36 unsigned int getBufferSize() const override; 37 angle::Result setSize(const gl::Context *context, 38 unsigned int bufferSize, 39 gl::DrawElementsType indexType) override; 40 41 angle::Result discard(const gl::Context *context) override; 42 43 D3DFORMAT getIndexFormat() const; 44 IDirect3DIndexBuffer9 *getBuffer() const; 45 46 private: 47 Renderer9 *const mRenderer; 48 49 IDirect3DIndexBuffer9 *mIndexBuffer; 50 unsigned int mBufferSize; 51 gl::DrawElementsType mIndexType; 52 bool mDynamic; 53 }; 54 55 } // namespace rx 56 57 #endif // LIBANGLE_RENDERER_D3D_D3D9_INDEXBUFFER9_H_ 58