Blender V4.3
btAlignedAllocator.h File Reference
#include "btScalar.h"

Go to the source code of this file.

Classes

class  btAlignedAllocator< T, Alignment >
 
struct  btAlignedAllocator< T, Alignment >::rebind< O >
 

Macros

#define btAlignedAlloc(size, alignment)   btAlignedAllocInternal(size, alignment)
 
#define btAlignedFree(ptr)   btAlignedFreeInternal(ptr)
 

Typedefs

typedef int size_type
 
typedef void * btAlignedAllocFunc(size_t size, int alignment)
 
typedef void btAlignedFreeFunc(void *memblock)
 
typedef void * btAllocFunc(size_t size)
 
typedef void btFreeFunc(void *memblock)
 

Functions

void * btAlignedAllocInternal (size_t size, int alignment)
 
void btAlignedFreeInternal (void *ptr)
 
void btAlignedAllocSetCustom (btAllocFunc *allocFunc, btFreeFunc *freeFunc)
 The developer can let all Bullet memory allocations go through a custom memory allocator, using btAlignedAllocSetCustom.
 
void btAlignedAllocSetCustomAligned (btAlignedAllocFunc *allocFunc, btAlignedFreeFunc *freeFunc)
 If the developer has already an custom aligned allocator, then btAlignedAllocSetCustomAligned can be used. The default aligned allocator pre-allocates extra memory using the non-aligned allocator, and instruments it.
 

Macro Definition Documentation

◆ btAlignedAlloc

#define btAlignedAlloc ( size,
alignment )   btAlignedAllocInternal(size, alignment)

Definition at line 46 of file btAlignedAllocator.h.

Referenced by btAlignedAllocator< T, Alignment >::allocate(), btCollisionDispatcher::allocateCollisionAlgorithm(), btSoftBody::appendAngularJoint(), btSoftBody::appendLinearJoint(), btSoftBody::appendMaterial(), btAxisSweep3Internal< BP_FP_INT_TYPE >::btAxisSweep3Internal(), btBvhTriangleMeshShape(), btCompoundCompoundCollisionAlgorithm::btCompoundCompoundCollisionAlgorithm(), btCompoundShape(), btDbvtBroadphase::btDbvtBroadphase(), btDefaultCollisionConfiguration::btDefaultCollisionConfiguration(), btDefaultSerializer::btDefaultSerializer(), btDiscreteDynamicsWorld(), btDiscreteDynamicsWorldMt(), btPairCachingGhostObject::btPairCachingGhostObject(), btPoolAllocator::btPoolAllocator(), btSimpleBroadphase::btSimpleBroadphase(), btSoftBodyRigidBodyCollisionConfiguration::btSoftBodyRigidBodyCollisionConfiguration(), btSoftMultiBodyDynamicsWorld::btSoftMultiBodyDynamicsWorld(), btSoftRigidDynamicsWorld::btSoftRigidDynamicsWorld(), buildOptimizedBvh(), buildTreeBottomUp(), btStackAlloc::create(), createAabbTreeFromChildren(), btCollisionWorldImporter::createMeshInterface(), createnode(), btDbvtBroadphase::createProxy(), btGenericPoolAllocator::failback_alloc(), btDefaultSerializer::finishSerialization(), btSoftBody::generateClusters(), btCollisionDispatcher::getNewManifold(), btCollisionDispatcherMt::getNewManifold(), gim_alloc(), btGenericMemoryPool::init_pool(), btDefaultSerializer::initDNA(), btSoftBody::initializeFaceTree(), initializePolyhedralFeatures(), btDefaultSerializer::internalAlloc(), btSoftColliders::CollideCL_RS::Process(), btSoftColliders::CollideCL_SS::Process(), btGenericPoolAllocator::push_new_pool(), btSoftBody::rebuildNodeTree(), and setPolyhedralFeatures().

◆ btAlignedFree

#define btAlignedFree ( ptr)    btAlignedFreeInternal(ptr)

Definition at line 47 of file btAlignedAllocator.h.

