blender.git
6 years agoColor Management, Stage 2: Switch color pipeline to use OpenColorIO
Sergey Sharybin [Sat, 15 Sep 2012 10:05:07 +0000 (10:05 +0000)]
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!

6 years agoColor Management, Stage 1: Initial OpenColorIO library integration
Sergey Sharybin [Sat, 15 Sep 2012 10:03:17 +0000 (10:03 +0000)]
Color Management, Stage 1: Initial OpenColorIO library integration

This commit integrates support of OpenColorIO library into build systems.

It also contains C-API for OpenColorIO library which could be used by Blender.

CMake has got find rules familiar to OpenImageIO's one which makes it easier
for build system to find needed libraries and includes. Scons only could use
explicitly defined paths to libraries and includes.

C-API would be compiled and Blender would be linked against C-API and OpenColorIO
but it wouldn't affect on Blender behavior at all.

OpenColorIO could be disabled by setting up WITH_OCIO to Off in CMake and
setting WITH_BF_OCIO in Scons.

6 years agoFix compilers warnings when legacy compositor is disabled
Sergey Sharybin [Sat, 15 Sep 2012 07:50:14 +0000 (07:50 +0000)]
Fix compilers warnings when legacy compositor is disabled

6 years agocode cleanup: remove more invalid/paranoid NULL checks
Campbell Barton [Sat, 15 Sep 2012 07:42:30 +0000 (07:42 +0000)]
code cleanup: remove more invalid/paranoid NULL checks

6 years agocode cleanup: remove paranoid/invalid NULL checks and also reduce some unneeded size_...
Campbell Barton [Sat, 15 Sep 2012 07:31:17 +0000 (07:31 +0000)]
code cleanup: remove paranoid/invalid NULL checks and also reduce some unneeded size_t -> int conversions.

6 years agofix for error in own recent commit adding node undo pushes. (bad use of sizeof)
Campbell Barton [Sat, 15 Sep 2012 07:30:11 +0000 (07:30 +0000)]
fix for error in own recent commit adding node undo pushes. (bad use of sizeof)

6 years agofix for 3 obvious mistakes/bugs.
Campbell Barton [Sat, 15 Sep 2012 06:30:40 +0000 (06:30 +0000)]
fix for 3 obvious mistakes/bugs.

