111c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com// 211c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved. 311c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com// Use of this source code is governed by a BSD-style license that can be 411c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com// found in the LICENSE file. 511c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com// 611c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com 711c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com// IndexBuffer11.h: Defines the D3D11 IndexBuffer implementation. 811c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com 911c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com#ifndef LIBGLESV2_RENDERER_INDEXBUFFER11_H_ 1011c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com#define LIBGLESV2_RENDERER_INDEXBUFFER11_H_ 1111c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com 1211c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com#include "libGLESv2/renderer/IndexBuffer.h" 1311c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com 1411c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.comnamespace rx 1511c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com{ 16486d9e9b6b4ed31f66d2624b8e822020fe40a1f7shannon.woods@transgaming.comclass Renderer11; 1711c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com 1811c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.comclass IndexBuffer11 : public IndexBuffer 1911c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com{ 2011c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com public: 2111c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com explicit IndexBuffer11(Renderer11 *const renderer); 2211c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com virtual ~IndexBuffer11(); 2311c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com 2411c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com virtual bool initialize(unsigned int bufferSize, GLenum indexType, bool dynamic); 2511c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com 2611c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com static IndexBuffer11 *makeIndexBuffer11(IndexBuffer *indexBuffer); 2711c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com 2811c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com virtual bool mapBuffer(unsigned int offset, unsigned int size, void** outMappedMemory); 2911c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com virtual bool unmapBuffer(); 3011c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com 3111c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com virtual GLenum getIndexType() const; 3211c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com virtual unsigned int getBufferSize() const; 3311c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com virtual bool setSize(unsigned int bufferSize, GLenum indexType); 3411c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com 3511c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com virtual bool discard(); 3611c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com 3711c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com DXGI_FORMAT getIndexFormat() const; 3811c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com ID3D11Buffer *getBuffer() const; 3911c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com 4011c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com private: 4111c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com DISALLOW_COPY_AND_ASSIGN(IndexBuffer11); 4211c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com 4311c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com rx::Renderer11 *const mRenderer; 4411c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com 4511c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com ID3D11Buffer *mBuffer; 4611c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com unsigned int mBufferSize; 4711c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com GLenum mIndexType; 4811c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com bool mDynamicUsage; 4911c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com}; 5011c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com 5111c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com} 5211c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com 5311c2af555ad90d9079b2a55398253f165616712cdaniel@transgaming.com#endif // LIBGLESV2_RENDERER_INDEXBUFFER11_H_