Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-09-06BLI_utildefines: add UNUSED_FUNCTION_WITH_RETURN_TYPECampbell Barton
Unfortunately the UNUSED_FUNCTION macro doesn't work for pointer types. Add UNUSED_FUNCTION_WITH_RETURN_TYPE to workaround this limitation.
2021-06-28BLI: improve enum operatorsJacques Lucke
* Use unsigned integer types for bit operations. * Use 64 bit integer instead of 32 bit. * Support scoped enumes (aka `enum class`) by adding some more casts.
2021-06-24Cleanup: comment blocks, trailing space in commentsCampbell Barton
2021-06-14Fix possible C-linkage warning on ClangJulian Eisel
The warning would appear when using the `ENUM_OPERATORS()` macro inside of an `extern "C"` block. Didn't cause a warning in master currently, but in the `asset-browser-poselib` branch. After macro expansion, there would be C++ code in code with C linkage (`extern "C"`). So make sure the expanded C++ code always uses C++ linkage. The syntax used is totally C++ compliant: the C++ standard requires that in such nested linkage specifications, the innermost one determines the linking language (e.g. see https://timsong-cpp.github.io/cppwp/n4659/dcl.link#4).
2021-01-04Cleanup: use 'pragma once'Campbell Barton
Add explanations for cases the header-guard defines are still used.
2020-10-08T81340: UBSan: load of value .. not valid for GPU enum typeAnkit Meel
The underlying type of the enum cannot be fixed here due to its usage in C code. All the values possible in the width of the underlying type are not valid for an enum. Only 0 to (2*max - 1) if all enumerators are unsigned. So the macro asks for the biggest value among the //listed// ones. If any enumerator C is set to say `A|B`, then C would be the maximum. (2*max-1) is used as the mask. The warnings (for each enum modified in this commit): GPU_vertex_buffer.h:43:1: runtime error: load of value 4294967291 which is not a valid value for type 'GPUVertBufStatus' https://github.com/llvm/llvm-project/commit/1c2c9867 Ref T81340 Reviewed By: fclem Differential Revision: https://developer.blender.org/D9067
2020-09-19Cleanup: use parenthesis for if statements in macrosCampbell Barton
2020-08-30BLI_utildefines: Fix assignment in binary ops for ENUM_OPERATORSClément Foucault
That was an overlook from the review when we introduced it.
2020-07-26BLI: Add MACRO for enum usage in C++Clément Foucault
This is handy to add support for enums used in both C and C++ files. This removes the need to typecast each time for every operation. Only support bitwise operators for now.
2020-07-10Cleanup: spellingCampbell Barton
2020-05-08Cleanup: take includes out of 'extern "C"' blocksJacques Lucke
Surrounding includes with an 'extern "C"' block is not necessary anymore. Also that made it harder to add any C++ code to some headers, or include headers that have "optional" C++ code like `MEM_guardedalloc.h`. I tested compilation on linux and windows (and got help from @LazyDodo). If this still breaks compilation due to some linker error, the header containing the symbol in question is probably missing an 'extern "C"' block. Differential Revision: https://developer.blender.org/D7653
2020-03-19Cleanup: `make format` after SortedIncludes changeDalai Felinto
2020-03-09Cleanup: Replace ABS/SQUARE/CUBE with function callsSergey Sharybin
While it might be handy to have type-less functionality which is similar to how C++ math is implemented it can not be easily achieved with just preprocessor in a way which does not have side-effects on wrong usage. There macros where often used on a non-trivial expression, and there was at least one usage where it was causing an actual side effect/bug on Windows (see change around square_f(sh[index++]) in studiolight.c). For such cases it is handy to have a function which is guaranteed to have zero side-effects. The motivation behind actually removing the macros is that there is already a way to do similar calculation. Also, not having such macros is a way to guarantee that its usage is not changed in a way which have side-effects and that it's not used as an inspiration for cases where it should not be used. Differential Revision: https://developer.blender.org/D7051
2019-08-01Cleanup: misc spelling fixesCampbell Barton
T68035 by @luzpaz
2019-04-21Cleanup: comments (long lines) in blenlibCampbell Barton
2019-04-20Cleanup: re-use test for ELEM & STR_ELEMCampbell Barton
Avoid having same test running at the end of each macro.
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-03-12Cleanup: use doxygen sections for BLI_utildefinesCampbell Barton
2019-03-12Cleanup: BLI_utildefines struct macrosCampbell Barton
Use the term "AFTER" instead of "OFS" since it wasn't obvious these macros operate on everything after the struct member passed. Avoid casting to non-const types when only reading.
2019-02-18doxygen: add newline after \fileCampbell Barton
While \file doesn't need an argument, it can't have another doxy command after it.
2019-02-11Cleanup: commentsCampbell Barton
2019-02-06Cleanup: remove redundant doxygen \file argumentCampbell Barton
Move \ingroup onto same line to be more compact and make it clear the file is in the group.
2019-02-01Cleanup: remove redundant, invalid info from headersCampbell Barton
BF-admins agree to remove header information that isn't useful, to reduce noise. - BEGIN/END license blocks Developers should add non license comments as separate comment blocks. No need for separator text. - Contributors This is often invalid, outdated or misleading especially when splitting files. It's more useful to git-blame to find out who has developed the code. See P901 for script to perform these edits.
2019-01-20Cleanup: remove all BLI_utiledefines' ugly vectorial macros.Bastien Montagne
Not only were those often making doublons with already existing BLI_math's stuff, but they were also used to hide implicit type conversions... As usual this adds some more exotic inlined vector functions (one of the rare cases where I really miss C++ and its templates... ;) ).
2018-09-19Merge branch 'master' into blender2.8Campbell Barton
2018-09-19BLI_utildefines: rename pointer conversion macrosCampbell Barton
Terms get/set don't make much sense when casting values. Name macros so the conversion is obvious, use common prefix for easier completion. - GET_INT_FROM_POINTER -> POINTER_AS_INT - SET_INT_IN_POINTER -> POINTER_FROM_INT - GET_UINT_FROM_POINTER -> POINTER_AS_UINT - SET_UINT_IN_POINTER -> POINTER_FROM_UINT
2018-06-22Studiolight: Spherical Harmonics WindowingJeroen Bakker
Apply Windowing on the Spherical Harmonics result. This would lead to better results.
2018-06-17Merge branch 'master' into blender2.8Campbell Barton
2018-06-17Cleanup: trailing space for BLICampbell Barton
2018-05-30BLI: Utils: Add Macro that compute the number of digits in integers type.Clément Foucault
Usefull if you want to create char chains to contains hashes of a certain type.
2018-05-28Windows: Add support for building with clang.Ray Molenkamp
This commit contains the minimum to make clang build/work with blender, asan and ninja build support is forthcoming Things to note: 1) Builds and runs, and is able to pass all tests (except for the freestyle_stroke_material.blend test which was broken at that time for all platforms by the looks of it) 2) It's slightly faster than msvc when using cycles. (time in seconds, on an i7-3370) victor_cpu msvc:3099.51 clang:2796.43 pavillon_barcelona_cpu msvc:1872.05 clang:1827.72 koro_cpu msvc:1097.58 clang:1006.51 fishy_cat_cpu msvc:815.37 clang:722.2 classroom_cpu msvc:1705.39 clang:1575.43 bmw27_cpu msvc:552.38 clang:561.53 barbershop_interior_cpu msvc:2134.93 clang:1922.33 3) clang on windows uses a drop in replacement for the Microsoft cl.exe (takes some of the Microsoft parameters, but not all, and takes some of the clang parameters but not all) and uses ms headers + libraries + linker, so you still need visual studio installed and will use our existing vc14 svn libs. 4) X64 only currently, X86 builds but crashes on startup. 5) Tested with llvm/clang 6.0.0 6) Requires visual studio integration, available at https://github.com/LazyDodo/llvm-vs2017-integration 7) The Microsoft compiler spawns a few copies of cl in parallel to get faster build times, clang doesn't, so the build time is 3-4x slower than with msvc. 8) No openmp support yet. Have not looked at this much, the binary distribution of clang doesn't seem to include it on windows. 9) No ASAN support yet, some of the sanitizers can be made to work, but it was decided to leave support out of this commit. Reviewers: campbellbarton Differential Revision: https://developer.blender.org/D3304
2018-05-14Cleanup: quiet GCC -Wtype-limitsCampbell Barton
While the warning can normally be disabled, we don't have have as much control of warnings when macros are used.
2018-05-14BLI_utildefines: re-ordering array delete macroCampbell Barton
2018-05-07Cleanup: move unit char/short/float to functionsCampbell Barton
This caused GCC 8.1 to crash at build time, but was also not very nice use of macros.
2018-04-02Build: fixes for the Intel compiler versions 2016, 2017, 2018.Milan Jaros
Differential Revision: https://developer.blender.org/D3109
2018-03-15BLI_assert: extract from BLI_utildefinesCampbell Barton
BLI_utildefines is quite large, defining many unrelated things. Add BLI_assert to include in inline headers, so math defines don't pull in too much.
2017-11-23Add non-gcc variant of static assert macro.Bastien Montagne
Adapted from http://www.pixelbeat.org/programming/gcc/static_assert.html. Note that this macro just discards error message, so error when building is much less nice than with gcc's _Static_assert... But error log will point to right place in code, so should still be OK.
2017-11-23Revert "BLI_utildefines: Support SWAP macro with two args"Campbell Barton
This reverts commit d749320e3b10161430bc4cb7dd92edb63712bf8c. It's possible the container struct is larger, we could do sizeof checks that falls back to memmove but rather avoid complicating things.
2017-11-22BLI_utildefines: Support SWAP macro with two argsCampbell Barton
2017-11-19Cleanup: remove BKE_utildefinesCampbell Barton
This was meant to be used for less general macros but was never used. Rename BKE_BIT_TEST_SET to SET_FLAG_FROM_TEST
2017-11-15BLI_utildefines: sync w/ 2.8Campbell Barton
2017-11-14BLI: sync changes from 2.8Campbell Barton
2017-09-19Cleanup: BLI_utildefines prefix for header-only libsCampbell Barton
This allows to have different macro headers without them sharing similar names to regular C modules.
2017-08-23Cleanup: move variadic defines to their own headerCampbell Barton
So we can use in headers without pulling in many other defines.
2016-08-16Fix release build after recent fix for debug oneSergey Sharybin
It's becoming annoying to have public API dependent on build type and everything. Let's just always have API defined and do stubs in the function implementation instead.
2016-02-03Cleanup: parenthesize macrosCampbell Barton
2016-01-25ImBuf: Make luminance calculation inlinedSergey Sharybin
Title actually tells it all, it is rather simple function which totally makes sense to be inlined. This gives up to 5% of speedup when updating scopes for a large image. Reviewers: campbellbarton Differential Revision: https://developer.blender.org/D1310
2015-10-20BLI: add new 'memory_utils' module with func checking a whole memory chunk ↵Bastien Montagne
is filled of zero, and an helper to ensure all memory of a given structure passed a given member is filled of zero.
2015-10-10Fix various compiler warnings.Brecht Van Lommel
2015-07-24parenthisize macro args to avoid errorsCampbell Barton