HardwareIndexBufferSharedPtr GLES2HardwareBufferManagerBase::createIndexBuffer(HardwareIndexBuffer::IndexType itype,
                                                                              size_t numIndexes,
                                                                              HardwareBuffer::Usage usage,
                                                                              bool useShadowBuffer)
    {
        GLES2HardwareIndexBuffer* buf = 0;
        if(getGLES2SupportRef()->checkExtension("GL_EXT_map_buffer_range") || gleswIsSupported(3, 0))
            buf = OGRE_NEW GLES2HardwareIndexBuffer(this, itype, numIndexes, usage, useShadowBuffer);
        else
            // always use shadowBuffer
            buf = OGRE_NEW GLES2HardwareIndexBuffer(this, itype, numIndexes, usage, true);

        {
            OGRE_LOCK_MUTEX(mIndexBuffersMutex);
            mIndexBuffers.insert(buf);
        }
        return HardwareIndexBufferSharedPtr(buf);
    }
 HardwareIndexBufferSharedPtr GLES2HardwareBufferManagerBase::createIndexBuffer(HardwareIndexBuffer::IndexType itype,
                                                                           size_t numIndexes,
                                                                           HardwareBuffer::Usage usage,
                                                                           bool useShadowBuffer)
 {
     // always use shadowBuffer
     GLES2HardwareIndexBuffer* buf =
         OGRE_NEW GLES2HardwareIndexBuffer(this, itype, numIndexes, usage, true);
     {
         OGRE_LOCK_MUTEX(mIndexBuffersMutex)
         mIndexBuffers.insert(buf);
     }
     return HardwareIndexBufferSharedPtr(buf);
 }