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
2014-02-03Code cleanup: use bools where possibleCampbell Barton
2014-01-30Code cleanup: add BLI_testextensie_n, replacing multuple calls to ↵Campbell Barton
BLI_testextensie also use attributes for BLI path functions
2014-01-29UI: Refactor timecode functions into BLI_timecodeCampbell Barton
- deduplicate timecode_simple_string from image.c - replace V2D_UNIT_SECONDSSEQ with V2D_UNIT_SECONDS - avoid possible buffer overflow bugs (sprintf -> BLI_snprintf) - remove option not to use timecode and split into 2 functions Patch D227 by Andrew Buttery with own refactoring.
2014-01-21Code Cleanup: use bool for return values and correct commentsCampbell Barton
also remove CDDM_Check, theres no need for it.
2014-01-15Python/Depsgraph: bpy.data.*.is_updated now detects add/remove of any datablock.Tom Edwards
Previously this only worked for some datablocks relevant to rendering, now it can be used to detect if any type of datablock was added or removed (but not yet to detect if it was modified, we need many more depsgraph tags for that). Most of the changes are some function parameter changes, the important parts are the DAG_id_type_tag calls. Reviewed By: sergey, brecht Differential Revision: https://developer.blender.org/D195
2014-01-13Code Cleanup: replace checks for ima->source with BKE_image_is_animatedCampbell Barton
2014-01-13Fix crash happening on render after recent imbuf PERSISTENT flagSergey Sharybin
2014-01-13Fix T38040: Crash after loading big image file in compositorSergey Sharybin
Issue was caused by cache limitor removing viewer image buffer from the memory during compositing. Now made it so all viewer images are persistent in the memory. This solves the crash mentioned above and also makes it so render/compo results are never lost. Further tweaks are possible, but pretty much happy now, at least no stoppers for work are there.
2014-01-03Fix T38045: Clone stamp crashesSergey Sharybin
Issue seems to be caused by thread-unsafe IMB_freeImBuf. Now use generic BKE_image_release_ibuf to de-reference image buffer which was acquired from image datablock.
2014-01-01Fix deadlock happening when using Save Buffers for renderSergey Sharybin
Summary: Issue was caused by the same tile being written twice to the EXR file. This was happening because of partial update of work-in-progress tiles was merging result to the final render result in order to make color management pipeline happy. We need to avoid such a merges and keep memory usage as low as possible when Save Buffers is enabled. Now render pipeline will allocate special display buffer in render layer which will contain combined pass in the display space. This keeps memory usage as low as we can do at this moment. There's one weak thing which is changing color management settings during rendering would lead to lossy conversion. This is because render result's display buffer uses color space from the time when rendering was invoked. This is actually what was happening in previous release already actually so not a big issue. Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D162
2013-12-19Followup for fix T37718: image was not saving with proper settings second timeSergey Sharybin
This was actually a regression after color management re-implementation, need to copy settings from saved image buffer to an original one since they might be modified during save. Also noticed image format planes detection didn't work properly from an image buffer. Made it so save operator works fine now, but also marked a TODO in BKE_imbuf_to_image_format() which needs to be investigated further.
2013-12-18Style Cleanup: minor edits in recent changesCampbell Barton
2013-12-17Changes to partial update during renderingSergey Sharybin
Summary: Mainly addressed to solve old TODO with color managed fallback to CPU mode when displaying render result during rendering. That fallback was caused by the fact that partial image update was always acquiring image buffer for composite output and was only modifying display buffer directly. This was a big issue for Cycles rendering which renders layers one by one and wanted to display progress of each individual layer. This lead to situations when display buffer was based on what Cycles passes via RenderResult and didn't take layer/pass from image editor header into account. Now made it so image buffer which partial update is operating with always corresponds to what is set in image editor header. To make Cycles displaying progress of all the layers one by one made it so image_rect_update switches image editor user to newly rendering render layer. It happens only once when render engine starts rendering next render layer, so should not be annoying for navigation during rendering. Additional change to render engines was done to make it so they're able to merge composite output to final result without marking tile as done. This is done via do_merge_result argument to end_result() callback. This argument is optional so should not break script compatibility. Additional changes: - Partial display update for Blender Internal now happens from the same thread as tile rendering. This makes it so display conversion (which could be pretty heavy actually) is done in separate threads. Also gives better UI feedback when rendering easy scene with small tiles. - Avoid freeing/allocating byte buffer for render result if it's owned by the image buffer. Only mark it as invalid for color management. Saves loads of buffer re-allocations in cases when having several image editors opened with render result. This change in conjunction with the rest of the patch gave around 50%-100% speedup of render time when displaying non-combined pass during rendering on my laptop. - Partial display buffer update was wrong for buffers with number of channels different from 4. - Remove unused window from RenderJob. - Made image_buffer_rect_update static since it's only used in single file. Reviewers: brecht Reviewed By: brecht CC: dingto Differential Revision: http://developer.blender.org/D98
2013-12-17Fix T37718: Texture compression missingSergey Sharybin
Make sure image will saved as (not over) after changing it's type to Generated by clearing image's path in signal handler.
2013-12-17Code Cleanup: comment unused defineCampbell Barton
2013-12-16Fix T37826: Opening a new image in the image editorSergey Sharybin
Cast dimensions to size_t before multiplication. Also made add_ibuf_size survive cases when image buffer allocation failed.
2013-12-16Missing NULL-pointer check in BKE_image_free_anim_ibufsSergey Sharybin
2013-12-13Image cache rewrite to using generic movie cacheSergey Sharybin
Summary: Behaves very much the same as cache for Movie Clip datablock: - Image now have `MovieCache *cache` field which replaced legacy `ListBase ibufs`. This allows image datablock to easily keep of image buffers which are owned by itself. This field isn't saved to the file and getting restored on undo steps. However, cache limit is global for movies, sequences and image datablocks now. So overall cached image buffers size will not go above cache limit size in user preferences. - Image buffers which are marked as BITMAPDIRTY will never be freed from the cache. - Added utility function to iterate over image buffers saved in movie cache. - Movie cache cleanup check callback now have ImBuf argument which can be used in a condition of cleanup. - Added some utility functions which replaces legacy ibufs iterations with image cache iteration which happens from inside a lock. - Fixed `image_mem_size()` which was only counting one of the buffers if both float and byte buffer present. Additional notes: - `BKE_image_get_first_ibuf()` is rather stupid, but direct access to ibufs->first was also the same stupid idea. Would consider avoid this function is another project. - There are some places which doesn't look threadsafe, but they already were not so much threadsafe anyway before. So think not a big deal with solving this later. Finally solves infinite memory usage by image sequences! :) Reviewers: brecht, campbellbarton Reviewed By: brecht CC: sebastian_k Differential Revision: http://developer.blender.org/D95
2013-12-12Code cleanup: indent preprocessor directives inside #ifdefSergey Sharybin
2013-12-02Blender Font (BLF): add length argument to string width/height functionsCampbell Barton
This also fixes a crash editing buttons longer then UI_MAX_DRAW_STR
2013-11-26Code cleanup: Typo fix for image function, patch by kgeogeo.Thomas Dinges
Differential Revision: http://developer.blender.org/D46
2013-11-25Tweaks to PNG file outputSergey Sharybin
- Made tooltip for compression a bit more clear. - Use default compression of 15%. Gives around two times boost on export movie file here in test with only 10% increased file size. Reviewers: Jonathan Williamson
2013-10-31code cleanup: spellingCampbell Barton
2013-10-28Fix #37221: Multilayer EXR inputs generate pink frame/last displayed frame ↵Sergey Sharybin
when using an image sequence offset generally speaking, if multilayer image fails to load for current frame doesn't mean anything bad. It might be used to make it so image sequence is being alpha-overed somewhere in the middle of scene time. Made it so if the whole file fails to load, image node will deliver black transparent color, the same what happens for regular (non-multilayer images). Also needed to tweak code in load_multilayer_sequwnce to make sure no cached frames are pointing to a freed memory.
2013-10-11adding WITH_IMAGE_OPENIMAGEIO and removing the PSD build optionDalai Felinto
As per Brecht van Lommel's suggestion.
2013-10-09Photoshop PSD supportDalai Felinto
We now support the combined layer of Photoshop files (stored as layer 0 in the file). This way users can keep their files as multilayer PSD and Blender always handle them as flat images. For perfect alpha this requires an OpenImageIO update: https://github.com/OpenImageIO/oiio/commit/342cc2633ff590a3bb278481c61ae798c7148361 Photoshop sample files: https://github.com/OpenImageIO/oiio-images Brecht has some pending fixes to push for OIIO as well, so we may as well wait to update our libraries. What works: =========== * 8bit images (with or without alpha) * 16bits images (alpha discarded) * Photoshop files saved with 'Maximum Compatibility' * Cycles, Blender internal, BGE (and player) Known limitations (due to OIIO dependency): ========================= * Images with less than 4 channels show a wrong thumbnail (bug may be in OIIO) * Packed images are not supported * We do not write PSD files. Note: old Blenders have support for PSD via Quicktime library. But due to license issues this was discontinued. Many thanks for Brecht van Lommel for reviewing the patch, suggesting multiple improvements and to help solving the alpha issue.
2013-09-10startup.blend: save images as RGBA by default, to avoid losing data whenBrecht Van Lommel
forgetting to change it from RGB when painting images or saving renders. This makes more sense in the new alpha pipeline, renders no longer contain an alpha channel that does not match the RGB channels, so saving files as RGBA should give the expected results when opening them in other applications.
2013-09-02Fix for the BKE_image_walk_all_users function: This included a check for ↵Lukas Toenne
movie/sequence image types meant for the original use to set IMA_NEED_FRAME_RECALC flag. But the function name suggests it should be generic, so better move this filter into the callback.
2013-08-27ghash/bli-listbase edits, rename BLI_ghash_pop -> BLI_ghash_popkey (since it ↵Campbell Barton
takes a key as an arg and isnt popping any element from the hash as you might expect). add BLI_pophead/tail, since getting the first element from a list and removing it is a common task.
2013-08-12Fix #36408: Setting `image.colorspace_settings.name` changes saved alphaSergey Sharybin
Issue was caused by reload caused by input colorspace change. For generated images generated alpha flags weren't saved to DNA, which lead to fallback from 32 bit depth to 24 when doing any kind reload of generated image. The same alpha loss happens when you save .blend file with generated images. Now added generated depth to DNA, so reload image and .blend file wouldn't loss alpha.
2013-08-08disable cycles when building without python, also use const for function ↵Campbell Barton
args in more places.
2013-08-04more consistent use of checks of BLI_open(), check 'fd < 0' rather then -1. ↵Campbell Barton
packedfile incorrectly treated 0 as an error value. best not be vague/sloppy with this.
2013-07-21code cleanup: add break statements in switch ()'s, (even at the last case).Campbell Barton
2013-07-15fix for sequence strips being given non utf8 names, where the filepath ↵Campbell Barton
wasn't utf8. also correct bad assumption in BKE_image_load_exists() that all paths are relative to the current blend file.
2013-07-13remove redundant null checks and avoid divide by zero in driver evaluationCampbell Barton
2013-05-28move BLO_sys_types.h -> BLI_sys_types.h (it had nothing todo with loading)Campbell Barton
remove MEM_sys_types.h which was a duplicate.
2013-05-23Fix #35449: image sequences to drive e.g. particle length or used in modifiersBrecht Van Lommel
were no properly updating when rendering animations. The render engine was only updating the image user current frame on images used by material textures. Now moved the function that updates all from the editors to blenkernel level and do it on all frame changes.
2013-03-31style cleanupCampbell Barton
2013-03-29misc minor edits.Campbell Barton
- pass string size to BLI_timestr() to avoid possible buffer overrun. - quiet warning for mingw. - include guards for windows utf conversion funcs. - fix for mistage in edge-angle-selection check. - some style cleanup.
2013-03-27Fix #34779: Channels disappear from multilayer exr sequenceSergey Sharybin
Issue was caused by delayed or missing image user frame number update, which lead to image loading failure in cases node is updating from image signal callback. Solved in a way that file from image datablock is used for sockets detection instead of loading image for current frame.
2013-03-22code cleanup: use NULL rather then 0 for pointers, and make vars static ↵Campbell Barton
where possible. also found unintentionally defined enum/struct variables that where only meant to be defining the type.
2013-03-18code cleanupCampbell Barton
2013-03-18Merge of the PyNodes branch (aka "custom nodes") into trunk.Lukas Toenne
PyNodes opens up the node system in Blender to scripters and adds a number of UI-level improvements. === Dynamic node type registration === Node types can now be added at runtime, using the RNA registration mechanism from python. This enables addons such as render engines to create a complete user interface with nodes. Examples of how such nodes can be defined can be found in my personal wiki docs atm [1] and as a script template in release/scripts/templates_py/custom_nodes.py [2]. === Node group improvements === Each node editor now has a tree history of edited node groups, which allows opening and editing nested node groups. The node editor also supports pinning now, so that different spaces can be used to edit different node groups simultaneously. For more ramblings and rationale see (really old) blog post on code.blender.org [3]. The interface of node groups has been overhauled. Sockets of a node group are no longer displayed in columns on either side, but instead special input/output nodes are used to mirror group sockets inside a node tree. This solves the problem of long node lines in groups and allows more adaptable node layout. Internal sockets can be exposed from a group by either connecting to the extension sockets in input/output nodes (shown as empty circle) or by adding sockets from the node property bar in the "Interface" panel. Further details such as the socket name can also be changed there. [1] http://wiki.blender.org/index.php/User:Phonybone/Python_Nodes [2] http://projects.blender.org/scm/viewvc.php/trunk/blender/release/scripts/templates_py/custom_nodes.py?view=markup&root=bf-blender [3] http://code.blender.org/index.php/2012/01/improving-node-group-interface-editing/
2013-03-15code cleanup: rename BKE_mesh_to_curve_ex --> BKE_mesh_to_curve_nurblist,Campbell Barton
also correct odd indentation.
2013-03-09use 'bool' for BLI_/BKE_ functions.Campbell Barton
2013-03-09code cleanup: favor braces when blocks have mixed brace use.Campbell Barton
2013-02-19Fixes for alpha mode do_versions codeSergey Sharybin
Before this change only old flag "Premultiply" was used to detect alpha mode, which is not enough actually. Now the logic here is: - If "Premultiply" was enabled it is likely float image with straight alpha, which shall be premultiplied before usage. In this case image/sequence Alpha Mode is set to Straight. - Otherwise use default alpha mode for image format based on an extension. This could fail in some cases like TIFF, but this wasn't handled fully correct in older blender anyway. Initial discovered issue was that EXR images saved in older Blender versions were set to Straight alpha mode, which is obviously a straight way to lots of headache.
2013-02-12Fix incorrect display of Sequence layer when rendering animation andSergey Sharybin
float/byte render results were mixed.
2013-02-08Fix #33747: do better backwards compatibility for image transparency changes.Brecht Van Lommel
The use alpha option moved from the texture datablock to the image, and now it will duplicate the image datablock in case you have one texture using alpha and the other not.
2013-02-05Fix #34040: Moving Normal Node with enabled Cycles Material Preview crashesSergey Sharybin
Issue was caused by couple of circumstances: - Normal Map node requires tesselated faces to compute tangent space - All temporary meshes needed for Cycles export were adding to G.main - Undo pushes would temporary set meshes tessfaces to NULL - Moving node will cause undo push and tree re-evaluate fr preview All this leads to threading conflict between preview render and undo system. Solved it in way that all temporary meshes are adding to that exact Main which was passed to Cycles via BlendData. This required couple of mechanic changes like adding extra parameter to *_add() functions and adding some *_ex() functions to make it possible RNA adds objects to Main passed to new() RNA function. This was tricky to pass Main to RNA function and IMO that's not so nice to pass main to function, so ended up with such decision: - Object.to_mesh() will add temp mesh to G.main - Added Main.meshes.new_from_object() which does the same as to_mesh, but adds temporary mesh to specified Main. So now all temporary meshes needed for preview render would be added to preview_main which does not conflict with undo pushes. Viewport render shall not be an issue because object sync happens from main thread in this case. It could be some issues with final render, but that's not so much likely to happen, so shall be fine. Thanks to Brecht for review!