Commit Graph

11497 Commits

Author SHA1 Message Date
Brecht Van Lommel 4759f70e33 Fix crash editing mask with no image in the image editor. 2012-09-18 19:20:21 +00:00
Campbell Barton 8e93f017ac do_version fix files with bad keyblock uid caused by byg [#31569] 2012-09-18 14:40:02 +00:00
Campbell Barton a53351d204 don't divide by zero in get_ss_weights() which would set values - only to be overwritten.
useful when using --debug-fpe since this isnt and exceptional case.
2012-09-18 12:53:41 +00:00
Sergey Sharybin 3069db2216 Revert part of rev50719, it's not actually needed and it always
invalidates render result display buffers.
2012-09-18 11:21:57 +00:00
Sergey Sharybin 3d9d7275b5 Color Management: fixed crash when changing display device in screenshot save operator
In fact, color management settings shouldn't be editing from this operator since
screenshot is using OpenGL which is in sRGB space, but fixed issues with Image
Format initialization and added NULL pointer checks.
2012-09-18 10:11:46 +00:00
Sergey Sharybin c50c654543 Fixed missing display buffer invalidation when rendering sequencer animation 2012-09-18 08:40:53 +00:00
Campbell Barton d3737de8c2 fix for a strange linking error where set_property() in source/blender/blenkernel/intern/property.c would get mixed up with an X11 function of the same name. it crashed blender loading on my system.
Give functions in property.c more unique names.
2012-09-18 04:35:30 +00:00
Campbell Barton a4ff2b9140 code cleanup: warnings 2012-09-18 03:15:12 +00:00
Campbell Barton 7a06630411 fix for scene not copying image format color management for settings. 2012-09-18 03:14:31 +00:00
Campbell Barton 47677909c7 fix own error in r49994 2012-09-18 01:24:32 +00:00
Campbell Barton aff591c6e1 code cleanup: typos and set exceptional cases of zero length normals as UNLIKELY(). 2012-09-17 22:22:06 +00:00
Thomas Dinges 058da985ff Release Cycles:
* Bump BLENDER_VERSION_CYCLE to rc. BCon4, bugfixes only.
2012-09-17 10:50:13 +00:00
Sergey Sharybin dd62f5b7b8 Remove obsolete code from BKE_tracking_marker_clamp 2012-09-17 07:12:02 +00:00
Bastien Montagne e5d0dcb8d8 Few cleanup in matrix mathutils (make mul_m3_m3m4 and mul_m4_m3m4 consistant with other similar funcs, mainly copy-safe [i.e. you can use the same matrix as operand and result, saves lines in some already over-complicated code!]). 2012-09-16 15:25:28 +00:00
Campbell Barton b3d2ea28ce speedup for vertex parent lookups, were looping over array elements when it wasn't needed for lattice and curves, and in some cases meshes.
do dirrect array lookups instead where possible.
2012-09-16 08:25:31 +00:00
Joshua Leung 58d520324e Code cleanup - remove some obsolete code 2012-09-16 07:14:15 +00:00
Campbell Barton 2fb8292005 style cleanup 2012-09-16 04:58:18 +00:00
Campbell Barton d724d0adfe code cleanup: quiet warnings for gcc's -Wundef, -Wmissing-declarations 2012-09-16 00:26:36 +00:00
Campbell Barton 518c80fc94 remove unused parts of raskter module. 2012-09-15 23:05:34 +00:00
Campbell Barton 232571c61a code cleanup: replace macro for BLI_rect size/center with inline functions. 2012-09-15 11:48:20 +00:00
Campbell Barton 219b748dfc fix for bug in txt_undo_read_uint32() reading 4byte unicode values. 2012-09-15 10:40:05 +00:00
Sergey Sharybin a73dd3476e Color Management, Stage 2: Switch color pipeline to use OpenColorIO
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-15 10:05:07 +00:00
Sergey Sharybin 0bf6007e3b Silence compiler's warnings. 2012-09-15 08:35:26 +00:00
Sergey Sharybin cdb144ade9 Merging r50618 through r50624 from trunk into soc-2011-tomato 2012-09-15 07:53:34 +00:00
Campbell Barton fed6b2bcb7 code cleanup: remove paranoid/invalid NULL checks and also reduce some unneeded size_t -> int conversions. 2012-09-15 07:31:17 +00:00
Campbell Barton 19863a7268 fix for 3 obvious mistakes/bugs. 2012-09-15 06:30:40 +00:00
Sergey Sharybin beba8014e4 Merging r50602 through r50617 form trunk into soc-2011-tomato 2012-09-15 06:24:48 +00:00
Campbell Barton aa364bb366 fix incorrect macro for mask handle selection checking. 2012-09-15 06:10:48 +00:00
Campbell Barton d98dd2585f code cleanup: replace memcpy for copy_v3_v3(), and fix for unlikely crash - if (ob->mat == NULL && ob->totcol) 2012-09-15 06:03:49 +00:00
Sergey Sharybin c73cd2fb6a Silent compiler's warnings about tracking module 2012-09-15 05:01:52 +00:00
Campbell Barton f9d9459e3f code cleanup: modify DO_INLINE define to not use __inline with mingw
make RegisterBlendExtension_Fail a static func
       u
2012-09-15 02:29:47 +00:00
Campbell Barton e75f5c8208 quiet -Wmissing-prototypes warnings, and enable this warning by default for C with gcc.
helps for finding unused functions and making functions static, also did some minor code cleanup.
2012-09-15 01:52:28 +00:00
Tamito Kajiyama 4172997675 Merged changes in the trunk up to revision 50607.
Conflicts resolved:
source/blender/blenloader/intern/readfile.c
2012-09-15 00:15:24 +00:00
Sergey Sharybin be5a35d916 Color Management: get rid of image buffer's profile flag
Currently float buffers are always linear, space of byte buffer is defined by
rect_colorspace property.

Replaced logic of IMB_rect_from_float and IMB_float_from_rect to use this
assumptions (before it was special function used in some areas only, now it's
default behavior).

Almost all functions from ImBuf module which are actually used are got rid from
profile flag. Only remained issue is IMB_float_profile_ensure which only used by
CIneon/DPX exporter which is broken for a while already. Need to be fixed
separately.

This also fixed clone brush when cloning byte image on top of float, before
this result would be gamma-corrected twice.
2012-09-14 14:37:19 +00:00
Sergey Sharybin d7f55cff20 Color Management: image buffer loading reworked
Before this color space settings in image/movie clip data blocks
defined space in which loaded image buffer is, based on whether
this buffer contains float or byte buffer. This didn't work well
for formats like 16bit PNG, which are in fact non-linear formats
but were represented in Blender as float buffers.

Now image buffer loader is responsible to set up input default
color space for image/movie clip data blocks, which could be
based on format itself only or on particular file properties.

This means image/movie clip data blocks' input colorspace will
be initialized at time first image buffer is loaded.

This also resolves old confusing thing with image buffer's profile
flag, which in could have been non-linear for image buffer which
contained float buffer only -- this happened in mentioned case of
16 bit PNG format, i.e. Now float buffer would always be linear
which should make it easier to get rid of image buffer's profile.
2012-09-14 14:36:47 +00:00
Sergey Sharybin cd4ffe496a Sequencer: clear cache and animation buffers for strips outside of cursor when rendering
This avoids having bunch of cached images when doing animation rendering,
keeping all the memory available for rendered itself.

This keeps memory usage low when rendering huge edits with mixed
scenes and movie strips.

This should not affect on sped of video encoding, which was confirmed by
some own tests.

--
svn merge -r50051:50052 ^/branches/soc-2011-tomato
2012-09-14 14:28:24 +00:00
Sergey Sharybin 58da4a1760 Merging r50576 through r50587 from trunk into soc-2011-tomato 2012-09-14 14:05:05 +00:00
Campbell Barton 7a71f58af3 fixes for NULL checks, remove some redundant checks and add some in that have been removed by accident as code has been updated. 2012-09-14 06:17:14 +00:00
Campbell Barton 3957efdd38 fix for out-of-bounds checks for fcurve modifier and poselib, also check for NULL members of avi structure (since they are checked for NULL later.) 2012-09-14 06:15:46 +00:00
Campbell Barton 883117077b fix for 2 crashes freeing masks
- freeing a mask from RNA BKE_libblock_free() twice on the mask.
- loading a new blend file would only free the mask and not unlink it from nodes - it would access freed memory.
2012-09-14 01:15:08 +00:00
Sergey Sharybin 5badefa8cf Color Management: fix crash when strip failed to render
In this case sequencer would allocate empty image buffer which used to not to
have assigned color spaces but it was marked as non-linear float.

Assuming black would always be black in sequencer's color space no additional
transformation for display is needed.

Solved by removing NOLINEAR_FLOAT flag from image buffers and using check
image buffer's float_colorspace for NULL when needed to check whether float
buffer is linear or not.
2012-09-13 14:52:25 +00:00
Sergey Sharybin de7a57a242 Merging r50522 through r50572 from trunk into soc-2011-tomato 2012-09-13 11:13:13 +00:00
Sergey Sharybin c3b808721b Sequencer: add missed cache invalidation
Invalidation was missed for:

- Strip (Un)Muting
- Changing speed effect
- Strip translating
2012-09-13 10:51:18 +00:00
Campbell Barton 05755d307a fix [#31946] Masking doesn't respect pixel ratio 2012-09-13 05:29:38 +00:00
Campbell Barton ab48f2108b - cmake macro list_insert_after/list_insert_before now error when the item passed is not found in the list.
- BKE_pose_copy_data() check for target pointer is no longer valid and infact comparing against un-initialized memory in some cases.
2012-09-13 01:52:58 +00:00
Campbell Barton 4cb6d5d214 code cleanup: reduce calls to CTX_ functions inline, add some docs to mask rasterizer. 2012-09-13 01:50:21 +00:00
Sergey Sharybin 5f512bec47 Sequencer: added option to calculate modifiers in linear space
It was really annoying mistake in original support of logarithmic color space
for sequencer which made adjustment layers be working in linear space. Seems
this was only an issue for modifiers in adjustment effect.

Now all modifiers are applying in sequencer's color space (in fact, this was
fixed in svn rev50275).

To preserve compatibility of Mango grading added this option which probably
wouldn't be used by others.
2012-09-11 12:35:25 +00:00
Sergey Sharybin 20d84be6b5 Color Management: fix for wrong default color space and view 2012-09-11 10:34:19 +00:00
Campbell Barton 2cdfa33137 fix [#29616] Crash/infinite loop from missing cyclic check in group/dupligroups (unlikely/intentional)
calling BKE_ptcache_ids_from_object() could recursively call BKE_object_handle_update(), when there is no reason to update object transforms at all. Add option not to do any updates and just return an object list.
2012-09-11 10:18:45 +00:00
Campbell Barton 10d18e5b5f code cleanup: use min/max inline functions rather than macros & simplify loop 2012-09-11 09:39:37 +00:00