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-10-07IDTypeInfo: add flag to indicate that ID has no animation dataJacques Lucke
This is part of T75724. Reviewers: mont29 Differential Revision: https://developer.blender.org/D9134
2020-09-10Refactor: move Image .blend I/O to IDTypeInfo callbacksJacques Lucke
2020-09-09Cleanup: reduce variable scopesJacques Lucke
2020-09-04Cleanup: Clang-Tidy readability-inconsistent-declaration-parameter-name fixSebastian Parborg
No functional changes
2020-09-02Cleanup: use bool instead of int in various placesJacques Lucke
2020-08-28IDTypeInfo: add .blend file io callbacksJacques Lucke
This is part of T76372. It adds the `blend_write`, `blend_read_data`, `blend_read_lib` and `blend_read_expand` which correspond to the various steps when reading and writing .blend files. Having these callbacks allows us to decentralize the blenloader code a lot more. This has the affect that code related to any specific ID type is less scattered. Reviewers: mont29 Differential Revision: https://developer.blender.org/D8670
2020-08-08Cleanup: remove redundant return parenthesisCampbell Barton
2020-08-07Cleanup: Blenkernel, Clang-Tidy else-after-return fixesSybren A. Stüvel
This addresses warnings from Clang-Tidy's `readability-else-after-return` rule in the `source/blender/blenkernel` module. No functional changes.
2020-08-01Cleanup: use term init instead of initialize/initialiseCampbell Barton
The abbreviation 'init' is brief, unambiguous and already used in thousands of places, also initialize is often accidentally written with British spelling.
2020-07-30Cleanup: Split gpu_texture_image.c into BKE and IMB modulesClément Foucault
This is in order to disolve GPU_draw.h into more meaningful code blocks. All the Image related function are in `image_gpu.c`. All the MovieClip related function are in `movieclip.c`. The IMB module now has a connection with GPU. This is not strickly necessary and the code could be move to `image_gpu.c` if needed. The Image garbage collection is also ported to `image_gpu.c`.
2020-07-26Cleanup: Image: Rename redundant enum for clarityClément Foucault
2020-07-22Simulation: improve depsgraph integrationJacques Lucke
A simulation data block has an embedded node tree, which requires special handling in a couple of places. Some of those places were missing beforehand. This also adds a relation to make sure that the simulation is evaluated after animations on the embedded node tree are evaluated.
2020-07-19Cleanup: spellingCampbell Barton
2020-07-16Fix T78537: too much memory usage rendering animation with persistent imagesBrecht Van Lommel
For still images, always return 0 for the current frame number. This ensures Cycles can detects that the image did not change. Based on patch by Vincent Blankfield. Differential Revision: https://developer.blender.org/D8242
2020-07-11Cleanup: spellingCampbell Barton
2020-07-06Fix T78608: Memory leak in Material properties: "Data from SCE".Bastien Montagne
Caused by recent own refactor of cache presevation handling in readfile, EEVEE's lightcache are weird birds that can also be saved in .blend files, need a special handling for those 'persistent' caches...
2020-07-03Cleanup: do not use magic values for enums...Bastien Montagne
2020-07-03New undo cache management: Add Image IDs.Bastien Montagne
Some notes: * `Image.cache` acts as some kind of 'main' cache, when it is NULL (could not be restored), other caches should also be cleared. Oddly enough, previous code was not clearing **all** caches, could not find any reason for that behavior, so new code does a full clear. * `imamap` is still used for Node previews from scenes' compositor, however this is actually fully disabled in `direct_link_node()`. * For render slots we cannot use offsetof as third part of the cache key, so we are using a hash of the slot's name instead. As far as I can tell, this fixes T76989: Visual glitches when undo after reload multiple images by script (in Material Preview).
2020-07-01Fix missing GPU image free in background modeBrecht Van Lommel
This is legacy code from before Eevee and Workbench rendering in background mode was supported. Avoid memory leak by only queueing GPU textures to be freed when we know they have been allocated. Differential Revision: https://developer.blender.org/D8172
2020-06-23Cleanup: rename 'name' to 'filepath' for DNA typesCampbell Barton
Using 'name' for the full path of a file reads badly, especially when id.name is used in related code.
2020-05-21Refactor: Move NOP idtypes foreach_id to new IDTypeInfo structure.Bastien Montagne
2020-05-14Merge branch 'blender-v2.83-release'Brecht Van Lommel
2020-05-14Fix T66005: crash deleting render slot while rendering to itBrecht Van Lommel
2020-05-01Cleanup: pass const arguments to texture functionsCampbell Barton
2020-04-14Fix T75589: Image Sequences have no data on file load.Bastien Montagne
Issue was with setting of frame to load from an image sequence, synchronization was not done properly at some point, leading to generation of an invalid final filepath to be read.
2020-04-07Cleanup: BLI_path.h function renamingCampbell Barton
Use BLI_path_ prefix, more consistent names: BLI_parent_dir -> BLI_path_parent_dir BLI_parent_dir_until_exists -> BLI_path_parent_dir_until_exists BLI_ensure_filename -> BLI_path_filename_ensure BLI_first_slash -> BLI_path_slash_find BLI_last_slash -> BLI_path_slash_rfind BLI_add_slash -> BLI_path_slash_ensure BLI_del_slash -> BLI_path_slash_rstrip BLI_path_native_slash -> BLI_path_slash_native Rename 'cleanup' to 'normalize', similar to Python's `os.path.normpath`. BLI_cleanup_path -> BLI_path_normalize BLI_cleanup_dir -> BLI_path_normalize_dir BLI_cleanup_unc -> BLI_path_normalize_unc BLI_cleanup_unc16 -> BLI_path_normalize_unc16 Clarify naming for extracting, creating numbered paths: BLI_stringenc -> BLI_path_sequence_encode BLI_stringdec -> BLI_path_sequence_decode Part of T74506 proposal.
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: 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-03-25Cleanup: use 'r_' prefix for output argumentsCampbell Barton
Also pass some args as 'const'.
2020-03-19Cleanup: `make format` after SortedIncludes changeDalai Felinto
2020-03-13Fix stereoscopy drawing for camera backgroundDalai Felinto
Part of the fix was to get gputexture to use an array to accomodate each eye. This takes care of viewports showing individual Left or Right views. For the combined view the fix was in overlay_image.c:camera_background_images_stereo_setup. Note 1: Referece images are still not supporting stereo. Note 2: For painting, and getting image bindcode I'm hardcording a single-view experience. Note 3: Without D6922 stereo is too broken to even test this patch. With D6922 + this patch the fullscreen modes work (anaglyph/interlace not yet). Differential Revision: D7143
2020-03-13Cleanup: pass const args (mostly Scene & RenderData)Campbell Barton
2020-03-11Fix (unreported) bad user refcounting of viewer image ID.Bastien Montagne
This is typical case where you do not want to use actual ID refcounting, but only the shallow 'user real' (aka 'user one') system...
2020-03-06Cleanup: Image: Move to IDTypeInfo and remove unused BKE API.Bastien Montagne
2020-03-06Cleanup: rename 'verify' to 'ensure' for BKE_image_viewer functionsCampbell Barton
2020-03-04Refactor ID make local to use a single flag parameter.Bastien Montagne
Instead of using anonymous booleans flags, also allows to keep the same behavior in all cases, without needing special handling from calling code for our beloved oddballs object proxies...
2020-03-04Cleanup: ID make local: remove `id_in_bmain` argument.Bastien Montagne
This info is now stored in ID tags themselves, so no need to pass an extra anonymous boolean parameter around, yay!
2020-03-04Cleanup: Rename 'make local' functions to new scheme.Bastien Montagne
Also removed some only used locally from the header, `BKE_lib_id.h` is already way too big, no need to overload it with unused things.
2020-02-26Fix T74225: Image (from sequence) cannot be loadedPhilipp Oeser
If the current frame was not in range, the ImageTile's 'ok' was stuck at 0. Similar to the ImageUser being reset to 'ok' in BKE_image_user_frame_calc, we now do for ImageTiles as well. note: the crasher part of T74225 was fixed in rB5c490d437743. Maniphest Tasks: T74225 Differential Revision: https://developer.blender.org/D6939
2020-02-17Fix T73898: UDIM crash changing form tiled to singleCampbell Barton
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-01-29imbuf: support writing grayscale BMP imagesJames Fulop
2020-01-20Fix T73110: UDIM Texture Paint CrashPhilipp Oeser
This would happen if a tile is found on disk, painting would actually request that tile (because corresponding uvs were in that range), but that tile was not added in blenders list of tiles in that Image. Need to also check tile in `image_quick_test` (regardless of iuser having passed). thx @lukasstockner97 for additional input! Maniphest Tasks: T73110 Differential Revision: https://developer.blender.org/D6578
2020-01-16Fix T73133: UDIM texture count in Eevee is limited by OpenGLLukas Stockner
Based on @fclem's suggestion in D6421, this commit implements support for storing all tiles of a UDIM texture in a single 2D array texture on the GPU. Previously, Eevee was binding one OpenGL texture per tile, quickly running into hardware limits with nontrivial UDIM texture sets. Workbench meanwhile had no UDIM support at all, as reusing the per-tile approach would require splitting the mesh by tile as well as texture. With this commit, both Workbench as well as Eevee now support huge numbers of tiles, with the eventual limits being GPU memory and ultimately GL_MAX_ARRAY_TEXTURE_LAYERS, which tends to be in the 1000s on modern GPUs. Initially my plan was to have one array texture per unique size, but managing the different textures and keeping everything consistent ended up being way too complex. Therefore, we now use a simpler version that allocates a texture that is large enough to fit the largest tile and then packs all tiles into as many layers as necessary. As a result, each UDIM texture only binds two textures (one for the actual images, one for metadata) regardless of how many tiles are used. Note that this rolls back per-tile GPUTextures, meaning that we again have per-Image GPUTextures like we did before the original UDIM commit, but now with four instead of two types. Reviewed By: fclem Differential Revision: https://developer.blender.org/D6456
2019-12-20Textures: Support UDIM imagesLukas Stockner
This adds UDIM support to e.g. the Displacement modifier. The implementation is straightforward: If the image is tiled, lookup the tile based on UVs and shift the UVs into the tile's coordinates.
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-11-19Use mutex for lock in image.cRay Molenkamp
Usage of spinlock during heavy IO gave reduced performance see D6267 for details. Reviewed By: sergey Differential Revision: https://developer.blender.org/D6267
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-09-26Fix T67732: metadata "Include Labels" checkbox doesn't work when "Use Strip ↵Sybren A. Stüvel
Metadata" is checked The 'metadata from sequencer strip' system was using the `stampdata_from_template()` function, which ignored the 'Use Labels' setting.
2019-09-14Fix T69857: image.load() API function does not load pixelsBrecht Van Lommel
Broke after recent changes for DNA default initialization.