8 years agoCMake: add LLVM_STATIC as cmake build option, so linux distributions can link
Brecht Van Lommel [Mon, 15 Apr 2013 16:18:35 +0000 (16:18 +0000)]
CMake: add LLVM_STATIC as cmake build option, so linux distributions can link
LLVM dynamically. Patch by Dan Eicher.

8 years agoFix for cycles border render optimization commit, render status bar was off by 1...
Brecht Van Lommel [Mon, 15 Apr 2013 16:18:33 +0000 (16:18 +0000)]
Fix for cycles border render optimization commit, render status bar was off by 1 pixel.

8 years agoFix #34967: Display transform makes byte image with alpha=0 black
Sergey Sharybin [Mon, 15 Apr 2013 15:41:53 +0000 (15:41 +0000)]
Fix #34967: Display transform makes byte image with alpha=0 black

Skip premultiplication/de-premultiplication when acquiring display
buffer for a byte image. Will make conversion a bit faster also :)

8 years agorename axis_angle_to_mat3_no_norm() --> axis_angle_normalized_to_mat3().
Campbell Barton [Mon, 15 Apr 2013 15:16:11 +0000 (15:16 +0000)]
rename axis_angle_to_mat3_no_norm() --> axis_angle_normalized_to_mat3().
this matches closer to convention from existing functions - angle_v3v3() angle_normalized_v3v3().

also added assert to ensure argument given to axis_angle_normalized_to_mat3() is in fact normalized.

