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
2021-08-21Add support for Zstandard compression for .blend filesLukas Stockner
Compressing blendfiles can help save a lot of disk space, but the slowdown while loading and saving is a major annoyance. Currently Blender uses Zlib (aka gzip aka Deflate) for compression, but there are now several more modern algorithms that outperform it in every way. In this patch, I decided for Zstandard aka Zstd for several reasons: - It is widely supported, both in other programs and libraries as well as in general-purpose compression utilities on Unix - It is extremely flexible - spanning several orders of magnitude of compression speeds depending on the level setting. - It is pretty much on the Pareto frontier for all of its configurations (meaning that no other algorithm is both faster and more efficient). One downside of course is that older versions of Blender will not be able to read these files, but one can always just re-save them without compression or decompress the file manually with an external tool. The implementation here saves additional metadata into the compressed file in order to allow for efficient seeking when loading. This is standard-compliant and will be ignored by other tools that support Zstd. If the metadata is not present (e.g. because you manually compressed a .blend file with another tool), Blender will fall back to sequential reading. Saving is multithreaded to improve performance. Loading is currently not multithreaded since it's not easy to predict the access patterns of the loading code when seeking is supported. In the future, we might want to look into making this more predictable or disabling seeking for the main .blend file, which would then allow for multiple background threads that decompress data ahead of time. The compression level was chosen to get sizes comparable to previous versions at much higher speeds. In the future, this could be exposed as an option. Reviewed By: campbellbarton, brecht, mont29 Differential Revision: https://developer.blender.org/D5799
2021-07-08CMake: add missing headers, sort file listsCampbell Barton
2021-06-15Cleanup: Add files for version independent versioning helpersJulian Eisel
Adds `source/blender/blendloader/intern/versioning_common.cc` and `versioning_common.h` for version independent versioning functions. I only placed `do_versions_add_region_if_not_found()` in there for now. `blo_do_version_old_trackto_to_constraints()` could also be added, but that's so old, I prefer keeping that in `versioning_legacy.c`.
2021-04-20Core: Add do_versions file for 3.0Falk David
Differential Revision: https://developer.blender.org/D11030
2021-03-18BLO: Functions for temporarily loading a single datablockSybren A. Stüvel
This introduces two functions to the blenloader module, here shown as calls for brevity: * `temp_lib_ctx = BLO_library_temp_load_id(real_main, blend_file_path, idcode, idname, reports);` * Now the data in `temp_lib_ctx->temp_id` can be used (but ought not to be not assigned to non-temp datablocks). * `BLO_library_temp_free(temp_lib_ctx);` The first loads a datablock from a blend file, and returns it as part of a `struct TempLibraryContext`. This struct contains the temp-loaded ID, as well as enough information to correctly free everything again. Differential Revision: https://developer.blender.org/D10736
2020-11-06Cleanup: Render Module: move header files to main directoryAaron Carlisle
Move headers files from `render/extern/` to `render/` Part of T73586
2020-11-06Cleanup: sort structs, filesCampbell Barton
2020-10-05Initialize CLOG to fix crashing unit testsSybren A. Stüvel
Initialize CLOG in the blendfile-loading unit test superclass. Since rB8683d4e88f2e CLOG is used by more areas in Blender, and without initialisation it crashes.
2020-10-05Move sequencer sources from blenkernelRichard Antalik
This is first step of refactoring task T77580. Next step will be breaking up files into smaller ones. Reviewed By: sergey, brecht Differential Revision: https://developer.blender.org/D8492
2020-09-07Cleanup: include missing header files in CMakeCampbell Barton
2020-08-17Cleanup: sort CMake path listsCampbell Barton
2020-08-10Tests: move remaining gtests into their own module foldersBrecht Van Lommel
And make them part of the blender_test runner. The one exception is blenlib performance tests, which we don't want to run by default. They remain in their own executable. Differential Revision: https://developer.blender.org/D8498
2020-07-14Cleanup: sort header, cmake pathsCampbell Barton
2020-06-05Blenloader: New API that will be used for blenloader decentralizationJacques Lucke
Design Task: T76372 This part of a larger refactoring towards a more extensible architecture in Blender: T75724 The API is defined in `BLO_read_write.h`. It adds the small data structures `BlendWriter`, `BlendDataReader`, `BlendLibReader` and `BlendExpander`. Those contain context about the current read/write operation. Furthermore, it adds many functions with the prefixes `BLO_write_*`, `BLO_read_*` and `BLO_expand_*`. Lib linking and expanding will probably be handled by the more generic libquery system eventually. The corresponding parts of the API can be removed then.
2020-04-16UV: support changing the opacity of the UV overlayCampbell Barton
Add this option as it's useful to adjust how much UV's cover the image when UV mapping. D5348 by @EitanSomething with edits
2020-03-06Cleanup: move Alembic, AVI, Collada, and USD to `source/blender/io`Sybren A. Stüvel
This moves the `alembic`, `avi`, `collada`, and `usd` modules into a common `io` directory. This also cleans up some `#include "../../{somedir}/{somefile}.h"` by adding `../../io/{somedir}` to `CMakeLists.txt` and then just using `#include "{somefile}.h"`. No functional changes.
2019-07-31Cleanup: remove BLO_update_defaults_userpref_blendCampbell Barton
Merge into BKE_blendfile_userdef_from_defaults
2019-04-24Cycles: move shader node versioning code to CBrecht Van Lommel
Shader nodes are now shared with Eevee, so makes more sense to have it in the core and not be Cycles specific. Fix T62415: issues with append/link of old Cycles settings.
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-04-16CMake: add library deps to CMakeLists.txtCampbell Barton
Tested to work on Linux and macOS. This will be enabled once all platforms are verified. See D4684
2019-04-14CMake: prepare for BLENDER_SORTED_LIBS removalCampbell Barton
No functional change, this adds LIB definition and args to cmake files. Without this it's difficult to migrate away from 'BLENDER_SORTED_LIBS' since there are many platforms/configurations that could break when changing linking order. Manually add and enable WITHOUT_SORTED_LIBS to try building without sorted libs (currently fails since all variables are empty). This check will eventually be removed. See T46725.
2019-02-12DNA: support versioning structs & struct membersCampbell Barton
This is only to be used rarely because it's not forwards compatible. Replace version patching of old 2.80 DNA with a more generic API.
2019-02-05Cleanup: remove contributors for CMake filesCampbell Barton
Following removal from C source code. See: 8c68ed6df16d8893
2019-01-25Cleanup: BLO: move validate code into own header.Bastien Montagne
Does not make sense to keep that with BLO_writefile.h, this can also be used by read code, and some other parts of Blender (like ed_undo.c currently)...
2018-12-11Proper fix for building without BulletSergey Sharybin
Stick to an existing way of dealing with disabled feature.
2018-12-11Fix building w/o bulletCampbell Barton
2018-11-16Keymaps: replace select / action mouse systemBrecht Van Lommel
For Blender builtin configurations the option to choose the select mouse remains and is now also in the splash screen. It works by changing the keymap dynamically in the script, rather than using special events. The system of automatic switching of events was not flexible enough to deal with side effects that require further keymap changes, so it is now under more manual control in the script. This breaks compatibility for some scripts and exported key configurations. These can be fixed by replacing SELECTMOUSE, ACTIONMOUSE, EVT_TWEAK_S and EVT_TWEAK_A with appropriate LEFTMOUSE, RIGHTMOUSE, EVT_TWEAK_L and EVT_TWEAK_R events. Other than that, there should be no functional changes.
2018-09-13Cleanup: move cycles addon check out of versioningCampbell Barton
2018-09-12Fix Cycles issue moving versioning to blenloaderCampbell Barton
2018-09-12Cleanup: move preference versioning into own fileCampbell Barton
It's more convenient to keep version patching in the same place, this also splits out some function calls from version patching and supports updating UserDef structs besides the 'U'l global.
2018-08-08Cleanup: remove leftover game player code.Brecht Van Lommel
2018-07-10Eevee: LightCache: Initial ImplementationClément Foucault
This separate probe rendering from viewport rendering, making possible to run the baking in another thread (non blocking and faster). The baked lighting is saved in the blend file. Nothing needs to be recomputed on load. There is a few missing bits / bugs: - Cache cannot be saved to disk as a separate file, it is saved in the DNA for now making file larger and memory usage higher. - Auto update only cubemaps does update the grids (bug). - Probes cannot be updated individually (considered as dynamic). - Light Cache cannot be (re)generated during render.
2018-06-27Theme: set default theme 'Flatty Dark Blueberry'Campbell Barton
The theme is now stored in generated C code, which can be extracted from existing user preferences. This theme can then be used for version patching themes instead of duplicating values Note that theme versioning has been removed, since minor changes from now on won't apply well on top of 2.7x theme. Theme colors from interface_widgets.c have been removed too.
2018-06-17Merge branch 'master' into blender2.8Campbell Barton
2018-06-17Cleanup: trailing space for blenloaderCampbell Barton
2018-06-12T55454: removal of clay engineJeroen Bakker
The ClayEngine was introduced to test the blender2.8 architecture during development. As currently we have the wanted features implemented with matcaps we are going to remove the clay engine as it was never intended to be an official releasable engine Note: The test cases are never run. But when enabled will be skipped as they were implemented over the Clay Engine
2018-04-20Merge branch 'master' into blender2.8Bastien Montagne
2018-04-20Add debug tool to check validity of current file *before* saving.Bastien Montagne
It is hidden behind the --debug-io flag for now. Idea is to try to catch broken libraries state in current Main before we actually write the file on disk, should help catching and understanding what happens in Spring corruption cases.
2017-07-19Doversion: Set Clay when opening "Blender Render" engine scenesDalai Felinto
We get already enough reports of people complaining about crashes on edit mode unaware that they are in the non-supported Blender Render engine. Blender Render is going away, no reason to keep it around. Once we have a nice fallback on Eevee and fast file loading we can default to Eevee instead.
2017-04-06Depsgraph: Remove old depsgraph header from blenloaderSergey Sharybin
2017-03-28Merge branch 'master' into blender2.8Bastien Montagne
Conflicts: source/blender/blenloader/intern/readfile.c source/blender/windowmanager/intern/wm_window.c
2017-03-27CMake: WITH_PYTHON_SECURITY=OFF was ignoredCampbell Barton
Allow auto-execution to be enabled, also move this to user-prefs versioning code.
2017-02-07Render Layers and Collections (merge from render-layers)Dalai Felinto
Design Documents ---------------- * https://wiki.blender.org/index.php/Dev:2.8/Source/Layers * https://wiki.blender.org/index.php/Dev:2.8/Source/DataDesignRevised User Commit Log --------------- * New Layer and Collection system to replace render layers and viewport layers. * A layer is a set of collections of objects (and their drawing options) required for specific tasks. * A collection is a set of objects, equivalent of the old layers in Blender. A collection can be shared across multiple layers. * All Scenes have a master collection that all other collections are children of. * New collection "context" tab (in Properties Editor) * New temporary viewport "collections" panel to control per-collection visibility Missing User Features --------------------- * Collection "Filter" Option to add objects based on their names * Collection Manager operators The existing buttons are placeholders * Collection Manager drawing The editor main region is empty * Collection Override * Per-Collection engine settings This will come as a separate commit, as part of the clay-engine branch Dev Commit Log -------------- * New DNA file (DNA_layer_types.h) with the new structs We are replacing Base by a new extended Base while keeping it backward compatible with some legacy settings (i.e., lay, flag_legacy). Renamed all Base to BaseLegacy to make it clear the areas of code that still need to be converted Note: manual changes were required on - deg_builder_nodes.h, rna_object.c, KX_Light.cpp * Unittesting for main syncronization requirements - read, write, add/copy/remove objects, copy scene, collection link/unlinking, context) * New Editor: Collection Manager Based on patch by Julian Eisel This is extracted from the layer-manager branch. With the following changes: - Renamed references of layer manager to collections manager - I doesn't include the editors/space_collections/ draw and util files - The drawing code itself will be implemented separately by Julian * Base / Object: A little note about them. Original Blender code would try to keep them in sync through the code, juggling flags back and forth. This will now be handled by Depsgraph, keeping Object and Bases more separated throughout the non-rendering code. Scene.base is being cleared in doversion, and the old viewport drawing code was poorly converted to use the new bases while the new viewport code doesn't get merged and replace the old one. Python API Changes ------------------ ``` - scene.layers + # no longer exists - scene.objects + scene.scene_layers.active.objects - scene.objects.active + scene.render_layers.active.objects.active - bpy.context.scene.objects.link() + bpy.context.scene_collection.objects.link() - bpy_extras.object_utils.object_data_add(context, obdata, operator=None, use_active_layer=True, name=None) + bpy_extras.object_utils.object_data_add(context, obdata, operator=None, name=None) - bpy.context.object.select + bpy.context.object.select = True + bpy.context.object.select = False + bpy.context.object.select_get() + bpy.context.object.select_set(action='SELECT') + bpy.context.object.select_set(action='DESELECT') -AddObjectHelper.layers + # no longer exists ```
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-06-28writefile: replace most struct lookups /w constantsCampbell Barton
Removes many hash lookups per file-save and undo-step.
2015-08-18Refactor translation code out of blenfontCampbell Barton
- Add blentranslation `BLT_*` module. - moved & split `BLF_translation.h` into (`BLT_translation.h`, `BLT_lang.h`). - moved `BLF_*_unifont` functions from `blf_translation.c` to new source file `blf_font_i18n.c`.
2014-03-05Move do-versions functions for 2.70Campbell Barton
2013-11-29Move 2.6x versioning code to own fileSergey Sharybin
Summary: Makes readfile.c more clear and easier to navigate in. We would need to do such a move when we'll do 2.70 bump anyway. So better be prepared. In fact, as soon 2.70 bumo is done i would think we'd better create versioning_270 file and do version code there. Otherwise readfile.c will grow up dramatically again. Reviewers: brecht, campbellbarton Reviewed By: brecht Differential Revision: http://developer.blender.org/D60
2013-11-07"Render Audio" cleanup:Bastien Montagne
* Removed audio-only options from ffmpeg render settings (added some versionning code too)! * Moved the Mixdon button from the Scene->Audio pannel to the Render->Render panel.
2013-09-10startup.blend: add a function BLO_update_defaults_startup_blend to changeBrecht Van Lommel
default settings in the startup.blend without having to actually save and embed the file, which can be a tricky process and is problematic in branches and patches. This function can be emptied each time a new startup.blend is committed.