Blender V4.3
gim_memory.h File Reference
#include "gim_math.h"
#include <string.h>

Go to the source code of this file.

Macros

#define pf(_x, _i)
 Prefetch 64.
 
#define pf2(_x, _i)
 Prefetch 128.
 
#define GIM_COPY_ARRAYS(dest_array, source_array, element_count)
 Functions for manip packed arrays of numbers.
 
#define GIM_COPY_ARRAYS_1(dest_array, source_array, element_count, copy_macro)
 
#define GIM_ZERO_ARRAY(array, element_count)
 
#define GIM_CONSTANT_ARRAY(array, element_count, constant)
 
#define SIMD_T   GUINT64
 SIMD POINTER INTEGER.
 
#define SIMD_T_SIZE   sizeof(SIMD_T)
 SIMD INTEGER SIZE.
 

Typedefs

typedef void * gim_alloc_function(size_t size)
 Function prototypes to allocate and free memory.
 
typedef void * gim_alloca_function(size_t size)
 
typedef void * gim_realloc_function(void *ptr, size_t oldsize, size_t newsize)
 
typedef void gim_free_function(void *ptr)
 

Functions

void gim_set_alloc_handler (gim_alloc_function *fn)
 
void gim_set_alloca_handler (gim_alloca_function *fn)
 
void gim_set_realloc_handler (gim_realloc_function *fn)
 
void gim_set_free_handler (gim_free_function *fn)
 
gim_alloc_functiongim_get_alloc_handler (void)
 get current memory management functions.
 
gim_alloca_functiongim_get_alloca_handler (void)
 
gim_realloc_functiongim_get_realloc_handler (void)
 
gim_free_functiongim_get_free_handler (void)
 
void * gim_alloc (size_t size)
 Standar Memory functions.
 
void * gim_alloca (size_t size)
 
void * gim_realloc (void *ptr, size_t oldsize, size_t newsize)
 
void gim_free (void *ptr)
 
void gim_simd_memcpy (void *dst, const void *src, size_t copysize)
 
template<class T >
void gim_swap_elements (T *_array, size_t _i, size_t _j)
 
template<class T >
void gim_swap_elements_memcpy (T *_array, size_t _i, size_t _j)
 
template<int SIZE>
void gim_swap_elements_ptr (char *_array, size_t _i, size_t _j)
 

Detailed Description

Author
Francisco Leon Najera

Definition in file gim_memory.h.

Macro Definition Documentation

◆ GIM_CONSTANT_ARRAY

#define GIM_CONSTANT_ARRAY ( array,
element_count,
constant )
Value:
{ \
for (GUINT _i_ = 0; _i_ < element_count; ++_i_) \
{ \
array[_i_] = constant; \
} \
}
#define GUINT
Definition gim_math.h:40

Definition at line 78 of file gim_memory.h.

◆ GIM_COPY_ARRAYS

#define GIM_COPY_ARRAYS ( dest_array,
source_array,
element_count )
Value:
{ \
for (GUINT _i_ = 0; _i_ < element_count; ++_i_) \
{ \
dest_array[_i_] = source_array[_i_]; \
} \
}

Functions for manip packed arrays of numbers.

Definition at line 54 of file gim_memory.h.

◆ GIM_COPY_ARRAYS_1

#define GIM_COPY_ARRAYS_1 ( dest_array,
source_array,
element_count,
copy_macro )
Value:
{ \
for (GUINT _i_ = 0; _i_ < element_count; ++_i_) \
{ \
copy_macro(dest_array[_i_], source_array[_i_]); \
} \
}

Definition at line 62 of file gim_memory.h.

◆ GIM_ZERO_ARRAY

#define GIM_ZERO_ARRAY ( array,
element_count )
Value:
{ \
for (GUINT _i_ = 0; _i_ < element_count; ++_i_) \
{ \
array[_i_] = 0; \
} \
}

Definition at line 70 of file gim_memory.h.

◆ pf

#define pf ( _x,
_i )

Prefetch 64.

Definition at line 48 of file gim_memory.h.

