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-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-18Send sequencer render context as const pointer rather than as valueSergey Sharybin
No functional changes just creepy to send rather huge structure by value.
2014-01-08Sequencer: prevent unknown scopes from crashingCampbell Barton
2014-01-02Fix T38004: size of Waveform, Vectorscope and Histogram is incorrect in VSESergey Sharybin
Made it so scopes image buffer is displayed without any additional scale applied on them, Further tweaks are possible here, but that i'd consider a TODO.
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-13Implement GPU-side ditherSergey Sharybin
Summary: Uses some magic pseudo-random which is actually a texture coordinate hashing function. TODOs: - Dither noise is the same for all the frames. - It's different from Floyd's dither we've been using before. - Currently CPU and GPU dithering used different implementation. Ideally we need to use the same dither in CPU. Reviewers: brecht Reviewed By: brecht Differential Revision: http://developer.blender.org/D58
2013-10-12Option to overlay mask over the footageSergey Sharybin
Currently supports only two modes: - Show alpha channel of the mask - Multiply footage by the mask, which will give you final-looking combined image. TODO: Currently rasterization happens on every redraw, need to cache rasterized mask somewhere to make redraw more realtime.
2013-09-23Fix #36800: closing render window during render crashes, the operator would beBrecht Van Lommel
cancelled before the job, causing invalid access to op->reports in the job thread.
2013-09-05Code cleanup: use boolean instead of int for colormanagementSergey Sharybin
2013-07-21code cleanup: add break statements in switch ()'s, (even at the last case).Campbell Barton
2013-07-13remove NULL checks on fixed size arrays, also was calling ↵Campbell Barton
BLI_testextensie_glob every time in the file selector with a blank string.
2013-06-25Fix #35767: transforming nodes in the node editor changed the wireframe colorBrecht Van Lommel
of the active object in the 3D view. This was due to sharing a global G.moving flag to indicate that transform is active, now it's only set per transform data type so different editors don't influence each other.
2013-06-02code cleanup: remove unused structCampbell Barton
2013-05-18style cleanupCampbell Barton
2013-05-18Fix #35390: sequencer end frame of preview range was not drawing correct.Brecht Van Lommel
2013-05-17Fix for #35390 fix: sequencer scene start/end still did not display when ↵Brecht Van Lommel
they are equal.
2013-05-17code cleanup: use BM_elem_flag_test rather then accessing 'ele->head.hflag'Campbell Barton
2013-05-17Fix #35390: the verticel lines indicating scene start and end frame in theBrecht Van Lommel
sequencer now draw such that a strip that spans this time is contained just between these lines.
2013-04-29Changes to image draw method optionsSergey Sharybin
It's now default to 2D textures, and no AUTO mode at this moment, since detecting which method is the best not so simple. Image drawing could manually be switched to GLSL for tests and feedback, but for default GLSL is not so much great. Reason of this is huge images, where operations like panning becomes dead slow comparing GLSL vs. 2D texture.
2013-04-27Solve possible uninitialized variables usage in sequencer draw functionSergey Sharybin
2013-04-27Some color space issues in sequencer:Sergey Sharybin
Sequencer was always trying to do GLSL color space conversion, not respecting user settings at all. This failed a lot when RGB curves a used in color management settings. Now sequencer will fallback if GLSL can not be used and will also respect user settings (however, draw pixels are not supported, sequencer always uses 2D textures).
2013-04-26Fixes for color management:Sergey Sharybin
- Sequencer preview was clamping float buffers - ACES color space wasn't correct, was noticeable when applying display processor from linear space to display. - Extended sRGB LUT to sRGBf from nuke-default config. Makes sequencer behave much better in sRGB space.
2013-04-10Fix #34941: Space.draw_handler_add now supports PRE_VIEW and POST_VIEW callbacksBrecht Van Lommel
for more editors: timeline, graph, action, NLA, sequencer, image, clip.
2013-04-04Use GLSL display for compositor backdrop and sequencer previewSergey Sharybin
Now only background images remained to be ported. Plus implement GLSL for dithering and RGB curves.
2013-04-02More Histogram fixes:Ton Roosendaal
Sequencer histogram was calculating still badly, now it uses a per-color component counter to calculate the levels (instead of counter for all)
2013-04-02Usability fix, for color grading.Ton Roosendaal
The Scopes and Histogram (Image editor, Sequencer) were not updating on changes in color or display settings. - Missing notifiers for refreshing - Missing code to draw correct for managed byte buffers.
2013-04-01Draw checker backdrop for sequencer when in RGBA modeSergey Sharybin
2013-03-26Bug fix - own collection.Ton Roosendaal
- Scopes in Sequencer were not drawing OK (drawing code assumed alpha) - Histogram in Sequencer now uses same formula to quantify R G B as the other histogram in Blender (per channel). I seriously thought of dropping this, and add the same sidebar here as we have for Image window. However, what stops me is that current code is very optimized, and has OMP hints. Will check instead on cleaner drawing here now.
2013-03-09code cleanup: favor braces when blocks have mixed brace use.Campbell Barton
2013-02-27Added RGBA|RGB channels toggle to sequencer previewSergey Sharybin
Main purpose of this is to be more compatible with older versions of blender (before alpha cleanup) where sequencer used to display premultiplied image on an straight opengl viewport. Now sequencer preview would behave closer to image editor However adding Alpha and R|G|B displays is not so simple because sequencer is using 2D textures. Would be nice to implement this options as well, but this is not so much important IMO. This hall fix - #34453: VSE: Subtract function does not work properly TODO: Make RGBA display default for our startup.blend
2013-01-10Fix #33822: Compositor gets stuck if a sequencer window is also visibleSergey Sharybin
Issue was caused by a fix for rendered sequencer preview mode, which will likely conflict with compositor job. Made it so compositor job will be killed when sequencer uses rendered preview.
2013-01-08Alpha-over images on a black background when in RGB display modeSergey Sharybin
This is actually a bit arbitrary decision and mainly it preserves compatibility with how images were displaying in previous releases. In fact, we actually would need to think about configurable backdrop color and blending mode to be used for display in RGB mode.
2013-01-07Fix #33735: sequencer crash when using rendered previewSergey Sharybin
Issue was caused by preview job starting just moment before sequencer starts rendering. This lead to threading conflicts since renderer itself is not thread-safe. Now all preview jobs would be killed before sequencer starts rendering stack when final render for preview is enabled.
2012-12-17don't draw the sequencer grease pencil panel when in the channel view or scopes.Campbell Barton
also don't draw grease pencil over scopes.
2012-12-17fix [#33501] Grease pencil in OpenGL renderCampbell Barton
With the view3d 'Render Only' option, grease pencil wouldn't draw, but for OpenGL render it did. Since grease pencil can be very useful in opengl renders, enable grease pencil drawing with 'Render Only' option in the viewport, and add a checkbox in the grease pencil header not to draw (unchecking each layer is annoying and applies to all spaces).
2012-11-28Fix #33330: Proxies are not built in Sequencer if preview is visibleSergey Sharybin
Was own regression when was solving conflict between sequencer preview and compositor jobs. Made it so now only compositor jobs are being killed from sequencer preview.
2012-11-21Fix #33253: VSE preview doesn't display compositorSergey Sharybin
There were two issues in scene strip rendering: - It will skip rendering if scene doesn't have camera but uses compositor - G.is_break will cancel preview rendering Also removed Use Sequencer from scene's strip settings, it's not supported.
2012-11-09Sequencer: disabled sequencer recursion and corrected rendered preview modeSergey Sharybin
Sequencer recursion was never actually supported and only gives lots of issues. Disabled it now, so users are not getting confused by semi-working stuff. Also made a correction to rendered sequencer preview, so now using scene strip in it's own sequencer will work properly (it produced black frames before). This required killing compositor jobs since they could be using the same render result as renderer called from sequencer uses. Small improvements could be: - Add slight delay before compositor job starts handling nodes so killing this job would be fast - Tag compositor to be updated after preview was fully rendered.
2012-11-07code cleanup: use min/max functions rather then macros.Campbell Barton
2012-10-26style cleanupCampbell Barton
2012-10-23use min_ max_ functions in more places.Campbell Barton
also fix minor error in MOD decimate when the modifier did nothing the reported face count would be wrong.
2012-10-23rename api functions...Campbell Barton
- minf, maxf, mini, maxi --> min_ff, max_ff, min_ii, max_ii
2012-10-21style cleanup: trailing tabs & expand some non prefix tabs into spaces.Campbell Barton
2012-10-04Fix #32755: Stripes in Metastrip can not be moved on other channel with ↵Sergey Sharybin
mouse (grab tool) The issue was caused by SEQ_BEGIN macro modifying sequence's depth which ruined transformation routines. Used own DFS instead which doesn't modify sequences. Also corrected some typos in api and comments.
2012-09-24Proper fix for #32626: TIFF renders are limited to 8 bit even when we choose 16.Sergey Sharybin
Color management would be applied on both of float and byte buffers on image save in cases if file format doesn't require linear float buffer and if image is saving as render result. This solves both initial report issue and TODO marked in previous fix. Also de-duplicated image buffer color managing code and gave some more meaningful names for few functions. Also wrote documentation around this function, so current assumptions about spaces should be clear enough. Made regression tests by saving EXR/PNG images to all supported format and rendering OpenGL/Normal animation, in all cases seems everything is fine, but more tests for sure would be welcome.
2012-09-15code cleanup: replace macro for BLI_rect size/center with inline functions.Campbell 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-13fix for drawing non 1:1 aspect masks, transform and selection still need ↵Campbell Barton
support.
2012-09-06fix for crash in sequencer introduced with recent cache addition,Campbell Barton
- running undo with metastrips would crash immediately. - freeing a strip without a scene would crash (clipboard does this).
2012-08-23Sequencer: display color sample information when mouse is holded downSergey Sharybin
Behaves in exactly the same way as image editor's color sampling. Would be nice to display color managed color too, but that's for tomato branch.