Bank module Bank are used to allocate some memory. Applications can get cell from this memory and use it. If the number of allocations requests become bigger than the bank size, a new segment of memory is automatically allocated. Memory bank can be used to try to reduce memory fragmentation.
#define orxBANK_KU32_FLAG_NONE 0x00000000 |
No flags (default behaviour)
Definition at line 59 of file orxBank.h.
#define orxBANK_KU32_FLAG_NOT_EXPANDABLE 0x00000001 |
The bank will not be expandable
Definition at line 60 of file orxBank.h.
Allocates a new cell from the bank
- Parameters
-
[in] | _pstBank | Pointer to the memory bank to use |
- Returns
- a new cell of memory (orxNULL if no allocation possible)
orxDLLAPI void* orxFASTCALL orxBank_AllocateIndexed |
( |
orxBANK * |
_pstBank, |
|
|
orxU32 * |
_pu32ItemIndex, |
|
|
void ** |
_ppPrevious |
|
) |
| |
Allocates a new cell from the bank and returns its index
- Parameters
-
[in] | _pstBank | Pointer to the memory bank to use |
[out] | _pu32ItemIndex | Will be set with the allocated item index |
[out] | _ppPrevious | If non-null, will contain previous neighbor if found |
- Returns
- a new cell of memory (orxNULL if no allocation possible)
Frees all allocated cell from a bank
- Parameters
-
[in] | _pstBank | Bank of memory to clear |
Compacts a bank by removing all its unused segments
- Parameters
-
[in] | _pstBank | Bank of memory to compact |
Compacts all banks by removing all their unused segments
Creates a new bank in memory and returns a pointer to it
- Parameters
-
[in] | _u16NbElem | Number of elements per segments |
[in] | _u32Size | Size of an element |
[in] | _u32Flags | Flags set for this bank |
[in] | _eMemType | Memory type where the data will be allocated |
- Returns
- returns a pointer to the memory bank
Frees some memory allocated with orxMemory_Allocate
- Parameters
-
[in] | _pstBank | Pointer to the memory bank allocated by orx |
Exits from the bank module
Frees an allocated cell
- Parameters
-
[in] | _pstBank | Bank of memory from where _pCell has been allocated |
[in] | _pCell | Pointer to the cell to free |
Gets the cell at given index, orxNULL is the cell isn't allocated
- Parameters
-
[in] | _pstBank | Concerned memory bank |
[in] | _u32Index | Index of the cell to retrieve |
- Returns
- The cell at the given index if allocated, orxNULL otherwise
Gets the bank allocated cell count
- Parameters
-
[in] | _pstBank | Concerned bank |
- Returns
- Number of allocated cells
Gets the cell's index
- Parameters
-
[in] | _pstBank | Concerned memory bank |
[in] | _pCell | Cell of which we want the index |
- Returns
- The index of the given cell
Gets the next cell
- Parameters
-
[in] | _pstBank | Bank of memory from where _pCell has been allocated |
[in] | _pCell | Pointer to the current cell of memory |
- Returns
- The next cell. If _pCell is orxNULL, the first cell will be returned. Returns orxNULL when no more cell can be returned.
Inits the bank Module
- Returns
- orxSTATUS_SUCCESS / orxSTATUS_FAILURE