Top | ![]() |
![]() |
![]() |
![]() |
#define | AGS_VECTOR_ARR() |
#define | AGS_VECTOR_256_MANAGER_GET_OBJ_MUTEX() |
AgsVectorArr * | ags_vector_arr_alloc () |
void | ags_vector_arr_free () |
void | ags_vector_256_manager_reserve_all () |
AgsVectorArr * | ags_vector_256_manager_try_acquire () |
gboolean | ags_vector_256_manager_try_acquire_dual () |
gboolean | ags_vector_256_manager_try_acquire_triple () |
void | ags_vector_256_manager_release () |
AgsVector256Manager * | ags_vector_256_manager_get_instance () |
AgsVector256Manager * | ags_vector_256_manager_new () |
#define | AGS_VECTOR_256_MANAGER_DEFAULT_VECTOR_COUNT |
enum | AgsVector256Types |
struct | AgsVectorArr |
struct | AgsVectorMemS8 |
struct | AgsVectorMemS16 |
struct | AgsVectorMemS32 |
struct | AgsVectorMemS64 |
struct | AgsVectorMemFloat |
struct | AgsVectorMemDouble |
#define AGS_VECTOR_256_MANAGER_GET_OBJ_MUTEX(obj) (&(((AgsVector256Manager *) obj)->obj_mutex))
AgsVectorArr *
ags_vector_arr_alloc (AgsVector256Types vector_type
);
Allocate vector array of vector_type
.
Since: 7.0.0
void
ags_vector_arr_free (AgsVectorArr *vector_arr
);
Free vector_arr
.
Since: 7.0.0
void
ags_vector_256_manager_reserve_all (AgsVector256Manager *vector_256_manager
);
Reserve all vector types.
Since: 7.0.0
AgsVectorArr * ags_vector_256_manager_try_acquire (AgsVector256Manager *vector_256_manager
,AgsVector256Types vector_type
);
Try acquire vector of vector_type
and lock it.
Since: 7.0.0
gboolean ags_vector_256_manager_try_acquire_dual (AgsVector256Manager *vector_256_manager
,AgsVector256Types vector_type_a
,AgsVector256Types vector_type_b
,AgsVectorArr **vector_arr_a
,AgsVectorArr **vector_arr_b
);
Try acquire 2 vectors of vector type and lock it.
vector_256_manager |
the AgsVector256Manager |
|
vector_type_a |
the first vector type |
|
vector_type_b |
the second vector type |
|
vector_arr_a |
the vector array or |
[transfer none][out] |
vector_arr_b |
the vector array or |
[transfer none][out] |
Since: 7.0.0
gboolean ags_vector_256_manager_try_acquire_triple (AgsVector256Manager *vector_256_manager
,AgsVector256Types vector_type_a
,AgsVector256Types vector_type_b
,AgsVector256Types vector_type_c
,AgsVectorArr **vector_arr_a
,AgsVectorArr **vector_arr_b
,AgsVectorArr **vector_arr_c
);
Try acquire 3 vectors of vector type and lock it.
vector_256_manager |
the AgsVector256Manager |
|
vector_type_a |
the first vector type |
|
vector_type_b |
the second vector type |
|
vector_type_c |
the third vector type |
|
vector_arr_a |
the vector array or |
[transfer none][out] |
vector_arr_b |
the vector array or |
[transfer none][out] |
vector_arr_c |
the vector array or |
[transfer none][out] |
Since: 7.0.0
void ags_vector_256_manager_release (AgsVector256Manager *vector_256_manager
,AgsVectorArr *vector_arr
);
Release vector_arr
.
Since: 7.0.0
AgsVector256Manager *
ags_vector_256_manager_get_instance ();
Get instance.
Since: 7.0.0
#define AGS_VECTOR_256_MANAGER_DEFAULT_VECTOR_COUNT (96)
struct AgsVectorArr { AgsVector256Types vector_type; volatile gboolean locked; union{ AgsVectorMemS8 *vec_s8; AgsVectorMemS16 *vec_s16; AgsVectorMemS32 *vec_s32; AgsVectorMemS64 *vec_s64; AgsVectorMemFloat *vec_float; AgsVectorMemDouble *vec_double; }vector; };