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
2017-06-08Remove selection color from the baseSergey Sharybin
Use indirect access to it via object. It was already flushing from base to object, now we can avoid such flushing. Still weird to have selection color filled in by dependency graph, but now there is no synchronization going on at least.
2017-06-07Merge branch 'master' into blender2.8Sergey Sharybin
2017-06-07Depsgraph: Remove modifiers operation codeSergey Sharybin
Was internally a no-op operation, which only caused extra work to be done during depsgrpah traversal and evaluation, without making any measurable improvement.
2017-06-07Depsgraph: Remove unused operation codesSergey Sharybin
2017-06-07Depsgraph: Remove dead/unused operation codesSergey Sharybin
2017-06-06Depsgraph: Cleanup, unused includesSergey Sharybin
2017-06-06Cycles: Support rendering objects from dupli-listSergey Sharybin
This commit extends the work from Dalai made around scene iterators to support iterating into objects from dupli-lists. Changes can be summarized as: - Depsgraph iterator will hold pointer to an object which created current duplilist. It is available via `dupli_parent` field of the iterator. It is only set when duplilist is not NULL and guaranteed to be NULL for all other cases. - Introduced new depsgraph.duplis collection which gives a more extended information about depsgraph iterator. It is basically a collection on top of DEGObjectsIteratorData. It is used to provide access to such data as persistent ID, generated space and so on. Things which still needs to be done/finished/clarified: - Need to introduce some sort of `is_instance` boolean property which will indicate Python and C++ RNA that we are inside of dupli-list. - Introduce a way to skip dupli-list for particular objects. So, for example, if we are culling object due to distance we can skip all objects it was duplicating. - Introduce a way to skip particular duplicators. So we can skip iterating into particle system. - Introduce some cleaner API for C side of operators to access all data such as persistent ID and friends. This way we wouldn't need de-reference iterator and could keep access to such data really abstract. Who knows how we'll be storing internal state of the operator in the future. While there is still stuff to do, current state works and moves us in the proper direction.
2017-06-06Force crash on depsgraph iterator wrong access.Dalai Felinto
Related to T51718, so it crashes even when no fancy ASAN flags are used. Patch suggestion by Campbell Barton.
2017-06-06Merge branch 'master' into blender2.8Sergey Sharybin
2017-06-06Depsgraph: Only use extern "C" when really neededSergey Sharybin
2017-06-02Fix for crash/error drawing duplisCampbell Barton
Drawing object centers used stack memory, we don't want to draw these anyway so add check.
2017-06-02Fix logic for bitwise flags in bases during deg iteratorDalai Felinto
Spotted/reported by Sergey Sharybin.
2017-06-02Initial implememtation for dupli objectsDalai Felinto
Now dupli groups, objects, particles, ... are all working. This introduces a flag for the iterator to determine whether we go over Set and dupli objects or not. Important to remember to keep the iteration of DEG_ as readonly. Cycles is not working well for dupli groups, and it's memleaking for dupli particles. So for now we iterate over main objects and set only, not dupli. To change that go in rna_scene.c and: -DEG_OBJECT_ITER(graph, ob, DEG_OBJECT_ITER_FLAG_SET) +DEG_OBJECT_ITER(graph, ob, DEG_OBJECT_ITER_FLAG_ALL) Review and suggestions by Sergey Sharybin
2017-06-02Merge branch 'master' into blender2.8Campbell Barton
2017-06-02Cleanup: styleCampbell Barton
2017-06-02DEG: Add per object update flag for Depsgraph.Clément Foucault
This is in order to communicate what portion of this object has changed. For now it's just a bool, but it will be extended later.
2017-06-01Main Workspace IntegrationJulian Eisel
This commit does the main integration of workspaces, which is a design we agreed on during the 2.8 UI workshop (see https://wiki.blender.org/index.php/Dev:2.8/UI/Workshop_Writeup) Workspaces should generally be stable, I'm not aware of any remaining bugs (or I've forgotten them :) ). If you find any, let me know! (Exception: mode switching button might get out of sync with actual mode in some cases, would consider that a limitation/ToDo. Needs to be resolved at some point.) == Main Changes/Features * Introduces the new Workspaces as data-blocks. * Allow storing a number of custom workspaces as part of the user configuration. Needs further work to allow adding and deleting individual workspaces. * Bundle a default workspace configuration with Blender (current screen-layouts converted to workspaces). * Pressing button to add a workspace spawns a menu to select between "Duplicate Current" and the workspaces from the user configuration. If no workspaces are stored in the user configuration, the default workspaces are listed instead. * Store screen-layouts (`bScreen`) per workspace. * Store an active screen-layout per workspace. Changing the workspace will enable this layout. * Store active mode in workspace. Changing the workspace will also enter the mode of the new workspace. (Note that we still store the active mode in the object, moving this completely to workspaces is a separate project.) * Store an active render layer per workspace. * Moved mode switch from 3D View header to Info Editor header. * Store active scene in window (not directly workspace related, but overlaps quite a bit). * Removed 'Use Global Scene' User Preference option. * Compatibility with old files - a new workspace is created for every screen-layout of old files. Old Blender versions should be able to read files saved with workspace support as well. * Default .blend only contains one workspace ("General"). * Support appending workspaces. Opening files without UI and commandline rendering should work fine. Note that the UI is temporary! We plan to introduce a new global topbar that contains the workspace options and tabs for switching workspaces. == Technical Notes * Workspaces are data-blocks. * Adding and removing `bScreen`s should be done through `ED_workspace_layout` API now. * A workspace can be active in multiple windows at the same time. * The mode menu (which is now in the Info Editor header) doesn't display "Grease Pencil Edit" mode anymore since its availability depends on the active editor. Will be fixed by making Grease Pencil an own object type (as planned). * The button to change the active workspace object mode may get out of sync with the mode of the active object. Will either be resolved by moving mode out of object data, or we'll disable workspace modes again (there's a `#define USE_WORKSPACE_MODE` for that). * Screen-layouts (`bScreen`) are IDs and thus stored in a main list-base. Had to add a wrapper `WorkSpaceLayout` so we can store them in a list-base within workspaces, too. On the long run we could completely replace `bScreen` by workspace structs. * `WorkSpace` types use some special compiler trickery to allow marking structs and struct members as private. BKE_workspace API should be used for accessing those. * Added scene operators `SCENE_OT_`. Was previously done through screen operators. == BPY API Changes * Removed `Screen.scene`, added `Window.scene` * Removed `UserPreferencesView.use_global_scene` * Added `Context.workspace`, `Window.workspace` and `BlendData.workspaces` * Added `bpy.types.WorkSpace` containing `screens`, `object_mode` and `render_layer` * Added Screen.layout_name for the layout name that'll be displayed in the UI (may differ from internal name) == What's left? * There are a few open design questions (T50521). We should find the needed answers and implement them. * Allow adding and removing individual workspaces from workspace configuration (needs UI design). * Get the override system ready and support overrides per workspace. * Support custom UI setups as part of workspaces (hidden panels, hidden buttons, customizable toolbars, etc). * Allow enabling add-ons per workspace. * Support custom workspace keymaps. * Remove special exception for workspaces in linking code (so they're always appended, never linked). Depends on a few things, so best to solve later. * Get the topbar done. * Workspaces need a proper icon, current one is just a placeholder :) Reviewed By: campbellbarton, mont29 Tags: #user_interface, #bf_blender_2.8 Maniphest Tasks: T50521 Differential Revision: https://developer.blender.org/D2451
2017-06-01Merge branch 'master' into blender2.8Sergey Sharybin
2017-06-01Depsgraph: Cleanup, line wraps after shortening APISergey Sharybin
2017-06-01Depsgraph: Remove operation types enumSergey Sharybin
Was only used to indicate entry/exit operation of component, which is now done explicitly. No reason to keep something which is unused and confusing.
2017-06-01Depsgraph: use explicit marking of component entry/exit operationsSergey Sharybin
This isn't used too often, and haivng such API will let us to skip specifying operation type for all oeprations.
2017-06-01Depsgraph: Cleanup, use DEG_NODE_CLASS prefix for node classesSergey Sharybin
2017-06-01Depsgraph: Cleanup, use DEG_NODE_TYPE prefix for depsgraph node typesSergey Sharybin
2017-06-01Depsgraph: Remove unused argument from time source querySergey Sharybin
2017-06-01Depsgraph: Remove subgraph nodesSergey Sharybin
Those were never finished nor used. Again, starting from clean state before we go into more complicated details.
2017-06-01Depsgraph: Remove dead codeSergey Sharybin
Was never used or worked on in ages, if any of this code is needed in the future it'll need to be redone anyway.
2017-06-01Depsgraph: Remove dead code from add_time_source()Sergey Sharybin
This was never finished or done or used, no reason to keep it. Better to simplify things before adding complexity of overrides and copy-on-write.
2017-06-01Depsgraph: Cleanup, get rid of relation typeSergey Sharybin
It was never actually used apart from being stored at a construciton time. This caused some redundancy and ncertanty about which relation type to use during construciton (often existing types were not close enough to particular use case).
2017-05-31Merge branch 'master' into blender2.8Sergey Sharybin
2017-05-31Task scheduler: Optimize subsequent pushing bunch of tasksSergey Sharybin
The idea is to accumulate all new tasks in a thread local queue first without doing any thread synchronization (aka, locks and conditional variables) and move those tasks to a scheduler queue once they are all ready. This way we avoid per-task-pool lock and only have one lock per bunch of tasks. This is particularly handy when scheduling new dependency graph node children. Brings FPS of cached simulation from the linked below file from ~30 to ~50. See documentation for BLI_task_pool_delayed_push_{begin, end} and for TaskThreadLocalStorage::do_delayed_push. Fixes T50027: Rigidbody playback and simulation performance regression with new depsgraph Thanks Bastien for the review!
2017-05-30Depsgraph: Fix missing relations for objects which are indirectly linkedSergey Sharybin
This is a corresponding part of 7dda3cf.
2017-05-30Depsgraph: Remove extra modifiers callback loopSergey Sharybin
Seems to be a copy-paste error from code above.
2017-05-30Depsgraph: Fix object being tagged for data update when it shouldn'tSergey Sharybin
2017-05-30Move GHash/GSet/LinkList iterators to BLI filesSergey Sharybin
Those are not depsgraph or C++ specific and can be used by everyone.
2017-05-30Depsgraph: Use own implementation of stack rather than the one from STLSergey Sharybin
This way we always have predictable behavior, especially from the performance point of view. Additionally, if some bottleneck is found in stack implementation it'll be easier for us to address.
2017-05-30Move hash_combine utility function to a more generic placeSergey Sharybin
This way everyone can benefit from it, not only dependency graph.
2017-05-26Depsgraph iterator: Add assert for bases not yet evaluatedDalai Felinto
2017-05-26Depsgraph: Rename DAG > DEG functions from depsgraph_query.ccDalai Felinto
2017-05-18Rename Iterator struct to BLI_IteratorDalai Felinto
2017-05-17Fix T49981: When camera is on inactive layer, it does not evaluate constraintsSergey Sharybin
Second round of fix, was broken by 843be91.
2017-05-11Merge branch 'master' into blender2.8Sergey Sharybin
2017-05-11Depsgraph: Fix/workaround crahs when fcu->rna_path is NULLSergey Sharybin
2017-05-10Merge branch 'master' into blender2.8Bastien Montagne
Conflicts: source/blender/makesrna/intern/rna_space.c
2017-05-10Fix missing relation in new DEG between World and its NodeTree.Bastien Montagne
Was preventing update in 3DView etc. when changing something in the World's NodeTree, especially annoying in blender2.8 branch (since legacy depsgraph has been removed there), but also affecting master.
2017-05-09Fix T51439: Object not updated when particle system settings change in 2.8Sergey Sharybin
A bit too early to disable workaround for particles. Guess it was commented out after particles removal but was not brought back after particles restore commit.
2017-05-02Merge branch 'master' into blender2.8Sergey Sharybin
2017-05-02Revert "Depsgraph: Link from material to object shading"Sergey Sharybin
The change was initially needed for Blender 2.8 branch but the actual function was reverted in there. So no reason to keep dead unused placeholder in the dependency graph. This reverts commit fd69ba225540cde5e4c1fa651fb02df21ea0a143.
2017-04-27Fix wrong scene assigned when using setsCampbell Barton
Depsgraph was left with wrong set-scene.
2017-04-26Depsgraph and selection: Flush selcol on DepsgraphDalai Felinto
Selection code needs to iterate over DEG_OBJECT_ITER otherwise we won't get modifiers, dupli objects, ... Also make selection respect selectability flag. Review by: Sergey Sharybin
2017-04-25Depsgraph: Store Scene in depsgraph structDalai Felinto
This way we can retrieve the scene from depsgraph that were not created from a G.main (e.g., when doing material thumbnail preview render).