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
2018-06-22Modifiers: Remove lots of usages of md->sceneSergey Sharybin
2018-06-21Modifiers: Stop using md->scene in isDisabled() callbackSergey Sharybin
This is first commit in series of changes to get rid of md->scene.
2018-05-30Modifiers: Bring back custom data referencing logicSergey Sharybin
Brings dependency graph evaluation time to similar time than 2.79 for file reported in T55228.
2018-05-30Modifiers: Restore duplication of referenced layersSergey Sharybin
Was no reason to remove those calls, it was always a plan to bring referenced layers back eventually.
2018-05-23Fix modifiers not using depsgraph time for texture evaluation.Bastien Montagne
Texture animation seems to be broken anyway currently, but at leat modifier side it should now be OK.
2018-05-12Merge branch 'master' into blender2.8Campbell Barton
2018-05-12Cleanup: modifier arg wrappingCampbell Barton
2018-05-08Cleanup: whitespace, duplicate includesCampbell Barton
2018-05-08Merge branch 'master' into blender2.8Bastien Montagne
2018-05-08Cleanup: Nuke empty dummy wrappers around modifier_copyData_generic().Bastien Montagne
This also changes signature of modifier copy callback, first (source) parameter is now a const, which is saner anyway!
2018-05-08WeightVG modifiers: Cleanup, add asserts to validate expected data status...Bastien Montagne
2018-05-07Modifier stack: move vgroup editing modifiers to new Mesh-based system.Bastien Montagne
Some notes here: * Proximity with non-mesh objects (like curve, see TEST_2 scene in weightvg testfile) are not working currently. This is known TODO of COW depsgraph project. * Proximity modifier is slower, due to some other TODO pending on BVHTree creation/caching for Mesh.
2018-05-01Extract common modifier parameters into ModifierEvalContext structSybren A. Stüvel
The contents of the ModifierEvalContext struct are constant while iterating over the modifier stack. The struct thus should be only created once, outside any loop over the modifiers.
2018-05-01Modifiers: Add wrapper functions with Mesh / DerivedMesh conversionMai Lavelle
Makes the follow changes: - Add new `deform*` and `apply*` function pointers to `ModifierTypeInfo` that take `Mesh`, and rename the old functions to indicate that they take `DerivedMesh`. These new functions are currently set to `NULL` for all modifiers. - Add wrapper `modifier_deform*` and `modifier_apply*` functions in two variants: one that works with `Mesh` and the other which works with `DerivedMesh` that is named with `*_DM_depercated`. These functions check which type of data the modifier supports and converts if necessary - Update the rest of Blender to be aware and make use of these new functions The goal of these changes is to make it possible to port to using `Mesh` incrementally without ever needing to enter into a state where modifiers don't work. After everything has been ported over the old functions and wrappers could be removed. Reviewers: campbellbarton, sergey, mont29 Subscribers: sybren Tags: #bf_blender_2.8 Differential Revision: https://developer.blender.org/D3155
2018-04-16Depsgraph: remove EvaluationContext, pass Depsgraph instead.Brecht Van Lommel
The depsgraph was always created within a fixed evaluation context. Passing both risks the depsgraph and evaluation context not matching, and it complicates the Python API where we'd have to expose both which is not so easy to understand. This also removes the global evaluation context in main, which assumed there to be a single active scene and view layer. Differential Revision: https://developer.blender.org/D3152
2018-04-04Merge branch 'master' into blender2.8Bastien Montagne
Conflicts: source/blender/blenkernel/BKE_object.h
2018-04-04Fix modifier freeing code re. ID refcounting.Bastien Montagne
Free code should not handle ID refcounting at all. This has to be done at higher level, since in some case we want to free (temp) data that actually did not refcount at all its IDs. This change seems to be working OK, but as usual in that area, only lots of testing in real-case situation will say whether there are some hidden bugs or not.
2018-02-22Merge branch 'master' into blender2.8Sergey Sharybin
2018-02-22Depsgraph: Wrap all arguments foe modifiers relations update into a structSergey Sharybin
Makes it easier to add or remove fields needed to update relations.
2018-01-18Merge branch 'master' into blender2.8Brecht Van Lommel
2018-01-18Fix buffer overflow vulnerabilities in mesh code.Brecht Van Lommel
Solves these security issues from T52924: CVE-2017-12081 CVE-2017-12082 CVE-2017-12086 CVE-2017-12099 CVE-2017-12100 CVE-2017-12101 CVE-2017-12105 While the specific overflow issue may be fixed, loading the repro .blend files may still crash because they are incomplete and corrupt. The way they crash may be impossible to exploit, but this is difficult to prove. Differential Revision: https://developer.blender.org/D3002
2017-08-16Pass EvaluationContext instead of bContextCampbell Barton
2.8x branch added bContext arg in many places, pass eval-context instead since its not simple to reason about what what nested functions do when they can access and change almost anything. Also use const to prevent unexpected modifications. This fixes crash loading files with shadows, since off-screen buffers use a NULL context for rendering.
2017-08-07Refactor ID copying (and to some extent, ID freeing).Bastien Montagne
This will allow much finer controll over how we copy data-blocks, from full copy in Main database, to "lighter" ones (out of Main, inside an already allocated datablock, etc.). This commit also transfers a llot of what was previously handled by per-ID-type custom code to generic ID handling code in BKE_library. Hopefully will avoid in future inconsistencies and missing bits we had all over the codebase in the past. It also adds missing copying handling for a few types, most notably Scene (which where using a fully customized handling previously). Note that the type of allocation used during copying (regular in Main, allocated but outside of Main, or not allocated by ID handling code at all) is stored in ID's, which allows to handle them correctly when freeing. This needs to be taken care of with caution when doing 'weird' unusual things with ID copying and/or allocation! As a final note, while rather noisy, this commit will hopefully not break too much existing branches, old 'API' has been kept for the main part, as a wrapper around new code. Cleaning it up will happen later. Design task : T51804 Phab Diff: D2714
2017-08-07Refactor ID copying (and to some extent, ID freeing).Bastien Montagne
This will allow much finer controll over how we copy data-blocks, from full copy in Main database, to "lighter" ones (out of Main, inside an already allocated datablock, etc.). This commit also transfers a llot of what was previously handled by per-ID-type custom code to generic ID handling code in BKE_library. Hopefully will avoid in future inconsistencies and missing bits we had all over the codebase in the past. It also adds missing copying handling for a few types, most notably Scene (which where using a fully customized handling previously). Note that the type of allocation used during copying (regular in Main, allocated but outside of Main, or not allocated by ID handling code at all) is stored in ID's, which allows to handle them correctly when freeing. This needs to be taken care of with caution when doing 'weird' unusual things with ID copying and/or allocation! As a final note, while rather noisy, this commit will hopefully not break too much existing branches, old 'API' has been kept for the main part, as a wrapper around new code. Cleaning it up will happen later. Design task : T51804 Phab Diff: D2714
2017-08-01Merge branch 'master' into blender2.8Campbell Barton
2017-08-01Cleanup: use static vars where appropriateCampbell Barton
2017-07-21Fix function declaration of some modifiersSergey Sharybin
Those functions did not use evaluation context. Also fixed lots of unused variables warnings caused by commented out code which needs to be ported away from DerivedMesh and to evaluation context.
2017-05-22Merge branch 'master' into blender2.8Bastien Montagne
Conflicts: source/blender/blenloader/intern/versioning_270.c
2017-05-22Fix T51520: Broken vertex weights after two mesh joining.Bastien Montagne
Root of the issue here was that two stupid modifiers could create named vgroup CD layers (vgroup editing ones... shame on me :") ). Fix that, and added some versionning code to also fix 'corrupted' blend files created by those so far.
2017-04-05Cleanup: Remove legacy depsgraph private header from modifiersSergey Sharybin
2017-01-31Merge branch 'master' into blender2.8Bastien Montagne
Conflicts: source/blender/blenkernel/intern/depsgraph.c source/blender/blenkernel/intern/library_query.c
2017-01-31Cleanup: Rename callback flags from library_query to `IDWALK_CB_...`Bastien Montagne
Better to have clear way to tell whether flag is parameter for BKE_library_foreach_ID_link(), parameter for its callback function, or return value from this callback function.
2017-01-24Depsgraph: Remove legacy updateDepgraph callbacks from modifiersSergey Sharybin
2015-10-08Modifiers: add 'cd_flag' parameter to their ID looping callbacks, neededBastien Montagne
since some IDs (objects) are not 'refcounted' while others (textures) are... Partial merge from id-remap branch.
2015-10-05Cleanup: use proper `ObjectWalkFunc` typedef in modifiers' object callback func.Bastien Montagne
Also, fix own stupidity, no need to define ID callback in case we only have objects, calling code knows to fallback to `foreachObjectLink()` when `foreachIDLink()` is missing...
2015-05-12Depsgraph: New dependency graph integration commitSergey Sharybin
This commit integrates the work done so far on the new dependency graph system, where goal was to replace legacy depsgraph with the new one, supporting loads of neat features like: - More granular dependency relation nature, which solves issues with fake cycles in the dependencies. - Move towards all-animatable, by better integration of drivers into the system. - Lay down some basis for upcoming copy-on-write, overrides and so on. The new system is living side-by-side with the previous one and disabled by default, so nothing will become suddenly broken. The way to enable new depsgraph is to pass `--new-depsgraph` command line argument. It's a bit early to consider the system production-ready, there are some TODOs and issues were discovered during the merge period, they'll be addressed ASAP. But it's important to merge, because it's the only way to attract artists to really start testing this system. There are number of assorted documents related on the design of the new system: * http://wiki.blender.org/index.php/User:Aligorith/GSoC2013_Depsgraph#Design_Documents * http://wiki.blender.org/index.php/User:Nazg-gul/DependencyGraph There are also some user-related information online: * http://code.blender.org/2015/02/blender-dependency-graph-branch-for-users/ * http://code.blender.org/2015/03/more-dependency-graph-tricks/ Kudos to everyone who was involved into the project: - Joshua "Aligorith" Leung -- design specification, initial code - Lukas "lukas_t" Toenne -- integrating code into blender, with further fixes - Sergey "Sergey" "Sharybin" -- some mocking around, trying to wrap up the project and so - Bassam "slikdigit" Kurdali -- stressing the new system, reporting all the issues and recording/writing documentation. - Everyone else who i forgot to mention here :)
2015-03-13Pass proper bmain to the updateDepgraph() of modifiersSergey Sharybin
This is mainly to make physics modifiers being able to work with it. For other cases this main is not needed.
2014-11-29Cleanup: unused headersCampbell Barton
2014-04-30Code cleanup: remove unused includesCampbell Barton
Opted to keep includes if they are used indirectly (even if removing is possible).
2014-02-07ListBase API: add utility api funcs for clearing and checking emptyCampbell Barton
2014-02-03Code cleanup: use bools where possibleCampbell Barton
2013-12-21Mesh Modifiers: refactor copying using a generic functionCampbell Barton
2013-08-04code cleanup: replace strncpy -> BLI_strncpy, skip first 2 chars when making ↵Campbell Barton
a hash from the object name.
2013-06-10Follow up to r57354: WeightVG and Wave modifiers too need to handle tex id ↵Bastien Montagne
refcount ;)
2013-06-02use booleans for modifiers and api callbacks.Campbell Barton
2013-05-08code cleanup: remove references to BLI_rand.hCampbell Barton
2013-05-02Fix #35174: dynamic paint displacement missing in render.Brecht Van Lommel
A previous bugfix disabled the dynamic paint modifier for orco texture coordinate evaluation of the modifier stack. However the MOD_APPLY_USECACHE flag is not a good way to check if the modifier is evaluated for orcos. Instead I've added a MOD_APPLY_ORCO flag. Also removed a bunch of applyModifierEM callbacks, none of them served a purpose except for the subsurf modifier.
2013-04-16Random number generator: replace a bunch of usage of the global random numberBrecht Van Lommel
generator with a local one. It's not thread safe and will not give repeatable results, so in most cases it should not be used. Also fixes #34992 where the noise texture of a displacement modifier was not properly random in opengl animation render, because the seed got reset to a fixed value by an unrelated function while for final render it changed each frame.
2012-10-22code cleanup: check defgroup_name_index() return value != -1, rather then ↵Campbell Barton
checking >= 0. also remove unused bmesh decimator code.
2012-05-09Refactor of modifiers' apply function: now use a single bit-flag parameter ↵Bastien Montagne
to pass options, instead of having one parameter per boolean flag (i.e. replaces current useRenderParams and isFinalCalc by a single ModifierApplyFlag flag. ModifierApplyFlag is an enum defined in BKE_modifier.h). This way we won't anymore have to edit all modifier files when e.g. adding a new control flag! Should have no effect over modifier behavior.