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-08-07Refactor ID copying (and to some extent, ID freeing).Bastien Montagne
This will allow much finer controll over how we copy data-blocks, from full copy in Main database, to "lighter" ones (out of Main, inside an already allocated datablock, etc.). This commit also transfers a llot of what was previously handled by per-ID-type custom code to generic ID handling code in BKE_library. Hopefully will avoid in future inconsistencies and missing bits we had all over the codebase in the past. It also adds missing copying handling for a few types, most notably Scene (which where using a fully customized handling previously). Note that the type of allocation used during copying (regular in Main, allocated but outside of Main, or not allocated by ID handling code at all) is stored in ID's, which allows to handle them correctly when freeing. This needs to be taken care of with caution when doing 'weird' unusual things with ID copying and/or allocation! As a final note, while rather noisy, this commit will hopefully not break too much existing branches, old 'API' has been kept for the main part, as a wrapper around new code. Cleaning it up will happen later. Design task : T51804 Phab Diff: D2714
2017-06-14Merge branch 'master' into blender2.8Bastien Montagne
2017-06-14Make whole ID copying code use const source pointer.Bastien Montagne
Noisy change, but safe, and better do it sooner than later if we are to rework copying code. Also, previous commit shows this *is* useful to catch some mistakes.
2017-04-06Depsgraph: Remove old header from blenkernelSergey Sharybin
2017-02-06Fix compilation error after recent changeSergey Sharybin
2017-01-20Fix own mistake in rB051526da6279, confusing off_t with ptrdiff_t.Bastien Montagne
2017-01-20Cleanup/fix some BLI_string_utf8 not using size_t/off_t as expected.Bastien Montagne
2017-01-04Fix (IRC reported) bad handling of Text data-block user count.Bastien Montagne
Reported on IRC by dfelinto, thanks. Root of the issue was that opening a new text file would create datablock with one user, when Text editor is actually a 'user one' user. This was leaving Text datablocks in inconsitent user count, and generating asserts in BKE_library area. Also changed a weird piece of code related to that extra user thing in main remapping func.
2016-07-25Cleanup: factorize the 'ensure local' part of datablock copy into a single ↵Bastien Montagne
BKE_id_copy_ensure_local function.
2016-07-21Fix missing datablocks types in id_make_local.Bastien Montagne
Adding make_local for vfont/gpencil/group/freestyle linestyle/mask/scene/sound/text. Note that there are still some lose ends here, since some type are not handled by id_copy (Scene, Sound and VFont), which means in case a datablock of that type is used both directly and indirectly, localization will fail. Scene copying might be doable though (maybe with a simple new 'full shalow' mode to existing BKE_scene_copy?), not sure about sounds and vfonts... Situations where this becomes an issue should be very rare corner cases anyway.
2016-07-11Remove usercount handling from BKE_id_expand_local.Bastien Montagne
Idea looked good, but we have too much custom situations here (some half-fake-sub-ID being copied with their 'owner', animdata, etc.), let's let datablock copy functions handle that themselves. Also allows to safely call BKE_id_expand_local from all copy functions now (only when copying linked data).
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-07-06Replace of (id->lib != NULL) check by meaningful macro.Bastien Montagne
Idea is to replace hard-to-track (id->lib != NULL) 'is linked datablock' check everywhere in Blender by a macro doing the same thing. This will allow to easily spot those checks in future, and more importantly, to easily change it (see work done in asset-engine branch). Note: did not touch to readfile.c, since there most of the time 'id->lib' check actually concerns the pointer, and not a check whether ID is linked or not. Will have a closer look at it later. Reviewers: campbellbarton, brecht, sergey Differential Revision: https://developer.blender.org/D2082
2016-06-25Cleanup: get rid of BKE_text_unlink(), replace by usage of generic ↵Bastien Montagne
BKE_libblock_... API.
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-03-10Text Editor: Auto indent for backspace/deleteCampbell Barton
Editing with spaces + auto-indent didn't delete indentation as expected.
2015-12-21BLI_storage: Split text/binary version of mem-from-file funcsCampbell Barton
Fix T47022, caused by own commit de0119d08
2015-12-14BLI_storage: util function BLI_file_read_as_memCampbell Barton
Use for text loading and pasting from file.
2015-11-23Cleanup: shadowing (blenkernel)Campbell Barton
2015-11-11Cleanup: replace more direct id->us handling by calls to BKE_library API.Bastien Montagne
2015-10-20First step to handle missing libs/datablocks when reading a file.Bastien Montagne
Idea is, instead of ignoring completely missing linked datablocks, to create void placeholders for them. That way, you can work on your file, save it, and find again your missing data once lib becomes available again. Or you can edit missing lib's path (in Outliner), save and reload the file, and you are done. Also, Outliner now shows broken libraries (and placeholders) with a 'broken lib' icon. Future plans are also to be able to relocate missing libs and reload them at runtime. Code notes: - Placeholder ID is just a regular datablock of same type as expected linked one, with 'default' data, and a LIB_MISSING bitflag set. - To allow creation of such datablocks, creation of datablocks in BKE was split in two step: + Allocation of memory itself. + Setting of all internal data to default values. See also the design task (T43351). Reviewed by @campbellbarton, thanks a bunch! Differential Revision: https://developer.blender.org/D1394
2015-09-15Fix for text editor un-indent undoCampbell Barton
Same issue as T44381, re-use logic for indent.
2015-06-05Check ftell return valuesCampbell Barton
2015-05-06Fix T44381: Text Editor: Un-indent undo failsCampbell Barton
D1284 by @mikidep
2015-05-03Fix typos.Tamito Kajiyama
2015-04-27Fix double-free on copied Text compiled py-codeCampbell Barton
2015-02-17Ensure BLI_stat() return value is checked.Campbell Barton
also add function attrs on BLI_fileops to ensure they're used correctly.
2015-02-06cleanup: styleCampbell Barton
2015-02-03Fix own mistake unlinking text (recent commit)Campbell Barton
2015-01-29Node UI: add support to show text-blocks in framesCampbell Barton
Some node setups benefit from being documented like this.
2015-01-26Cleanup: strcmp/strncmp -> STREQ/STREQLEN (in boolean usage).Bastien Montagne
Makes usage of those funcs much more clear, we even had mixed '!strcmp(foo, bar)' and 'strcmp(foo, bar) == 0' in several places...
2015-01-09Fix T43159: Copying of linked datablocks using relpath leads to invalid ↵Bastien Montagne
paths in new copies. Propper fix reverting most of rB60e70c0c6014e5, which was only partial specific fix. This code uses generic `BKE_id_lib_local_paths()` func to handle all possible paths. Reviewers: sergey, campbellbarton Differential Revision: https://developer.blender.org/D977
2015-01-08Fix T43159: Copying of linked datablocks using relpath leads to invalid ↵Bastien Montagne
paths in new copies. Simply have to rebase onto main filepath when copying, if source datablock is lib and path is relative. Afaict, only affected Image and Text datablocks. MovieClip would also be a candidate, but has no copy implemented currently.
2014-12-01Cleanup: more int->bool.Bastien Montagne
2014-11-21Cleanup: typoCampbell Barton
2014-10-29Fix for Ctrl+Del/Backspace not setting text dirtyCampbell Barton
2014-10-06Cleanup: remove paranoid NULL checksCampbell Barton
2014-09-17Text Editor: reload missed adding new-lineCampbell Barton
Logic for load/reload was duplicated, Fix T28087 missed reload. De-duplicate, also replace stat -> BLI_stat
2014-08-29Fix Text editor home/end keys when theres a selectionCampbell Barton
2014-07-19Defines: replace ELEM3-16 with ELEM(...), that can take varargsCampbell Barton
2014-05-28Fix T40157: Loading movies larger than 4GB in size failsSergey Sharybin
Issue was caused by _wstat returning EOVERFLOW error because of file size didn't fit into stat structure which was using long datatype. The idea of this patch is to use _wstat64 and _stat64 structure which is capable storing 64bit file sizes. Made it a typedef for stat structure used by BLI_stat function in order to make code easier to follow and avoid ifdefs all over the place. Additionally solved issue with BLI_exists which was wrongly returning False in cases destination file is larger then 4GB.
2014-04-26Code cleanup: use 'const' for arrays (blenkernel)Campbell Barton
2014-04-14Fix for crash un-indenting in the text editorCampbell Barton
2014-04-11Code cleanup: use boolCampbell Barton
2014-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-02-28Fix compile error when compiling without python.Brecht Van Lommel
2014-02-07ListBase API: add utility api funcs for clearing and checking emptyCampbell Barton
2014-02-05Code cleanup: use bool for static methodsCampbell Barton
2014-02-03Code cleanup: use bools where possibleCampbell Barton
2014-01-27Use includes for blenderplayer stubsCampbell Barton
exposes many incorrect and redundant stubs