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
2014-02-07ListBase API: add utility api funcs for clearing and checking emptyCampbell Barton
2014-02-05Fix T35328: Disk caches of multiple particle systems on a single object ↵Sergey Sharybin
overwrite each other It was intended to work actually using particle cache's stack index but this index might have been calculated incorrect in special case: * With default cube scene, add particle system to the cube * Add disk cache to the particle system * Save file and reload it * Add another particle system and enable disk cache This would lead to two point caches with the same stack index of zero. This happened because point cache indices list wasn't stored in the .blend file so once you've reload your file blender doesn't know anything about number or point caches used. And what was even more confusing is that point cache indices list was trying to be load from the file, but this failed because it wasn't in the file. This commit solves the root of the issue which is ability of producing .blend file with two point caches using the same disk cache. This is done by making it sure that point cache indices list is stored in the .blend file. And also made it so disabling disk cache will tag it to recalculate stack index. Old broken files wouldn't magically start working, but fixing them is rather simple manually by toggling Disk Cache option. Reviewers: lukastoenne, brecht CC: sergof Differential Revision: https://developer.blender.org/D286
2014-02-05Fix T38476: incorrect hair draw type after editing particle system in edit mode.Brecht Van Lommel
2014-02-05Code cleanup: use bool for static methodsCampbell Barton
2014-02-03Fix T38450: Remove unused Children Offset optionSergey Sharybin
This option was only exposed to the interface and internally was doing basically nothing. Removing it to prevent artists from being confused.
2014-02-03Code cleanup: use bools where possibleCampbell Barton
2014-02-03Code cleanup: white space and cmake was broken on all platformsCampbell Barton
2014-02-02Code cleanup: suffix vars to make obvious they are squaredCampbell Barton
2014-01-30More snapping fixes (this is ridiculous).Bastien Montagne
I hope this time we are done!
2014-01-30Fix T38409: Snapping BugBastien Montagne
Issue partially caused by own errors (glicth in new BKE_boundbox_ray_hit_check() code causing segfault in volume snapping, and we have to treat ortho and persp differently in case of face snapping, because in persp our ray_start might very well already be *inside* the boundbox of the checked object), and partly due to the fact that ED_view3d_win_to_vector() was returning wrong vector (negated one) for ortho views (see previous commit).
2014-01-29Fix T38358: Face snapping fails on Orthographic viewBastien Montagne
Issue is caused by start point of ray used to detect faces under the mouse is set rather far away in ortho 3dviews. The loss of precision on the ray location induced by this can lead to face snapping failures. Solution is to do the raycasting with a temp start point, much closer to the object we check, and add back to the found distance the diff to the real start point once detection is done (as we need all hit distances from all tested objects to be relative to a common point!). Note this commit only addresses the "face snapping on mesh" case, other kind of snapping do not seem to suffer from this issue. Reviewers: brecht, campbellbarton Differential Revision: https://developer.blender.org/D268
2014-01-29Move depsgraph debug print under --debug-depsgraph command line argumentSergey Sharybin
2014-01-21Code Cleanup: use bool for return values and correct commentsCampbell Barton
also remove CDDM_Check, theres no need for it.
2014-01-15Potential fix for T38111: Duplicating BOIDS emitter cause glitchy operationSergey Sharybin
Need to reset cached KD tree when duplicating particle system.
2014-01-15Python/Depsgraph: bpy.data.*.is_updated now detects add/remove of any datablock.Tom Edwards
Previously this only worked for some datablocks relevant to rendering, now it can be used to detect if any type of datablock was added or removed (but not yet to detect if it was modified, we need many more depsgraph tags for that). Most of the changes are some function parameter changes, the important parts are the DAG_id_type_tag calls. Reviewed By: sergey, brecht Differential Revision: https://developer.blender.org/D195
2014-01-14Empties with Images draw type: add support for movies and image sequencesGeoffroy Krantz
This adds an ImageUser to such empties with all the typical settings. Reviewed By: brecht, campbellbarton Differential Revision: https://developer.blender.org/D108
2014-01-09Fix T38000: vertex parent crash due to threading issuesSergey Sharybin
Issue is causes by vertex parent modifies original BMesh from a multiple threads. Ideally this is to be done as a separate update callback for mesh datablock, but it's not so much simple now (would need to do some re-arranges to DAG which might conflict with the work from Ali or will double amount of work we did). So for now use simple solution with mutex lock. Based on the patch from Campbell Barton with some fixes to make changes really thread-safe. Differential Revision: https://developer.blender.org/D168
2014-01-09Fix T38016: setting Object.matrix_world does not take bone parents into account.Brecht Van Lommel
2014-01-09Code cleanup: remove BKE_object_where_is_calc_simul function.Brecht Van Lommel
It doesn't make any sense anymore with the current depsgraph and probably was not useful for a long time, just a leftover from the pre 2.04 game engine.
2013-12-26Threaded object update and EvaluationContextSergey Sharybin
Summary: Made objects update happening from multiple threads. It is a task-based scheduling system which uses current dependency graph for spawning new tasks. This means threading happens on object level, but the system is flexible enough for higher granularity. Technical details: - Uses task scheduler which was recently committed to trunk (that one which Brecht ported from Cycles). - Added two utility functions to dependency graph: * DAG_threaded_update_begin, which is called to initialize threaded objects update. It will also schedule root DAG node to the queue, hence starting evaluation process. Initialization will calculate how much parents are to be evaluation before current DAG node can be scheduled. This value is used by task threads for faster detecting which nodes might be scheduled. * DAG_threaded_update_handle_node_updated which is called from task thread function when node was fully handled. This function decreases num_pending_parents of node children and schedules children with zero valency. As it might have become clear, task thread receives DAG nodes and decides which callback to call for it. Currently only BKE_object_handle_update is called for object nodes. In the future it'll call node->callback() from Ali's new DAG. - This required adding some workarounds to the render pipeline. Mainly to stop using get_object_dm() from modifiers' apply callback. Such a call was only a workaround for dependency graph glitch when rendering scene with, say, boolean modifiers before displaying this scene. Such change moves workaround from one place to another, so overall hackentropy remains the same. - Added paradigm of EvaluaitonContext. Currently it's more like just a more reliable replacement for G.is_rendering which fails in some circumstances. Future idea of this context is to also store all the local data needed for objects evaluation such as local time, Copy-on-Write data and so. There're two types of EvaluationContext: * Context used for viewport updated and owned by Main. In the future this context might be easily moved to Window or Screen to allo per-window/per-screen local time. * Context used by render engines to evaluate objects for render purposes. Render engine is an owner of this context. This context is passed to all object update routines. Reviewers: brecht, campbellbarton Reviewed By: brecht CC: lukastoenne Differential Revision: https://developer.blender.org/D94
2013-12-25Fix T37709: Memory corruption when freeing custom bone shape objectsSergey Sharybin
Summary: Issue was caused by access to pchan->custom object from channel free function when freeing all objects from main. Order of objects free is not defined and such an access might easily end up with access to freed memory. We don't need to do user counter stuff when freeing main, so added an _ex functions with do_id_user flag which is used when freeing main. We had the same issue with other datablocks, so now it should be easier to support relevant user counter. This issue was caused by the fix for T36391, so perhaps that's indeed high time to do real user counter. Reviewers: brecht, campbellbarton Reviewed By: campbellbarton Maniphest Tasks: T37709 Differential Revision: https://developer.blender.org/D137
2013-12-20Code Cleanup: styleCampbell Barton
2013-12-18Style CleanupCampbell Barton
2013-12-18Game Engine: Level of detail support and toolsDaniel Stokes
Levels of detail can be added and modified in the object panel. The object panel also contains new tools for generating levels of detail, setting up levels of detail based on object names (useful for importing), and clearing an object's level of detail settings. This is meant as a game engine feature, though the level of details settings can be previewed in the viewport. Reviewed By: moguri, nexyon, brecht Differential Revision: http://developer.blender.org/D109
2013-12-11Move curve's boundbox and texspace calculation out of modifier stackSergey Sharybin
There were several issues with how bounding box and texture space are calculated: - This was done at the same time as applying modifiers, meaning if several objects are sharing the same curve datablock, bounding box and texture space will be calculated multiple times. Further, allocating bounding box wasn't safe for threading. - Bounding box and texture space were evaluated after pre-tessellation modifiers are applied. This means Curve-level data is actually depends on object data, and it's really bad because different objects could have different modifiers and this leads to conflicts (curve's data depends on object evaluation order) and doesn't behave in a predictable way. This commit moves bounding box and texture space evaluation from modifier stack to own utility functions, just like it's was done for meshes. This makes curve objects update thread-safe, but gives some limitations as well. Namely, with such approach it's not so clear how to preserve the same behavior of texture space: before this change texture space and bounding box would match beveled curve as accurate as possible. Old behavior was nice for quick texturing -- in most cases you didn't need to modify texture space at all. But texture space was depending on render/preview settings which could easily lead to situations, when final result would be far different from preview one. Now we're using CV points coordinates and their radius to approximate the bounding box. This doesn't give the same exact texture space, but it helps a lot keeping texture space in a nice predictable way. We could make approximation smarter in the future, but fir now added operator to match texture space to fully tessellated curve called "Match Texture Space". Review link: https://codereview.appspot.com/15410043/ Brief description: http://wiki.blender.org/index.php/User:Nazg-gul/GSoC-2013/Results#Curve_Texture_Space
2013-12-09Code Cleanup: use ELEM macro when checking object typeCampbell Barton
2013-11-25Code Cleanup: rename vars for detecting change to be more consistentCampbell Barton
rename change/is_change/is_changed/modified -> changed also use bools over int/short/char and once accidental float.
2013-11-01Fix [#37266] Skin modifier can't be copied.Bastien Montagne
Patch by Martin Felke, many thanks. When copying that modifier across objects, we also have to ensure that a skin CDLayer is present in dest objects (just as when adding it).
2013-10-22Making real need to remove proxiesSergey Sharybin
Otherwise some invalid pointers will be left which could be harmless if real object stays local, but crashes when linking them to another files. Was discovered here in the studio during Project Pampa, and the steps to reproduce are: - Create lib.blend, put armature and cube to it. Create a group with them. - Create scene.blend and link group from lib.blend. - Make a proxy from armature. - Make group real. - Add real objects to a group. - Create comp.blend and link group from scene.blend. This step will creah.
2013-10-17Missing ParticleSystem->parent pointer check in BKE_object_unlink.Lukas Toenne
2013-10-16edits to r60777 - move ED_object_hook_reset_do into BKE object (if RNA needs ↵Campbell Barton
to call ED_* functions its a hint they might be better in BKE).
2013-09-30more fixes relating to [#36878], freestyle was only checking for NULL ↵Campbell Barton
linestyles in some places.
2013-09-24Fix #36793: missing update on undo with proxy object that is not using a ↵Brecht Van Lommel
proxy group.
2013-09-12code cleanup: unnecessary shadowing and some minor pep8 edits.Campbell Barton
2013-09-09Enable vertex snapping to bundle positionsSergey Sharybin
This means it's possible now to snap stuff to reconstructed tracks positions.
2013-09-02fix odd (intentional) behavior with vertex parent,Campbell Barton
curve children of a triangle vertex parent would only display their relationship line to the first vertex. (confusing) also added OB_TYPE_SUPPORT_PARVERT macro.
2013-09-02support for vertex parenting in object mode for object types which support ↵Campbell Barton
it (mesh, lattice, curve, surface) previously this had to be done one by one. both single and triagle vertex parents can be made, selected based on distance to the verts. Developer notes: - looks like this was old TODO, enums existed but weren't used. - only meshes currently support using. - added BKE_object_as_kdtree(), may come in handy for similar cases.
2013-08-27ghash/bli-listbase edits, rename BLI_ghash_pop -> BLI_ghash_popkey (since it ↵Campbell Barton
takes a key as an arg and isnt popping any element from the hash as you might expect). add BLI_pophead/tail, since getting the first element from a list and removing it is a common task.
2013-08-21Partial revert of recenr cu->disp merge commitSergey Sharybin
That ended up in tricky code trying to mimic depsgraph branch behavior API-wise preserving texspace and bound box calculation compatible with previous releases. So for now bring cu->disp back to the trunk but keep texpsace and boundbox APIs the same as in the branch. This keeps texpsapce and boundbox behavior fully compatible with previous releases and still makes API the same as for meshes.
2013-08-19Tag object-data level boundbox as invalid rather than freeing itSergey Sharybin
Object update used to free object-data level bounding box to trigger it's re-calculation in the future. Such a freeing performed from object update isn't thread-safe because mesh could be shared between multiple objects. Rather than freeing bounding box, tag it's as invalid, this is safe from threading point of view and also prevents unnecessary memory re-allocation. Object-level bounding box is still reallocating, but think we could change this easily in the future as well. -- svn merge -r58154:58156 -r59258:59259 ^/branches/soc-2013-depsgraph_mt
2013-08-19Move bevel list and path from Curve to Object datablockSergey Sharybin
I know this is not so much nice to have this guys hanging around in a general Object datablock and ideally they better be wrapped around into a structure like DerivedMesh or something like this. But this is pure runtime only stuff and we could re-wrap them around later. Main purpose of this is making curves more thread safe, so no separate threads will ever start freeing the same path or the same bevel list. It also makes sense because path and bevel shall include deformation coming from modifiers which are applying on pre-tesselation point and different objects could have different set of modifiers. This used to be really confusing in the past and now data which depends on object is stored in an object, making things clear for understanding even. This doesn't make curve code fully thread-safe due to pre-tesselation modifiers still modifies actual nurbs and lock is still needed in makeDispListsCurveTypes, but this change makes usage of paths safe for threading. Once modifiers will stop modifying actual nurbs, curves will be fully safe for threading. Actually, this commit also contains wrapping runtime curve members into own structure This allows easier assignment on file loading, keeps curve- specific runtime data grouped and saves couple of bytes in Object for non-curve types. -- svn merge -r57938:57939 ^/branches/soc-2013-depsgraph_mt svn merge -r57957:57958^/branches/soc-2013-depsgraph_mt
2013-08-19Made modifiers_getVirtualModifierList safe for threadingSergey Sharybin
Move static variables to context filling in by this fcuntion and owned by a callee function. This ensures no conflicts between threads happens because of static variables used in this function. Also moved modifier types and virtual modifiers data to a function called from creator. This is needed to be sure all the information is properly initialied to the time when threads starts to use this data. -- svn merge -r57899:57900 ^/branches/soc-2013-depsgraph_mt
2013-08-13change VIEW3D_OT_camera_to_view_selected poll function so it can be called ↵Campbell Barton
from a script (without a view3d).
2013-08-06replace mul_serie_m4 with mul_m4_m4m4 when only 3 args are givenCampbell Barton
2013-08-03fix for [#36260] 2,300 Objects Makes Blender UnresponsiveSv. Lockal
- performance of outliner was low because of unoptimal data structures. - now it uses BLI_mempool instead of custom mempool and GHash to make searches for duplicates faster. - also fix undesired behaviour of BLI_mempool_as_arrayN thanks to Campbell Barton and Lukas Tönne for helping me get a better fix put together.
2013-07-26fix [#36270] Crash with pinningCampbell Barton
2013-07-21code cleanup: add break statements in switch ()'s, (even at the last case).Campbell Barton
2013-07-19style cleanup: switch statements, include break statements within braces & ↵Campbell Barton
indent. also indent case's within the switch (we already did both of these almost everywhere)
2013-07-19code cleanup: inconsistent 'break' placement in BKE_object_minmaxCampbell Barton
2013-07-12Moved code for calculating local_matrix to BKE funtion for reuseGaia Clary