1a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com// 2a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com// Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved. 3a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com// Use of this source code is governed by a BSD-style license that can be 4a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com// found in the LICENSE file. 5a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com// 6a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com 7a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com// Indexffer9.h: Defines the D3D9 IndexBuffer implementation. 8a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com 9a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com#ifndef LIBGLESV2_RENDERER_INDEXBUFFER9_H_ 10a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com#define LIBGLESV2_RENDERER_INDEXBUFFER9_H_ 11a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com 12a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com#include "libGLESv2/renderer/IndexBuffer.h" 13a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com 14a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.comnamespace rx 15a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com{ 16486d9e9b6b4ed31f66d2624b8e822020fe40a1f7shannon.woods@transgaming.comclass Renderer9; 17a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com 18a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.comclass IndexBuffer9 : public IndexBuffer 19a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com{ 20a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com public: 21a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com explicit IndexBuffer9(Renderer9 *const renderer); 22a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com virtual ~IndexBuffer9(); 23a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com 24a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com virtual bool initialize(unsigned int bufferSize, GLenum indexType, bool dynamic); 25a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com 26a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com static IndexBuffer9 *makeIndexBuffer9(IndexBuffer *indexBuffer); 27a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com 28a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com virtual bool mapBuffer(unsigned int offset, unsigned int size, void** outMappedMemory); 29a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com virtual bool unmapBuffer(); 30a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com 31a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com virtual GLenum getIndexType() const; 32a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com virtual unsigned int getBufferSize() const; 33a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com virtual bool setSize(unsigned int bufferSize, GLenum indexType); 34a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com 35a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com virtual bool discard(); 36a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com 37a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com D3DFORMAT getIndexFormat() const; 38a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com IDirect3DIndexBuffer9 *getBuffer() const; 39a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com 40a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com private: 41a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com DISALLOW_COPY_AND_ASSIGN(IndexBuffer9); 42a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com 43a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com rx::Renderer9 *const mRenderer; 44a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com 45a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com IDirect3DIndexBuffer9 *mIndexBuffer; 46a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com unsigned int mBufferSize; 47a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com GLenum mIndexType; 48a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com bool mDynamic; 49a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com}; 50a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com 51a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com} 52a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com 53a5e0d720d1570a9bfe71c8d0fc3308b8496a97a2daniel@transgaming.com#endif // LIBGLESV2_RENDERER_INDEXBUFFER9_H_ 54