|
Blender V4.5
|
#include <cstdlib>#include <cstring>#include "MEM_guardedalloc.h"#include "BLI_utildefines.h"#include "CCGSubSurf.h"#include "CCGSubSurf_intern.h"Go to the source code of this file.
Functions | |
Generic Hash Functions | |
| EHash * | ccg_ehash_new (int estimatedNumEntries, CCGAllocatorIFC *allocatorIFC, CCGAllocatorHDL allocator) |
| void | ccg_ehash_free (EHash *eh, EHEntryFreeFP freeEntry, void *user_data) |
| void | ccg_ehash_insert (EHash *eh, EHEntry *entry) |
| void * | ccg_ehash_lookupWithPrev (EHash *eh, void *key, void ***prevp_r) |
| void * | ccg_ehash_lookup (EHash *eh, void *key) |
Hash Elements Iteration | |
| void | ccg_ehashIterator_init (EHash *eh, EHashIterator *ehi) |
| void * | ccg_ehashIterator_getCurrent (EHashIterator *ehi) |
| void | ccg_ehashIterator_next (EHashIterator *ehi) |
| int | ccg_ehashIterator_isStopped (EHashIterator *ehi) |
Standard allocator implementation | |
| static void * | _stdAllocator_alloc (CCGAllocatorHDL, int numBytes) |
| static void * | _stdAllocator_realloc (CCGAllocatorHDL, void *ptr, int newSize, int) |
| static void | _stdAllocator_free (CCGAllocatorHDL, void *ptr) |
| CCGAllocatorIFC * | ccg_getStandardAllocatorIFC () |
Variables | |
| static int | kHashSizes [] |
|
static |
Definition at line 184 of file CCGSubSurf_util.cc.
References _stdAllocator_alloc(), and MEM_mallocN().
Referenced by _stdAllocator_alloc(), and ccg_getStandardAllocatorIFC().
|
static |
Definition at line 194 of file CCGSubSurf_util.cc.
References _stdAllocator_free(), and MEM_freeN().
Referenced by _stdAllocator_free(), and ccg_getStandardAllocatorIFC().
|
static |
Definition at line 189 of file CCGSubSurf_util.cc.
References _stdAllocator_realloc(), and MEM_reallocN.
Referenced by _stdAllocator_realloc(), and ccg_getStandardAllocatorIFC().
| void ccg_ehash_free | ( | EHash * | eh, |
| EHEntryFreeFP | freeEntry, | ||
| void * | user_data ) |
Definition at line 52 of file CCGSubSurf_util.cc.
References EHash::buckets, ccg_ehash_free(), EHash::curSize, EHASH_free, and EHEntry::next.
Referenced by ccg_ehash_free(), ccgSubSurf_free(), ccgSubSurf_processSync(), and ccgSubSurf_setSubdivisionLevels().
Definition at line 72 of file CCGSubSurf_util.cc.
References EHash::buckets, ccg_ehash_insert(), EHash::curSize, EHash::curSizeIdx, EHASH_alloc, EHASH_free, EHASH_hash, hash, EHEntry::key, kHashSizes, EHEntry::next, EHash::numEntries, and UNLIKELY.
Referenced by ccg_ehash_insert(), ccgSubSurf_syncEdge(), ccgSubSurf_syncFace(), and ccgSubSurf_syncVert().
| void * ccg_ehash_lookup | ( | EHash * | eh, |
| void * | key ) |
Definition at line 119 of file CCGSubSurf_util.cc.
References EHash::buckets, ccg_ehash_lookup(), EHASH_hash, hash, EHEntry::key, and EHEntry::next.
Referenced by ccg_ehash_lookup(), ccgSubSurf_getEdge(), ccgSubSurf_getFace(), ccgSubSurf_getVert(), ccgSubSurf_syncEdge(), and ccgSubSurf_syncFace().
| void * ccg_ehash_lookupWithPrev | ( | EHash * | eh, |
| void * | key, | ||
| void *** | prevp_r ) |
Definition at line 103 of file CCGSubSurf_util.cc.
References EHash::buckets, ccg_ehash_lookupWithPrev(), EHASH_hash, hash, EHEntry::key, and EHEntry::next.
Referenced by ccg_ehash_lookupWithPrev(), ccgSubSurf_syncEdge(), ccgSubSurf_syncEdgeDel(), ccgSubSurf_syncFace(), ccgSubSurf_syncFaceDel(), ccgSubSurf_syncVert(), and ccgSubSurf_syncVertDel().
| EHash * ccg_ehash_new | ( | int | estimatedNumEntries, |
| CCGAllocatorIFC * | allocatorIFC, | ||
| CCGAllocatorHDL | allocator ) |
Definition at line 33 of file CCGSubSurf_util.cc.
References CCGAllocatorIFC::alloc, EHash::allocator, EHash::allocatorIFC, EHash::buckets, ccg_ehash_new(), EHash::curSize, EHash::curSizeIdx, EHASH_alloc, kHashSizes, and EHash::numEntries.
Referenced by ccg_ehash_new(), ccgSubSurf_initFullSync(), ccgSubSurf_new(), and ccgSubSurf_setSubdivisionLevels().
| void * ccg_ehashIterator_getCurrent | ( | EHashIterator * | ehi | ) |
Definition at line 155 of file CCGSubSurf_util.cc.
References ccg_ehashIterator_getCurrent(), and EHashIterator::curEntry.
Referenced by ccg_ehashIterator_getCurrent(), ccgEdgeIterator_getCurrent(), ccgFaceIterator_getCurrent(), and ccgVertIterator_getCurrent().
| void ccg_ehashIterator_init | ( | EHash * | eh, |
| EHashIterator * | ehi ) |
Definition at line 139 of file CCGSubSurf_util.cc.
References EHash::buckets, ccg_ehashIterator_init(), EHashIterator::curBucket, EHashIterator::curEntry, EHash::curSize, and EHashIterator::eh.
Referenced by ccg_ehashIterator_init(), ccgSubSurf_initEdgeIterator(), ccgSubSurf_initFaceIterator(), and ccgSubSurf_initVertIterator().
| int ccg_ehashIterator_isStopped | ( | EHashIterator * | ehi | ) |
Definition at line 173 of file CCGSubSurf_util.cc.
References ccg_ehashIterator_isStopped(), and EHashIterator::curEntry.
Referenced by ccg_ehashIterator_isStopped(), ccgEdgeIterator_isStopped(), ccgFaceIterator_isStopped(), and ccgVertIterator_isStopped().
| void ccg_ehashIterator_next | ( | EHashIterator * | ehi | ) |
Definition at line 160 of file CCGSubSurf_util.cc.
References EHash::buckets, ccg_ehashIterator_next(), EHashIterator::curBucket, EHashIterator::curEntry, EHash::curSize, EHashIterator::eh, and EHEntry::next.
Referenced by ccg_ehashIterator_next(), ccgEdgeIterator_next(), ccgFaceIterator_next(), and ccgVertIterator_next().
| CCGAllocatorIFC * ccg_getStandardAllocatorIFC | ( | void | ) |
Standard allocator implementation.
Definition at line 199 of file CCGSubSurf_util.cc.
References _stdAllocator_alloc(), _stdAllocator_free(), _stdAllocator_realloc(), CCGAllocatorIFC::alloc, ccg_getStandardAllocatorIFC(), CCGAllocatorIFC::free, CCGAllocatorIFC::realloc, and CCGAllocatorIFC::release.
Referenced by ccg_getStandardAllocatorIFC(), and ccgSubSurf_new().
|
static |
Hash implementation.
Definition at line 23 of file CCGSubSurf_util.cc.
Referenced by ccg_ehash_insert(), and ccg_ehash_new().