29 #ifndef __MemoryAllocatorConfig_H__ 30 #define __MemoryAllocatorConfig_H__ 190 #if OGRE_MEMORY_ALLOCATOR == OGRE_MEMORY_ALLOCATOR_NEDPOOLING 205 #elif OGRE_MEMORY_ALLOCATOR == OGRE_MEMORY_ALLOCATOR_NED 220 #elif OGRE_MEMORY_ALLOCATOR == OGRE_MEMORY_ALLOCATOR_STD 348 for (
size_t i = 0; i < count; ++i)
350 new ((
void*)(basePtr+i)) T();
370 # define OGRE_MALLOC(bytes, category) ::Ogre::CategorisedAllocPolicy<category>::allocateBytes(bytes, __FILE__, __LINE__, __FUNCTION__) 371 # define OGRE_ALLOC_T(T, count, category) static_cast<T*>(::Ogre::CategorisedAllocPolicy<category>::allocateBytes(sizeof(T)*(count), __FILE__, __LINE__, __FUNCTION__)) 373 # define OGRE_FREE(ptr, category) ::Ogre::CategorisedAllocPolicy<category>::deallocateBytes((void*)ptr) 377 # define OGRE_NEW_T(T, category) new (::Ogre::CategorisedAllocPolicy<category>::allocateBytes(sizeof(T), __FILE__, __LINE__, __FUNCTION__)) T 378 # define OGRE_NEW_ARRAY_T(T, count, category) ::Ogre::constructN(static_cast<T*>(::Ogre::CategorisedAllocPolicy<category>::allocateBytes(sizeof(T)*(count), __FILE__, __LINE__, __FUNCTION__)), count) 380 # define OGRE_DELETE_T(ptr, T, category) if(ptr){(ptr)->~T(); ::Ogre::CategorisedAllocPolicy<category>::deallocateBytes((void*)ptr);} 382 # define OGRE_DELETE_ARRAY_T(ptr, T, count, category) if(ptr){for (size_t b = 0; b < count; ++b) { (ptr)[b].~T();} ::Ogre::CategorisedAllocPolicy<category>::deallocateBytes((void*)ptr);} 387 # define OGRE_MALLOC_SIMD(bytes, category) ::Ogre::CategorisedAlignAllocPolicy<category>::allocateBytes(bytes, __FILE__, __LINE__, __FUNCTION__) 388 # define OGRE_MALLOC_ALIGN(bytes, category, align) ::Ogre::CategorisedAlignAllocPolicy<category, align>::allocateBytes(bytes, __FILE__, __LINE__, __FUNCTION__) 390 # define OGRE_ALLOC_T_SIMD(T, count, category) static_cast<T*>(::Ogre::CategorisedAlignAllocPolicy<category>::allocateBytes(sizeof(T)*(count), __FILE__, __LINE__, __FUNCTION__)) 392 # define OGRE_ALLOC_T_ALIGN(T, count, category, align) static_cast<T*>(::Ogre::CategorisedAlignAllocPolicy<category, align>::allocateBytes(sizeof(T)*(count), __FILE__, __LINE__, __FUNCTION__)) 394 # define OGRE_FREE_SIMD(ptr, category) ::Ogre::CategorisedAlignAllocPolicy<category>::deallocateBytes(ptr) 396 # define OGRE_FREE_ALIGN(ptr, category, align) ::Ogre::CategorisedAlignAllocPolicy<category, align>::deallocateBytes(ptr) 400 # define OGRE_NEW_T_SIMD(T, category) new (::Ogre::CategorisedAlignAllocPolicy<category>::allocateBytes(sizeof(T), __FILE__, __LINE__, __FUNCTION__)) T 401 # define OGRE_NEW_ARRAY_T_SIMD(T, count, category) ::Ogre::constructN(static_cast<T*>(::Ogre::CategorisedAlignAllocPolicy<category>::allocateBytes(sizeof(T)*(count), __FILE__, __LINE__, __FUNCTION__)), count) 403 # define OGRE_DELETE_T_SIMD(ptr, T, category) if(ptr){(ptr)->~T(); ::Ogre::CategorisedAlignAllocPolicy<category>::deallocateBytes(ptr);} 405 # define OGRE_DELETE_ARRAY_T_SIMD(ptr, T, count, category) if(ptr){for (size_t b = 0; b < count; ++b) { (ptr)[b].~T();} ::Ogre::CategorisedAlignAllocPolicy<category>::deallocateBytes(ptr);} 407 # define OGRE_NEW_T_ALIGN(T, category, align) new (::Ogre::CategorisedAlignAllocPolicy<category, align>::allocateBytes(sizeof(T), __FILE__, __LINE__, __FUNCTION__)) T 409 # define OGRE_NEW_ARRAY_T_ALIGN(T, count, category, align) ::Ogre::constructN(static_cast<T*>(::Ogre::CategorisedAlignAllocPolicy<category, align>::allocateBytes(sizeof(T)*(count), __FILE__, __LINE__, __FUNCTION__)), count) 411 # define OGRE_DELETE_T_ALIGN(ptr, T, category, align) if(ptr){(ptr)->~T(); ::Ogre::CategorisedAlignAllocPolicy<category, align>::deallocateBytes(ptr);} 413 # define OGRE_DELETE_ARRAY_T_ALIGN(ptr, T, count, category, align) if(ptr){for (size_t _b = 0; _b < count; ++_b) { (ptr)[_b].~T();} ::Ogre::CategorisedAlignAllocPolicy<category, align>::deallocateBytes(ptr);} 419 # define OGRE_NEW new (__FILE__, __LINE__, __FUNCTION__) 420 # define OGRE_DELETE delete 423 #else // !OGRE_DEBUG_MODE 426 # define OGRE_MALLOC(bytes, category) ::Ogre::CategorisedAllocPolicy<category>::allocateBytes(bytes) 427 # define OGRE_ALLOC_T(T, count, category) static_cast<T*>(::Ogre::CategorisedAllocPolicy<category>::allocateBytes(sizeof(T)*(count))) 429 # define OGRE_FREE(ptr, category) ::Ogre::CategorisedAllocPolicy<category>::deallocateBytes((void*)ptr) 433 # define OGRE_NEW_T(T, category) new (::Ogre::CategorisedAllocPolicy<category>::allocateBytes(sizeof(T))) T 434 # define OGRE_NEW_ARRAY_T(T, count, category) ::Ogre::constructN(static_cast<T*>(::Ogre::CategorisedAllocPolicy<category>::allocateBytes(sizeof(T)*(count))), count) 436 # define OGRE_DELETE_T(ptr, T, category) if(ptr){(ptr)->~T(); ::Ogre::CategorisedAllocPolicy<category>::deallocateBytes((void*)ptr);} 438 # define OGRE_DELETE_ARRAY_T(ptr, T, count, category) if(ptr){for (size_t b = 0; b < count; ++b) { (ptr)[b].~T();} ::Ogre::CategorisedAllocPolicy<category>::deallocateBytes((void*)ptr);} 443 # define OGRE_MALLOC_SIMD(bytes, category) ::Ogre::CategorisedAlignAllocPolicy<category>::allocateBytes(bytes) 444 # define OGRE_MALLOC_ALIGN(bytes, category, align) ::Ogre::CategorisedAlignAllocPolicy<category, align>::allocateBytes(bytes) 446 # define OGRE_ALLOC_T_SIMD(T, count, category) static_cast<T*>(::Ogre::CategorisedAlignAllocPolicy<category>::allocateBytes(sizeof(T)*(count))) 448 # define OGRE_ALLOC_T_ALIGN(T, count, category, align) static_cast<T*>(::Ogre::CategorisedAlignAllocPolicy<category, align>::allocateBytes(sizeof(T)*(count))) 450 # define OGRE_FREE_SIMD(ptr, category) ::Ogre::CategorisedAlignAllocPolicy<category>::deallocateBytes((void*)ptr) 452 # define OGRE_FREE_ALIGN(ptr, category, align) ::Ogre::CategorisedAlignAllocPolicy<category, align>::deallocateBytes((void*)ptr) 456 # define OGRE_NEW_T_SIMD(T, category) new (::Ogre::CategorisedAlignAllocPolicy<category>::allocateBytes(sizeof(T))) T 457 # define OGRE_NEW_ARRAY_T_SIMD(T, count, category) ::Ogre::constructN(static_cast<T*>(::Ogre::CategorisedAlignAllocPolicy<category>::allocateBytes(sizeof(T)*(count))), count) 459 # define OGRE_DELETE_T_SIMD(ptr, T, category) if(ptr){(ptr)->~T(); ::Ogre::CategorisedAlignAllocPolicy<category>::deallocateBytes((void*)ptr);} 461 # define OGRE_DELETE_ARRAY_T_SIMD(ptr, T, count, category) if(ptr){for (size_t b = 0; b < count; ++b) { (ptr)[b].~T();} ::Ogre::CategorisedAlignAllocPolicy<category>::deallocateBytes((void*)ptr);} 463 # define OGRE_NEW_T_ALIGN(T, category, align) new (::Ogre::CategorisedAlignAllocPolicy<category, align>::allocateBytes(sizeof(T))) T 465 # define OGRE_NEW_ARRAY_T_ALIGN(T, count, category, align) ::Ogre::constructN(static_cast<T*>(::Ogre::CategorisedAlignAllocPolicy<category, align>::allocateBytes(sizeof(T)*(count))), count) 467 # define OGRE_DELETE_T_ALIGN(ptr, T, category, align) if(ptr){(ptr)->~T(); ::Ogre::CategorisedAlignAllocPolicy<category, align>::deallocateBytes((void*)ptr);} 469 # define OGRE_DELETE_ARRAY_T_ALIGN(ptr, T, count, category, align) if(ptr){for (size_t _b = 0; _b < count; ++_b) { (ptr)[_b].~T();} ::Ogre::CategorisedAlignAllocPolicy<category, align>::deallocateBytes((void*)ptr);} 473 # define OGRE_NEW new 474 # define OGRE_DELETE delete 476 #endif // OGRE_DEBUG_MODE
GeneralAllocatedObject RootAlloc
AnimationAllocatedObject AnimableAlloc
GeneralAllocatedObject ProfilerAlloc
CategorisedAllocPolicy< Ogre::MEMCATEGORY_RESOURCE > ResourceAllocPolicy
RenderSysAllocatedObject BufferAlloc
AllocatedObject< GeometryAllocPolicy > GeometryAllocatedObject
AllocatedObject< GeneralAllocPolicy > GeneralAllocatedObject
SceneCtlAllocatedObject SceneMgtAlloc
CategorisedAllocPolicy< Ogre::MEMCATEGORY_RENDERSYS > RenderSysAllocPolicy
GeneralAllocatedObject ControllerAlloc
GeneralAllocatedObject FileSystemLayerAlloc
ResourceAllocatedObject PassAlloc
CategorisedAllocPolicy< Ogre::MEMCATEGORY_ANIMATION > AnimationAllocPolicy
A "standard" allocation policy for use with AllocatedObject and STLAllocator.
GeneralAllocatedObject ImageAlloc
SceneCtlAllocatedObject ShadowDataAlloc
ScriptingAllocatedObject AbstractNodeAlloc
RenderSysAllocatedObject GpuParamsAlloc
GeometryAllocatedObject BatchedGeometryAlloc
ResourceAllocatedObject SubMeshAlloc
AllocatedObject< RenderSysAllocPolicy > RenderSysAllocatedObject
RenderSysAllocatedObject RenderSysAlloc
AnimationAllocatedObject AnimationAlloc
Geometry held in main memory.
An allocation policy for use with AllocatedObject and STLAllocator.
ScriptingAllocatedObject ScriptTranslatorAlloc
AllocatedObject< ScriptingAllocPolicy > ScriptingAllocatedObject
GeometryAllocatedObject VertexDataAlloc
SceneObjAllocatedObject FXAlloc
AllocatedObject< ResourceAllocPolicy > ResourceAllocatedObject
ResourceAllocatedObject ResourceAlloc
CategorisedAllocPolicy< Ogre::MEMCATEGORY_SCENE_CONTROL > SceneCtlAllocPolicy
Animation data like tracks, bone matrices.
GeneralAllocatedObject TimerAlloc
GeometryAllocatedObject PatchAlloc
GeneralAllocatedObject SerializerAlloc
GeometryAllocatedObject IndexDataAlloc
CategorisedAllocPolicy< Ogre::MEMCATEGORY_GENERAL > GeneralAllocPolicy
ResourceAllocatedObject TechniqueAlloc
GeneralAllocatedObject CodecAlloc
An allocation policy for use with AllocatedObject and STLAllocator, which aligns memory at a given bo...
GeneralAllocatedObject ConfigAlloc
RenderSysAllocatedObject ViewportAlloc
GeometryAllocatedObject ProgMeshAlloc
CategorisedAllocPolicy< Ogre::MEMCATEGORY_SCRIPTING > ScriptingAllocPolicy
SceneObjAllocatedObject SubEntityAlloc
SceneObjAllocatedObject MovableAlloc
GeometryAllocatedObject DebugGeomAlloc
AllocatedObject< SceneObjAllocPolicy > SceneObjAllocatedObject
An allocation policy for use with AllocatedObject and STLAllocator.
GeometryAllocatedObject EdgeDataAlloc
GeneralAllocatedObject FactoryAlloc
T * constructN(T *basePtr, size_t count)
Utility function for constructing an array of objects with placement new, without using new[] (which ...
ResourceAllocatedObject TextureUnitStateAlloc
ScriptingAllocatedObject ScriptCompilerAlloc
CategorisedAllocPolicy< Ogre::MEMCATEGORY_SCENE_OBJECTS > SceneObjAllocPolicy
GeneralAllocatedObject ArchiveAlloc
MemoryCategory
A set of categories that indicate the purpose of a chunk of memory being allocated.
void deletePtr(T *ptr)
Function which invokes OGRE_DELETE on a given pointer.
GeneralAllocatedObject DynLibAlloc
GeneralAllocatedObject UtilityAlloc
ResourceAllocatedObject CompositorInstAlloc
SceneCtlAllocatedObject LodAlloc
AllocatedObject< SceneCtlAllocPolicy > SceneCtlAllocatedObject
SceneCtlAllocatedObject RenderQueueAlloc
GeneralAllocatedObject StreamAlloc
AllocatedObject< AnimationAllocPolicy > AnimationAllocatedObject
GeneralAllocatedObject LogAlloc
SceneObjAllocatedObject OverlayAlloc
SceneCtlAllocatedObject NodeAlloc
A "standard" allocation policy for use with AllocatedObject and STLAllocator, which aligns memory at ...
CategorisedAllocPolicy< Ogre::MEMCATEGORY_GEOMETRY > GeometryAllocPolicy
GeneralAllocatedObject PluginAlloc
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
An allocation policy for use with AllocatedObject and STLAllocator, which aligns memory at a given bo...