c4d_memory.h File Reference

Macros

#define __C4D_MEM_ALIGNMENT_MASK__
 
#define FillMemType(t, d, x, v)
 

Functions

UInt GeMemGetFreePhysicalMemoryEstimate ()
 
void ClearMem (void *d, Int size, Int32 value=0)
 
void CopyMem (const void *s, void *d, Int size)
 
void MemCopy (void *d, const void *s, Int size)
 
template<class T , class U >
void FillMemTypeTemplate (T *data_ptr, Int size, const U *check_type, Int32 value)
 
template<typename T >
void ClearMemType (T *data_ptr, Int cnt)
 
template<typename T >
void CopyMemType (const T *src_ptr, T *dst_ptr, Int cnt)
 

Macro Definition Documentation

◆ __C4D_MEM_ALIGNMENT_MASK__

#define __C4D_MEM_ALIGNMENT_MASK__

Memory returned by NewMem() is guaranteed to be at least aligned to a 16 byte boundary.

◆ FillMemType

#define FillMemType (   t,
  d,
  x,
  v 
)

Fills a block of memory of the specified type.

Parameters
[in]tData type (e.g. Char, Float).
[out]dAddress of the block of memory to fill. The caller owns the pointed memory.
[in]xSize of the memory block to fill.
[in]vValue to fill the memory block with.

Function Documentation

◆ GeMemGetFreePhysicalMemoryEstimate()

UInt GeMemGetFreePhysicalMemoryEstimate ( )

Gets estimated free physical memory.

Returns
Estimated free physical memory.

◆ ClearMem()

void ClearMem ( void *  d,
Int  size,
Int32  value = 0 
)

Clears a block of memory.

Parameters
[in]dAddress of the memory block to clear. The caller owns the pointed memory.
[in]sizeSize in bytes of the block of memory to clear.
[in]valueValue to clear the memory block with. Default to 0.

◆ CopyMem()

void CopyMem ( const void *  s,
void *  d,
Int  size 
)

Copies a block of memory.

Warning
Parameters order is the opposite of memcpy()
See also
MemCopy()
Parameters
[in]sAddress of the source block of memory. The caller owns the pointed memory.
[out]dAddress of the destination block of memory. The caller owns the pointed memory.
[in]sizeSize in bytes of the block of memory to copy.

◆ MemCopy()

void MemCopy ( void *  d,
const void *  s,
Int  size 
)

Copies a block of memory.

Parameters
[out]dAddress of the destination block of memory. The caller owns the pointed memory.
[in]sAddress of the source block of memory. The caller owns the pointed memory.
[in]sizeSize in bytes of the block of memory to copy.

◆ FillMemTypeTemplate()

void FillMemTypeTemplate ( T *  data_ptr,
Int  size,
const U *  check_type,
Int32  value 
)

Internal.

◆ ClearMemType()

void ClearMemType ( T *  data_ptr,
Int  cnt 
)

Clears a block of memory.
THREADSAFE.

Parameters
[out]data_ptrAddress of the block of memory to clear. The caller owns the pointed memory.
[in]cntNumber of elements to be filled with pattern (> 1 e.g. for arrays), can be 0.

◆ CopyMemType()

void CopyMemType ( const T *  src_ptr,
T *  dst_ptr,
Int  cnt 
)

Copies a block of memory to another of the same kind.
THREADSAFE

Warning
Source and destination must not overlap.
Parameters
[in]src_ptrAddress of the source block of memory to copy. The caller owns the pointed memory.
[out]dst_ptrAddress of the destination block of memory to copy to. The caller owns the pointed memory.
[in]cntNumber of elements to be copied (> 1 e.g. for arrays), can be 0.