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-27Fix T38864: Crash with curves and follow pathCampbell Barton
2014-02-24Fix T38755: Crash when having cyclic dependency and curve deformSergey Sharybin
Issue was caused by undefined object update order and in some cases NULL pointer will be de-referenced. Added on-demand curve path calculation, just the same creepy call of BKE_displist_make_curveTypes(). This violates DAG and might end up in a difficult to troubleshoot race condition if there'll be some issues with how dependencies are calculated in DAG, but this is the easiest and safest way to solve the bug at this stage,
2014-02-14Code cleanup: duplicate headersCampbell Barton
2014-02-07ListBase API: add utility api funcs for clearing and checking emptyCampbell Barton
2014-02-02Code cleanup: suffix vars to make obvious they are squaredCampbell Barton
2014-01-23Cleanup: int/short to bool in BKE_cdderivedmesh.h functions (and TRUE/FALSE ↵Bastien Montagne
to true/false in code using them).
2014-01-13Remove direct displist creation from constraintsSergey Sharybin
Since recent DAG commit for set scenes in DAG_on_visible_update() it seems there're no longer issues with missing curve_cache after file load.
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-11-18Fix spelling error in commentJoshua Leung
2013-11-10replace IS_EQ -> IS_EQF for use with floats.Campbell Barton
2013-09-07shrink-wrap constraint, improve and remove some limitations.Campbell Barton
- ability to change the space the axis is projected in (so you can choose worldspace or -space, was always local-space before). - support projecting on a negative axis, without this some very simple clamping is not possible if the direction happened not to be positive. - add distance limit (same as modifier), without this single meshes surrounding an object would make the constraint impossible to use in some cases (it would snap to the wrong side). note: this removes the ability to project on multiple axes at once but this option only added up directions and didnt project on multiple axes as you might expect.
2013-09-03remove WINDOWS checks in cmake, this variable isn't defined on windows and ↵Campbell Barton
checks weren't needed. also remove redundant dot_v3v3 in shrinkwrap constraint.
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-06replace mul_serie_m4 with mul_m4_m4m4 when only 3 args are givenCampbell Barton
2013-08-04code cleanup: replace strcpy with BLI_strncpy for fixed size strings, and ↵Campbell Barton
correct some harmless but incorrect sizeof() use
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-13fix for bad NULL check in bmo_connect_pair, also remove duplicate checks in ↵Campbell Barton
if statements and redundant initialization vars.
2013-06-09jpbouza Feature Request: Transformation Constraint now allows applies rotationJoshua Leung
offsets too (like for location) This is useful in some cases when Copy Rotation constraints would otherwise be used for this purpose but cannot be used for various reasons. Basically, this works in practically the same way that the Copy Rotation offsets work, including the same weirdness that you'll get when trying to manually rotate these in the 3D viewport using "global" space manipulations ("local/normal" spaces though still seem to work really nicely). WARNING: this may potentially break old files with transform constraint setups involving rotation outputs. Please check whether this causes any problems on old files, and report back if there are any issues.
2013-05-26BLI_math rename functions:Campbell Barton
- mult_m4_m4m4 -> mul_m4_m4m4 - mult_m3_m3m4 -> mul_m3_m3m4 these temporary names were used to avoid problems when argument order was switched.
2013-05-26code cleanup: typosCampbell Barton
2013-05-14Fix #35347: constraints with vertex group targets were not using the vertex ↵Brecht Van Lommel
group weights, it assumed all weights were 1. This gave very different results with the new bevel modifier due to slightly different vertex group interpolation.
2013-04-16code cleanup: use BKE naming conventions for functions in BKE_editmesh.h and ↵Campbell Barton
BKE_editmesh_bvh.h
2013-04-14code cleanup: rename BKE_tessmesh -> BKE_editmesh, rename ↵Campbell Barton
EditDerivedBMesh.tc -> em. ('tc' is odd name which isn't used elsewhere).
2013-04-04code cleanup: use bools, (float)sin/(float)cos -> sinf/cosf, more meaningful ↵Campbell Barton
var names.
2013-03-25More new data names translation (most cases should be covered now).Bastien Montagne
Also done a few cleanup here and there...
2013-03-20I18n users request: add the ability to use a translated name for newly ↵Bastien Montagne
added/created objects or other datablocks. This simply adds a third "translation type" (in addition to iface and tip), "new data", with relevant user settings flag and helper funcs/macros (and py api). Currently implemented name translation when adding new objects, as well as modifiers and constraints, will add the others (cd layers, scenes, perhaps nodes [though I think they do not need this], etc.) later.
2013-03-11Fix more UI i18n issues (reported by Leon Cheung and Lockal).Bastien Montagne
We have a glicth with colormanagement's spaces descriptions, though, looks like they are clamped at 64 chars (see raw space), will see that later, if it’s solvable.
2013-02-21Dependency Graph: some refactoring which should have no user visible impactBrecht Van Lommel
besides performance in some cases. * DAG_scene_sort is now removed and replaced by DAG_relations_tag_update in most cases. This will clear the dependency graph, and only rebuild it right before it's needed again when the scene is re-evaluated. This is done because DAG_scene_sort is slow when called many times from python operators. Further the scene argument is not needed because most operations can potentially affect more than the current scene. * DAG_scene_relations_update will now rebuild the dependency graph if it's not there yet, and DAG_scene_relations_rebuild will force a rebuild for the rare cases that need it. * Remove various places where ob->recalc was set manually. This should go through DAG_id_tag_update() in nearly all cases instead since this is now a fast operation. Also removed DAG_ids_flush_update that goes along with such manual tagging of ob->recalc.
2013-01-02Replacing/cleaning up some gibberish...Joshua Leung
2012-12-23Code cleanup: add usual 'BKE_' prefix to 'public' constraint functions from ↵Bastien Montagne
blenkernel...
2012-12-11define the size of matrix args for both rows/cols.Campbell Barton
2012-12-04cmake was missing some header files.Campbell Barton
2012-10-27Comment + whitespace tweaks for constraintsJoshua Leung
* Radiant -> Radians * Noted down revision number for when Jahka removed the old constraint blending logic. I spent some time hunting this down while trying to check if it might've caused any obvious changes leading to one of the (now closed) bugreports. Better to note this in the code then.
2012-10-25Cleanup: remove old, commented code for constraints' space conversion for bones.Bastien Montagne
2012-10-24add CDDM_from_bmesh(), avoids using BMEditMesh in modifiers.Campbell Barton
2012-10-23rename api functions...Campbell Barton
- minf, maxf, mini, maxi --> min_ff, max_ff, min_ii, max_ii
2012-10-21style cleanup: trailing tabs & expand some non prefix tabs into spaces.Campbell Barton
2012-09-19Small fix for Follow Track constraintSergey Sharybin
Use object_get_derived_final() function instead of accessing to object's derived final directly. The same happens for shrinkwrap constraint and it should deal better in cases when depth object is in edit mode. In other cases should be no functional changes.
2012-09-16Few cleanup in matrix mathutils (make mul_m3_m3m4 and mul_m4_m3m4 consistant ↵Bastien Montagne
with other similar funcs, mainly copy-safe [i.e. you can use the same matrix as operand and result, saves lines in some already over-complicated code!]).
2012-09-10code cleanup: use BMEdit_FromObject() rather then me->edit_btmesh in more ↵Campbell Barton
places.
2012-09-09style cleanup:Campbell Barton
also remove some redundant conversions int -> short -> int
2012-09-04code cleanup: move file string defines into BLI_path_utils.h, ↵Campbell Barton
BKE_utildefines is now unused but keep incase we want to add defines there later.
2012-08-18fix [#32353] 'Focus'(center) applied on a rig should only take visible bones ↵Campbell Barton
into account
2012-08-09Frame matching methods for follow track constraintSergey Sharybin
This is needed in cases when using blender camera with different resolution than original footage. Behaves in the same way as background picture framing.
2012-08-09code cleanup: ensure macros require ';' endingsCampbell Barton
2012-07-29code cleanup: replace MIN2/MAX2 with minf/maxfCampbell Barton
2012-07-08style cleanupCampbell Barton
2012-07-07style cleanup: use c style comments in C codeCampbell Barton
2012-06-15Internal refactoring of tracking module, should be no functional changesSergey Sharybin
- Re-arrange functions in headers and implementation file to make them more grouped by entity they're operating with. Also order of functions in implementation file should match order of functions in header for easier navigation. - Rename some functions to match conventions of naming public functions. - Some code de-duplication, still some room for improvements tho. - Split main 2D tracking functions into smaller steps to make it more clear. Accidentally OpenMP was disabled in some of previous commits, re-enable it.
2012-06-12Naming + Style tweaks for newly added flag for Action ConstraintJoshua Leung
Old names used could conflict with other things too easily in future