HardwareCounterBufferSharedPtr
 DefaultHardwareBufferManagerBase::createCounterBuffer(size_t sizeBytes,
                                                       HardwareBuffer::Usage usage, bool useShadowBuffer, const String& name)
 {
     DefaultHardwareCounterBuffer* ub = OGRE_NEW DefaultHardwareCounterBuffer(this, sizeBytes, usage, useShadowBuffer);
     return HardwareCounterBufferSharedPtr(ub);
 }
 HardwareCounterBufferSharedPtr
 GL3PlusDefaultHardwareBufferManagerBase::createCounterBuffer(size_t sizeBytes, HardwareBuffer::Usage usage,
                                                              bool useShadowBuffer, const String& name)
 {
     return HardwareCounterBufferSharedPtr(
         new GL3PlusDefaultHardwareCounterBuffer(this, name));
 }
 HardwareCounterBufferSharedPtr GL3PlusHardwareBufferManagerBase::createCounterBuffer(size_t sizeBytes, HardwareBuffer::Usage usage, bool useShadowBuffer, const String& name)
 {
     GL3PlusHardwareCounterBuffer* buf =
         new GL3PlusHardwareCounterBuffer(this, name);
     {
         OGRE_LOCK_MUTEX(mCounterBuffersMutex);
         mCounterBuffers.insert(buf);
     }
     return HardwareCounterBufferSharedPtr(buf);
 }