Referenced by BKE_image_signal(), BKE_packedfile_blend_read(), BKE_packedfile_blend_write(), BKE_packedfile_compare_to_file(), BKE_packedfile_free(), BKE_packedfile_new(), BKE_packedfile_new_from_memory(), BKE_packedfile_read(), BKE_packedfile_rewind(), BKE_packedfile_seek(), BKE_packedfile_unpack(), BKE_packedfile_unpack_to_file(), BKE_packedfile_write_to_file(), BKE_ptcache_load_external(), BKE_vfont_load(), BKE_vfontdata_from_freetypefont(), BLI_polyfill_calc(), BLI_polyfill_calc_arena(), BLI_scanfill_calc_ex(), blender::io::usd::export_packed_texture(), image_memorypack_imbuf(), pf_coord_remove(), pf_coord_sign_calc(), pf_ear_tip_check(), pf_ear_tip_cut(), pf_ear_tip_find(), pf_tri_add(), pf_triangulate(), phase_fournier_forand_impl(), phase_fournier_forand_newton(), polyfill_calc(), polyfill_prepare(), ptcache_basic_header_read(), ptcache_basic_header_write(), ptcache_disk_frame_to_mem(), ptcache_dynamicpaint_read(), ptcache_dynamicpaint_write(), ptcache_file_close(), ptcache_file_compressed_read(), ptcache_file_compressed_write(), ptcache_file_data_read(), ptcache_file_data_write(), ptcache_file_header_begin_read(), ptcache_file_header_begin_write(), ptcache_file_open(), ptcache_file_pointers_init(), ptcache_file_read(), ptcache_file_write(), ptcache_mem_frame_to_disk(), ptcache_read_stream(), ptcache_write_stream(), read_library_file_data(), scanfill(), SEQ_effect_text_font_load(), Freestyle::WOEdge::setaFace(), Freestyle::WOEdge::setbFace(), unpack_generate_paths(), unpack_menu(), vfont_get_data(), and vfont_init_data().

◆ pf2

#define pf2 ( _x,
_i )

Prefetch 128.

Definition at line 50 of file gim_memory.h.

Referenced by boundisect(), and mergepolysSimp().

◆ SIMD_T

#define SIMD_T   GUINT64

SIMD POINTER INTEGER.

Definition at line 116 of file gim_memory.h.

◆ SIMD_T_SIZE

#define SIMD_T_SIZE   sizeof(SIMD_T)

SIMD INTEGER SIZE.

Definition at line 118 of file gim_memory.h.

Typedef Documentation

◆ gim_alloc_function

typedef void * gim_alloc_function(size_t size)

Function prototypes to allocate and free memory.

Definition at line 87 of file gim_memory.h.

◆ gim_alloca_function

typedef void * gim_alloca_function(size_t size)

Definition at line 88 of file gim_memory.h.

◆ gim_free_function

typedef void gim_free_function(void *ptr)

Definition at line 90 of file gim_memory.h.

◆ gim_realloc_function

typedef void * gim_realloc_function(void *ptr, size_t oldsize, size_t newsize)

Definition at line 89 of file gim_memory.h.

Function Documentation

◆ gim_alloc()

void * gim_alloc ( size_t size)

◆ gim_alloca()

void * gim_alloca ( size_t size)

Definition at line 100 of file gim_memory.cpp.

References g_allocafn, and gim_alloc().

◆ gim_free()

◆ gim_get_alloc_handler()

gim_alloc_function * gim_get_alloc_handler ( void )

get current memory management functions.

Definition at line 62 of file gim_memory.cpp.

References g_allocfn.

◆ gim_get_alloca_handler()

gim_alloca_function * gim_get_alloca_handler ( void )

Definition at line 67 of file gim_memory.cpp.

References g_allocafn.

◆ gim_get_free_handler()

gim_free_function * gim_get_free_handler ( void )

Definition at line 77 of file gim_memory.cpp.

References g_freefn.

◆ gim_get_realloc_handler()

gim_realloc_function * gim_get_realloc_handler ( void )

Definition at line 72 of file gim_memory.cpp.

References g_reallocfn.

◆ gim_realloc()

void * gim_realloc ( void * ptr,
size_t oldsize,
size_t newsize )

Definition at line 108 of file gim_memory.cpp.

References gim_alloc(), gim_free(), gim_simd_memcpy(), and ptr.

Referenced by gim_array< T >::resizeData().

◆ gim_set_alloc_handler()

void gim_set_alloc_handler ( gim_alloc_function * fn)

Memory Function Handlers set new memory management functions. if fn is 0, the default handlers are used.

Definition at line 42 of file gim_memory.cpp.

References g_allocfn.

◆ gim_set_alloca_handler()

void gim_set_alloca_handler ( gim_alloca_function * fn)

Definition at line 47 of file gim_memory.cpp.

References g_allocafn.

◆ gim_set_free_handler()

void gim_set_free_handler ( gim_free_function * fn)

Definition at line 57 of file gim_memory.cpp.

References g_freefn.

◆ gim_set_realloc_handler()

void gim_set_realloc_handler ( gim_realloc_function * fn)

Definition at line 52 of file gim_memory.cpp.

References g_reallocfn.

◆ gim_simd_memcpy()

◆ gim_swap_elements()

template<class T >
void gim_swap_elements ( T * _array,
size_t _i,
size_t _j )
inline

Definition at line 150 of file gim_memory.h.

Referenced by gim_heap_sort(), and gim_array< T >::swap().

◆ gim_swap_elements_memcpy()

template<class T >
void gim_swap_elements_memcpy ( T * _array,
size_t _i,
size_t _j )
inline

Definition at line 158 of file gim_memory.h.

References gim_simd_memcpy(), and T.

◆ gim_swap_elements_ptr()

template<int SIZE>
void gim_swap_elements_ptr ( char * _array,
size_t _i,
size_t _j )
inline

Definition at line 167 of file gim_memory.h.

References gim_simd_memcpy(), and SIZE.