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-09-01Support more object types scene-scale (on creation)Campbell Barton
- lamp - camera - font - empty & effector Also fix inconsistency with apply transform (modified shape-keys for meshes but not curve/lattice)
2014-07-19MBall cleanup: remove unused F_ERROR references, als fix/enhance ↵Bastien Montagne
BKE_mball_basis_find() BKE_mball_basis_find() was making a bunch of string manipulations for all MBall objects (including duplis), and then making a (broken!) check to do nothing in case of duplis mball! Now it makes correct check in early stage.
2014-07-07Fix T40712: Duplicators don't generate orco and UV coordinates in Cycles ↵Lukas Tönne
viewport preview. Fix T39286: Display percentage ignored in Cycles viewport. The threaded depsgraph update changes included a cleanup of the global is_rendering flag, which was replaced by a general EvalContext being passed to dupli functions. Problem is that the global flag was true for viewport duplis before (ugly hack), which was used as a check for generating dupli orco/UV from mesh data layers. The new flag is stricter and only true for actual renders, which disables these attributes and breaks the Cycles Texture Coordinates and UVMap nodes. The solution is to extend the simple for_render boolean to an enum: * VIEWPORT: OpenGL viewport drawing (dupli tex coords omitted) * PREVIEW: Viewport preview render (simplified modifiers) * RENDER: Full render with all details and attributes There are still some areas that need to be examined, in particular modifiers seem to totally ignore the EvaluationContext! Instead they generally execute without render params from the depsgraph (BKE_object_handle_update_ex) and are built with render settings explicitly. Differential Revision: https://developer.blender.org/D613
2014-06-15Curve: replace calloc with malloc for values immediately written intoCampbell Barton
2014-04-11Code cleanup: use boolCampbell Barton
2014-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-03-26Code cleanup: style and warningsCampbell 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-02-01Code cleanup: use length squared where possibleCampbell Barton
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-10Fix T38149: crash adding metaball with zero radius.Brecht Van Lommel
This incorrectly use abs(), that's for integers, not floats.
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-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-10-19Move utility functions from mball to mathutilsSergey Sharybin
2013-08-19Merge remained parts of r57520: use use_render argument rather than ↵Sergey Sharybin
G.is_rendering
2013-08-19Remove unused bounding box from MetaBallSergey Sharybin
-- svn merge -r58150:58151 ^/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-07-13fix errors in codeCampbell Barton
- BKE_mball_center_median(), didn't work. - clip_refresh was removing handlers from wrong space. - new_modifier, replace strcpy with BLI_strncpy
2013-07-10Fix #36076: Metaballs as particles with particle texture (size influence) ↵Sergey Sharybin
crashes Blender Issue was caused by size influence affecting on object's matrix, which is nice by it's own. But mball code was using ob->size to check whether it's zero-sized object or not, but then was using ob->obmat to scale the meta elements. This lead to situation when zero-sized elements were trying to tessellate, which is for sure a really bad idea.
2013-07-09Fixed more threading issues with metaballsSergey Sharybin
This time issue was caused by static variables used in BKE_scene_base_iter_next function. Change is not so much ultimate actually, but didn't find more clear solution for now. So the changes are: - Wrap almost all the static variables into own context- like structure, which is owned by the callee function and getting passed to the iteration function. - Recursion detection wasn't possible with such approach, so recursion detection still uses static in_next_object variable, but which is now stored in thread local storage (TLS, or thread variable if this names are more clear for you). This makes code thread-safe, but for sure final solution shall be completely different. Ideally, dependency graph shall be possible to answer on question "which object is a motherball for this metaball". This will avoid iterating via all the bases, objects and duplis just to get needed motherball. Further, metaball evaluation ideally will use the same kind of depsgraph filtering, which will get result for question like "which objects belongs to this group of metaballs". But this ideal things are to be solved in Joshua's and mind GSoC projects. Tested on linux (gcc and clang) and windows (msvc2008), hopefully no compilation error will happen. Thanks to Brecht for reviewing the change and getting feedback for other possible ways we've dicussed!
2013-06-28view-selected didnt work for metaballs in object mode (radius from previous ↵Campbell Barton
commit was 2x too large too).
2013-06-25style cleanupCampbell Barton
2013-06-25Fix #35767: transforming nodes in the node editor changed the wireframe colorBrecht Van Lommel
of the active object in the 3D view. This was due to sharing a global G.moving flag to indicate that transform is active, now it's only set per transform data type so different editors don't influence each other.
2013-06-17Remove static variables from mball moduleSergey Sharybin
Moved all the static variables into a PROCESS structure which is now passing all over to where static variables used to be used. There's still one static variable which is cubetable, but it's being initialized once and then used read-only. Maybe we'll need to move cubetable initialization to blender startup, but that could wait a bit for now. For users it means BI rendered viewport wouldn't crash when using metaballs. -- svn merge -r57515:57516 ^/branches/soc-2013-depsgraph_mt
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-04-07Fix for [#34898] Typo in error message of mathutils.VectorThomas Dinges
* Also fixed some more cases of "more then" -> "more than".
2013-04-04code cleanup: use bools, (float)sin/(float)cos -> sinf/cosf, more meaningful ↵Campbell Barton
var names.
2013-03-17code cleanup: incorrect sized array args, remove some redundant code.Campbell Barton
2013-03-09use 'bool' for BLI_/BKE_ functions.Campbell Barton
2013-03-09code cleanup: favor braces when blocks have mixed brace use.Campbell Barton
2013-02-11error in own recent commitCampbell Barton
2013-02-11fix [#34200] Metaball Tessellate errorCampbell Barton
2013-02-05Fix #34040: Moving Normal Node with enabled Cycles Material Preview crashesSergey Sharybin
Issue was caused by couple of circumstances: - Normal Map node requires tesselated faces to compute tangent space - All temporary meshes needed for Cycles export were adding to G.main - Undo pushes would temporary set meshes tessfaces to NULL - Moving node will cause undo push and tree re-evaluate fr preview All this leads to threading conflict between preview render and undo system. Solved it in way that all temporary meshes are adding to that exact Main which was passed to Cycles via BlendData. This required couple of mechanic changes like adding extra parameter to *_add() functions and adding some *_ex() functions to make it possible RNA adds objects to Main passed to new() RNA function. This was tricky to pass Main to RNA function and IMO that's not so nice to pass main to function, so ended up with such decision: - Object.to_mesh() will add temp mesh to G.main - Added Main.meshes.new_from_object() which does the same as to_mesh, but adds temporary mesh to specified Main. So now all temporary meshes needed for preview render would be added to preview_main which does not conflict with undo pushes. Viewport render shall not be an issue because object sync happens from main thread in this case. It could be some issues with final render, but that's not so much likely to happen, so shall be fine. Thanks to Brecht for review!
2012-12-21replace MIN/MAX 3,4 with inline functionsCampbell Barton
2012-12-15move pbvh into BKE, it used many BKE bad level includes.Campbell Barton
now blenlib/BLI doesn't depend on any blenkern/BKE functions, there are still some bad level includes but these are only to access G.background and the blender version define.
2012-12-15move bpath module from BLI to BKE, it was making many bad level calls into BKE.Campbell Barton
2012-11-03code cleanup: float <> double conversion.Campbell Barton
2012-11-01fix for possible buffer overflow in gpu_nodes_get_vertex_attributes() and ↵Campbell Barton
hair_velocity_smoothing() and a unlikely NULL pointer dereference in unlink_material_cb().
2012-10-06toggle cut through in the knife tool now refreshes (before you had to wave ↵Campbell Barton
the mouse about to see the result). also remove print from last commit.
2012-10-06add mball_foreachScreenElem() and use for lasso & circle selection, also ↵Campbell Barton
utility metaball functions to (de)select all.
2012-09-18fix own error in r49994Campbell Barton
2012-09-16style cleanupCampbell Barton
2012-09-06support ANIMFILTER_FOREDIT for mask layers, also move deprecated metaball ↵Campbell Barton
types to the end of the switch statement when evaluating metaballs.
2012-09-04fix for building on msvc2008 (also style cleanup)Campbell Barton
2012-08-29code cleanup: move static mball vars into their own struct, wasnt very clear ↵Campbell Barton
from reading code what was defined in the function.
2012-08-28code cleanup: use switch for metaball type checks and minor style cleanupCampbell Barton
2012-08-18code cleanup: use BLI math funcs for metaballs, also remove MB_POINT struct ↵Campbell Barton
and just use float[3] instead.
2012-08-08code cleanup: rename G.afbreek --> is_break, G.rendering --> is_renderingCampbell Barton
2012-07-17code cleanup: spellingCampbell Barton