6 years agocode cleanup: remove paranoid NULL checks (these cases would crash earlier of the...
Campbell Barton [Sat, 15 Sep 2012 06:29:32 +0000 (06:29 +0000)]
code cleanup: remove paranoid NULL checks (these cases would crash earlier of the vars were in fact NULL)

6 years agofix incorrect macro for mask handle selection checking.
Campbell Barton [Sat, 15 Sep 2012 06:10:48 +0000 (06:10 +0000)]
fix incorrect macro for mask handle selection checking.

6 years agocode cleanup: replace memcpy for copy_v3_v3(), and fix for unlikely crash - if (ob...
Campbell Barton [Sat, 15 Sep 2012 06:03:49 +0000 (06:03 +0000)]
code cleanup: replace memcpy for copy_v3_v3(), and fix for unlikely crash - if (ob->mat == NULL && ob->totcol)

6 years agosyntax error in previous commit
Campbell Barton [Sat, 15 Sep 2012 05:09:42 +0000 (05:09 +0000)]
syntax error in previous commit

6 years agoSilent compiler's warnings about tracking module
Sergey Sharybin [Sat, 15 Sep 2012 05:01:52 +0000 (05:01 +0000)]
Silent compiler's warnings about tracking module

6 years agocode cleanup: quiet some windows warnings.
Campbell Barton [Sat, 15 Sep 2012 04:57:51 +0000 (04:57 +0000)]
code cleanup: quiet some windows warnings.

6 years agocode cleanup: modify DO_INLINE define to not use __inline with mingw
Campbell Barton [Sat, 15 Sep 2012 02:29:47 +0000 (02:29 +0000)]
code cleanup: modify DO_INLINE define to not use __inline with mingw
make RegisterBlendExtension_Fail a static func
       u

6 years agoquiet -Wmissing-prototypes warnings, and enable this warning by default for C with...
Campbell Barton [Sat, 15 Sep 2012 01:52:28 +0000 (01:52 +0000)]
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.

6 years agofix [#32381] Sculpt: crash when using radius sensitivity
Campbell Barton [Fri, 14 Sep 2012 23:34:00 +0000 (23:34 +0000)]
fix [#32381] Sculpt: crash when using radius sensitivity

6 years agostyle cleanup
Campbell Barton [Fri, 14 Sep 2012 23:11:47 +0000 (23:11 +0000)]
style cleanup

6 years agoCollada: #32549 partial fix: packed images now export correctly
Gaia Clary [Fri, 14 Sep 2012 22:31:26 +0000 (22:31 +0000)]
Collada: #32549 partial fix: packed images now export correctly

6 years agoImplemented the Particle Info for OSL. Uses the following attributes:
Lukas Toenne [Fri, 14 Sep 2012 19:09:25 +0000 (19:09 +0000)]
Implemented the Particle Info for OSL. Uses the following attributes:

* std::particle_index
* std::particle_age
* std::particle_lifetime
* std::particle_location
* std::particle_size
* std::particle_velocity
* std::particle_angular_velocity

Just as with SVM the rotation state attribute is currently disabled due to lack of a proper quaternion or matrix type in Cycles nodes.

6 years agoAdded Object Info node implementation for OSL. This uses an additional attribute...
Lukas Toenne [Fri, 14 Sep 2012 18:10:54 +0000 (18:10 +0000)]
Added Object Info node implementation for OSL. This uses an additional attribute check in the osl_services callback for special attribute names related to objects:

* std::object_location
* std::object_index
* std::material_index
* std::object_random

Other object-based attributes can be added for particle info in the same way.

6 years agoCorrection to rev50582: LABEL could have a1 = 1.0f and in this case a2 would be used...
Sergey Sharybin [Fri, 14 Sep 2012 16:41:00 +0000 (16:41 +0000)]
Correction to rev50582: LABEL could have a1 = 1.0f and in this case a2 would be used as alpha multiplier for icon

6 years agoDisable legacy compositor by default
Sergey Sharybin [Fri, 14 Sep 2012 15:21:56 +0000 (15:21 +0000)]
Disable legacy compositor by default

6 years agoMovie cache: made it thread safe to operate with memory limitor
Sergey Sharybin [Fri, 14 Sep 2012 14:55:59 +0000 (14:55 +0000)]
Movie cache: made it thread safe to operate with memory limitor

Movie cache is using global memory limitor, which isn't thread safe
in some of operations, so it required to add mutex around limitor
operations in movie cache.

It's probably could be solved in a way with less locks involved by
using different limitor for different areas (like use own limitor
for clips, own limitor for sequencer and so), but that wouldn't be
so easy to control overall memory usage.

--
svn merge -r50125:50126 ^/branches/soc-2011-tomato

6 years agoSequencer: clear cache and animation buffers for strips outside of cursor when rendering
Sergey Sharybin [Fri, 14 Sep 2012 14:28:24 +0000 (14:28 +0000)]
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

6 years agoCycles / Test:
Thomas Dinges [Fri, 14 Sep 2012 13:11:48 +0000 (13:11 +0000)]
Cycles / Test:
* Enable progressive flag, tiles are not working properly (Image gets brighter with more samples and no visible updates until all tiles are finished).

6 years agoCode cleanup: removed unused Cocoa image load/save code.
Brecht Van Lommel [Fri, 14 Sep 2012 11:42:05 +0000 (11:42 +0000)]
Code cleanup: removed unused Cocoa image load/save code.

6 years agofix for sharp edge selection being inverted, change default angle from 1 to 30deg.
Campbell Barton [Fri, 14 Sep 2012 11:10:03 +0000 (11:10 +0000)]
fix for sharp edge selection being inverted, change default angle from 1 to 30deg.

6 years agofixes for NULL checks, remove some redundant checks and add some in that have been...
Campbell Barton [Fri, 14 Sep 2012 06:17:14 +0000 (06:17 +0000)]
fixes for NULL checks, remove some redundant checks and add some in that have been removed by accident as code has been updated.

6 years agofix for out-of-bounds checks for fcurve modifier and poselib, also check for NULL...
Campbell Barton [Fri, 14 Sep 2012 06:15:46 +0000 (06:15 +0000)]
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.)

6 years agocode cleanup: correct misleading use of LABEL button type.
Campbell Barton [Fri, 14 Sep 2012 05:44:47 +0000 (05:44 +0000)]
code cleanup: correct misleading use of LABEL button type.

6 years agoadd checking target `check_smatch`
Campbell Barton [Fri, 14 Sep 2012 05:08:48 +0000 (05:08 +0000)]
add checking target `check_smatch`

6 years agonode transform was using PET mode (drawing a circle - but it did nothing), disable...
Campbell Barton [Fri, 14 Sep 2012 01:28:26 +0000 (01:28 +0000)]
node transform was using PET mode (drawing a circle - but it did nothing), disable PET for nodes.

6 years agofix for 2 crashes freeing masks
Campbell Barton [Fri, 14 Sep 2012 01:15:08 +0000 (01:15 +0000)]
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.

6 years agobge cleanup caught by accident while going over the code, it seems someone forgot...
Dalai Felinto [Thu, 13 Sep 2012 23:39:09 +0000 (23:39 +0000)]
bge cleanup caught by accident while going over the code, it seems someone forgot to use rect_height everywhere (no functional change)

6 years agoFix #32547: unwrap on default cube got broken in recent commit.
Brecht Van Lommel [Thu, 13 Sep 2012 13:29:10 +0000 (13:29 +0000)]
Fix #32547: unwrap on default cube got broken in recent commit.

6 years agoSequencer: add missed cache invalidation
Sergey Sharybin [Thu, 13 Sep 2012 10:51:18 +0000 (10:51 +0000)]
Sequencer: add missed cache invalidation

Invalidation was missed for:

- Strip (Un)Muting
- Changing speed effect
- Strip translating

6 years agoSequencer: fix invalid update when translating strip which is behind semi-transparent...
Sergey Sharybin [Thu, 13 Sep 2012 10:51:13 +0000 (10:51 +0000)]
Sequencer: fix invalid update when translating strip which is behind semi-transparent strip

6 years agofix [#31946] Masking doesn't respect pixel ratio
Campbell Barton [Thu, 13 Sep 2012 05:29:38 +0000 (05:29 +0000)]
fix [#31946] Masking doesn't respect pixel ratio

6 years agofix for drawing non 1:1 aspect masks, transform and selection still need support.
Campbell Barton [Thu, 13 Sep 2012 02:28:48 +0000 (02:28 +0000)]
fix for drawing non 1:1 aspect masks, transform and selection still need support.

6 years ago- cmake macro list_insert_after/list_insert_before now error when the item passed...
Campbell Barton [Thu, 13 Sep 2012 01:52:58 +0000 (01:52 +0000)]
- 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.

6 years agocode cleanup: reduce calls to CTX_ functions inline, add some docs to mask rasterizer.
Campbell Barton [Thu, 13 Sep 2012 01:50:21 +0000 (01:50 +0000)]
code cleanup: reduce calls to CTX_ functions inline, add some docs to mask rasterizer.

6 years agoBGE: LibLoaded sensors that made use of physics controllers (touch, collision) could...
Mitchell Stokes [Thu, 13 Sep 2012 00:46:50 +0000 (00:46 +0000)]
BGE: LibLoaded sensors that made use of physics controllers (touch, collision) could cause various physics problems (like infinite loops in Bullet, etc). This happened because their KX_TouchEventManagers were merged prior to having their physics controllers merged, which has now been fixed. Thanks to Kupoman for hunting down the fix!

6 years agomodifications needed to get a URL from an RNA id from the testing script
Campbell Barton [Thu, 13 Sep 2012 00:26:01 +0000 (00:26 +0000)]
modifications needed to get a URL from an RNA id from the testing script

6 years agotest script to check rna/wiki lookup completeness
Campbell Barton [Thu, 13 Sep 2012 00:17:38 +0000 (00:17 +0000)]
test script to check rna/wiki lookup completeness

6 years agofix for missing NULL check in own recent commit, thanks Gaia for pointing this out.
Campbell Barton [Wed, 12 Sep 2012 23:19:08 +0000 (23:19 +0000)]
fix for missing NULL check in own recent commit, thanks Gaia for pointing this out.

6 years agoCollada: do not call polylist export for objects with no polygons (avoid a missleadin...
Gaia Clary [Wed, 12 Sep 2012 18:26:01 +0000 (18:26 +0000)]
Collada: do not call polylist export for objects with no polygons (avoid a missleading warning message)

6 years agoFix #32338: particle instance modifier did not work well when the mesh had only
Brecht Van Lommel [Wed, 12 Sep 2012 16:42:24 +0000 (16:42 +0000)]
Fix #32338: particle instance modifier did not work well when the mesh had only
vertices. Previously it would hide particles by creating invalid faces, but this
didn't make the vertices actually disappear.

Also found that it could generated corrupt geometry for cases with faces, which
gave wrong subsurf and could crash in edit mode.

6 years ago#31682: corrected some minor typos in the comment
Gaia Clary [Wed, 12 Sep 2012 15:48:22 +0000 (15:48 +0000)]
#31682: corrected some minor typos in the comment

6 years ago#31682: partial fix (the export): Avoid to copy exported image into itself
Gaia Clary [Wed, 12 Sep 2012 15:41:58 +0000 (15:41 +0000)]
#31682: partial fix (the export): Avoid to copy exported image into itself

6 years agoFix #32543: screw modifier with smooth shading disabled still had one segment
Brecht Van Lommel [Wed, 12 Sep 2012 13:06:31 +0000 (13:06 +0000)]
Fix #32543: screw modifier with smooth shading disabled still had one segment
smooth shaded.

6 years agoFix #32031: particle distribution on degenerate faces could give NaN values,
Brecht Van Lommel [Wed, 12 Sep 2012 13:06:28 +0000 (13:06 +0000)]
Fix #32031: particle distribution on degenerate faces could give NaN values,
which in this case caused NaN values in render lighting.

6 years agoAttempted fix for #32415: tighten up cycles opencl initialization checks to try to
Brecht Van Lommel [Wed, 12 Sep 2012 11:25:47 +0000 (11:25 +0000)]
Attempted fix for #32415: tighten up cycles opencl initialization checks to try to
avoid crashes. Don't think these should be needed but maybe it helps.

6 years agofix [#31019] [Minor] Freshly added nodes aren't getting undo push
Campbell Barton [Wed, 12 Sep 2012 11:09:27 +0000 (11:09 +0000)]
fix [#31019] [Minor] Freshly added nodes aren't getting undo push

also noticed ED_undo_push was checking USER_GLOBALUNDO unnecessarily

6 years agoCycles UI:
Thomas Dinges [Wed, 12 Sep 2012 10:54:25 +0000 (10:54 +0000)]
Cycles UI:
* Non-Progressive UI couldn't be displayed if the device was set to GPU, but User Preferences Device was NULL. (for example when opening .blend file on another computer without GPU capabilities)

* Fix missing update in the Properties editor, when changing compute_device.

This fixes [#32115] OSX and cycles no non-progessive sample input settings appearing in interface.

6 years agoadd note that clip start is for perspective view only.
Campbell Barton [Wed, 12 Sep 2012 10:18:35 +0000 (10:18 +0000)]
add note that clip start is for perspective view only.

6 years agofix [#30324] VSE: Right-Click does not select directory
Campbell Barton [Wed, 12 Sep 2012 10:04:09 +0000 (10:04 +0000)]
fix [#30324] VSE: Right-Click does not select directory

6 years agofix [#32350] F11 play animation crash when UI language is not "Default"
Campbell Barton [Wed, 12 Sep 2012 08:06:06 +0000 (08:06 +0000)]
fix [#32350] F11 play animation crash when UI language is not "Default"

this is a bug in boost 1.46, can remove this env var override when this version of boost is no longer supported.

6 years agoadd clarification, without this the tool reads as if it makes the radius of each...
Campbell Barton [Wed, 12 Sep 2012 06:31:26 +0000 (06:31 +0000)]
add clarification, without this the tool reads as if it makes the radius of each selected vertex equal.

6 years agocode cleanup: replace BM_DISK_EDGE_LINK_GET define with inline function, that checks...
Campbell Barton [Wed, 12 Sep 2012 05:11:38 +0000 (05:11 +0000)]
code cleanup: replace BM_DISK_EDGE_LINK_GET define with inline function, that checks for the vertex not matching either of the edges verts.

6 years agofix [#31456] Extreme lag editing meshes
Campbell Barton [Wed, 12 Sep 2012 04:53:49 +0000 (04:53 +0000)]
fix [#31456] Extreme lag editing meshes

running BM_CHECK_ELEMENT was taking over 75% of the time to subdivide a mesh, since this only reports errors, and is so slow - only run this on non-release builds.

6 years agofix memory leak when baking feedback loop detected.
Campbell Barton [Wed, 12 Sep 2012 03:11:29 +0000 (03:11 +0000)]
fix memory leak when baking feedback loop detected.

6 years agofix [#32537] Inconsistent behaviour of Texture Baker
Campbell Barton [Wed, 12 Sep 2012 03:05:20 +0000 (03:05 +0000)]
fix [#32537] Inconsistent behaviour of Texture Baker

feedback looks wen't being detected in some cases causing very confusing behavior.

6 years agocode cleanup: changing the INT define to an enum conflicts with INT typedef on window...
Campbell Barton [Wed, 12 Sep 2012 00:32:33 +0000 (00:32 +0000)]
code cleanup: changing the INT define to an enum conflicts with INT typedef on windows, use more verbose names for button pointer types. also removed some redundant flags from buttons.

6 years agofix [#32444] Proportional Edit stays on on Pose Mode, after activating it in Object...
Campbell Barton [Tue, 11 Sep 2012 23:37:17 +0000 (23:37 +0000)]
fix [#32444] Proportional Edit stays on on Pose Mode, after activating it in Object Mode.

disable PET in posemode.

6 years agocode cleanup: use an enum for uiBut->pointype (more useful debug display of members),
Campbell Barton [Tue, 11 Sep 2012 23:10:23 +0000 (23:10 +0000)]
code cleanup: use an enum for uiBut->pointype (more useful debug display of members),
and rename COL -> COLOR --- less confusing since the layout engine has row/col's.

6 years agoa-z menu input now works for enum popups.
Campbell Barton [Tue, 11 Sep 2012 22:55:27 +0000 (22:55 +0000)]
a-z menu input now works for enum popups.

6 years agobugfix [#32538] 'Mouse Over Any' sensor 'Pulse' button missing since 2.5x [Patch...
Dalai Felinto [Tue, 11 Sep 2012 22:55:14 +0000 (22:55 +0000)]
bugfix [#32538] 'Mouse Over Any' sensor 'Pulse' button missing since 2.5x [Patch] - based on the patch from HG1

6 years agoFix for [#32536] Mixing with translated images in compositor produces
Jeroen Bakker [Tue, 11 Sep 2012 16:57:05 +0000 (16:57 +0000)]
Fix for [#32536] Mixing with translated images in compositor produces
garbage strips for each tile

Promoted the behaviour of combine channels to node operation so that all
nodes use the same implementation. (CombineChannel had a better
implementation)

6 years agoFix libmv build on OS X with 10.5 SDK. The tr1::unordered_map implementation
Brecht Van Lommel [Tue, 11 Sep 2012 11:54:10 +0000 (11:54 +0000)]
Fix libmv build on OS X with 10.5 SDK. The tr1::unordered_map implementation
is broken in this SDK, now it uses the boost implementation instead.

6 years agoPerformance fix for Cycles: Don't wait in the main UI thread when resetting devices.
Lukas Toenne [Tue, 11 Sep 2012 11:41:51 +0000 (11:41 +0000)]
Performance fix for Cycles: Don't wait in the main UI thread when resetting devices.

When the scene is updated Cycles resets the renderer device, cancelling
all existing tasks. The main thread would wait for all running tasks to
finish before continuing. This is ok when tasks can actually cancel in a
timely fashion. For OSL however, this does not work, since the OSL
shader group optimization takes quite a bit of time and can not be
easily be cancelled once running (on my crappy machine in full debug
mode: ~0.12 seconds for simple node trees). This would lead to very
laggy UI behavior and make it difficult to accurately control elements
such as sliders.

This patch removes the wait condition from the device->task_cancel
method. Instead it just sets the do_cancel flag and returns. To avoid
backlog in the task pool of the device it will return early from the
BlenderSession::sync function while the reset is going on (tested in
Session::resetting). Once all existing tasks have finished the do_cancel
flag is finally cleared again (checked in TaskPool::num_decrease).

Care has to be taken to avoid race conditions on the do_cancel flag,
since it can now be modified outside the TaskPool::cancel function
itself. For this purpose the scope of the TaskPool::num_mutex locks has
been extended, in most cases the mutex is now locked by the TaskPool
itself before calling TaskScheduler methods, instead of only locking
inside the num_increase/num_decrease functions themselves. The only
occurrence of a lock outside of the TaskPool methods is in
TaskScheduler::thread_run.

This patch is most useful in combination with the OSL renderer mode, so
it can probably wait until after the 2.64 release. SVM tasks tend to be
cancelled quickly, so the effect is less noticeable.

6 years agofix [#29616] Crash/infinite loop from missing cyclic check in group/dupligroups ...
Campbell Barton [Tue, 11 Sep 2012 10:18:45 +0000 (10:18 +0000)]
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.

6 years agocode cleanup: use min/max inline functions rather than macros & simplify loop
Campbell Barton [Tue, 11 Sep 2012 09:39:37 +0000 (09:39 +0000)]
code cleanup: use min/max inline functions rather than macros & simplify loop

6 years agofix [#31738] BM_vert_splice modifies loops during iteration
Campbell Barton [Tue, 11 Sep 2012 06:12:48 +0000 (06:12 +0000)]
fix [#31738] BM_vert_splice modifies loops during iteration

patch by Nicholas Bishop, modified to avoid looping over vert-loops one extra time.

added BM_iter_as_arrayN(), returns an iterator as an array without knowing the length before calling.

6 years agoreplace BM_vert_face_count() use of BM_LOOPS_OF_VERT iterator with a direct call...
Campbell Barton [Tue, 11 Sep 2012 05:27:15 +0000 (05:27 +0000)]
replace BM_vert_face_count() use of BM_LOOPS_OF_VERT iterator with a direct call to bmesh_disk_facevert_count()

6 years agoadd some missing NULL checks, a few parts of the code used a pointer then checked...
Campbell Barton [Tue, 11 Sep 2012 02:18:27 +0000 (02:18 +0000)]
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).

6 years agofix [#32531] Texturepainting always uses smooth shaded normals
Campbell Barton [Tue, 11 Sep 2012 01:30:05 +0000 (01:30 +0000)]
fix [#32531] Texturepainting always uses smooth shaded normals

6 years ago'new file' now runs bpy.app.handlers.load_pre/post callbacks.
Campbell Barton [Mon, 10 Sep 2012 23:36:07 +0000 (23:36 +0000)]
'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.

6 years agofix for a bug running a script, then opening a new file.
Campbell Barton [Mon, 10 Sep 2012 23:32:46 +0000 (23:32 +0000)]
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.

6 years agocode cleanup: string c++ lib, defines for default string sizes and use m_ convention...
Campbell Barton [Mon, 10 Sep 2012 22:43:36 +0000 (22:43 +0000)]
code cleanup: string c++ lib, defines for default string sizes and use m_ convention for member naming.

6 years agoFix #32529: after tomato merge, cycles multi GPU render not using all GPUs with
Brecht Van Lommel [Mon, 10 Sep 2012 14:00:05 +0000 (14:00 +0000)]
Fix #32529: after tomato merge, cycles multi GPU render not using all GPUs with
F12 rendering.

6 years agoFix #32530: animation playback did not respect preview frame range if the current
Brecht Van Lommel [Mon, 10 Sep 2012 14:00:01 +0000 (14:00 +0000)]
Fix #32530: animation playback did not respect preview frame range if the current
frame was before the start frame.

6 years agochange to auto-opening menus so the first menu item in popup menu wont auto open.
Campbell Barton [Mon, 10 Sep 2012 10:50:08 +0000 (10:50 +0000)]
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.

6 years agoOSL cmake cleanup:
Lukas Toenne [Mon, 10 Sep 2012 08:38:51 +0000 (08:38 +0000)]
OSL cmake cleanup:
* Removed unused lib and include directories (also one bad 'src' include that wouldn't work anyway)
* Copied cmake library finding to APPLE and WIN32 sections. These may need some adjustment for their respective OS.

6 years agocode cleanup: use typedef'd enum for block bounds types.
Campbell Barton [Mon, 10 Sep 2012 07:03:30 +0000 (07:03 +0000)]
code cleanup: use typedef'd enum for block bounds types.

6 years agomake alphanumeric key shortcuts work for submenu's so you can chain keys together...
Campbell Barton [Mon, 10 Sep 2012 06:44:25 +0000 (06:44 +0000)]
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

6 years agoCleanup for OSL linking in cmake: Move cmake OSL library search and path definition...
Lukas Toenne [Mon, 10 Sep 2012 06:18:20 +0000 (06:18 +0000)]
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.

6 years agofix [#32384] Submenu hotkeys not working at all since 2.6x
Campbell Barton [Mon, 10 Sep 2012 06:10:43 +0000 (06:10 +0000)]
fix [#32384] Submenu hotkeys not working at all since 2.6x

6 years agocode cleanup:
Campbell Barton [Mon, 10 Sep 2012 06:05:19 +0000 (06:05 +0000)]
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.

6 years agomissing include in own recent commit
Campbell Barton [Mon, 10 Sep 2012 05:47:07 +0000 (05:47 +0000)]
missing include in own recent commit

6 years agofix [#32518] Vertex slide crash sometimes.
Campbell Barton [Mon, 10 Sep 2012 03:42:29 +0000 (03:42 +0000)]
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.

6 years agocode cleanup: use BMEdit_FromObject() rather then me->edit_btmesh in more places.
Campbell Barton [Mon, 10 Sep 2012 03:34:43 +0000 (03:34 +0000)]
code cleanup: use BMEdit_FromObject() rather then me->edit_btmesh in more places.

6 years agocode cleanup: use more specific args
Campbell Barton [Mon, 10 Sep 2012 02:45:29 +0000 (02:45 +0000)]
code cleanup: use more specific args

6 years agowhen pressing `play` report when the first frame can't be found.
Campbell Barton [Mon, 10 Sep 2012 02:04:02 +0000 (02:04 +0000)]
when pressing `play` report when the first frame can't be found.

6 years agocode cleanup: use single define for undo string size, was 64 mostly, but 512 in the UI.
Campbell Barton [Mon, 10 Sep 2012 01:55:58 +0000 (01:55 +0000)]
code cleanup: use single define for undo string size, was 64 mostly, but 512 in the UI.

6 years agostyle cleanup
Campbell Barton [Mon, 10 Sep 2012 01:34:42 +0000 (01:34 +0000)]
style cleanup

6 years agofix for own error in r50482.
Campbell Barton [Mon, 10 Sep 2012 01:22:04 +0000 (01:22 +0000)]
fix for own error in r50482.

6 years agostyle cleanup
Campbell Barton [Mon, 10 Sep 2012 01:07:20 +0000 (01:07 +0000)]
style cleanup

6 years agoFix #32513: incorrect color management in Material draw mode for Cycles.
Brecht Van Lommel [Sun, 9 Sep 2012 11:04:49 +0000 (11:04 +0000)]
Fix #32513: incorrect color management in Material draw mode for Cycles.

6 years agofix [#29072] Color pickers don't close properly when moving the mouse away
Campbell Barton [Sun, 9 Sep 2012 01:44:55 +0000 (01:44 +0000)]
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.

6 years agostyle cleanup:
Campbell Barton [Sun, 9 Sep 2012 00:00:21 +0000 (00:00 +0000)]
style cleanup:
also remove some redundant conversions int -> short -> int