1 // Copyright (C) 2008-2012 Nikolaus Gebhardt
\r
2 // This file is part of the "Irrlicht Engine".
\r
3 // For conditions of distribution and use, see copyright notice in irrlicht.h
\r
5 #ifndef __I_INDEX_BUFFER_H_INCLUDED__
\r
6 #define __I_INDEX_BUFFER_H_INCLUDED__
\r
8 #include "IReferenceCounted.h"
\r
9 #include "irrArray.h"
\r
11 #include "SVertexIndex.h"
\r
24 class IIndexBuffer : public virtual IReferenceCounted
\r
28 virtual void* getData() =0;
\r
30 virtual video::E_INDEX_TYPE getType() const =0;
\r
31 virtual void setType(video::E_INDEX_TYPE IndexType) =0;
\r
33 virtual u32 stride() const =0;
\r
35 virtual u32 size() const =0;
\r
36 virtual void push_back (const u32 &element) =0;
\r
37 virtual u32 operator [](u32 index) const =0;
\r
38 virtual u32 getLast() =0;
\r
39 virtual void setValue(u32 index, u32 value) =0;
\r
40 virtual void set_used(u32 usedNow) =0;
\r
41 virtual void reallocate(u32 new_size) =0;
\r
42 virtual u32 allocated_size() const=0;
\r
44 virtual void* pointer() =0;
\r
46 //! get the current hardware mapping hint
\r
47 virtual E_HARDWARE_MAPPING getHardwareMappingHint() const =0;
\r
49 //! set the hardware mapping hint, for driver
\r
50 virtual void setHardwareMappingHint( E_HARDWARE_MAPPING NewMappingHint ) =0;
\r
52 //! flags the meshbuffer as changed, reloads hardware buffers
\r
53 virtual void setDirty() = 0;
\r
55 //! Get the currently used ID for identification of changes.
\r
56 /** This shouldn't be used for anything outside the VideoDriver. */
\r
57 virtual u32 getChangedID() const = 0;
\r
61 } // end namespace scene
\r
62 } // end namespace irr
\r