Merge branch 'master' into blender2.8
This commit is contained in:
commit
cb4884f50b
|
@ -39,7 +39,7 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
#include "BLI_compiler_attrs.h"
|
||||
#include "BLI_utildefines.h" /* only for _VA_NARGS_COUNT */
|
||||
#include "BLI_variadic_defines.h"
|
||||
|
||||
struct ListBase;
|
||||
|
||||
|
@ -60,13 +60,13 @@ char *BLI_string_join_array_by_sep_char_with_tableN(
|
|||
/* Take multiple arguments, pass as (array, length). */
|
||||
#define BLI_string_joinN(...) \
|
||||
BLI_string_join_arrayN( \
|
||||
((const char *[]){__VA_ARGS__}), _VA_NARGS_COUNT(__VA_ARGS__))
|
||||
((const char *[]){__VA_ARGS__}), VA_NARGS_COUNT(__VA_ARGS__))
|
||||
#define BLI_string_join_by_sep_charN(sep, ...) \
|
||||
BLI_string_join_array_by_sep_charN( \
|
||||
sep, ((const char *[]){__VA_ARGS__}), _VA_NARGS_COUNT(__VA_ARGS__))
|
||||
sep, ((const char *[]){__VA_ARGS__}), VA_NARGS_COUNT(__VA_ARGS__))
|
||||
#define BLI_string_join_by_sep_char_with_tableN(sep, table, ...) \
|
||||
BLI_string_join_array_by_sep_char_with_tableN( \
|
||||
sep, table, ((const char *[]){__VA_ARGS__}), _VA_NARGS_COUNT(__VA_ARGS__))
|
||||
sep, table, ((const char *[]){__VA_ARGS__}), VA_NARGS_COUNT(__VA_ARGS__))
|
||||
|
||||
void BLI_string_flip_side_name(char *r_name, const char *from_name, const bool strip_number, const size_t name_len);
|
||||
|
||||
|
|
|
@ -39,35 +39,12 @@ extern "C" {
|
|||
/* avoid many includes for now */
|
||||
#include "BLI_sys_types.h"
|
||||
#include "BLI_compiler_compat.h"
|
||||
#include "BLI_variadic_defines.h"
|
||||
|
||||
#ifndef NDEBUG /* for BLI_assert */
|
||||
#include <stdio.h>
|
||||
#endif
|
||||
|
||||
|
||||
/* varargs macros (keep first so others can use) */
|
||||
/* --- internal helpers --- */
|
||||
#define _VA_NARGS_GLUE(x, y) x y
|
||||
#define _VA_NARGS_RETURN_COUNT(\
|
||||
_1_, _2_, _3_, _4_, _5_, _6_, _7_, _8_, _9_, _10_, _11_, _12_, _13_, _14_, _15_, _16_, \
|
||||
_17_, _18_, _19_, _20_, _21_, _22_, _23_, _24_, _25_, _26_, _27_, _28_, _29_, _30_, _31_, _32_, \
|
||||
_33_, _34_, _35_, _36_, _37_, _38_, _39_, _40_, _41_, _42_, _43_, _44_, _45_, _46_, _47_, _48_, \
|
||||
_49_, _50_, _51_, _52_, _53_, _54_, _55_, _56_, _57_, _58_, _59_, _60_, _61_, _62_, _63_, _64_, \
|
||||
count, ...) count
|
||||
#define _VA_NARGS_EXPAND(args) _VA_NARGS_RETURN_COUNT args
|
||||
/* 64 args max */
|
||||
#define _VA_NARGS_COUNT(...) _VA_NARGS_EXPAND((__VA_ARGS__, \
|
||||
64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, \
|
||||
48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, \
|
||||
32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, \
|
||||
16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0))
|
||||
#define _VA_NARGS_OVERLOAD_MACRO2(name, count) name##count
|
||||
#define _VA_NARGS_OVERLOAD_MACRO1(name, count) _VA_NARGS_OVERLOAD_MACRO2(name, count)
|
||||
#define _VA_NARGS_OVERLOAD_MACRO(name, count) _VA_NARGS_OVERLOAD_MACRO1(name, count)
|
||||
/* --- expose for re-use --- */
|
||||
#define VA_NARGS_CALL_OVERLOAD(name, ...) \
|
||||
_VA_NARGS_GLUE(_VA_NARGS_OVERLOAD_MACRO(name, _VA_NARGS_COUNT(__VA_ARGS__)), (__VA_ARGS__))
|
||||
|
||||
/* useful for finding bad use of min/max */
|
||||
#if 0
|
||||
/* gcc only */
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
* ***** BEGIN GPL LICENSE BLOCK *****
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* ***** END GPL LICENSE BLOCK *****
|
||||
*/
|
||||
|
||||
#ifndef __BLI_VARIADIC_DEFINES_H__
|
||||
#define __BLI_VARIADIC_DEFINES_H__
|
||||
|
||||
/** \file BLI_variadic_defines.h
|
||||
* \ingroup bli
|
||||
*/
|
||||
|
||||
/* --- internal helpers --- */
|
||||
#define _VA_NARGS_GLUE(x, y) x y
|
||||
#define _VA_NARGS_RETURN_COUNT(\
|
||||
_1_, _2_, _3_, _4_, _5_, _6_, _7_, _8_, _9_, _10_, _11_, _12_, _13_, _14_, _15_, _16_, \
|
||||
_17_, _18_, _19_, _20_, _21_, _22_, _23_, _24_, _25_, _26_, _27_, _28_, _29_, _30_, _31_, _32_, \
|
||||
_33_, _34_, _35_, _36_, _37_, _38_, _39_, _40_, _41_, _42_, _43_, _44_, _45_, _46_, _47_, _48_, \
|
||||
_49_, _50_, _51_, _52_, _53_, _54_, _55_, _56_, _57_, _58_, _59_, _60_, _61_, _62_, _63_, _64_, \
|
||||
count, ...) count
|
||||
#define _VA_NARGS_EXPAND(args) _VA_NARGS_RETURN_COUNT args
|
||||
#define _VA_NARGS_OVERLOAD_MACRO2(name, count) name##count
|
||||
#define _VA_NARGS_OVERLOAD_MACRO1(name, count) _VA_NARGS_OVERLOAD_MACRO2(name, count)
|
||||
#define _VA_NARGS_OVERLOAD_MACRO(name, count) _VA_NARGS_OVERLOAD_MACRO1(name, count)
|
||||
/* --- expose for re-use --- */
|
||||
/* 64 args max */
|
||||
#define VA_NARGS_COUNT(...) _VA_NARGS_EXPAND((__VA_ARGS__, \
|
||||
64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, \
|
||||
48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, \
|
||||
32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, \
|
||||
16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0))
|
||||
#define VA_NARGS_CALL_OVERLOAD(name, ...) \
|
||||
_VA_NARGS_GLUE(_VA_NARGS_OVERLOAD_MACRO(name, VA_NARGS_COUNT(__VA_ARGS__)), (__VA_ARGS__))
|
||||
|
||||
#endif /* __BLI_VARIADIC_DEFINES_H__ */
|
|
@ -208,6 +208,7 @@ set(SRC
|
|||
BLI_timecode.h
|
||||
BLI_utildefines.h
|
||||
BLI_uvproject.h
|
||||
BLI_variadic_defines.h
|
||||
BLI_vfontdata.h
|
||||
BLI_voronoi.h
|
||||
BLI_voxel.h
|
||||
|
|
|
@ -567,7 +567,13 @@ static void node_link_exit(bContext *C, wmOperator *op, bool apply_links)
|
|||
ntree->is_updating = true;
|
||||
for (linkdata = nldrag->links.first; linkdata; linkdata = linkdata->next) {
|
||||
bNodeLink *link = linkdata->data;
|
||||
|
||||
|
||||
/* See note below, but basically TEST flag means that the link
|
||||
* was connected to output (or to a node which affects the
|
||||
* output).
|
||||
*/
|
||||
do_tag_update |= (link->flag & NODE_LINK_TEST) != 0;
|
||||
|
||||
if (apply_links && link->tosock && link->fromsock) {
|
||||
/* before actually adding the link,
|
||||
* let nodes perform special link insertion handling
|
||||
|
@ -593,11 +599,6 @@ static void node_link_exit(bContext *C, wmOperator *op, bool apply_links)
|
|||
}
|
||||
}
|
||||
else {
|
||||
/* See note below, but basically TEST flag means that the link
|
||||
* was connected to output (or to a node which affects the
|
||||
* output).
|
||||
*/
|
||||
do_tag_update |= (link->flag & NODE_LINK_TEST) != 0;
|
||||
nodeRemLink(ntree, link);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
#define __PY_CAPI_UTILS_H__
|
||||
|
||||
#include "BLI_sys_types.h"
|
||||
#include "BLI_utildefines.h" /* only for _VA_NARGS_COUNT */
|
||||
#include "BLI_variadic_defines.h"
|
||||
|
||||
void PyC_ObSpit(const char *name, PyObject *var);
|
||||
void PyC_LineSpit(void);
|
||||
|
@ -53,13 +53,13 @@ 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__))
|
||||
PyC_Tuple_PackArray_F32(((const float []){__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__))
|
||||
PyC_Tuple_PackArray_I32(((const int []){__VA_ARGS__}), VA_NARGS_COUNT(__VA_ARGS__))
|
||||
#define PyC_Tuple_Pack_I32FromBool(...) \
|
||||
PyC_Tuple_PackArray_I32FromBool(((const int []){__VA_ARGS__}), _VA_NARGS_COUNT(__VA_ARGS__))
|
||||
PyC_Tuple_PackArray_I32FromBool(((const int []){__VA_ARGS__}), VA_NARGS_COUNT(__VA_ARGS__))
|
||||
#define PyC_Tuple_Pack_Bool(...) \
|
||||
PyC_Tuple_PackArray_Bool(((const bool []){__VA_ARGS__}), _VA_NARGS_COUNT(__VA_ARGS__))
|
||||
PyC_Tuple_PackArray_Bool(((const bool []){__VA_ARGS__}), VA_NARGS_COUNT(__VA_ARGS__))
|
||||
|
||||
void PyC_Tuple_Fill(PyObject *tuple, PyObject *value);
|
||||
void PyC_List_Fill(PyObject *list, PyObject *value);
|
||||
|
|
|
@ -36,7 +36,7 @@ extern "C" {
|
|||
PyTupleObject *op = (PyTupleObject *)op_arg; \
|
||||
PyObject **ob_items = op->ob_item; \
|
||||
CHECK_TYPE_ANY(op_arg, PyObject *, PyTupleObject *); \
|
||||
BLI_assert(_VA_NARGS_COUNT(__VA_ARGS__) == PyTuple_GET_SIZE(op)); \
|
||||
BLI_assert(VA_NARGS_COUNT(__VA_ARGS__) == PyTuple_GET_SIZE(op)); \
|
||||
ARRAY_SET_ITEMS(ob_items, __VA_ARGS__); \
|
||||
} (void)0
|
||||
|
||||
|
|
Loading…
Reference in New Issue