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