8 years agoFix: when using a search menu with an operator's enum prop, the operator was previous...
Bastien Montagne [Mon, 15 Apr 2013 15:01:12 +0000 (15:01 +0000)]
Fix: when using a search menu with an operator's enum prop, the operator was previously always executed with default options (appart from the search-set enum, of course). Now we store the op's properties in search button, so that you can specify non-default options (as it was already possible with e.g. pop-up menu from an operator's enum prop).

To achieve this, some code (callbacks and search button creation) was moved from wm_operators.c to interface/interface.c, and a new UI function was added, uiDefSearchButO_ptr.

Note: This new code uses the fact that uiButHandleFunc callbacks get executed before operator when one of its arg is the button itself!

Many thanks to Campbell who helped me a lot with this patch!

Cleanup: also removed two unused pointers from uiBut struct.

8 years agoNew implementation for twist brushes.
Antony Riakiotakis [Mon, 15 Apr 2013 14:55:42 +0000 (14:55 +0000)]
New implementation for twist brushes.

It has much better rotation and avoids the compression effect that old
twist brushes have. Also twisting is now non periodic, meaning you can
twist beyond 180 degrees. The amount of twist is also calculated
relative to the angle formed after first translating the mouse away from
the brush center.

8 years agoWIP, jason's patch
Antony Riakiotakis [Mon, 15 Apr 2013 14:55:36 +0000 (14:55 +0000)]
WIP, jason's patch

8 years agoFix #34972: Blender crashes when Force Field-> Curve Guide is created
Sergey Sharybin [Mon, 15 Apr 2013 12:04:55 +0000 (12:04 +0000)]
Fix #34972: Blender crashes when Force Field-> Curve Guide is created

Made it so where_on_path works correct when Curve does
have editNurbs but no Curve->nurbs.

8 years agoadd back attribution field from script.
Campbell Barton [Mon, 15 Apr 2013 11:29:31 +0000 (11:29 +0000)]
add back attribution field from script.

8 years agoFix compilation with current FFmpeg trunk
Sergey Sharybin [Mon, 15 Apr 2013 11:08:02 +0000 (11:08 +0000)]
Fix compilation with current FFmpeg trunk

finally removed from current trunk.

Initial patch by Lawrence D'Oliveiro (ldo) with
own modification, Thanks!

8 years agoMake it so FATAL messages from libmv are print to the console
Sergey Sharybin [Mon, 15 Apr 2013 10:02:33 +0000 (10:02 +0000)]
Make it so FATAL messages from libmv are print to the console
even when --debug-libmv is not passed via command line.

8 years agominor edits to DM_update_weight_mcol(), skip getting vars when in editmode, also...
Campbell Barton [Mon, 15 Apr 2013 08:43:17 +0000 (08:43 +0000)]
minor edits to DM_update_weight_mcol(), skip getting vars when in editmode, also remove old/invalid comment.

8 years agoRemoved the extra ntree->update flag check in lib_verify_nodetree in readfile.c....
Lukas Toenne [Mon, 15 Apr 2013 07:58:15 +0000 (07:58 +0000)]
Removed the extra ntree->update flag check in lib_verify_nodetree in readfile.c. This is unnecessary as the update flag will be checked internally in ntreeUpdateTree anyway, except for the generic bNodeTreeType->update callback (it could even be harmful by preventing necessary updates that don't use the ntree->update flag). Executing this once after loading a node tree is a useful feature for pynodes, so they can do initial verification.

8 years agocode cleanup: minor BMESH_TODO's, some were left in even though they were done/invalid.
Campbell Barton [Mon, 15 Apr 2013 04:34:14 +0000 (04:34 +0000)]
code cleanup: minor BMESH_TODO's, some were left in even though they were done/invalid.

8 years agoFix for bundle adjusting with motion restricted
Sergey Sharybin [Sun, 14 Apr 2013 23:43:00 +0000 (23:43 +0000)]
Fix for bundle adjusting with motion restricted

This commit bundles new libmv version from own branch
which brings fix for wrong parameter block used for
modal solver parameterization.

Fixes #34985: Crash with Motion tracker (Tripod Motion)

8 years agoCycles: optimization for 3D viewport border render with heavy scenes, the OpenGL
Brecht Van Lommel [Sun, 14 Apr 2013 21:42:58 +0000 (21:42 +0000)]
Cycles: optimization for 3D viewport border render with heavy scenes, the OpenGL
render of objects could slow things down when redrawing the view each time a new
sample is displayed.

Now it does a partial redraw of the viewport with only the render border area,
skipping OpenGL object drawing while the render is refining.

8 years agoCycles / Non-Progressive integrator:
Thomas Dinges [Sun, 14 Apr 2013 19:22:12 +0000 (19:22 +0000)]
Cycles / Non-Progressive integrator:
* Subsurface samples were not taken into account for the Sobol directions table.

8 years agoBGE: Cleaning up BL_ShapeDeformer's use of Blender's Key. This also fixes a bug with...
Mitchell Stokes [Sun, 14 Apr 2013 18:54:06 +0000 (18:54 +0000)]
BGE: Cleaning up BL_ShapeDeformer's use of Blender's Key. This also fixes a bug with replicas (added objects) crashing when using shape keys.

8 years agoFreestyle stroke rendering is now done before lens flare. Suggested by Ton on IRC.
Tamito Kajiyama [Sun, 14 Apr 2013 17:24:02 +0000 (17:24 +0000)]
Freestyle stroke rendering is now done before lens flare.  Suggested by Ton on IRC.

8 years agoedits to startup.blend
Campbell Barton [Sun, 14 Apr 2013 15:26:35 +0000 (15:26 +0000)]
edits to startup.blend
- temp dir /tmp\ --> /tmp/
- set sequencer cache limit from 128 --> 1024
- set sequencer view to RGB --> RGBA

8 years agoFix for r55961 which revered texture icons fix at r55499
Sergey Sharybin [Sun, 14 Apr 2013 14:54:08 +0000 (14:54 +0000)]
Fix for r55961 which revered texture icons fix at r55499

Reported by Antony Riakiotakis, thanks!

8 years ago== FFMPEG / Canon DSLR footage workaround ==
Peter Schlaile [Sun, 14 Apr 2013 13:44:04 +0000 (13:44 +0000)]
== FFMPEG / Canon DSLR footage workaround ==

The latest ffmpeg versions include a workaround to deal with a certain
pecularity in Canon DSLR footage: instead of decoding pictures with the
proper resolution of 1920x1080 they decode it with 1920x1088 and add a
black bar at the bottom.

Needless to say, that this screws up things in a lot of areas within blender
(proxy indices, mask animations etc.)

Since all blender versions besides Linux x86 32bit seem still to include
older ffmpeg versions which still contain this bug, this patch adds
a workaround for older versions until we have all versions on all platforms
up to date.

See also:;a=commit;h=30f515091c323da59c0f1b533703dedca2f4b95d

8 years agocode cleanup: minor changes, clang checker option for exact size matches and use...
Campbell Barton [Sun, 14 Apr 2013 12:01:12 +0000 (12:01 +0000)]
code cleanup: minor changes, clang checker option for exact size matches and use vector functions.

8 years agocorrect pyapi function intersect_line_sphere_2d() using 3d vecs when only 2d are...
Campbell Barton [Sun, 14 Apr 2013 11:57:35 +0000 (11:57 +0000)]
correct pyapi function intersect_line_sphere_2d() using 3d vecs when only 2d are needed.

8 years agofix for tangent curve flipping only doing 2d angle tests.
Campbell Barton [Sun, 14 Apr 2013 11:56:11 +0000 (11:56 +0000)]
fix for tangent curve flipping only doing 2d angle tests.

8 years agoTexture stencil:
Antony Riakiotakis [Sun, 14 Apr 2013 09:43:12 +0000 (09:43 +0000)]
Texture stencil:

Robustness: Avoid translating the stencil outside the active area. Helps
to avoid losing the stencil somewhere in bitspace.

Usability: Take image repeat mapping and scaling into account when
fitting stencil aspect. Togglable by operator properties.

8 years agoShader nodes / order:
Thomas Dinges [Sun, 14 Apr 2013 09:34:59 +0000 (09:34 +0000)]
Shader nodes / order:
* Have all "Info" nodes next to each other.
* Moved "Material Output" to the top.
* Have all light shaders (Emission, Background, AO) next to each other.

8 years agoNode Toolbar:
Thomas Dinges [Sun, 14 Apr 2013 09:17:03 +0000 (09:17 +0000)]
Node Toolbar:
* Use column() layout, this way it uses a bit less space.

8 years agoNode Socket UI:
Thomas Dinges [Sun, 14 Apr 2013 09:07:38 +0000 (09:07 +0000)]
Node Socket UI:
* Fix for Min/Max labels, they started with a lower-case character.

8 years agominor speedup to BM_mesh_normals_update()
Campbell Barton [Sun, 14 Apr 2013 07:46:45 +0000 (07:46 +0000)]
minor speedup to BM_mesh_normals_update()

8 years agoFix for #34910, NodeGroup input/output sliders bug. Initially i thought this was...
Lukas Toenne [Sun, 14 Apr 2013 07:23:44 +0000 (07:23 +0000)]
Fix for #34910, NodeGroup input/output sliders bug. Initially i thought this was a limitation of the "only 1 list per panel supported" type, but this has since been fixed. Lists just need an additional identifier to distinguish lists in the same panel, thanks to Bastien Montagne for the uiList overhaul!

8 years agouse UNLIKELY macro for frequently called inline bli math functions.
Campbell Barton [Sun, 14 Apr 2013 07:18:37 +0000 (07:18 +0000)]
use UNLIKELY macro for frequently called inline bli math functions.

8 years agobmesh operators: use operator type-flag to specify which operations require normal...
Campbell Barton [Sun, 14 Apr 2013 06:22:34 +0000 (06:22 +0000)]
bmesh operators: use operator type-flag to specify which operations require normal-calculations and which operations require selection flushing.
eg, no need to flush selection after 'Smooth' tool, no need to recalculate normals after 'Select Similar'.

8 years agomodify snapObjectsRayEx() to use a pointer to 'ray_dist' rather then passing the...
Campbell Barton [Sun, 14 Apr 2013 05:37:43 +0000 (05:37 +0000)]
modify snapObjectsRayEx() to use a pointer to 'ray_dist' rather then passing the dist, this is to better support multiple calls to ray-cast where only closer distances are accepted.

8 years agoBGE: Adding mipmapping control to bge.render via bge.render.setMipmapping() and bge...
Mitchell Stokes [Sun, 14 Apr 2013 00:40:24 +0000 (00:40 +0000)]
BGE: Adding mipmapping control to bge.render via bge.render.setMipmapping() and bge.render.getMipmapping().

8 years agoFix for [#34913] Freestyle: Problem w/ Edge Marks combined w/ Collision.
Tamito Kajiyama [Sun, 14 Apr 2013 00:27:31 +0000 (00:27 +0000)]
Fix for [#34913] Freestyle: Problem w/ Edge Marks combined w/ Collision.

Freestyle edge marks were messed up with Collision and other physics mesh modifiers.
The issue was due to copied Vlak instances without resetting edge marks to proper values.

Also made minor changes for avoiding unnecessary hash table lookups, and added an
assertion to check potential buffer overrun.

8 years agoCode cleanup:
Thomas Dinges [Sat, 13 Apr 2013 23:06:33 +0000 (23:06 +0000)]
Code cleanup:
* Remove obsolete comment from layout file.

8 years agoCode cleanup / Layout script:
Thomas Dinges [Sat, 13 Apr 2013 22:52:28 +0000 (22:52 +0000)]
Code cleanup / Layout script:
* Never ever use something like "rowsub" as variable.

8 years agomake buttons for edge/face area, length, angles etc. more compact.
Campbell Barton [Sat, 13 Apr 2013 22:29:58 +0000 (22:29 +0000)]
make buttons for edge/face area, length, angles etc. more compact.

8 years agoremove checks for 'context.scene' when checking if freestyle is enabled.
Campbell Barton [Sat, 13 Apr 2013 22:21:21 +0000 (22:21 +0000)]
remove checks for 'context.scene' when checking if freestyle is enabled.

8 years agoshow weight-display options in editmode.
Campbell Barton [Sat, 13 Apr 2013 22:12:55 +0000 (22:12 +0000)]
show weight-display options in editmode.

8 years agoBGE: Adding a render.setFullScreen() and a render.getFullScreen() to allow fulscreeni...
Mitchell Stokes [Sat, 13 Apr 2013 21:09:02 +0000 (21:09 +0000)]
BGE: Adding a render.setFullScreen() and a render.getFullScreen() to allow fulscreening games via Python.

8 years agocode cleanup: edit-derived-mesh, define 'BMesh *bm' as local variable, avoid 'bmdm...
Campbell Barton [Sat, 13 Apr 2013 20:58:49 +0000 (20:58 +0000)]
code cleanup: edit-derived-mesh, define 'BMesh *bm' as local variable, avoid 'bmdm->em->bm' within functions.

8 years agofix for error in editmesh derived callbacks, emDM_getVert(), emDM_getEdge(), emDM_get...
Campbell Barton [Sat, 13 Apr 2013 20:40:34 +0000 (20:40 +0000)]
fix for error in editmesh derived callbacks, emDM_getVert(), emDM_getEdge(), emDM_getTessFace().
Currently the functions aren't used since they would fail have failed immediately.

8 years agocode cleanup: rename BKE_tessmesh -> BKE_editmesh, rename ->...
Campbell Barton [Sat, 13 Apr 2013 20:31:52 +0000 (20:31 +0000)]
code cleanup: rename BKE_tessmesh -> BKE_editmesh, rename -> em. ('tc' is odd name which isn't used elsewhere).

8 years agoMesh Drawing:
Campbell Barton [Sat, 13 Apr 2013 20:20:21 +0000 (20:20 +0000)]
Mesh Drawing:

Option to draw mesh vertex-weights in editmode, available from the 'Mesh Display' panel.

TODO: get this to work when modifiers are applied in solid mode (texface-solidmode is working).

8 years agocode cleanup: more minor changes for editmesh face drawing.
Campbell Barton [Sat, 13 Apr 2013 18:11:27 +0000 (18:11 +0000)]
code cleanup: more minor changes for editmesh face drawing.

8 years agocode cleanup: editmesh draw functions, make face drawing more consistent.
Campbell Barton [Sat, 13 Apr 2013 17:57:11 +0000 (17:57 +0000)]
code cleanup: editmesh draw functions, make face drawing more consistent.

8 years agoNode editor: create the toolbar area right at the start in node space, in order to...
Lukas Toenne [Sat, 13 Apr 2013 17:36:31 +0000 (17:36 +0000)]
Node editor: create the toolbar area right at the start in node space, in order to show the '+' icon for expanding.

8 years agoNode UI:
Thomas Dinges [Sat, 13 Apr 2013 16:32:28 +0000 (16:32 +0000)]
Node UI:
* Now that the toolbar is useful, add menu entry into the "View" menu.

8 years agoFix some compilation errors for MinGW. Thanks to vildas on irc for
Antony Riakiotakis [Sat, 13 Apr 2013 16:29:18 +0000 (16:29 +0000)]
Fix some compilation errors for MinGW. Thanks to vildas on irc for
bringing this to attention.

8 years agoFix: uiBlockSetNFunc was using uiButHandleFunc as param signature, instead of uiButHa...
Bastien Montagne [Sat, 13 Apr 2013 16:28:39 +0000 (16:28 +0000)]
Fix: uiBlockSetNFunc was using uiButHandleFunc as param signature, instead of uiButHandleNFunc one (was working because both are the same currently).

8 years agoNode Toolbar:
Thomas Dinges [Sat, 13 Apr 2013 16:26:55 +0000 (16:26 +0000)]
Node Toolbar:
* Have panels closed by default.

8 years agoNode categories / Add menu:
Thomas Dinges [Sat, 13 Apr 2013 15:51:25 +0000 (15:51 +0000)]
Node categories / Add menu:
* Fix for Subsurface Scattering node.

8 years agoReplacing the node Add menu and making the toolbar useful
Lukas Toenne [Sat, 13 Apr 2013 15:38:02 +0000 (15:38 +0000)]
Replacing the node Add menu and making the toolbar useful

As some people have already noticed, the "Add" menu for nodes is a bit messy since pynodes merge. The reason for this is that the order of nodes in submenus (categories) was previously defined by the order in which all nodes are registered (at the bottom of blenkernel/intern/node.c). For the dynamic registration of node types now possible this system of defining node order along with registration is no longer viable: while it would still sort of work for C nodes, it is completely meaningless for dynamic (python) nodes, which are basically registered automatically in whatever order modules and addons are loaded, with the added complexity of unloading and reloading.

To fix this problem and add a bunch of desirable features this commit replaces the C menu with a python implementation. The new menu does not rely on any particular order of types in the node registry, but instead uses a simple explicit list of all the available nodes, grouped by categories (in scripts/

There are a number of additional features that become possible with this implementation:

1) Node Toolbar can be populated!
The list of nodes is used to create 2 UI items for each node: 1 entry in a submenu of "Add" menu and 1 item in a node toolbar panel with basically the same functionality. Clicking a button in the toolbar will add a new node of this type, just like selecting an item in the menu. The toolbar has the advantage of having collapsible panels for each category, so users can decide if they don't need certain nodes categories and have the rest more easily accessible.

2) Each node item is a true operator call.
The old Add menu is a pretty old piece of C code which doesn't even use proper operator buttons. Now there is a generic node_add operator which can be used very flexibly for adding any of the available nodes.

3) Node Items support additional settings.
Each "NodeItem" consists of the basic node type plus an optional list of initial settings that shall be applied to a new instance. This gives additional flexibility for creating variants of the same node or for defining preferred initial settings. E.g. it has been requested to disable previews for all nodes except inputs, this would be simple change in the py code and much less intrusive than in C.

4) Node items can be generated with a function.
A callback can be used in any category instead of the fixed list, which generates a set of items based on the context (much like dynamic enum items in bpy.props). Originally this was implemented for group nodes, because these nodes only make sense when linked to a node tree from the library data. This principle could come in handy for a number of other nodes, e.g. Image nodes could provide a similar list of node variants based on images in the library - no need to first add node, then select an image.

WARNING: pynodes scripters will have to rework their "draw_add_menu" callback in node tree types, this has been removed now! It was already pretty redundant, since one can add draw functions to the Add menu just like for any other menu. In the future i'd like to improve the categories system further so scripters can use it for custom node systems too, for now just make a draw callback and attach it to the Add menu.

8 years agoUsability fix, own collection.
Ton Roosendaal [Sat, 13 Apr 2013 15:14:34 +0000 (15:14 +0000)]
Usability fix, own collection.

If you have two windows, each with different scene, the render output for a window
would go to the other, if it was already drawing a render for the other scene.

Now you can have renders draw correct in two windows for two scenes.

8 years agocode cleanup: remove unused string formatting in bli_adddirstrings(), also remove...
Campbell Barton [Sat, 13 Apr 2013 14:57:08 +0000 (14:57 +0000)]
code cleanup: remove unused string formatting in bli_adddirstrings(), also remove unused initializations and comment unused vars.

8 years agoAccidentally left in test function. All's fine now!
Ton Roosendaal [Sat, 13 Apr 2013 14:15:16 +0000 (14:15 +0000)]
Accidentally left in test function. All's fine now!

8 years agoFix compilation, ifdef test_file just in case it is useful for later.
Antony Riakiotakis [Sat, 13 Apr 2013 14:05:31 +0000 (14:05 +0000)]
Fix compilation, ifdef test_file just in case it is useful for later.

8 years agoCycles / Save Buffers:
Thomas Dinges [Sat, 13 Apr 2013 12:49:22 +0000 (12:49 +0000)]
Cycles / Save Buffers:
* Save Buffers could not be disabled in the UI, when "Full Sample" was enabled in Blender Internal.

8 years agoBug fix #34896
Ton Roosendaal [Sat, 13 Apr 2013 12:03:20 +0000 (12:03 +0000)]
Bug fix #34896

The feature "Keep Session" was also loading that session when you double-click
on a .blend to open it, or when a .blend file was on commandline.

Moved this feature to the main() in creator.c, so it can check on it properly, skipping the
kept session when a file was loaded.

8 years agoimproved tooltips even more (as discussed in IRC)
Gaia Clary [Sat, 13 Apr 2013 09:32:27 +0000 (09:32 +0000)]
improved tooltips even more (as discussed in IRC)

8 years agoFix for [#34968] Cross compiling from linux for windows is broken
Thomas Dinges [Sat, 13 Apr 2013 09:28:07 +0000 (09:28 +0000)]
Fix for [#34968] Cross compiling from linux for windows is broken
* Patch by Martijn Berger (juicyfruit).

8 years agoimproved tooltips
Gaia Clary [Sat, 13 Apr 2013 09:27:03 +0000 (09:27 +0000)]
improved tooltips

8 years agoAdd update to brush texture preview when brush is changed. Solves
Antony Riakiotakis [Sat, 13 Apr 2013 08:41:52 +0000 (08:41 +0000)]
Add update to brush texture preview when brush is changed. Solves
cycling through tools with number or tool keys and no texture preview
getting updated.

8 years agocode cleanup: use `const char` for args and replace wm_keyconfig_list_find() -> BLI_f...
Campbell Barton [Sat, 13 Apr 2013 04:28:04 +0000 (04:28 +0000)]
code cleanup: use `const char` for args and replace wm_keyconfig_list_find() -> BLI_findstring()

8 years agocode cleanup: warnings + style
Campbell Barton [Sat, 13 Apr 2013 00:43:49 +0000 (00:43 +0000)]
code cleanup: warnings + style

8 years agoAllow rake/random brush rotation for random mapping mode. Some
Antony Riakiotakis [Fri, 12 Apr 2013 23:55:11 +0000 (23:55 +0000)]
Allow rake/random brush rotation for random mapping mode. Some
interesting things can be accomplished this way, such as tiger stripes
for instance.

8 years agoFixes:
Antony Riakiotakis [Fri, 12 Apr 2013 21:58:18 +0000 (21:58 +0000)]

* Overlay invalidation did not happen when changing brush, .either
through UI or through shortcuts
* Add initiliazation of curves before threaded overlay texture
evaluation or we may get memory leaks due to race conditions.

8 years agooversight on scons, this should fix.
Antony Riakiotakis [Fri, 12 Apr 2013 17:59:38 +0000 (17:59 +0000)]
oversight on scons, this should fix.

8 years agoAdd function to query maximum texture size. Also, make texture upload
Antony Riakiotakis [Fri, 12 Apr 2013 17:56:07 +0000 (17:56 +0000)]
Add function to query maximum texture size. Also, make texture upload
functions aware of this limit.

8 years agoPaint refactoring commit, non-disruptive (in theory :p)
Antony Riakiotakis [Fri, 12 Apr 2013 17:21:31 +0000 (17:21 +0000)]
Paint refactoring commit, non-disruptive (in theory :p)

* Fix precision overflow issue with overlay previews,
* Expose alpha mask mapping to UI (still not functional but coming soon).
* More overlay refactoring:

Overlay now does minimal checking for texture refresh.
Instead, we now have invalidation flags to set an aspect of the brush
overlay as invalid. This is necessary because this way we will be able to
separate and preview different brush attributes on the overlays, using
different textures:

These attributes/aspects are:

Primary texture (main texture for sculpt, vertex, imapaint)
Secondary texture (mask/alpha texture for imapaint)
Cursor texture (cursor texture. It involves brush strength and curves)

Modified the relevant RNA property update functions and C update callback
functions to call the relevant cursor invalidation functions instead
of checking every frame for multiple properties.

Properties that affect this are:

Image changes, if image is used by current brush,
Texture slot changes, similarly
Curve changes,
Object mode change invalidates the cursor
Paint tool change invalidates the cursor.

These changes give slightly more invalidation cases than simply
comparing the relevant properties each frame, but these do not occur in
performance critical moments and it's a much more elegant system than
adding more variables to check per frame each time we add something on
the system.

8 years agoAdd property update for radial control operator. It will be necessary
Antony Riakiotakis [Fri, 12 Apr 2013 15:45:44 +0000 (15:45 +0000)]
Add property update for radial control operator. It will be necessary
for upcoming overlay refresh commit, but since that commit is becoming
too big, better have this separate to avoid getting this lost in the

8 years agoFix for user count when adding a new library node tree. This needs to decrease user...
Lukas Toenne [Fri, 12 Apr 2013 15:42:16 +0000 (15:42 +0000)]
Fix for user count when adding a new library node tree. This needs to decrease user count by 1 to compensate for increment in RNA_property_pointer_set.

8 years agoFix #34322: cycles crash with (undo) save during threaded render. The mesh save
Brecht Van Lommel [Fri, 12 Apr 2013 15:33:09 +0000 (15:33 +0000)]
Fix #34322: cycles crash with (undo) save during threaded render. The mesh save
code was modifying pointers in the Mesh which gave crashes with another thread
accessing the data at the same time. This could crash other threaded operations
like blender internal render or physics baking too but was less likely.

As a solution I've now changed the save code that it does not modify the mesh
data structure in place but rather a copy, as undo file saving should probably
be fully read-only regardless of how an improved threading architecture might

Thanks to Sergey for tracking down the cause of this crash.

8 years agoFix #34961: camera fly mode would reset camera scale.
Brecht Van Lommel [Fri, 12 Apr 2013 14:25:08 +0000 (14:25 +0000)]
Fix #34961: camera fly mode would reset camera scale.

8 years agoBlender is compilable with strict compiler flags again
Sergey Sharybin [Fri, 12 Apr 2013 13:01:50 +0000 (13:01 +0000)]
Blender is compilable with strict compiler flags again

8 years agoAdding scrollbar default to Python console and Python Info log.
Ton Roosendaal [Fri, 12 Apr 2013 12:30:05 +0000 (12:30 +0000)]
Adding scrollbar default to Python console and Python Info log.

8 years agoMore fixes for addon i18n messages management.
Bastien Montagne [Fri, 12 Apr 2013 12:19:50 +0000 (12:19 +0000)]
More fixes for addon i18n messages management.

8 years agoAdded 'move' functions to the inputs and outputs node socket collections (similar...
Lukas Toenne [Fri, 12 Apr 2013 12:19:22 +0000 (12:19 +0000)]
Added 'move' functions to the inputs and outputs node socket collections (similar to move function in CollectionProperty). This is useful to change the socket order in pynodes. Otherwise one would have to remember socket values and links, remove a socket, insert a new one and copy back these values, which is tedious and error prone.

8 years agominor edit to bake printouts which could get mixed because of \r.
Campbell Barton [Fri, 12 Apr 2013 12:03:56 +0000 (12:03 +0000)]
minor edit to bake printouts which could get mixed because of \r.

8 years agoRemoved a lot of now-unnecessary checks from node RNA. The typeinfo pointers in bNode...
Lukas Toenne [Fri, 12 Apr 2013 11:43:21 +0000 (11:43 +0000)]
Removed a lot of now-unnecessary checks from node RNA. The typeinfo pointers in bNodeTree, bNode and bNodeSocket are now always pointing to valid type structs. If a tree, node or socket has an unknown type at load time it will be pointed to a dummy "UndefinedType" struct instead, which has default settings and allows for nice debugging. Checking if node->typeinfo etc. is NULL is not necessary any more, makes code a lot easier and smaller.

8 years agoImage draw method option
Sergey Sharybin [Fri, 12 Apr 2013 10:52:47 +0000 (10:52 +0000)]
Image draw method option

This option replaces previously added GPU limit
option, which became tricky to follow after GLSL
display space conversion.

There're 4 modes available:
- AUTO which will try to guess which mode is
  best to use.
  Currently It'll try using GLSL and if it fails,
  will fallback to 2D textures.
  Probably it'll make sense checking on whether
  2D textures works well but currently such behavior
  shall be sufficient.
  Later we could make this method smarter (for example
  don't try to use GLSL on certain GPU or so).
- GLSL will currently behave the same way as AUTO,
  but it is intended to always try using GLSL
  (unless it can not be used because of existing
  limitation of dither and RGB curves).
- 2D Textures will use CPU-based color space conversion
  and use OGL 2D Texture to display the image.
  Image will be displayed in tiles, so there shall be
  no big GPU memory consumption.
- DrawPixels will straightly fallback to glDrawPixels
  without trying to use any fancy GPU stuff.

Hopefully this will also fix
#34943: Blender crashes when resizing the Compositing Screen Window

8 years agoadd render slot cycle forward/backwards menu items.
Campbell Barton [Fri, 12 Apr 2013 10:19:31 +0000 (10:19 +0000)]
add render slot cycle forward/backwards menu items.

8 years agoMade the update callback in bNodeTree registerable in RNA, this was still missing...
Lukas Toenne [Fri, 12 Apr 2013 08:43:08 +0000 (08:43 +0000)]
Made the update callback in bNodeTree registerable in RNA, this was still missing for pynodes. This update callback can be used for "global" updates of the node tree as a whole, as opposed to "local" updates of individual nodes. Any kind of update that takes node connections into account (such as dependency sorting) and does not just work on a single node should be done in the nodetree.update function rather than node.update.

8 years agoSmall change to the node space RNA function for opening a node group: pass the node...
Lukas Toenne [Fri, 12 Apr 2013 07:35:49 +0000 (07:35 +0000)]
Small change to the node space RNA function for opening a node group: pass the node tree as explicit argument plus an optional group node, instead of trying to get the node tree from a node property. This is more flexible for future nodes that want to change the node editor. Node group operators can rely on group node types, but the generic RNA functions should not.

8 years agofix for own recent addition of transform indervidual-axis in editmode, not working...
Campbell Barton [Fri, 12 Apr 2013 02:16:44 +0000 (02:16 +0000)]
fix for own recent addition of transform indervidual-axis in editmode, not working if the object was rotated.

8 years agobge fix: framing mode "Expanded" not updated when resizing blenderplayer
Dalai Felinto [Fri, 12 Apr 2013 01:52:30 +0000 (01:52 +0000)]
bge fix: framing mode "Expanded" not updated when resizing blenderplayer
now, with a 'resize' routine for the engine we can/should also recreate some
buffers that are created only at init time (e.g., 2d filters, dome fbos, ...).

This bug was always present in Blender (since 2.49 at least).

Bugfix supported by NF-UBC Nereus Program as part of the development
of OceanViz/NereusViz

8 years agocode cleanup: warnings and style.
Campbell Barton [Fri, 12 Apr 2013 00:50:40 +0000 (00:50 +0000)]
code cleanup: warnings and style.

8 years agoRelated to #34558: clarify the description for the "default" parameter in bpy.props...
Brecht Van Lommel [Thu, 11 Apr 2013 18:10:57 +0000 (18:10 +0000)]
Related to #34558: clarify the description for the "default" parameter in bpy.props.EnumProperty.

8 years agoCorrect stub for snapObjectsRayEx
Jens Verwiebe [Thu, 11 Apr 2013 15:40:57 +0000 (15:40 +0000)]
Correct stub for snapObjectsRayEx

8 years agoAdd stub for snapObjectsRayEx
Jens Verwiebe [Thu, 11 Apr 2013 15:35:16 +0000 (15:35 +0000)]
Add stub for snapObjectsRayEx

8 years agoAdd stub for snapObjectsRayEx
Jens Verwiebe [Thu, 11 Apr 2013 15:33:10 +0000 (15:33 +0000)]
Add stub for snapObjectsRayEx

8 years agoAnd another compile fix for Windows / scons for r55946.
Thomas Dinges [Thu, 11 Apr 2013 15:33:04 +0000 (15:33 +0000)]
And another compile fix for Windows / scons for r55946.

8 years agoCompile fix for r55970.
Thomas Dinges [Thu, 11 Apr 2013 15:21:03 +0000 (15:21 +0000)]
Compile fix for r55970.

8 years agoFix #34817: improve OpenGL preview render speed, it got quite a bit slower since...
Brecht Van Lommel [Thu, 11 Apr 2013 15:15:06 +0000 (15:15 +0000)]
Fix #34817: improve OpenGL preview render speed, it got quite a bit slower since 2.60.

Doing linearization with GLSL was already faster, but even faster is to just read the
bytes instead of floats and convert those to linear, since byte => float is just a quick
256 entry table lookup. Also made it assign the bytes directly to the image buffer so
they do not need to be converted back from float to byte for file saving, and made sky
render write the background color with OpenGL instead of doing it on the CPU.

8 years agoFix #34956: rendering animation with audio would crash with an older ffmpeg
Brecht Van Lommel [Thu, 11 Apr 2013 14:46:41 +0000 (14:46 +0000)]
Fix #34956: rendering animation with audio would crash with an older ffmpeg
after recent changes.

New ffmpeg versions accept align = 0 as a parameter and will set it to 1
automatically, but older ones need to pass align = 1.

8 years agoFix issue with bright frames appearing in clip editor when compositor is open.
Sergey Sharybin [Thu, 11 Apr 2013 14:15:52 +0000 (14:15 +0000)]
Fix issue with bright frames appearing in clip editor when compositor is open.

Allocate float buffer outside of image buffer,
so work-in-progress color space conversion doesn't
interfere with other parts of blender.

Covers most of cases -- since image buffer wouldn't
have partially-update float buffer all the rest
areas would be happy.

However, if there're places which updates float
buffer from byte buffer, it's still possible
some WIP color space conversion is displayed on
the screen.

But what a heck someone will do such a crappy
conversion anyway!

8 years agoFix #34954, due to hardcoded key release it was impossible to change key
Antony Riakiotakis [Thu, 11 Apr 2013 14:15:25 +0000 (14:15 +0000)]
Fix #34954, due to hardcoded key release it was impossible to change key
for sample color and exit the operator. Also tweaked stencil to behave
similarly, so it is now possible to assign custom keys to stencil

8 years agoFix #34929: windows would show a "No disk in drive" error popup when one of the recen...
Brecht Van Lommel [Thu, 11 Apr 2013 14:13:20 +0000 (14:13 +0000)]
Fix #34929: windows would show a "No disk in drive" error popup when one of the recently opened files was on a DVD that's no longer there in the DVD drive.