Commit Graph

47594 Commits

Author SHA1 Message Date
Campbell Barton
a0ae47f06c add some missing NULL checks, a few parts of the code used a pointer then checked it for NULL after.
also made it more clear that some areas assume the pointer isnt null (remove redundant NULL checks).
2012-09-11 02:18:27 +00:00
Campbell Barton
652f64762c fix [#32531] Texturepainting always uses smooth shaded normals 2012-09-11 01:30:05 +00:00
Campbell Barton
dfb7885a93 'new file' now runs bpy.app.handlers.load_pre/post callbacks.
Without this - there wasnt a good way to ensure addons were aware of new data being loading in new files.
requested by request by liquidape and maccuno.
2012-09-10 23:36:07 +00:00
Campbell Barton
cf5da37e3c fix for a bug running a script, then opening a new file.
BPY_text_free_code() could run outside the python interpreter which abort()'s blender.
2012-09-10 23:32:46 +00:00
Sergey Sharybin
b4cac859e9 Color management: get rid of hardcoded color space None 2012-09-10 17:38:48 +00:00
Sergey Sharybin
74885d1d84 Color Management: port image stamp to new color management system
Use the same approach as interface does by using default view which
is supposed to be invertible to convert color from display space to
scene linear.
2012-09-10 17:24:48 +00:00
Sergey Sharybin
3e881745e5 Color Management: resolve TODOs related on HSV widgets 2012-09-10 16:30:15 +00:00
Sergey Sharybin
ce3566a4cb Color Management: add View as Render to image datablocks
This is need since some images (like normal maps, textures and so) would
want to be viewed without any tone map applied on them. On the same time
it's possible that some images would want to be affected by tone maps,
and renders would always want to be affected by tone maps.

After long discussion with Brecht we decided less painful and most clear
way would be to simply add "View as Render" option to image datablocks.

If this option is enabled for image, both settings from Display and
Render blocks of color management settings would be applied on display.

If this option is disabled, only display transform with default view and
no exposure/gamma/curves would be applied.

Render result and compositor viewers would always have "View as Render"
enabled.

There's separated setting when image is saving which says whether saved
image should be affected by render part of color management settings.

This option is enabled by default for render result/node viewer and
disabled by default for all the rest images. This option wouldn't have
affect when saving to float formats such as EXR.
2012-09-10 14:47:47 +00:00
Brecht Van Lommel
bb3b3abe30 Fix #32530: animation playback did not respect preview frame range if the current
frame was before the start frame.
2012-09-10 14:00:01 +00:00
Sergey Sharybin
b0605eed2c Color Management: finish pipeline changes
This commit hopefully finishes color management pipeline changes, implements
some missed functionality and fixes some bugs.

Mainly changes are related on getting rid of old Color Management flag which
became counter-intuitive in conjunction with OpenColorIO.

Now color management is always assuming to be enabled and non-color managed
pipeline is emulated using display device called None. This display has got
single view which is basically NO-OP (raw) transformation, not applying any
tone curve and displays colors AS-IS. In most cases it behaves the same as
disabling Color Management in shading panel, but there is at least one known
difference in behavior: compositor and sequence editors would output images
in linear space, not in sRGB as it used to be before.

It'll be quite tricky to make this behave in exactly the same way as it
used to, and not sure if we really need to do it.

3D viewport is supposed to be working in sRGB space, no tonemaps would be
applied there. This is another case where compatibility breaks in comparison
with old color management pipeline, but supporting display transformation
would be tricky since it'll also be needed to make GLSL shaders, textures
and so be aware of display transform.

Interface is now aware of display transformation, but it only uses default
display view, no exposure, gamma or curve mapping is supported there.
This is so color widgets could apply display transformation in both
directions. Such behavior is a bit counter-intuitive, but it's currently
the only way to make color picking working smoothly. In theory we'll need
to support color picking color space, but it'll be also a bit tricky since
in Blender display transform is configurable from the interface and could
be used for artistics needs and in such design it's not possible to figure
out invertable color space which could be used for color picking.

In other software it's not so big issue since all color spaces, display
transform and so are strictly defined by pipeline and in this case it is
possible to define color picking space which would be close enough to
display space.

Sequencer's color space now could be configured from the interface --
it's settings are situated in Scene buttons, Color Management panel.
Default space is sRGB. It was made configurable because we used vd16
color space during Mango which was close to Film view used by grading
department.

Sequencer will convert float buffers to this color space before operating
with them hopefully giving better results. Byte buffers wouldn't be
converted to this color space an they'll be handled in their own colors[ace.
Converting them to sequencer's working space would lead to precision loss
without much visible benefits. It shouldn't be an issue since float and
byte images would never be blended together -- byte image would be converted
to float first if it's needed to be blended with float image.

Byte buffers now allowed to be color managed. This was needed to make code
in such areas as baking and rendering don't have hardcoded linear to sRGB
conversions, making things more clear from code point of view.

Input color space is now assigning on image/movie clip load and default
roles are used for this. So for float images default space would be rec709
and for byte images default space would be sRGB.

Added Non-Color color space which is aimed to be used for such things as
normal/heights maps. It's currently the same as raw colorspace, just has
got more clear naming for users. Probably we'll also need to make it not
affected by display transformation.

Think this is all main pipeline-related changes, more details would be there:

http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Color_Management

Other changes and fixes:

- Lots of internal code clean up in color management module.

- Made OpenColorIO module using guarded memory allocation. This allowed to
  fix couple of memory leaks and would help preventing leaks in the future.

- Made sure color unpremultiply and dither are supported by all OpenColorIO
  defined color transformations.

- Made compositor's preview images be aware of display transformation.
  Legacy compositor still uses old Color Management flags, but likely we'll
  disable compositor for the release and remove legacy code soon, so don't
  think we'll need to spend time on porting that code to new color management
  system.

- Made OpenGL rendering be aware of display transform when saving render
  result. Now it behaves in the same way as regular rendering.

TODO:

- HSV widgets are using linear rgb/sRGB conversions for single channel,
  not sure how this should be ported to new color pipeline.

- Image stamp would use hardcoded linear rgb to sRGB conversion for
  filling rectangles. Probably it should use default display view
  for this instead, would check this with Brecht.

- Get rid of None color space which was only used for compatibility reasons.

- Made it more clear which color spaces could be used as input space.

- There're also some remained TODO's in the code marked as OCIO_TODO,
  but wouldn't consider them as stoppers for at least this commit.
2012-09-10 11:46:15 +00:00
Sergey Sharybin
832841d50f Merging r50484 through r50501 from trunk into soc-2011-tomato 2012-09-10 10:58:59 +00:00
Campbell Barton
c276ef6a26 change to auto-opening menus so the first menu item in popup menu wont auto open.
This way we can do predictable key-shortcut-chaining. Eg.

Shift+A, M, O --- adds a metaball cone.

In editmode
Ctrl+V, X, A --- Assign new vertex group.
2012-09-10 10:50:08 +00:00
Campbell Barton
ccaf475422 code cleanup: use typedef'd enum for block bounds types. 2012-09-10 07:03:30 +00:00
Campbell Barton
b1ff5651fb make alphanumeric key shortcuts work for submenu's so you can chain keys together to select items in a menu.
eg: 'Ctrl+V, E, S'
for - Vertex, Separate, Selection
2012-09-10 06:44:25 +00:00
Lukas Toenne
1352a955ca Cleanup for OSL linking in cmake: Move cmake OSL library search and path definition from the cycles macro file to the top-level CMakeLists.txt. This makes the OSL_LIBRARIES and other variables accessible throughout Blender cmake scripts and especially in the creator module for linking libraries. 2012-09-10 06:18:20 +00:00
Campbell Barton
12c71a8c68 fix [#32384] Submenu hotkeys not working at all since 2.6x 2012-09-10 06:10:43 +00:00
Campbell Barton
1a22503cba code cleanup:
use an enum typedef for button types. it was quite annoying debugging UI code since the defines are bit-shifted. GDB would show but->type as 13824 and blender define was (27 << 9).

Now but->type shows as a humanly readable names.
2012-09-10 06:05:19 +00:00
Campbell Barton
35faf9615a missing include in own recent commit 2012-09-10 05:47:07 +00:00
Campbell Barton
e647c748fb fix [#32518] Vertex slide crash sometimes.
Undo would leave BMEditMesh->me pointer NULL, this would likely crash EDBM_verts_mirror_cache_begin() too.

Rather then restore 'me', remove the pointer altogether and use BMEditMesh->ob->data to save us having to keep track of 2 pointers.
2012-09-10 03:42:29 +00:00
Campbell Barton
2812dd92cf code cleanup: use BMEdit_FromObject() rather then me->edit_btmesh in more places. 2012-09-10 03:34:43 +00:00
Campbell Barton
7e2259bff3 code cleanup: use more specific args 2012-09-10 02:45:29 +00:00
Campbell Barton
61d40c38e0 code cleanup: use single define for undo string size, was 64 mostly, but 512 in the UI. 2012-09-10 01:55:58 +00:00
Campbell Barton
eb9a7c2188 style cleanup 2012-09-10 01:34:42 +00:00
Campbell Barton
4249718649 fix for own error in r50482. 2012-09-10 01:22:04 +00:00
Campbell Barton
3ded533e28 style cleanup 2012-09-10 01:07:20 +00:00
Brecht Van Lommel
c810e417bd Fix #32513: incorrect color management in Material draw mode for Cycles. 2012-09-09 11:04:49 +00:00
Sergey Sharybin
f1a498acee Merging r50478 through r50483 from trunk into soc-2011-tomato 2012-09-09 08:33:42 +00:00
Campbell Barton
521c085af8 fix [#29072] Color pickers don't close properly when moving the mouse away
instead of checking if the mouse is over another button to exit the popup.
Just check if the mouse is outside the rect-union between the button and the popup.
2012-09-09 01:44:55 +00:00
Campbell Barton
aa2d84da37 style cleanup:
also remove some redundant conversions int -> short -> int
2012-09-09 00:00:21 +00:00
Campbell Barton
693ceacc86 fix for security flaw CVE-2008-1103, ref BZ #855092 on https://bugzilla.redhat.com
patch provided by Jochen Schmitt, made some minor edits.
2012-09-08 23:26:15 +00:00
Campbell Barton
1e2d304973 minor improvements to saving quit.blend, print the OS error if the file fails to be created or written. 2012-09-08 23:07:53 +00:00
Sv. Lockal
bad06c158e fix for error in own recent commit: do not hide alpha in HSV and Hex modes 2012-09-08 19:40:34 +00:00
Sergey Sharybin
37a70492d1 Merging r50470 through r50477 from trunk into soc-2011-tomato 2012-09-08 10:17:42 +00:00
Campbell Barton
1a7eb3454e style cleanup 2012-09-08 08:59:47 +00:00
Campbell Barton
a9f10b6bc2 style cleanup 2012-09-08 06:40:03 +00:00
Peter Schlaile
c95d4f68b8 == FFMPEG ==
This fixes [#32399] VSE doesn't show last 3 frames of Quicktime movie.

Some decoders store frames internally until EOF.
So one has to feed the decoding engine with empty packets after EOF
until all frames could be extracted properly.
2012-09-07 21:41:38 +00:00
Bastien Montagne
8367c79f69 Adding Hebrew language.
Note: looks like we do not have hebrew chars in current font... More FontForge fun ahead. :/
2012-09-07 16:06:58 +00:00
Jens Verwiebe
86251329d0 initial retina support for osx \ to take effect you must perhaps logout/in \i prefer in terminal: /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f 2012-09-07 15:44:20 +00:00
Sergey Sharybin
62076905a3 Merging r50457 through r50469 from trunk into soc-2011-tomato 2012-09-07 12:53:41 +00:00
Sergey Sharybin
8b6046cdad Fix for order of creating mesh and filling in SculptSession
This would use proper draw_pbvh for initially calculated PBVH.

Wasn't harmful since this flag used to be updated form update_mesh_elements,
but it's still better to have things consistent all over.
2012-09-07 10:59:01 +00:00
Sergey Sharybin
a913101b4b Tomato: alignment issue fix
There were alignment issues on 32bit systems caused by 64bit integer
used in Scene.
2012-09-07 09:44:22 +00:00
Campbell Barton
d5bcec80c8 minor fix for previous commit. ripping a vert-edge connected to a face would always choose the face even if the mouse is closer to the edge, now check both edges and faces when ripping from a non wire vertex 2012-09-07 06:46:26 +00:00
Campbell Barton
cdc9e553c1 minor improvements to rip
- rip tool didnt select the best edge to rip for wire verts (no connected faces)
- ripping one vert with 2 edges connected didnt work.
2012-09-07 06:31:54 +00:00
Campbell Barton
acfff7a65f fixes for weight paint mode:
- sample weight didnt work when the object was transformed.
- sample weight didnt work when vertex selection was enabled.
- 'All faces' option is used by weight paint mode, but there was no UI access.

add ED_mesh_pick_face_vert(). which uses the face selection buffer but returns the closest vertex.
2012-09-07 05:54:54 +00:00
Campbell Barton
e70beaacf4 fix Shift+LMB select when in weight-vertex-select mode. (it was mixing up vert/face index values and didnt work at all) 2012-09-07 02:18:04 +00:00
Campbell Barton
704c5f09b5 remove makeDerivedMesh from ED_mesh_pick_face(), this was added 44256 (bmesh merge), but is pretty bad (rebuilding entire derived mesh to pick a face), tested with subsurf modifier, sintel mesh - it works ok without it.
Also - other select modes like border-select dont do this, so looks safe to disable.
2012-09-07 00:58:00 +00:00
Campbell Barton
04418fe8dd code cleanup: header had many incorrect sections for function/file, also rename mouse_mesh() --> EDBM_select_pick() 2012-09-07 00:22:10 +00:00
Campbell Barton
aca97317af code cleanup: move vertex and face picking functions into meshtools.c 2012-09-06 23:50:28 +00:00
Campbell Barton
0ecbc047e8 code cleanup 2012-09-06 23:41:03 +00:00
Campbell Barton
774cc0ab16 fix [#30063] Weight Paint + Pose Mode: [m] key does not toggle Face Selection Masking
disallow some pose operators when weight paint mode is enabled.
2012-09-06 23:10:01 +00:00