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-04-17Fix T51150: user_remap on itself changes users to 0.Bastien Montagne
Remapping to itself is nonsense here (was triggering an assert in BKE_library code actually), just make it a bail out early in RNA callback in that case.
2017-04-13Datablock ID PropertiesAlexander Romanov
The absence of datablock properties "will certainly be resolved soon as the need for them is becoming obvious" said the [[http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.67/Python_Nodes|Python Nodes release notes]]. So this patch allows Python scripts to create ID Properties which reference datablocks. This functionality is implemented for `PointerProperty` and now such properties can be created with Python. In addition to the standard update callback, `PointerProperty` can have a `poll` callback (standard RNA) which is useful for search menus. For details see the test included in this patch. Original author: @artfunkel Alexander (Blend4Web Team) Reviewers: brecht, artfunkel, mont29, campbellbarton Reviewed By: mont29, campbellbarton Subscribers: jta, sergey, campbellbarton, wisaac, poseidon4o, mont29, homyachetser, Evgeny_Rodygin, AlexKowel, yurikovelenov, fjuhec, sharlybg, cardboard, duarteframos, blueprintrandom, a.romanov, BYOB, disnel, aditiapratama, bliblubli, dfelinto, lukastoenne Maniphest Tasks: T37754 Differential Revision: https://developer.blender.org/D113
2016-12-12Cleanup: bad (harmless) usage of PARM_PYFUNC_OPTIONAL in new ID.make_local ↵Bastien Montagne
RNA definition. PARM_PYFUNC_OPTIONAL is only useful in definition of callbacks for registrable types...
2016-12-12Refactor RNA property: split flags in property flags, parameter flags, and ↵Bastien Montagne
internal flags. This gives us 9 flags available again for properties (we had none anymore), and also makes things slightly cleaner. To simplify (and make more clear the differences between mere properties and function parameters), also added RNA_def_parameter_flags function (and its clear counterpart), to be used instead of RNA_def_property_flag for function parameters. This patch is also a big cleanup (some RNA function definitions were still using 'prop' PropertyRNA pointer, etc.). And yes, am aware this will be annoying for all branches, but we really need to get new flags available for properties (will need at least one for override, etc.). Reviewers: sergey, Severin Subscribers: dfelinto, brecht Differential Revision: https://developer.blender.org/D2400
2016-11-30Cleanup id->newid usage, initial work.Bastien Montagne
This aims at always ensuring that ID.newid (and relevant LIB_TAG_NEW) stay in clean (i.e. cleared) state by default. To achieve this, instead of clearing after all id copy call (would be horribly noisy, and bad for performances), we try to completely remove the setting of id->newid by default when copying a new ID. This implies that areas actually needing that info (mainly, object editing area (make single user...) and make local area) have to ensure they set it themselves as needed. This is far from simple change, many complex code paths to consider, so will need some serious testing. :/
2016-11-21Partly revert own rBb97c567c1df1e, clear_proxy is actually safe.Bastien Montagne
This is very confusing, in fact, and rna tooltip was wrong, BKE_object_make_local_ex actually ensures we never have several proxies of same object, since it always clears proxy when it has to copy object to make it local... What that RNA function is probably missing, though, is same logic as in BKE_library_make_local to actually remap proxy from old linked object to new local one.
2016-11-21Fix two very bad issues in new ID.make_local RNA function.Bastien Montagne
I) `clear_proxy` parameter was not assigned to parm in RNA define code, so 'pyfunc optional' flag was set to `new_id` parameter of `user_remap` func - super ugly! II) `clear_proxy` parameter itself, when set to False, would allow to leave .blend file in invalid state (more than one proxy of same object), this should never, ever be allowed in RNA API imho. Left the PAI untouched for now, just disabled any effect from this parameter (hence always clearing proxy when copying).
2016-11-10Added bpy.types.ID.make_local() that can make a single ID block local.Sybren A. Stüvel
This new `bpy.types.ID.make_local(clear_proxies=True)` allows Python code to press the "Make Local" button on any ID block. I chose `clear_proxies=True` as the default, since it's the default behaviour of `id_make_local()` (defined in `library.c`). The caller does need to take care of ensuring that linked-in objects don't refer to local data, and that proxies aren't broken. Reviewers: sergey, mont29 Reviewed By: mont29 Subscribers: dfelinto Differential Revision: https://developer.blender.org/D2346
2016-09-22RNA/UI: Allow displaying in tooltip why RNA property isn't editableJulian Eisel
This commit allows RNA properties to return additional info on their editable state which may then be displayed in tooltips. To show how it works, it also adds some info for the editable check of proxies. For generally un-editable properties or properties of a linked data-block, RNA returns default strings. | {F362785} | {F362786} | {F362787} | Reviewed by brecht, thanks! Differential Revision: https://developer.blender.org/D2243
2016-09-19UI Messages: Consistent spelling of term "data-block"Julian Eisel
Was using a bunch of different spellings, mostly "data-block" though, so went with that one (would have been my #1 choice anyway ;) )
2016-09-09Fix missing 'prop_required' flags in some ID RNA funcs.Bastien Montagne
Not critical, but would rather have this in 2.78 (for API doc reasons mostly).
2016-08-12Depsgraph: tag relations for update when aterial slots changesSergey Sharybin
New dependency graph puts materials to the graph in order to deal with animation assigned to them and things like that. This leads us to a requirement to update relations when slots changes. This fixes: T49075 Assignment of a keyframed material using the frame_change_pre handler doesn't update the keyframe using the new dependency graph
2016-08-06Basic Alembic supportKévin Dietrich
All in all, this patch adds an Alembic importer, an Alembic exporter, and a new CacheFile data block which, for now, wraps around an Alembic archive. This data block is made available through a new modifier ("Mesh Sequence Cache") as well as a new constraint ("Transform Cache") to somewhat properly support respectively geometric and transformation data streaming from alembic caches. A more in-depth documentation is to be found on the wiki, as well as a guide to compile alembic: https://wiki.blender.org/index.php/ User:Kevindietrich/AlembicBasicIo. Many thanks to everyone involved in this little project, and huge shout out to "cgstrive" for the thorough testings with Maya, 3ds Max, Houdini and Realflow as well as @fjuhec, @jensverwiebe and @jasperge for the custom builds and compile fixes. Reviewers: sergey, campbellbarton, mont29 Reviewed By: sergey, campbellbarton, mont29 Differential Revision: https://developer.blender.org/D2060
2016-07-26Correct UI names of ID typesJulian Eisel
Also correct typo.
2016-07-19Add 'reload' function to libraries' RNA API.Bastien Montagne
2016-07-12Fix 48831, Step I: Mismatch issues bewteen ID icon and preview system.Bastien Montagne
- icon_id from ID and PreviewImage were not guaranteed to be in sync. - PreviewImage one was not reset on file read. - Through RNA e.g., it was possible to ensure an ID icon via its preview image, which was running code designed for custom previews/icons system, instead of generating correct 'auto ID icon'.
2016-07-10Cleanup/Refactor: pass Main pointer to all ID copy functions.Bastien Montagne
Also allows us to get rid of a few _copy_ex() versions...
2016-06-25Cleanup: remove RNA's `ID.destroy()` function.Bastien Montagne
We already have Main's ID lists' `remove()` function, better not do the same thing in two different places!
2016-06-22ID-Remap, step two: add some user-level tools.Bastien Montagne
This commit adds operators and Outliner menu entries to reload or relocate a library, and to delete or replace a datablock. RNA ID API is also extended to allow ID deletion and remapping from python. Review task: D2027 (https://developer.blender.org/D2027). Reviewed by campbellbarton, thanks a bunch.
2016-06-22ID-Remap - Step one: core work (cleanup and rework of generic ID datablock ↵Bastien Montagne
handling). This commit changes a lot of how IDs are handled internally, especially the unlinking/freeing processes. So far, this was very fuzy, to summarize cleanly deleting or replacing a datablock was pretty much impossible, except for a few special cases. Also, unlinking was handled by each datatype, in a rather messy and prone-to-errors way (quite a few ID usages were missed or wrongly handled that way). One of the main goal of id-remap branch was to cleanup this, and fatorize ID links handling by using library_query utils to allow generic handling of those, which is now the case (now, generic ID links handling is only "knwon" from readfile.c and library_query.c). This commit also adds backends to allow live replacement and deletion of datablocks in Blender (so-called 'remapping' process, where we replace all usages of a given ID pointer by a new one, or NULL one in case of unlinking). This will allow nice new features, like ability to easily reload or relocate libraries, real immediate deletion of datablocks in blender, replacement of one datablock by another, etc. Some of those are for next commits. A word of warning: this commit is highly risky, because it affects potentially a lot in Blender core. Though it was tested rather deeply, being totally impossible to check all possible ID usage cases, it's likely there are some remaining issues and bugs in new code... Please report them! ;) Review task: D2027 (https://developer.blender.org/D2027). Reviewed by campbellbarton, thanks a bunch.
2016-01-06'users of ID' py API.Bastien Montagne
This mainly adds bpy.data.user_map() method, which goes over the whole Main database to build a mapping (dict) {ID: {users_of_that_ID}}. Very handy to check and debug ID usages, but could also be really valuable for py addons creating temporary scenes, or some exporters, etc. Note: current code in master's libquery misses some IDs (and reports some it should not, like nodetrees), this is fixed in id-remap but still needs serious review before going to master. This basically means that current bpy.data.user_map() **will not** report a complete and exhaustive state of dependencies between IDs. Should work OK in most cases though. Original work/idea comes from id-remap branch, was heavily reworked by @campbellbarton and myself for master. Reviewers: campbellbarton, sergey Differential Revision: https://developer.blender.org/D1678
2015-12-28Cleanup: use BLI_libblock prefix for id functionsCampbell Barton
- test_idbutton -> BLI_libblock_ensure_unique_name (not only used from UI) - BKE_rename_id -> BKE_libblock_rename (always pass valid main) also rename: - name_uiprefix_id -> BKE_id_uiprefix
2015-12-27Split id->flag in two, persistent flags and runtime tags.Bastien Montagne
This is purely internal sanitizing/cleanup, no change in behavior is expected at all. This change was also needed because we were getting short on ID flags, and future enhancement of 'user_one' ID behavior requires two new ones. id->flag remains for persistent data (fakeuser only, so far!), this also allows us 100% backward & forward compatibility. New id->tag is used for most flags. Though written in .blend files, its content is cleared at read time. Note that .blend file version was bumped, so that we can clear runtimeflags from old .blends, important in case we add new persistent flags in future. Also, behavior of tags (either status ones, or whether they need to be cleared before/after use) has been added as comments to their declaration. Reviewers: sergey, campbellbarton Differential Revision: https://developer.blender.org/D1683
2015-11-23Cleanup: use `rna_enum_` prefix for RNA enumsCampbell Barton
Definitions could shadow local vars.
2015-11-09Fake user: add BKE_library helpers to set/clear that flag.Bastien Montagne
Since it also involves usercount manipulation, safer and cleaner to do it in BKE_library...
2015-10-23Cleanup: rename 'datablocks' -> 'data-blocks'Campbell Barton
Similar to addons -> add-ons, for reading it fits better to hyphenate.
2015-10-06Cleanup: return PROP_EDITABLE rna flagCampbell Barton
Harmless, since the flag happens to be 1.
2015-09-01RNA PreviewImage: add float pixels accessors.Bastien Montagne
Raw int pixels can be nice in some cases (much less memory used), but converting to/from float values (as e.g. expected by/from Image) is not simple in py, error prone and rather slow.
2015-08-10Data previews: add utils to generate/clear previews.Bastien Montagne
Not much to add, you can now clear previews from current .blend file, or a set of non-opened files. Likewise, you can generate previews (for mat/tex, objects, groups, scenes, ...).
2015-08-06Cleanup: whitespace, unused varCampbell Barton
2015-07-14Fix T45423: depsgraph: crash in IDDepsNode::tag_updateSergey Sharybin
Two issues fixed in this commit: - Clearing or adding animation via python should ensure relations are valid. - Animation component animation data might be null caused by removing animation from python.
2015-05-11Expose PreviewImage & custom icons to py API.Bastien Montagne
This commit mainly: * Exposes PreviewImage struct in RNA, including ways for user to set images data. * Adds a new kind of PreviewImage, using a file path and IMB_thumb to get image. * Adds a new kind of custom icon using PreviewImage, unrelated to ID previews system. * Adds a python API (utils.previews) to allow python scripts to access those custom previews/icons. Note that loading image from files' thumbnails is done when needed (deferred loading), not when defining the custom preview/icon. WARNING: for release addons who would want to use this, please keep it to a strict minimum, really needed level. We do not want our UI to explode under hundreds of different flashy icons! For more info, see also the release notes of Blender 2.75 (http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.75/Addons) and the example/templates featured with Blender. Patch by Campbell (ideasman42), Inês (brita) and Bastien (mont29). Differential Revision: https://developer.blender.org/D1255
2015-04-13Cleanup: styleCampbell Barton
2015-04-13Minor edits of python class documentation (regarding ID tagging)Gaia Clary
2015-04-04Cleanup: use BKE_animdata_* prefixCampbell Barton
2015-01-12Cleanup: add missing MovieClip entry in RNA's id_type_items, and respect ↵Bastien Montagne
alphabetical sorting (on UI names for enums, on ID codes otherwise).
2014-10-07RNA: id enum was incompleteCampbell Barton
2014-08-05Add RNA access to packed librariesCampbell Barton
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-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-03-03Icon for LineStyleCampbell Barton
patch T37008 from Michael P.
2014-01-03Text3d: avoid converting utf8 to wchar_t in editmodeCampbell Barton
2013-09-26Fix for the name of line style ID blocks, from "FreestyleLineStyle" to "Line ↵Tamito Kajiyama
Style".
2013-09-26Use the brush icon rather than the particle icon for ID-block type of ↵Irie Shinsuke
Freestyle line style, though that's still workaround. We need a proper icon representing Freestyle line style.
2013-09-12code cleanup: set enums as static or add RNA_enum_types.h where they are ↵Campbell Barton
used elsewhere. also minor style cleanup.
2013-08-14add materials.clear() method, matching other python list method.Campbell Barton
2013-08-13make materials.pop() and more like pythons list.popCampbell Barton
- allow negative index values. - error when invalid index value are passed in. - remove last item if no index argument is given. also change behavior to remove the material slot, it was only clearning by default but the list length remained the same.
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.