Referenced by btDiscreteDynamicsWorldMt(), btSoftBodyRigidBodyCollisionConfiguration::btSoftBodyRigidBodyCollisionConfiguration(), buildOptimizedBvh(), btSoftBody::cleanupClusters(), btDbvt::clear(), btAlignedAllocator< T, Alignment >::deallocate(), btCollisionWorldImporter::deleteAllData(), deletenode(), btStackAlloc::destroy(), btDbvtBroadphase::destroyProxy(), btGenericMemoryPool::end_pool(), btGenericPoolAllocator::failback_free(), btDefaultSerializer::finishSerialization(), btCollisionDispatcher::freeCollisionAlgorithm(), gim_free(), initializePolyhedralFeatures(), btSoftBody::releaseCluster(), btCollisionDispatcher::releaseManifold(), btCollisionDispatcherMt::releaseManifold(), btSimpleDynamicsWorld::setConstraintSolver(), btAxisSweep3Internal< BP_FP_INT_TYPE >::~btAxisSweep3Internal(), ~btBvhTriangleMeshShape(), btCompoundCompoundCollisionAlgorithm::~btCompoundCompoundCollisionAlgorithm(), ~btCompoundShape(), btDbvtBroadphase::~btDbvtBroadphase(), btDefaultCollisionConfiguration::~btDefaultCollisionConfiguration(), btDefaultSerializer::~btDefaultSerializer(), ~btDiscreteDynamicsWorld(), btGenericPoolAllocator::~btGenericPoolAllocator(), btPairCachingGhostObject::~btPairCachingGhostObject(), ~btPolyhedralConvexShape(), btPoolAllocator::~btPoolAllocator(), btSimpleBroadphase::~btSimpleBroadphase(), btSimpleDynamicsWorld::~btSimpleDynamicsWorld(), btSoftBody::~btSoftBody(), btSoftBodyRigidBodyCollisionConfiguration::~btSoftBodyRigidBodyCollisionConfiguration(), btSoftMultiBodyDynamicsWorld::~btSoftMultiBodyDynamicsWorld(), and btSoftRigidDynamicsWorld::~btSoftRigidDynamicsWorld().

Typedef Documentation

◆ btAlignedAllocFunc

typedef void * btAlignedAllocFunc(size_t size, int alignment)

Definition at line 52 of file btAlignedAllocator.h.

◆ btAlignedFreeFunc

typedef void btAlignedFreeFunc(void *memblock)

Definition at line 53 of file btAlignedAllocator.h.

◆ btAllocFunc

typedef void * btAllocFunc(size_t size)

Definition at line 54 of file btAlignedAllocator.h.

◆ btFreeFunc

typedef void btFreeFunc(void *memblock)

Definition at line 55 of file btAlignedAllocator.h.

◆ size_type

typedef int size_type

Definition at line 50 of file btAlignedAllocator.h.

Function Documentation

◆ btAlignedAllocInternal()

void * btAlignedAllocInternal ( size_t size,
int alignment )

we probably replace this with our own aligned memory allocator so we replace _aligned_malloc and _aligned_free with our own that is better portable and more predictable BT_DEBUG_MEMORY_ALLOCATIONS preprocessor can be set in build system for regression tests to detect memory leaks define BT_DEBUG_MEMORY_ALLOCATIONS 1

Definition at line 244 of file btAlignedAllocator.cpp.

References ptr, and sAlignedAllocFunc.

◆ btAlignedAllocSetCustom()

void btAlignedAllocSetCustom ( btAllocFunc * allocFunc,
btFreeFunc * freeFunc )

The developer can let all Bullet memory allocations go through a custom memory allocator, using btAlignedAllocSetCustom.

Definition at line 100 of file btAlignedAllocator.cpp.

References btAllocDefault(), btFreeDefault(), sAllocFunc, and sFreeFunc.

◆ btAlignedAllocSetCustomAligned()

void btAlignedAllocSetCustomAligned ( btAlignedAllocFunc * allocFunc,
btAlignedFreeFunc * freeFunc )

If the developer has already an custom aligned allocator, then btAlignedAllocSetCustomAligned can be used. The default aligned allocator pre-allocates extra memory using the non-aligned allocator, and instruments it.

Definition at line 94 of file btAlignedAllocator.cpp.

References btAlignedAllocDefault(), btAlignedFreeDefault(), sAlignedAllocFunc, and sAlignedFreeFunc.

◆ btAlignedFreeInternal()

void btAlignedFreeInternal ( void * ptr)

Definition at line 252 of file btAlignedAllocator.cpp.

References ptr, and sAlignedFreeFunc.