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
2013-12-26Threaded object update and EvaluationContextSergey Sharybin
Summary: Made objects update happening from multiple threads. It is a task-based scheduling system which uses current dependency graph for spawning new tasks. This means threading happens on object level, but the system is flexible enough for higher granularity. Technical details: - Uses task scheduler which was recently committed to trunk (that one which Brecht ported from Cycles). - Added two utility functions to dependency graph: * DAG_threaded_update_begin, which is called to initialize threaded objects update. It will also schedule root DAG node to the queue, hence starting evaluation process. Initialization will calculate how much parents are to be evaluation before current DAG node can be scheduled. This value is used by task threads for faster detecting which nodes might be scheduled. * DAG_threaded_update_handle_node_updated which is called from task thread function when node was fully handled. This function decreases num_pending_parents of node children and schedules children with zero valency. As it might have become clear, task thread receives DAG nodes and decides which callback to call for it. Currently only BKE_object_handle_update is called for object nodes. In the future it'll call node->callback() from Ali's new DAG. - This required adding some workarounds to the render pipeline. Mainly to stop using get_object_dm() from modifiers' apply callback. Such a call was only a workaround for dependency graph glitch when rendering scene with, say, boolean modifiers before displaying this scene. Such change moves workaround from one place to another, so overall hackentropy remains the same. - Added paradigm of EvaluaitonContext. Currently it's more like just a more reliable replacement for G.is_rendering which fails in some circumstances. Future idea of this context is to also store all the local data needed for objects evaluation such as local time, Copy-on-Write data and so. There're two types of EvaluationContext: * Context used for viewport updated and owned by Main. In the future this context might be easily moved to Window or Screen to allo per-window/per-screen local time. * Context used by render engines to evaluate objects for render purposes. Render engine is an owner of this context. This context is passed to all object update routines. Reviewers: brecht, campbellbarton Reviewed By: brecht CC: lukastoenne Differential Revision: https://developer.blender.org/D94
2013-12-22Style Cleanup: remove preprocessor indentation (updated wiki style guide too)Campbell Barton
2013-11-29Code cleanup: avoid using function calls within macrosCampbell Barton
2013-09-12code cleanup: headers - doxy comments.Campbell Barton
2013-07-13fix for 2 bugs in animation playbackCampbell Barton
- reading bmp images was failing (needed to increase the size of the header to 64 bytes) - the dnd image was being incorrectly checked (was always returning true even when none was used).
2013-05-28code cleanup: comment/remove unused definesCampbell Barton
2013-03-18code cleanupCampbell Barton
2013-03-09Blender Anim player fixes:Ton Roosendaal
- RGBA images (without alpha) now don't draw with alpha blending enabled - Checkerboard backdrop for alpha images now shows on size of image - Window always clears now, in very dark grey (so you can see black) - On resizing window, the aspect of image is being kept, keeping the image always visible within the window frame - Image now centers OK. - On pause, playback now halts (it was drawing same image all the time)
2013-03-09code cleanup: favor braces when blocks have mixed brace use.Campbell Barton
2013-03-08Feature request:Ton Roosendaal
Blender's anim player (blender -a) now allows drop of image or movie file. It then restarts itself completely (close window, open new).
2013-03-05patch [#34103]Campbell Barton
from Lawrence D'Oliveiro (ldo) More use of bool type, necessitating adding inclusion of BLI_utildefines.h, or moving it up in the inclusion order if it was already included, in various places - storage.c: make some variables only used in bli_builddir local to that - storage.c: BLI_file_descriptor_size should allow 0 as a valid file descriptor - path_util.c: make pointers to non-reentrant storage returned from folder routines const, necessitating making variables holding these returned pointers const elsewhere as well - path_util.c: BLI_string_to_utf8 closes iconv context in case of conversion error - blf_lang.c: fill_locales routine now has its own "languages" local variable to construct paths (was stealing internal storage belonging to BLI_get_folder before)
2013-02-28Draw a checker board as a background for animation playerSergey Sharybin
This makes it easier and useful to investigate alpha channels, without this straight colors are displayed on the screen which are completely useless in case of player.
2013-01-16style cleanupCampbell Barton
2012-12-06fix playanim - up/down keys were not stepping 10 frames as intended.Campbell Barton
2012-11-21Fix for #33250: animation player shortcut keys not working on OS X.Brecht Van Lommel
2012-11-18style cleanup: comments & spellingCampbell Barton
2012-11-17playanim: make alphanumeric +/- and numpad +/- work the same way.Campbell Barton
better for users without a numpad. - Ctrl +/-: Zooms - +/-: Controls playback speed
2012-11-17playanim move zooming into a static function, the switch statement ↵Campbell Barton
passthrough was unnecessarily confusing.
2012-11-17animation playback window now pauses properly.Campbell Barton
2012-11-17fix for 'Playanim' playing past the last frame of an animation. also print ↵Campbell Barton
-s and -e in help message.
2012-11-15Image thread safe improvementsSergey Sharybin
This commit makes BKE_image_acquire_ibuf referencing result, which means once some area requested for image buffer, it'll be guaranteed this buffer wouldn't be freed by image signal. To de-reference buffer BKE_image_release_ibuf should now always be used. To make referencing working correct we can not rely on result of image_get_ibuf_threadsafe called outside from thread lock. This is so because we need to guarantee getting image buffer from list of loaded buffers and it's referencing happens atomic. Without lock here it is possible that between call of image_get_ibuf_threadsafe and referencing the buffer IMA_SIGNAL_FREE would be called. Image signal handling too is blocking now to prevent such a situation. Threads are locking by spinlock, which are faster than mutexes. There were some slowdown reports in the past about render slowdown when using OSX on Xeon CPU. It shouldn't happen with spin locks, but more tests on different hardware would be really welcome. So far can not see speed regressions on own computers. This commit also removes BKE_image_get_ibuf, because it was not so intuitive when get_ibuf and acquire_ibuf should be used. Thanks to Ton and Brecht for discussion/review :)
2012-11-03code cleanup: float <> double conversion.Campbell Barton
2012-10-12code cleanup: video playback move frame step into the PlayState struct.Campbell Barton
2012-09-18code cleanup: warning and styleCampbell Barton
2012-09-15Color Management, Stage 2: Switch color pipeline to use OpenColorIOSergey Sharybin
Replace old color pipeline which was supporting linear/sRGB color spaces only with OpenColorIO-based pipeline. This introduces two configurable color spaces: - Input color space for images and movie clips. This space is used to convert images/movies from color space in which file is saved to Blender's linear space (for float images, byte images are not internally converted, only input space is stored for such images and used later). This setting could be found in image/clip data block settings. - Display color space which defines space in which particular display is working. This settings could be found in scene's Color Management panel. When render result is being displayed on the screen, apart from converting image to display space, some additional conversions could happen. This conversions are: - View, which defines tone curve applying before display transformation. These are different ways to view the image on the same display device. For example it could be used to emulate film view on sRGB display. - Exposure affects on image exposure before tone map is applied. - Gamma is post-display gamma correction, could be used to match particular display gamma. - RGB curves are user-defined curves which are applying before display transformation, could be used for different purposes. All this settings by default are only applying on render result and does not affect on other images. If some particular image needs to be affected by this transformation, "View as Render" setting of image data block should be set to truth. Movie clips are always affected by all display transformations. This commit also introduces configurable color space in which sequencer is working. This setting could be found in scene's Color Management panel and it should be used if such stuff as grading needs to be done in color space different from sRGB (i.e. when Film view on sRGB display is use, using VD16 space as sequencer's internal space would make grading working in space which is close to the space using for display). Some technical notes: - Image buffer's float buffer is now always in linear space, even if it was created from 16bit byte images. - Space of byte buffer is stored in image buffer's rect_colorspace property. - Profile of image buffer was removed since it's not longer meaningful. - OpenGL and GLSL is supposed to always work in sRGB space. It is possible to support other spaces, but it's quite large project which isn't so much important. - Legacy Color Management option disabled is emulated by using None display. It could have some regressions, but there's no clear way to avoid them. - If OpenColorIO is disabled on build time, it should make blender behaving in the same way as previous release with color management enabled. More details could be found at this page (more details would be added soon): http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Color_Management -- Thanks to Xavier Thomas, Lukas Toene for initial work on OpenColorIO integration and to Brecht van Lommel for some further development and code/ usecase review!
2012-09-15quiet -Wmissing-prototypes warnings, and enable this warning by default for ↵Campbell Barton
C with gcc. helps for finding unused functions and making functions static, also did some minor code cleanup.
2012-09-13code cleanup: reduce calls to CTX_ functions inline, add some docs to mask ↵Campbell Barton
rasterizer.
2012-09-04code cleanup: move file string defines into BLI_path_utils.h, ↵Campbell Barton
BKE_utildefines is now unused but keep incase we want to add defines there later.
2012-08-24Code cleanup: remove some unused code.Brecht Van Lommel
2012-08-21Fix #32370: compiler error in wm_playanim.c due to conflicting Carbon ID typeBrecht Van Lommel
from Quicktime headers. However the Quicktime init/exit is no longer needed here, it happens in IMB_init/IMB_exit now, so removed that code.
2012-08-06bring back the play option from 2.4xCampbell Barton