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
2020-04-03Code Quality: Replace for loops with LISTBASE_FOREACHDalai Felinto
Note this only changes cases where the variable was declared inside the for loop. To handle it outside as well is a different challenge. Differential Revision: https://developer.blender.org/D7320
2020-04-03Cleanup: Animation, move AnimData API to `anim_data.c`/`BKE_anim_data.h`Sybren A. Stüvel
The `BKE_animsys.h` and `anim_sys.c` files already had a an "AnimData API" section. The code in that section has now been split off, and placed into `BKE_anim_data.h` and `anim_data.c`. All files that used to include `BKE_animsys.h` have been adjusted to only include the animation headers they need (sometimes none). No functional changes.
2020-04-03Cleanup: Rename bScreen variables from sc/scr to screenJulian Eisel
Part of T74432. Mostly a careful batch rename but had to do few smaller fixes. Also ran clang-format on affected files.
2020-04-03Cleanup: Rename ScrArea variables from sa to areaJulian Eisel
Follow up of b2ee1770d4c3 and 10c2254d412d, part of T74432. Now the area and region naming conventions should be less confusing. Mostly a careful batch rename but had to do few smaller fixes. Also ran clang-format on affected files.
2020-04-03Cleanup: use abbreviated names for unsigned types in editorsCampbell Barton
2020-03-26Add option to Copy the active view layer, and add an empty view layerChris Clyne
Modify the view layer add operator (and underlying `BKE_view_layer_add`) to allow for copying the current view layer, as well as adding a new one but with all LayerCollections disabled by default (this is important for heavy scenes where currently adding view layers can take a long time due to enabling every collection by default). Reviewed By: mont29 Differential Revision: https://developer.blender.org/D6862
2020-03-19Cleanup: `make format` after SortedIncludes changeDalai Felinto
2020-03-18Cleanup: Resolve HKEY conflictRay Molenkamp
Both the MS headers and blender headers define the HKEY which gives all kind of inclusion order issues. This diff renames all *KEY constants to EVT_*KEY to resolve this conflict. Reviewed By: brecht , dfelinto Differential Revision: http://developer.blender.org/D7164
2020-03-18Objects: add Volume object type, and prototypes for Hair and PointCloudBrecht Van Lommel
Only the volume object is exposed in the user interface. It is based on OpenVDB internally. Drawing and rendering code will follow in another commit. https://wiki.blender.org/wiki/Source/Objects/Volume https://wiki.blender.org/wiki/Reference/Release_Notes/2.83/Volumes Hair and PointCloud object types are hidden behind a WITH_NEW_OBJECT_TYPES build option. These are unfinished, and included only to make it easier to cooperate on development in the future and avoid tricky merges. https://wiki.blender.org/wiki/Source/Objects/New_Object_Types Ref T73201, T68981 Differential Revision: https://developer.blender.org/D6945
2020-03-11EEVEE: Replace octahedron reflection probe by cubemap arrayClément Foucault
We implement cubemap array support for EEVEE's lightcache reflection probes. This removes stretched texels and bottom hemisphere seams artifacts caused by the octahedral projection previously used. This introduce versioning code for the lightcache which will discard any lightcache version that is not compatible. Differential Revision: https://developer.blender.org/D7066
2020-03-09Cleanup: Replace ABS/SQUARE/CUBE with function callsSergey Sharybin
While it might be handy to have type-less functionality which is similar to how C++ math is implemented it can not be easily achieved with just preprocessor in a way which does not have side-effects on wrong usage. There macros where often used on a non-trivial expression, and there was at least one usage where it was causing an actual side effect/bug on Windows (see change around square_f(sh[index++]) in studiolight.c). For such cases it is handy to have a function which is guaranteed to have zero side-effects. The motivation behind actually removing the macros is that there is already a way to do similar calculation. Also, not having such macros is a way to guarantee that its usage is not changed in a way which have side-effects and that it's not used as an inspiration for cases where it should not be used. Differential Revision: https://developer.blender.org/D7051
2020-03-06Cleanup: Rename ARegion variables from ar to regionJulian Eisel
The old convention was easy to confuse with ScrArea. Part of https://developer.blender.org/T74432. This is mostly a batch rename with some manual fixing. Only single word variable names are changed, no prefixed/suffixed names. Brecht van Lommel and Campbell Barton both gave me a green light for this convention change. Also ran clan clang format on affected files.
2020-03-06Cleanup: move camera, lights, world to IDTypeInfoBrecht Van Lommel
2020-03-06CodeCleanup: Added enums to opengl render functionsJeroen Bakker
Motivation the functions get 3 different kind of flag parameters (ImBuf, DrawType, OffscreenRendering) the naming of the flags were not clear, leading to mistakes and unnecessary time spend debugging.
2020-03-06Cleanup: rename 'verify' to 'ensure' for BKE_image_viewer functionsCampbell Barton
2020-03-05Cleanup: material API namingCampbell Barton
- Use 'BKE_object_material_*', 'BKE_id_material_*' prefix for functions that operate on Object and ID types. - Use '_len' suffix for length (matching BLI naming). - Use '_p' suffix for functions that return a pointer to values where the value would typically be returned. Functions renamed: - BKE_object_material_resize was BKE_material_resize_object - BKE_object_material_remap was BKE_material_remap_object - BKE_object_material_remap_calc was BKE_material_remap_object_calc - BKE_object_material_array_p was BKE_object_material_array - BKE_object_material_len_p was BKE_object_material_num - BKE_id_material_array_p was BKE_id_material_array - BKE_id_material_len_p was BKE_id_material_num - BKE_id_material_resize was BKE_material_resize_id - BKE_id_material_append was BKE_material_append_id - BKE_id_material_pop was BKE_material_pop_id - BKE_id_material_clear was BKE_material_clear_id
2020-02-28Preview Render: Disable Unneeded Render PassesJeroen Bakker
2020-02-20Fix T73871: improve assignement of material to selection in multi objectPhilipp Oeser
editmode This was already supported in "Select" & "Deselect" but not in "Assign". So similar to rB6b39dc7672eb, we now check if the material corresponding to the currently selected material slot is found in other objects materials and assign this (instead of always assigning their 'own' actcol). Maniphest Tasks: T73871 Differential Revision: https://developer.blender.org/D6869
2020-02-17Fix T73906: Crash calling render from PythonCampbell Barton
2020-02-15Cleanup: remove unused RenderData.displaymodeCampbell Barton
2020-02-13Refactor libquery ID looper callback to take a single parameter.Bastien Montagne
Using a struct here allows to change given parameters to the callbacks without having to edit all callbacks functions, which is always noisy and time consuming.
2020-02-10Cleanup/refactor: Rename `BKE_library` files to `BKE_lib`.Bastien Montagne
Note that `BKE_library.h`/`library.c` were renamed to `BKE_lib_id.h`/`lib_id.c` to avoid having a too generic name here. Part of T72604.
2020-02-07Cleanup: `make format`Dalai Felinto
Dear developers remember to set your coding environment to use clang-format.
2020-02-05T73589: Code Quality: Renaming on BKE_material.hAntonio Vazquez
Old Name New Name ========= ========= init_def_material BKE_materials_init BKE_material_gpencil_default_free BKE_materials_exit test_object_materials BKE_object_materials_test test_all_objects_materials BKE_objects_materials_test_all give_matarar BKE_object_material_array give_totcolp BKE_object_material_num give_current_material_p BKE_object_material_get_p give_current_material BKE_object_material_get assign_material BKE_object_material_assign assign_matarar BKE_object_material_array_assign give_matarar_id BKE_id_material_array give_totcolp_id BKE_id_material_num assign_material_id BKE_id_material_assign clear_matcopybuf BKE_material_copybuf_clear free_matcopybuf BKE_material_copybuf_free copy_matcopybuf BKE_material_copybuf_copy paste_matcopybuf BKE_material_copybuf_paste BKE_material_init_gpencil_settings BKE_gpencil_material_attr_init BKE_material_add_gpencil BKE_gpencil_material_add BKE_material_gpencil_get BKE_gpencil_material BKE_material_gpencil_default_get BKE_gpencil_material_default BKE_material_gpencil_settings_get BKE_gpencil_material_settings
2020-01-30Cleanup: ED_editors_flush_* functionsCampbell Barton
- Remove the only_render arg from ED_editors_flush_edits was only used in one place, the '_ex' version can be used instead. - Split out the single object version of this function as currently flushing is being done in-line, often only accounting for edit-mode, ignoring sculpt mode for e.g.
2020-01-14Fix T72861: Viewport Render Keyframes ignores Grease Pencil and Shape KeysSybren A. Stüvel
The Viewport Render Keyframes operator didn't include keyframes from grease pencil animation or from mesh shape key animation (see T72861). To find all related datablocks that could be considered as part of the selected object, `BKE_library_foreach_ID_link(..., IDWALK_RECURSE)` is used. To prevent relations like constraint targets from being visited, the recursion is stopped when it finds a different object. Reviewed By: mont29 Differential Revision: https://developer.blender.org/D6558
2019-12-20Cleanup: spellingCampbell Barton
2019-12-20Cleanup: use BLI_bitmap typeCampbell Barton
2019-12-19Animation: Added option to playblast only keyframes of selected objectsSybren A. Stüvel
This feature makes it possible to do a viewport render (a.k.a. playblast) by only rendering those frames on which the selected objects have a keyframe. The frames to render are stored in a `BLI_bitmap`, which has a bit for each frame set to 0 (skip) or 1 (render). An alternative approach would be to construct a set of all keyframes to render, but that would make both constructing the list and looking up frames in the list more complex. The only thing this feature does is skip OpenGL rendering of a frame. As a result, 'skipped' frames are still included in the output, but just use the render result of the last-rendered frame. This is exactly what's described in T72229. Differential Revision: https://developer.blender.org/D6443 Reviewed By: zeddb Design task: T72229
2019-12-18Animation: Clarified tooltip for Viewport Render AnimationSybren A. Stüvel
The tooltip was static, so it was the same for viewport-rendering the current frame and for the entire animation. It is now different for those two. The structure of `screen_opengl_render_description()` is such that it allows for adding a new description for a soon-to-come feature (T72229).
2019-12-12Add support for tiled images and the UDIM naming schemeLukas Stockner
This patch contains the work that I did during my week at the Code Quest - adding support for tiled images to Blender. With this patch, images now contain a list of tiles. By default, this just contains one tile, but if the source type is set to Tiled, the user can add additional tiles. When acquiring an ImBuf, the tile to be loaded is specified in the ImageUser. Therefore, code that is not yet aware of tiles will just access the default tile as usual. The filenames of the additional tiles are derived from the original filename according to the UDIM naming scheme - the filename contains an index that is calculated as (1001 + 10*<y coordinate of the tile> + <x coordinate of the tile>), where the x coordinate never goes above 9. Internally, the various tiles are stored in a cache just like sequences. When acquired for the first time, the code will try to load the corresponding file from disk. Alternatively, a new operator can be used to initialize the tile similar to the New Image operator. The following features are supported so far: - Automatic detection and loading of all tiles when opening the first tile (1001) - Saving all tiles - Adding and removing tiles - Filling tiles with generated images - Drawing all tiles in the Image Editor - Viewing a tiled grid even if no image is selected - Rendering tiled images in Eevee - Rendering tiled images in Cycles (in SVM mode) - Automatically skipping loading of unused tiles in Cycles - 2D texture painting (also across tiles) - 3D texture painting (also across tiles, only limitation: individual faces can not cross tile borders) - Assigning custom labels to individual tiles (drawn in the Image Editor instead of the ID) - Different resolutions between tiles There still are some missing features that will be added later (see T72390): - Workbench engine support - Packing/Unpacking support - Baking support - Cycles OSL support - many other Blender features that rely on images Thanks to Brecht for the review and to all who tested the intermediate versions! Differential Revision: https://developer.blender.org/D3509
2019-12-10CMake: fix linking Blender as a Python moduleCampbell Barton
Remove direct links to Blender binary, only link to the window manager and rely on indirect links for everything else.
2019-12-06Draw: Removal of MultiSample BuffersJeroen Bakker
Multisample buffers were used for smooth line drawing. As we now have an algorithm that doesn't need the multisample buffers we can remove them. The user preference for viewport multi_sampling is replaced by single toggle overlay `use_overlay_smooth_wire`. By default this setting is enabled as the new drawing is really quick (<1ms) and uses zero hacks. Reviewed By: fclem Differential Revision: https://developer.blender.org/D6367
2019-12-04Fix T72156: Render Viewport Animation Meta DataJeroen Bakker
When using Render Viewport Animation the meta data was only stamped when a float buffer was used. In recent changes it was possible to use a char buffer for the result. This commit will also support stamping of metadata using a char buffer.
2019-11-27Cleanup: Remove BIF_gl.hJeroen Bakker
BIF_gl.h included hacks like redefining glew functions and a constant. The named constant `GLA_PIXEL_OFS` has been moved to `GPU_viewport.h` Reviewed By: brecht Differential Revision: https://developer.blender.org/D5860
2019-11-27Curve: CurveMapping Extend OptionJeroen Bakker
Extend options are currently stored per curve. This was not clearly communicated to the user and they expected this to be a setting per CurveMapping. This change will move the option from `Curve` to `CurveMapping`. In order to support this the API had to be changed. BPY: CurveMap.evaluate is also moved to CurveMapping.evaluate what breaks Python API. Cycles has been updated but other add-ons have not. After release of 2.81 we can merge this to master and adapt the add-ons. Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D6169
2019-11-27RenderViewport: Texture FormatJeroen Bakker
When doing viewport rendering the color management happens on the CPU. This has overhead in downloading a float texture from the gpu and performing color management on the CPU. Based on the scene fileformat bit depth the result will be rendered to a byte texture where the colormanagement happens on the GPU or a float texture where the colormanagement happens on the CPU. This is only done during `Viewport Render Animation` in other cases a float texture is being used. Baseline (HD render of wanderer.blend workbench engine no samples) 15.688038 s After changes: 9.412880s Reviewed By: fclem Differential Revision: https://developer.blender.org/D6195
2019-11-15Fix T71590: Closing file browser reopens previously closed render viewJulian Eisel
The render view window was never closed actually, just moved behind the main window. It's properly closed now. It should also behave more like expected when there already is a temporary window open (e.g. Preferences).
2019-11-11Fix T71474: Temporary image editor cancels to file editor after file operationJulian Eisel
2019-11-04UI: Rewrite stacked full-screen logic, fixing issuesJulian Eisel
To recreate the main issue: * Set render and file browser to show in full-screen in the preferences * Default scene, press F12 in 3D View * Press Alt+S to save the image * Escape the file browser * Escape the image editor The former 3D View would now show the image editor. This is a common use-case that should work. Full-screen code is a hassle to get to work as expected. There are reports from 2.5, I did lots of work years ago to get these kind of use-cases to work fine. But apparently I broke this one with a fix for another common use-case in March (0a28bb14222c). This now stores hints in the space, rather than the area, which should make things much more controlable and hopefully help us fix issues like this. Here are a few references describing further common issues (all should work fine now): 0a28bb14222c, e61588c5a544, T19296 Checked over this with Bastien, we agreed that at some point we should do a big rewrite of all of this, for now this is acceptable.
2019-10-31UI: Only show render result in image editors in view modeJulian Eisel
Previously, with the render display mode set to "Image Editor", we'd use any image editor that doesn't already show a (non-render-result) image, even if they weren't set to view mode (but UV, paint or mask mode). It could be confusing or annoying when using an Image Editor for a purpose that the mode wasn't created for. Note that with the introduction of a UV sub-Editor, the old behavor was even more confusing. Changing a UV Editor to show the render result was weird.
2019-10-11Fix T70714: Crash when using OBJECT_OT_material_slot_assign op without UI.Bastien Montagne
There is no guarantee we can get any valid UI from the context, and that operator can work without it.
2019-10-09Local Collections: Allow users to show hidden collectionsDalai Felinto
Users now can turn on in a viewport collections that are temporarily hidden (eye) in the view layer. Design task: T61327 As for the implementation, I had to decouple the visibility in the depsgraph from the visibility in the view layer. Also there is a "bug" that in a way was there before which is some operators (e.g., writing a text inside of a text object, tab into edit mode) run regardless of the visibility of the active object. The bug was present already (with object type visibility restriction) in 2.80 so if we decide to tackle it, can be done separately (I have a patch for it though P1132). Reviewed by: brecht (thank you) Differential Revision: D5992
2019-10-04Fix expanding paths ignoring data-block librariesCampbell Barton
- Image views. - Sequencer text strip font. - Text check for modified/reload. - Collada image export. - Brush icons.
2019-10-03UI: Register File Browser as Child/Dialog-Window for the OSJulian Eisel
For many users, this will make the File Browser window behave more like what they would expect. It addresses the issue of the File Browser becoming hidden behind the main window by clicking anywhere in the latter. It communicates the interruptive, but temporary nature of the operation a bit better. Further, on tiling window managers the File Browser now opens as floating by default, like in other applications. Note that this also makes sure the File Browser is always opened as separate window, so it doesn't re-use the Preferences, or any other temporary window anymore. This seems to have been a common annoyance. More concretely, this makes the File Browser window behave as follows: * Stays on top of its parent Blender window, but not on top of non-Blender windows. * Minimizes with its parent window * Can be moved independently * Doesn't add an own item in task bars * Doesn't block other Blender windows (we may want to have this though) * Opens as floating window for tiling window managers (e.g. i3wm/Sway) Further notes: * When opening a file browser from the Preference window (or any temporary window), the main window, as the file browsers parent is moved on top of the Preferences, which makes it seem like the Preferences were closed. This is the general issue of bad secondary window handling as window activation changes. I made it so that the window is moved back once the file browser is closed. This behavior is confusing and would be nice to avoid. It's a separate issue though. * On most window managers on Linux the temporary window can not be minimized and maximized, they disable that for dialog windows. * On Windows and macOS, only minimizing is disabled, as there is no decent way yet to restore a window if it's not shown in the taskbar. Reviewed By: Brecht van Lommel, Campbell Barton, William Reynish Edits and macOS implementation by Brecht. Differential Revision: https://developer.blender.org/D5810 Part of T69652.
2019-09-18UI: Move render display type to PreferencesJulian Eisel
Moves the render display type (to choose between rendering in a new window, in a fullscreen area, in an Image Editor, etc) from the scene to the preferences.
2019-09-18Refactor temp-space opening for optional fullscreen modeJulian Eisel
Will be put to use in followup commits.
2019-09-13Cleanup: unused headers (GPU)Campbell Barton
2019-09-11Depsgraph: Pass bmain to depsgraph object creationSergey Sharybin
Currently unused, but will allow to keep of an owner of the depsgraph. Could also simplify other APIs in the future by avoiding to pass bmain explicitly to relation update functions and things like that.
2019-09-07Cleanup: use post increment/decrementCampbell Barton
When the result isn't used, prefer post increment/decrement (already used nearly everywhere in Blender).