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
2019-01-16Add experimental batch IDs deletion.Bastien Montagne
Main idea is to remove IDs to be deleted from Main, to avoid looping on them to remove other deleted IDs usage (this is the most expensive process in ID deletion, by far). Speed improvements when deleting a large amount of IDs from a Main containing a lot of them is quite significant, some examples for Objects: * Removing 1k from 10k: 32% quicker (2.5s to 1.7s). * Removing 10k from 20k: 60% quicker (59s to 23s). * Removing 20k from 20k: 99.5% quicker (82s to 0.4s)! Note however that this process is more risky/touchy, since we by-pass some safety checks from regular ID removal here. So will only give access to that code from python API for now (in separate commit), so that it gets really tested. Also still need to think about how to hook it up in UI (probably mostly for Outliner), since we often do higher-level operations there...
2019-01-15Cleanup: rename BKE_libblock_delete to BKE_id_delete.Bastien Montagne
2019-01-15Cleanup: rename BKE_libblock_free_us to BKE_id_free_us.Bastien Montagne
2019-01-15Cleanup: Remove deprecated BKE_libblock_free(_ex) functions, document ↵Bastien Montagne
BKE_id_free(_ex) ones.
2019-01-15Cleanup: replace usages of deprecated BKE_libblock_free_ex by BKE_id_free_ex.Bastien Montagne
2019-01-15Cleanup: replace usages of deprecated BKE_libblock_free by BKE_id_free.Bastien Montagne
2019-01-15Cleanup BKE_id_free_ex().Bastien Montagne
Add 'missing' bpy code from BKE_libblock_free_ex(), now both functions do exactly the same thing, only the later is less flexible (fewer 'exotic' behaviors supported, like handling IDs outside of bmain etc.). Next step: nuke usages of BKE_libblock_free functions, makes no sense to have twice the same code around!
2018-12-14Attempt to sanitize node tree deletionSergey Sharybin
Make it explicit when freeing node tree which is owned by other ID or when freeing node tree which is outside of a bmain.
2018-12-14Fix T59220: Deleting object causes blender 2.8 to crashSergey Sharybin
The issue was caused by a special code in node tree freeing function which will free extra fields in the case when tree is not in bmain. This is how old code was dealing with "nested" trees, but is now making behavior different from other datablocks. This is exactly what was confusing copy-on-write logic. Ideally, ntreeFreeTree() need to behave same as all other datablocks, ad freeing of data of nested trees should be up to the owner of the tree (this way it's all explicit and does not depend on check of some special flag.
2018-12-07Depsgraph: Remove duplicated sets of recalc/update flagsSergey Sharybin
There were at least three copies of those: - OB_RECALC* family of flags, which are rudiment of an old dependency graph system. - PSYS_RECALC* which were used by old dependency graph system as a separate set since the graph itself did not handle particle systems. - DEG_TAG_* which was used to tag IDs. Now there is a single set, which defines what can be tagged and queried for an update. It also has some aggregate flags to make queries simpler. Lets once and for all solve the madness of those flags, stick to a single set, which will not overlap with anything or require any extra conversion. Technically, shouldn't be measurable user difference, but some of the agregate flags for few dependency graph components did change. Fixes T58632: Particle don't update rotation settings
2018-11-30Merge branch 'master' into blender2.8Campbell Barton
2018-11-30Cleanup: name macros w/ matching BEGIN/ENDCampbell Barton
2018-11-23Fix T57616: Deleting particle system instance object leads to crashSergey Sharybin
Explicitly tag copy-on-write form library remap. Previously, this tag was used implicitly via geometry/transform tagging, which worked ok for objects. For non-objects we do need to ensure all copies has correct pointer and the only way to do so is to pass tag explicitly. There is probably more places in the library remap where this is needed, but not being familiar with the code makes it difficult to spot where possible tags are missing.
2018-11-10Fix (unreported) crash when deleting collection in freshly duplicated scene.Bastien Montagne
From startup .blend, add a 'full copy' new scene, and delete its Collection 1.001 collection. That would make blender crash, once again due to NULL collection pointer in some ChildrenCollection struct...
2018-10-29Fix T57372: Second full scene copy crashes on deletion.Bastien Montagne
Hope this time we are done for good (root of the issue was that master collections are not in bmain...).
2018-10-29Fix stupid multiple-call of same function in Collections remapping code.Bastien Montagne
Related to T57372: Second full scene copy crashes on deletion (fixes deleting second copy, but now it crashes on deleting the first copy...).
2018-10-21Fix T57320: Crash when adding a linked scene, then deleting it.Bastien Montagne
You want to check collections (for NULL children) first, before you actually go into those children collections checking for NULL objects...
2018-10-21Fix non-sense overloaded code in remapping post-process of objects and ↵Bastien Montagne
collections. In one case, code was calling the same func on bmain for all objects or collections inside that bmain... seriously...
2018-09-24Merge branch 'master' into blender2.8Brecht Van Lommel
2018-09-24Spelling fixes in comments and descriptions, patch by luzpaz.Brecht Van Lommel
Differential Revision: https://developer.blender.org/D3719
2018-09-10Fix T56717: crash removing/adding objects.Brecht Van Lommel
Object bases hash always needs to be freed on library remapping.
2018-09-03Fix T56622: crash and other bugs deleting scenes.Brecht Van Lommel
Simplify library remapping code to handle special collection/object links in postprocess. Previously base contained the actual object link which needed special handling in preprocess, now objects are linked through collection and the base cache can be updated in postprocess.
2018-08-29Cleanup: rename files from group to collection to match contents.Brecht Van Lommel
2018-06-18Fix a very nasty and sneaky bug in lib remap / static override code.Bastien Montagne
Not sure why remap call for static override reference ID pointer was put there, probably a mistake during some merge back in the days... But this ended up with self_id of libquery data struct still being set to previous ID pointer, which could randomly generate crap like falsly reporting indirect data and such, leading to lost reference datablock at writefile time...
2018-06-18Cleanup: use DEG tag flags, instead of old OB ones.Bastien Montagne
Having those two in parallel is ratehr confusing... :/
2018-06-17Merge branch 'master' into blender2.8Campbell Barton
2018-06-17Cleanup: trailing space for blenkernelCampbell Barton
2018-06-12Cleanup: moar removal of G.main in BKE area...Bastien Montagne
2018-05-29Merge branch 'master' into blender2.8Bastien Montagne
Conflicts: source/blender/blenkernel/BKE_material.h source/blender/blenkernel/BKE_mesh.h source/blender/blenkernel/intern/library_remap.c source/blender/blenkernel/intern/material.c source/blender/editors/object/object_relations.c source/blender/editors/render/render_preview.c source/blender/makesrna/intern/rna_object.c
2018-05-29Cleanup: Get rid of G.main in BKE_material.Bastien Montagne
Note that in some cases, this only moves the G.main case to somne other places - in particular, RNA getters/setters are becoming annoying here...
2018-05-18Collections and groups unificationBrecht Van Lommel
OVERVIEW * In 2.7 terminology, all layers and groups are now collection datablocks. * These collections are nestable, linkable, instanceable, overrideable, .. which opens up new ways to set up scenes and link + override data. * Viewport/render visibility and selectability are now a part of the collection and shared across all view layers and linkable. * View layers define which subset of the scene collection hierarchy is excluded for each. For many workflows one view layer can be used, these are more of an advanced feature now. OUTLINER * The outliner now has a "View Layer" display mode instead of "Collections", which can display the collections and/or objects in the view layer. * In this display mode, collections can be excluded with the right click menu. These will then be greyed out and their objects will be excluded. * To view collections not linked to any scene, the "Blender File" display mode can be used, with the new filtering option to just see Colleciton datablocks. * The outliner right click menus for collections and objects were reorganized. * Drag and drop still needs to be improved. Like before, dragging the icon or text gives different results, we'll unify this later. LINKING AND OVERRIDES * Collections can now be linked into the scene without creating an instance, with the link/append operator or from the collections view in the outliner. * Collections can get static overrides with the right click menu in the outliner, but this is rather unreliable and not clearly communicated at the moment. * We still need to improve the make override operator to turn collection instances into collections with overrides directly in the scene. PERFORMANCE * We tried to make performance not worse than before and improve it in some cases. The main thing that's still a bit slower is multiple scenes, we have to change the layer syncing to only updated affected scenes. * Collections keep a list of their parent collections for faster incremental updates in syncing and caching. * View layer bases are now in a object -> base hash to avoid quadratic time lookups internally and in API functions like visible_get(). VERSIONING * Compatibility with 2.7 files should be improved due to the new visibility controls. Of course users may not want to set up their scenes differently now to avoid having separate layers and groups. * Compatibility with 2.8 is mostly there, and was tested on Eevee demo and Hero files. There's a few things which are know to be not quite compatible, like nested layer collections inside groups. * The versioning code for 2.8 files is quite complicated, and isolated behind #ifdef so it can be removed at the end of the release cycle. KNOWN ISSUES * The G-key group operators in the 3D viewport were left mostly as is, they need to be modified still to fit better. * Same for the groups panel in the object properties. This needs to be updated still, or perhaps replaced by something better. * Collections must all have a unique name. Less restrictive namespacing is to be done later, we'll have to see how important this is as all objects within the collections must also have a unique name anyway. * Full scene copy and delete scene are exactly doing the right thing yet. Differential Revision: https://developer.blender.org/D3383 https://code.blender.org/2018/05/collections-and-groups/
2018-05-11Depsgraph: Remove workaround for scene freeSergey Sharybin
No functional changes commit ;)
2018-05-09BKE_id_free(): avoid UI and DEG calls when tagged with LIB_TAG_NO_MAINSybren A. Stüvel
This prevents threading issues & crashes from modifiers that create temporary meshes.
2018-04-17Removing Blender Game Engine from Blender 2.8Dalai Felinto
Folders removed entirely: * //extern/recastnavigation * //intern/decklink * //intern/moto * //source/blender/editors/space_logic * //source/blenderplayer * //source/gameengine This includes DNA data and any reference to the BGE code in Blender itself. We are bumping the subversion. Pending tasks: * Tile/clamp code in image editor draw code. * Viewport drawing code (so much of this will go away because of BI removal that we can wait until then to remove this.
2018-03-09Cleanup: iterator macrosCampbell Barton
- put render iterator in own scope (would shadow it's own variable if used multiple times). - enforce semicolon at end of iterator macros. - no need to typedef one-off macro structs.
2018-03-01Cleanup: macro's w/ an _END need a matching _BEGINCampbell Barton
Convention from 2.7x, since some looping macros don't need an '_END', it avoids confusion to keep this.
2018-02-22Fix T54136: Crash when deleting an object that is in an instanced groupDalai Felinto
We were not cleaning up groups after deleting objects, leaving groups with Bases that had no object. It includes a unittest. Reviewers: mont29
2018-01-25Merge branch 'master' into blender2.8Bastien Montagne
Conflicts: source/blender/blenkernel/intern/library_remap.c
2018-01-25Fix T53363: Blender won't update mesh's usercount when deleting object ↵Bastien Montagne
datablocks in Editmode. Only do special handling of ob->data pointer in case we are remapping to a valid (non-NULL) other obdata. Otherwise, handle it as any other 'remapping to NULL' case. Hopefully not breaking anything else...
2017-12-11DNA/RNA: add 'py_instance' for ID typesCampbell Barton
Avoid creating new Python instances every time a scene, object, mesh .. etc are accessed. Also resolves crashes T28724, T53530 although it's only valid for ID types, not modifiers vertices etc. Back-ported from blender2.8 branch.
2017-12-01Groups and collection: initial integrationDalai Felinto
Since we are ditching layers from Blender (2.8) we need a replacement to control groups visibility. This commit introduces collections as the building blocks for groups, allowing users to control visibility as well as overrides for groups. Features ======== * Groups now have collections This way you can change the visibility of a collection inside a group, and add overrides which are part of the group and are prioritized over other overrides. * Outliner Groups can inspect their collections, change visibility, and add/remove members. To change an override of a group collection, you need to select an instance of the group, and then you can choose "group" in the collection properties editor to edit this group active collection instead of the view layer one. * Dupli groups overrides We can now have multiple instances of the same group with an original "override" and different overrides depending on the collection the instanced object is part of. Technical ========= * Layers We use the same api for groups and scene as much as possible. Reviewers: sergey (depsgraph), mont29 (read/write and user count) Differential Revision: https://developer.blender.org/D2892
2017-11-29Merge ID static override, part I: core changes in DNA, BKE and .blend ↵Bastien Montagne
read/write. See https://developer.blender.org/D2417 for details. Note that since static overrides rely heavily on RNA, this commit is essentially invisible from user PoV, more in next commits.
2017-11-08Farewell Scene->baseDalai Felinto
While getting rid of Scene->base we got the following fixes: * Fix "Convert To" operator * Fix "NLA allowing to selected objects that are not selectable * Fix scene.objects (readonly, no option to link/unlink) Note: Collada needs to use the context SceneLayer for adding objects however I added a placeholder, so Collada maintainers can fix this properly.
2017-11-06Merge branch 'master' into blender2.8Bastien Montagne
Conflicts: intern/cycles/device/device.cpp source/blender/blenkernel/intern/library.c source/blender/blenkernel/intern/material.c source/blender/editors/object/object_add.c source/blender/editors/object/object_relations.c source/blender/editors/space_outliner/outliner_draw.c source/blender/editors/space_outliner/outliner_edit.c source/blender/editors/space_view3d/drawobject.c source/blender/editors/util/ed_util.c source/blender/windowmanager/intern/wm_files_link.c
2017-11-06Rename ID_IS_LINKED_DATABLOCK to ID_IS_LINKED.Bastien Montagne
This makes code closer to id_override/assent-engine ones, which introduce a new type of linked data, and hence reserve ID_IS_LINKED_DATABLOCK to real linked datablocks.
2017-08-26Merge branch 'master' into blender2.8Campbell Barton
2017-08-25Fix T52481: After making all local, local proxies of linked data get broken ↵Bastien Montagne
after file save and reload. Issue was nasty hidden one, the dual status (mix of local and linked) of proxies striking again. Here, remapping process was considering obdata pointer of proxies as indirect usage, hence clearing the 'LIB_TAG_EXTERN' of obdata pointer. That would make savetoblend code not store any 'lib placeholder' for obdata data-block, which was hence lost on next file read. Another (probably better) solution here would be to actually consider obdata of proxies are fully indirect usage, and simply reassign proxies from their linked object's obdata on file read... However, that change shall be safer for now, probably good for 2.79 too.
2017-08-10Fix after last merge.Bastien Montagne
2017-08-10Merge branch 'master' into blender2.8Bastien Montagne
2017-08-10Fix T52324: Metaball disappears when deleting first metaball object.Bastien Montagne
Lost specific MBall 'need update' case here in last year's refactor. While technically not a regression, nice to have in 2.79.