PyAPI: Add PyC_Tuple_Pack_F64 utility

This commit is contained in:
Campbell Barton 2018-04-02 19:48:34 +02:00
parent 71d7d6cd8c
commit 31f2a6755d
Notes: blender-bot 2023-02-14 06:04:13 +01:00
Referenced by issue #54504, Cycles Displacement node not automatically inserted in older files when linking
Referenced by issue #54505, Difference in render
2 changed files with 12 additions and 0 deletions

View File

@ -146,6 +146,15 @@ PyObject *PyC_Tuple_PackArray_F32(const float *array, uint len)
return tuple;
}
PyObject *PyC_Tuple_PackArray_F64(const double *array, uint len)
{
PyObject *tuple = PyTuple_New(len);
for (uint i = 0; i < len; i++) {
PyTuple_SET_ITEM(tuple, i, PyFloat_FromDouble(array[i]));
}
return tuple;
}
PyObject *PyC_Tuple_PackArray_I32(const int *array, uint len)
{
PyObject *tuple = PyTuple_New(len);

View File

@ -51,12 +51,15 @@ int PyC_AsArray(
const PyTypeObject *type, const bool is_double, const char *error_prefix);
PyObject *PyC_Tuple_PackArray_F32(const float *array, uint len);
PyObject *PyC_Tuple_PackArray_F64(const double *array, uint len);
PyObject *PyC_Tuple_PackArray_I32(const int *array, uint len);
PyObject *PyC_Tuple_PackArray_I32FromBool(const int *array, uint len);
PyObject *PyC_Tuple_PackArray_Bool(const bool *array, uint len);
#define PyC_Tuple_Pack_F32(...) \
PyC_Tuple_PackArray_F32(((const float []){__VA_ARGS__}), VA_NARGS_COUNT(__VA_ARGS__))
#define PyC_Tuple_Pack_F64(...) \
PyC_Tuple_PackArray_F64(((const double []){__VA_ARGS__}), VA_NARGS_COUNT(__VA_ARGS__))
#define PyC_Tuple_Pack_I32(...) \
PyC_Tuple_PackArray_I32(((const int []){__VA_ARGS__}), VA_NARGS_COUNT(__VA_ARGS__))
#define PyC_Tuple_Pack_I32FromBool(...) \