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
2020-07-06Reduce `DupliObject::persistent_id` from 16 to 8 itemsSybren A. Stüvel
For historical reasons, `DupliObject::persistent_id` was of size `2*MAX_DUPLI_RECUR`. These reasons are now gone, and the persistent ID always gets exactly one array element for every dupli-recursion. Differential Revision: https://developer.blender.org/D8222 Reviewed by: brecht
2020-04-22Fix T75964: changing object's viewport display color does not updatePhilipp Oeser
cycles Caused by rB00466e756e33. While that commit sounds logical, Cycles uses is_updated_transform() to detect updates. Now introduce is_updated_shading() and use that on top. Maniphest Tasks: T75964 Differential Revision: https://developer.blender.org/D7493
2020-04-03Cleanup: split `BKE_anim.h` and `anim.c` into smaller piecesSybren A. Stüvel
The files are now split up into the following sections: - `BKE_anim_path.h` and `anim_path.c` for path/curve functions. - `BKE_anim_visualization.h` and `anim_visualizationanim_path.c` for animation visualization (mostly motion paths). - `BKE_duplilist.h` for DupliList function declarations. These were already implemented in `object_dupli.c`, so they were rather out of place being declared in `BKE_anim.h` in the first place. No functional changes.
2020-03-19Cleanup: `make format` after SortedIncludes changeDalai Felinto
2019-11-18Fix building on 32bit systemsCampbell Barton
2019-10-11Depsgraph: Inform when update or tag happens during evaluationSergey Sharybin
It is not allowed to do tagging or updates while dependency graph is in the middle of evaluation. This is something what is simple to violate from python code. This change adds some sanity checks. The request to update view layer or dependency graph will raise an exception in Python now, so it's easy for scripters to notice. Tagging for update will do silent return unless running with debug command line argument. This is because it's a bit tricky to know which exact dependency graph corresponds to a context from which an update tag was triggered. Differential Revision: https://developer.blender.org/D6035
2019-08-01Cleanup: misc spelling fixesCampbell Barton
T68035 by @luzpaz
2019-05-22Cleanup: minor correctionsCampbell Barton
2019-05-16Depsgraph: Make depsgraph.update() safe for threadingSergey Sharybin
This is same as view_layer.update() is doing.
2019-05-16Dependency graph API changesSergey Sharybin
Main goal here is to make it obvious and predictable about what is going on. Summary of changes. - Access to dependency graph is now only possible to a fully evaluated graph. This is now done via context.evaluated_depsgraph_get(). The call will ensure both relations and datablocks are updated. This way we don't allow access to some known bad state of the graph, and also making explicit that getting update dependency graph is not cheap. - Access to evaluated ID is now possible via id.evaluated_get(). It was already possible to get evaluated ID via dependency graph, but that was a bit confusing why access to original is done via ID and to evaluated via depsgraph. If datablock is not covered by dependency graph it will be returned as-is. - Similarly, request for original from an ID which is not evaluated will return ID as-is. - Removed scene.update(). This is very expensive to update all the view layers. - Added depsgraph.update(). Now when temporary changes to objects are to be done, this is to happen on original object and then dependency graph is to be updated. - Changed object.to_mesh() to behave the following way: * When is used for original object modifiers are ignored. For meshes this acts similar to mesh-copy, not very useful but allows to keep code paths similar (i.e. for exporter which has Apply Modifiers option it's only matter choosing between original and evaluated object, the to_mesh() part can stay the same). For curves this gives a mesh which is constructed from displist without taking own modifiers and modifiers of bevel/taper objects into account. For metaballs this gives empty mesh. Polygonization of metaball is not possible from a single object. * When is used for evaluated object modifiers are always applied. In fact, no evaluation is happening, the mesh is either copied as-is, or constructed from current state of curve cache. Arguments to apply modifiers and calculate original coordinates (ORCO, aka undeformed coordinates) are removed. The ORCO is to be calculated as part of dependency graph evaluation. File used to regression-test (a packed Python script into .blend): {F7033464} Patch to make addons tests to pass: {F7033466} NOTE: I've included changes to FBX exporter, and those are addressing report T63689. NOTE: All the enabled-by-default addons are to be ported still, but first want to have agreement on this part of changes. NOTE: Also need to work on documentation for Python API, but, again, better be done after having agreement on this work. Reviewers: brecht, campbellbarton, mont29 Differential Revision: https://developer.blender.org/D4834
2019-04-21Cleanup: comments (long lines) in makesrnaCampbell Barton
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-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-06Fix (unreported) crash when iterating on depsgraph instances from RNA.Bastien Montagne
This is a follow-up to rBb44e6f2b3d32, for some reason that issue was not detected back then: in some cases, DEG_iterator_objects_next() will free the temp list of dupli objects once it does not need it anymore, henceforth freeing the dupli_object_current memory of the DEGObjectIterData that we are storing in the RNA_Depsgraph_Instances_Iterator struct. And yes, the uglyness of that hack is getting even better now... Found while trying to export dupliobjects with FBX...
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-03Cleanup: trailing commasCampbell Barton
Needed for clan-format not to wrap onto one line.
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-17Fix T60580: depsgraph object instance 'matrix_world' always returns identity ↵Bastien Montagne
matrix. While form a strict consistency point of view it could make sense to return identity matrix for non-instance items, it can be very handy to get that info (common to both instances and regular objects) directly in all cases.
2019-01-17RNA Depsgraĥ: add a warning about not using object_instances as a sequence.Bastien Montagne
Due to how this is generated, each item is freed when steping iteration to the next one, which means that subscriptions etc. will make blender crash.
2018-12-21Fix inconsistent/broken Cycles object visibility for instances.Brecht Van Lommel
Object visibility is now handled by the depsgraph iterator, but this API was incomplete as it made no distinction for visibility of the object itself, particles and generated instances. The depsgraph iterator API now includes information about which part of the object is visible, and this is used by Cycles to replace the old custom logic. Cycles and EEVEE visibility should now be consistent, which unfortunately does means some subtle compatibility breakage for both. Fixes T58956, T58202, T59284. Differential Revision: https://developer.blender.org/D4109
2018-12-13RNA: revert recent rename 'updated' -> 'dirty'Campbell Barton
Partially reverts 45fdf41be87f & 6d38d824377c, added comment why term 'updated' is used in this case.
2018-11-14Fix T57760: Depsgraph 'object_instances' showing incorrect list of objects.Bastien Montagne
It appears that Python gets next item before using current one, which would break our Depsgraph instance iterator (since only current item is valid there, we use the same memory at each iteration). Working around that with an ugly ping-pong game between two sets of iterator data, so that previous one (C RNA-iterator-wise) remains valid memory for Python to access to.
2018-10-02Depsgraph/RNA: add warning that all data from object instances iterator are ↵Bastien Montagne
COW data. It is crucial that scripts do not write, and even more importantly, do not store any references to those. Otherwise, that’s a rather straight path to crash.
2018-09-19Fix own mistake in previous commit.Bastien Montagne
2018-09-19Depsgraph/RNA: Fix broken 'dupliobject' RNA interface.Bastien Montagne
Previous code would crash on whole lot of accessors in case current item was not a real dupli instance. And code was missing access to crucial dupli (world) matrix! Pretty useless without that. Also reordered a bit members in here, let's try to keep a bit of logic...
2018-07-05Merge branch 'master' into blender2.8Campbell Barton
2018-07-05RNA: use is_dirty prefix for checking updatesCampbell Barton
Common convention for read-only update checks
2018-07-01Merge branch 'master' into blender2.8Campbell Barton
2018-06-11Cleanup: remove unused DAG_EVAL_PREVIEW mode.Brecht Van Lommel
2018-06-06Depsgraph: Expose (evaluation) mode in rnaDalai Felinto
2018-06-06Depsgraph iterator: Remove explicit modeDalai Felinto
We can get the mode from the depsgraph itself.
2018-06-06Depsgraph: remove legacy code for dupli group updates.Brecht Van Lommel
This caused crashes in some cases, and should be fully handled by the depsgraph now.
2018-05-30Depsgraph API: renaming, more granular update information.Brecht Van Lommel
* depsgraph.ids: all evaluated datablocks in the depsgraph * depsgraph.objects: all evaluated objects in the depsgraph * depsgraph.object_instances: all object instances to display or render * depsgraph.updates: list of updates to datablocks
2018-05-30Fix missing Cycles 3D viewport updates when editing materials, lamps.Brecht Van Lommel
This introduces a new depsgraph API for getting updated datablocks, rather than getting it from bpy.data. * depsgraph.ids_updated gives a list of all datablocks in the depsgraph which have been updated. * depsgraph.id_type_updated('TYPE') is true if any datablock of the given type has been added, removed or modified. More API updates are coming to properly handle multiple depsgraphs and finer update granularity, but this should make Cycles work again.
2018-04-28Cleanup: style, duplicate includesCampbell Barton
2018-04-25Depsgraph: Clarify python APISergey Sharybin
Follow same naming convention as for C: - Original data is named without any extra prefix/suffix. - Evaluated data is named with _eval suffix.
2018-04-04Fix Cycles particle info node not working.Brecht Van Lommel
2018-02-28Depsgraph: Expose query to get view layer to RNADalai Felinto
2018-01-16Merge branch 'master' into blender2.8Sergey Sharybin
2018-01-16Cleanup: Naming of depsgraphSergey Sharybin
2017-12-21Implement duplicator viewport/render visibility optionsDalai Felinto
This allows a duplicator (as known as dupli parent) to be in a visible collection so its duplicated objects are visible, however while being invisible for the final render. An object that is a particle emitter is also considered a duplicator. Many thanks for the reviewers for the extense feedback. Reviewers: sergey, campbellbarton Differential Revision: https://developer.blender.org/D2966
2017-12-21Merge branch 'master' into blender2.8Sergey Sharybin
2017-12-21Depsgraph: Bring timing statistics to the new dependency graphSergey Sharybin
This statistics is only collected when debug_value is different from 0. Stored in depsgraph node itself, so we can always have access to average data and other stats which requires persistent storage. This way we also don't waste time trying to find stats from a separately stored hash map.
2017-12-21Depsgraph: Make it more clear that we dump relations into graphvizSergey Sharybin
We might implement other things to dump into graphviz, so better to start having explicit names.
2017-12-21Merge branch 'master' into blender2.8Sergey Sharybin
2017-12-21Depsgraph: Remove eval priority from debuggerSergey Sharybin
This needs to be redone anyway, to correspond to possibly new priorities calculated for evaluaiton.
2017-12-15Depsgraph: cleanup DEGOIterObjectData > DEGObjectIterDataDalai Felinto
2017-12-15Depsgraph: Make DEG_OBJECT_ITER more granularDalai Felinto
It is not nice to assume we always want visible or directly linked objects. So we make it as granular as we can.
2017-12-01Depsgraph: Cleanup, namingSergey Sharybin
It makes more sense to stick to DEG_iterator_object order in name, since we can have functions to iterate over different entities and we want all of them to have common prefix.
2017-11-07Sanitize use of BLI_iteratorDalai Felinto
We now initialize iter.valid as true as part of the main iterator (and manually when using via Python). And we don't even bother setting iter->current to NULL if it's invalid. Let's stick to using iter->valid only.