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-22Corrent recent commit: off by one errorCampbell Barton
2014-09-22Correct MAX_LIBARRAY define, assert when its wrongCampbell Barton
2014-07-23Fix for mixup in startup.blend data init when userprefs.blend was missingCampbell Barton
Rename UI_init_userdef_factory to BLO_update_defaults_userpref_blend This closely matches BLO_update_defaults_startup_blend so makes sense for them to be together.
2014-07-21GSOC 2013 paintAntony Riakiotakis
Yep, at last it's here! There are a few minor issues remaining but development can go on in master after discussion at blender institute. For full list of features see: http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.72/Painting Thanks to Sergey and Campbell for the extensive review and to the countless artists that have given their input and reported issues during development.
2014-07-16Cleanup: Adhere to our naming convention for BKE_linestyle.h APICampbell Barton
2014-07-02Fix T40364: Texture images are not properly displayed in the material ↵Sergey Sharybin
preview in BI when using SSS Blender Internal only uses materials with non-zero user counter for SSS and new mutable libblock copy was keeping users counter at zero. Now it sets user counter to 1, which is a bit of arguable decision, but which also kind of makes sense -- meaning callee owns the copied block.
2014-06-26Forgot this in previous commitSergey Sharybin
2014-06-26Replace Main->lock with an anoynous structure pointerSergey Sharybin
This way it's not needed to include BLI_threads.h from the BKE_main.h which helps avoiding adding PThreads includes to each library which uses Main on Windows. From the API point of view it's now MainLock* and to lock or unlock the main you're to use BKE_main_(un)lock(). This solves compilation error on Windows with SCons.
2014-06-24Make main library safe(er) for the threaded usageSergey Sharybin
Added a lock to the Main which is getting acquired and released when modifying it's lists. Should not be any functional changes now, it just means Main is now considered safe without worrying about locks in the callee.
2014-05-09Fix T40108: Copying materials leaves a shared Action datablock in nestedLukas Tönne
bNodeTree blocks. This was broken by rB6e99fb0 (own commit). I expected the `do_action` argument to be of no importance in this case due to node trees using material animation, but this is not the case. Anyway, this patch adds back a do_action to the BKE_libblock_copy_nolib function as well to restore the previous behavior.
2014-05-03Patch D246: Texture Marks for freestyle strokes, written and contributed by ↵Tamito Kajiyama
Paolo Acampora. Reviewers: brecht, kjym3, #freestyle Reviewed By: brecht, kjym3 Differential Revision: https://developer.blender.org/D246
2014-04-30Code cleanup: remove unused includesCampbell Barton
Opted to keep includes if they are used indirectly (even if removing is possible).
2014-04-26Code cleanup: use 'const' for arrays (blenkernel)Campbell Barton
2014-04-22Code cleanup: replace int with boolean.Tamito Kajiyama
2014-04-20Fix error making datablock with fake user local, the user count would be ↵Brecht Van Lommel
wrong afterwards.
2014-03-21Fix T39209: Localizing materials could cause heisenbug with concurrentSergey Sharybin
depsgraph updates. Material datablocks were localized by first making a regular datablock copy, which always gets inserted into the bmain list, and then removing it again from bmain. Problem is that this localization happens in preview threads, which can run while the depsgraph is also updating GPU materials. In case the copying of materials takes any amount of time, this can cause the depsgraph call to material_changed to use an invalid, localized material and access invalid GPUMaterial lists which have already been freed for the actual material. Solution is to not add localized datablocks to the bmain lists in the first place. bmain should be totally immutable during preview or render threads.
2014-02-15Code cleanup: remove more string encoded menu functionsCampbell Barton
2014-01-16Code Cleanup: simplify matcaps checks and quiet warningCampbell 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-13Fix T38054: High CPU usage with many objectsSergey Sharybin
This is a regression since threaded dependency graph landed to master. Root of the issue goes to the loads of graph preparation being done even if there's nothing to be updated. The idea of this change is to use ID type recalc bits to determine whether there're objects to be updated. Generally speaking, we now check object and object data datablocks with DAG_id_type_tagged() and if there's no such IDs tagged we skip the whole task pool creation and so, The only difficult aspect was that in some circumstances it was possible that there are tagged objects but nothing in ID recalc bit fields. There were several different circumstances when it was possible: * When one assigns object->recalc flag directly DAG flush didn't set corresponding bits to ID recalc bits. Partially it is fixed by making it so flush will set bitfield, but also for object types there's no reason to assign recalc flag directly. Using generic DAG_id_type_tag works almost the same fast as direct assignment, ensures all the bitflags are set properly and for the long run it seems it's what we would actually want to. * DAG_on_visible_update() didn't set recalc bits at all. * Some areas were checking for object->recalc != 0, however it is was possible that object recalc flag contains PSYS_RECALC_CHILD which was never cleaned from there. No idea why would we need to assign such a flag when enabling scene simplification, this is to be investigated separately. * It is possible that scene_update_post and frame_update_post handlers will modify objects. The issue is that DAG_ids_clear_recalc is called just after callbacks, which leaves objects with recalc flags but no corresponding bit in ID recalc bitfield. This leads to some kind of regression when using ID type tag fields to check whether there objects to be updated internally comparing threaded DAG with legacy one. For now let's have a workaround which will preserve tag for ID_OB if there're objects with OB_RECALC_ALL bits. This keeps behavior unchanged comparing with 2.69 release.
2014-01-05Code cleanup: fix type in malloc id stringSergey Sharybin
2013-12-30Main API: refactor naming, use BKE_main_ prefix and add main arg.Campbell Barton
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-26Fix T37939: Crash on exit (reading from freed node trees)Campbell Barton
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-10-05rename presets not to use '+' character, also some typo fixes.Campbell Barton
2013-09-23Fix #36797 make linked node groups local does not work. Node tree library ↵Lukas Toenne
functions where missing the ntreeMakeLocal entry, was still marked as 'not implemented'.
2013-08-07remove assert in check_for_dupid() function for rare but valid renaming ↵Campbell Barton
situation.
2013-07-21code cleanup: add break statements in switch ()'s, (even at the last case).Campbell Barton
2013-07-04Revert revision 57896 to fix Make Local > All with multi user datablocks. It'sBrecht Van Lommel
causing problems with link/append, needs some deeper changes but it's too close to release for that.
2013-07-04Fix #36006: appending some datablock types (e.g. node groups) did not work, theyBrecht Van Lommel
were always linked after a recent bugfix.
2013-07-01Fix for Make Local -> All not working correct with multy-user datablocksSergey Sharybin
Make Local operator uses BKE_library_make_local function if all the datablocks needs to be made local. And this function was calling id_clear_lib_data for every datablock, which only clears library data. But this function doesn't work correct for datablocks which areshared by multiple users (this is also mentioned in comment for this function). This lead to situations when two datablocks shares the same runtime data leading to crashes later. For example making everythig local in scales cycles scene from durian ends up in a crash when toggling rig edit mode. Solved by using id_make_local instead of id_clear_lib_data, which will ensure all the data are nicely expanded and made local. Checked by Brecht, thanks fr the review!
2013-06-12Supplementary fix for #35640, internal node group trees (inside material, ↵Lukas Toenne
lamp, world, texture and scene) still keep their original library pointer when appending, making them uneditable. Clearing the lib pointer now has been moved inside the id_clear_lib_data function, with an ugly switch statement to handle integrated node trees.
2013-04-12code cleanup: warnings and style.Campbell Barton
2013-04-08fix for bug where notifiers could hold pointers to freed data which ↵Campbell Barton
listeners would operate on.
2013-04-06Fix for a heap-use-after-free issue, reported by Lockal in the IRC.Tamito Kajiyama
2013-04-04svn merge ^/trunk/blender -r55700:55776Campbell Barton
2013-04-04code cleanup: use bools in UI and WM code, quiet some shadow warnings, ↵Campbell Barton
remove unused function uiEmboss()
2013-04-03code cleanup: unused functionsCampbell Barton
2013-03-26Merging r55547 through r55594 from trunk into soc-2008-mxcurioniSergey Sharybin
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-23A major code update for making the DNA file specification of Freestyle settingsTamito Kajiyama
and RNA for it independent of the build flag for enabling Freestyle. Suggested by Sergey Sharybin through a code review of the branch. * Many #ifdef WITH_FREESTYLE blocks were removed to always have Freestyle-specific DNA file specification and RNA for it built in Blender. This will allow Freestyle setting survive even when a non-Freestyle build is used for loading and saving files. It is noted that operations are still conditionally built through #ifdef WITH_FREESTYLE blocks. * To this end, new blenkernel files BKE_freestyle.h and intern/freestyle.c have been added. All API functions in FRS_freestyle_config.h as well as some of those in FRS_freestyle.h were moved to the new files. Now the relocated API functions have BKE_ prefix instead of FRS_.
2013-03-18Merged changes in the trunk up to revision 55357.Tamito Kajiyama
Resolved conflicts: release/datafiles/startup.blend source/blender/editors/space_nla/nla_buttons.c Also updated source/blender/blenkernel/intern/linestyle.c as a follow-up of recent changes for the use of bool.
2013-03-10code cleanup:Campbell Barton
- remove unused block from before blender was opensourced (BKE_library_make_local) noticed by Lawrence D'Oliveiro (ldo) - remove text_idbutton() unused function. - test_idbutton(name) was taking (name + 2), then checking 2 bytes before the pointer, this is error prone so better just take the name including the ID prefix.
2013-03-10patch [#34103] check_for_dupid2.patchCampbell Barton
from Lawrence D'Oliveiro (ldo) check_for_dupid comments: - correct comment about in_use array - note name-truncation code will never be executed --- Added asserts to ensure comments are correct - ideasman42.
2013-03-10patch [#34103] check_for_dupid.patchCampbell Barton
from Lawrence D'Oliveiro (ldo) - more comments - more uses of bool type - define symbol for length of in_use array in check_for_dupid
2013-02-10Merged changes in the trunk up to revision 54421.Tamito Kajiyama
Conflicts resolved: release/datafiles/startup.blend release/scripts/startup/bl_ui/properties_render.py source/blender/SConscript source/blender/blenloader/intern/readfile.c
2013-02-08Fix #33747: do better backwards compatibility for image transparency changes.Brecht Van Lommel
The use alpha option moved from the texture datablock to the image, and now it will duplicate the image datablock in case you have one texture using alpha and the other not.
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!
2013-01-27Merged changes in the trunk up to revision 54110.Tamito Kajiyama
Conflicts resolved: source/blender/blenfont/SConscript source/blender/blenkernel/intern/subsurf_ccg.c source/blender/makesdna/intern/makesdna.c source/blender/makesrna/intern/rna_scene.c