7 years ago.gitignore: Adding CMakeLists.txt.user for QtCreator users.
Mitchell Stokes [Mon, 27 Jan 2014 01:52:14 +0000 (17:52 -0800)]
.gitignore: Adding CMakeLists.txt.user for QtCreator users.

7 years agoFix typo in nla blend modes.
Sv. Lockal [Sun, 26 Jan 2014 16:12:29 +0000 (20:12 +0400)]
Fix typo in nla blend modes.

7 years agoFix T38354: Excess memory allocation when projecting onto object with multires
Bastien Montagne [Sun, 26 Jan 2014 15:53:33 +0000 (16:53 +0100)]
Fix T38354: Excess memory allocation when projecting onto object with multires

Found three cases where created bvhtree was not freed...

7 years agoCycles Standalone: Basic support for external OSL shaders.
Thomas Dinges [Sun, 26 Jan 2014 15:22:19 +0000 (16:22 +0100)]
Cycles Standalone: Basic support for external OSL shaders.

* Very simple implementation, only allows for 1 output socket. As we haven't decided yet whether we keep the XML API, rather not spend more time on this now.

* To use an external osl shader, put the .osl file next to the xml file.
* Parameters: "output" is the output socket name, "output_type" the variable type (float, color and closure color are supported).
<osl_shader name="tex" src="ramp_closure.osl" output="Phong" output_type="closure color" />
<connect from="tex Phong" to="output surface" />

7 years agoFix T38366: export collada crash - if you set a keyframe
Bastien Montagne [Sun, 26 Jan 2014 15:06:47 +0000 (16:06 +0100)]
Fix T38366: export collada crash - if you set a keyframe

Don't assume all objects have a valid animdata...

7 years agoCleanup of BLI_smallhash
Bastien Montagne [Sun, 26 Jan 2014 14:17:06 +0000 (15:17 +0100)]
Cleanup of BLI_smallhash

Factorized a bit the code here, think it's more readable now... No performance enhancement though.

Reviewed by: campbellbarton

Differential Revision:

7 years agoCode Cleanup: style and correct API class ref
Campbell Barton [Sun, 26 Jan 2014 11:17:01 +0000 (22:17 +1100)]
Code Cleanup: style and correct API class ref

7 years agoCycles: Set samples to USHRT_MAX per default in the constructor, this is already...
Thomas Dinges [Sat, 25 Jan 2014 18:25:24 +0000 (19:25 +0100)]
Cycles: Set samples to USHRT_MAX per default in the constructor, this is already used elsewhere.

7 years agoCycles Standalone: Various changes
Thomas Dinges [Sat, 25 Jan 2014 17:57:02 +0000 (18:57 +0100)]
Cycles Standalone: Various changes

* Change Info in header, put more important info to the left
* API: Move Camera width/height to camera, add some film properties
* Add ESC key to help menu

7 years agoFix T38353: some EXR files from other applications not loading correctly.
Brecht Van Lommel [Sat, 25 Jan 2014 16:44:15 +0000 (17:44 +0100)]
Fix T38353: some EXR files from other applications not loading correctly.

* EXR layers with names like 'Z' without any pass name were not loaded at all
  and would break the Combined pass as well.
* EXR pass names longer than 16 characters where writing past the end of the
  array and getting invalid names.

7 years agofix building cycles standalone on windows / cmake
Martijn Berger [Sat, 25 Jan 2014 13:19:32 +0000 (14:19 +0100)]
fix building cycles standalone on windows / cmake

7 years agoCleanup: Simplify Cycles standalone OSL detection code.
Thomas Dinges [Sat, 25 Jan 2014 12:25:26 +0000 (13:25 +0100)]
Cleanup: Simplify Cycles standalone OSL detection code.

7 years agoBlender docs: Correct upper limit, shown for missing -t option value.
Lawrence D'Oliveiro [Sat, 25 Jan 2014 11:27:39 +0000 (12:27 +0100)]
Blender docs: Correct upper limit, shown for missing -t option value.

Differential Revision:

7 years agoFix T38359: Not a bug, but better to grey out Material selector of particles when...
Bastien Montagne [Sat, 25 Jan 2014 08:01:32 +0000 (09:01 +0100)]
Fix T38359: Not a bug, but better to grey out Material selector of particles when using Object or Group render type (since we always use duplicated objects' materials in this case!).

7 years agoFix T38356: Crash when UIList.filter_items returns too few items.
Bastien Montagne [Fri, 24 Jan 2014 21:12:38 +0000 (22:12 +0100)]
Fix T38356: Crash when UIList.filter_items returns too few items.

7 years agoChange tooltip text for Vertex Group in Bevel Modifier.
Howard Trickey [Fri, 24 Jan 2014 17:52:18 +0000 (12:52 -0500)]
Change tooltip text for Vertex Group in Bevel Modifier.

Reflects previous commit that now allows this group to
control edge bevels too.

7 years agoBevel modifier can use vertex groups for edge bevel now.
Howard Trickey [Fri, 24 Jan 2014 17:42:20 +0000 (12:42 -0500)]
Bevel modifier can use vertex groups for edge bevel now.

Until now, the "vertex group" limit method in the modifier
only worked for "vertex only" bevels. With this change,
edges with both ends in a vertex group will be beveled
in the non-"vertex only" case.
Also changed the test for being in a vertex group from
"any nonzero weight" to "weight >= 0.5". This is because
cascaded bevels on disjoint vertex groups did not give
disjoint bevels, because weight interpolation would give
non-zero weights to newly created vertices in earlier bevels.
Chose 0.5 because that won't result from interpolation, but
still allows some dilution (e.g., cascaded bevels on the
same vertex group).

7 years agoAdd convinient access to full bitangent for loops (some export formats like FBX expec...
Bastien Montagne [Fri, 24 Jan 2014 16:49:29 +0000 (17:49 +0100)]
Add convinient access to full bitangent for loops (some export formats like FBX expect full bitangents, better to compute them in C than in python...)

7 years agoFix T38347: adding object visibility keyframes in the outliner groups and
Brecht Van Lommel [Fri, 24 Jan 2014 15:07:29 +0000 (16:07 +0100)]
Fix T38347: adding object visibility keyframes in the outliner groups and
libraries view not working.

This was disabled in the operator, there may have been a reason for this at
some point, but I can't see any reason to disallow it in the current code or
find a good reason why it was done in the commit logs.

7 years agoMake multisegment bevel profiles even for all parameters.
Howard Trickey [Fri, 24 Jan 2014 15:07:24 +0000 (10:07 -0500)]
Make multisegment bevel profiles even for all parameters.

The method for calculating points on the profile for non-circles
and non-lines meant that the segments making up an edge had
uneven widths.
Use a numeric search technique to find superellipse evaluation
points that lead to equal-sized chords across the profile.
Also calculate the actual profile points sooner, so that they
don't have to be recalculated again and again.
This also sets up for a possible later feature of arbitrary
profile shapes, set by user.

7 years agoCycles Standalone: Add a help message, which appears when pressing the "h" key.
Thomas Dinges [Fri, 24 Jan 2014 11:57:19 +0000 (12:57 +0100)]
Cycles Standalone: Add a help message, which appears when pressing the "h" key.

This is very basic for now, but can be extended with more info (available devices for example) later.

Thanks to Bastien and Sergey for some help with the glRect coordinates stuff.

7 years agoFix currently harmless issue with converting ImBuf from sequencer space
Sergey Sharybin [Fri, 24 Jan 2014 08:29:50 +0000 (14:29 +0600)]
Fix currently harmless issue with converting ImBuf from sequencer space

7 years agoFix compilation error caused by 67f1fd2
Sergey Sharybin [Fri, 24 Jan 2014 08:06:23 +0000 (14:06 +0600)]
Fix compilation error caused by 67f1fd2

Did one tried building blender before commit even?

7 years agogame engine: implement hitMaterial for collision and ray sensors
Dalai Felinto [Fri, 24 Jan 2014 04:10:04 +0000 (02:10 -0200)]
game engine: implement hitMaterial for collision and ray sensors

Reviewed By: moguri, kupoman

Differential Revision:

7 years agoAdd support for new "bl_category" member (new panels "tabs" system).
Bastien Montagne [Thu, 23 Jan 2014 21:29:04 +0000 (22:29 +0100)]
Add support for new "bl_category" member (new panels "tabs" system).

7 years agoFix T38150: implementation mismatch in bmesh python
Bastien Montagne [Thu, 23 Jan 2014 19:08:23 +0000 (20:08 +0100)]
Fix T38150: implementation mismatch in bmesh python

Hopefully this time all mismatches are fixed (quickly checked the whole BMesh API files,
found a few others in addition to those reported in T38150).

7 years agoMake Tab Divider interopolate between the region background and tab outline.
Jonathan Williamson [Thu, 23 Jan 2014 18:28:41 +0000 (12:28 -0600)]
Make Tab Divider interopolate between the region background and tab outline.

Previously the divider was using the region background and the region text, leading to bad outlines with custom themes. This makes the outline behave more expectedly and allows better control.

7 years agoFix T38337: Crash when calling to_mesh() on a Curve object after clearing its parent
Sergey Sharybin [Thu, 23 Jan 2014 18:16:10 +0000 (00:16 +0600)]
Fix T38337: Crash when calling to_mesh() on a Curve object after clearing its parent

This is rather a workaround which only works because curve evaluation is only called
for a temporary object. Not a big deal if we'll skip path creation for such objects.

Still would need to think of general solution.

7 years agoFix T36165: blender internal HDR textures with negative values got clamped.
Brecht Van Lommel [Thu, 23 Jan 2014 17:38:48 +0000 (18:38 +0100)]
Fix T36165: blender internal HDR textures with negative values got clamped.

For example for vector displacement, you may have an EXR texture that has
negative colors values. Blender clamps these by default, now the Colors panel
for textures has a Clamp option to disable this clamping.

This option affects all texture types and is enabled by default, you need
to disable it if you want negative values to have an influence.

Patch by Fredrik Hansson with modifications by me.

7 years agoFix T37302: cycles slow hair export with many hairs, especially on Windows.
Brecht Van Lommel [Thu, 23 Jan 2014 17:14:19 +0000 (18:14 +0100)]
Fix T37302: cycles slow hair export with many hairs, especially on Windows.

7 years agoFix T37685: automatic weights affected by face masking outside weight paint mode.
Brecht Van Lommel [Thu, 23 Jan 2014 16:47:20 +0000 (17:47 +0100)]
Fix T37685: automatic weights affected by face masking outside weight paint mode.

Only when in weight paint mode should it check the selected vertices and faces,
in object mode it should just affect the entire mesh.

7 years agoCleanup: int/short to bool in BKE_cdderivedmesh.h functions (and TRUE/FALSE to true...
Bastien Montagne [Thu, 23 Jan 2014 13:50:50 +0000 (14:50 +0100)]
Cleanup: int/short to bool in BKE_cdderivedmesh.h functions (and TRUE/FALSE to true/false in code using them).

7 years agoFix crash when changing space type to 3D space when having multiple windows
Sergey Sharybin [Thu, 23 Jan 2014 13:27:59 +0000 (19:27 +0600)]
Fix crash when changing space type to 3D space when having multiple windows

it is possible that different windows shares scene but displays different
layers. And it's also possible that different areas in the same window will
show different layers.

First case was violated in `dag_current_scene_layers()` which only checked
scene layers only once and if multiple windows shares the same scene only
one window was handled. Now made it so layers from all windows will be
squashed together into a single `DagSceneLayer`. This mainly solves issue
with `DAG_on_visible_update()` which didn't work reliable with multiple
open windows.

Second case required call of `DAG_on_visible_update()` when changing space
are type.

This commit slows things a bit actually because `dag_current_scene_layers()`
is actually called on every main WM loop iteration. It is possible to speed
some logic up perhaps. Not sure it's so much critical to do now because there
are unlikely to be more than few windows open anyway.

Will rather think of skipping all that flushing things if no objects are
tagged for update actually.

7 years agoFix for crash getting the name of RNA properties with empty name
Campbell Barton [Thu, 23 Jan 2014 13:25:11 +0000 (00:25 +1100)]
Fix for crash getting the name of RNA properties with empty name

7 years agoCode Cleanup: whitespace
Campbell Barton [Thu, 23 Jan 2014 11:34:56 +0000 (22:34 +1100)]
Code Cleanup: whitespace

7 years agoCode Cleanup: find operator once and reuse
Campbell Barton [Thu, 23 Jan 2014 11:05:51 +0000 (22:05 +1100)]
Code Cleanup: find operator once and reuse

7 years agoFix typo in mmap commit from a while ago
Sergey Sharybin [Thu, 23 Jan 2014 12:41:38 +0000 (18:41 +0600)]
Fix typo in mmap commit from a while ago

7 years agoFix for IMB_(un)premultiply_rect_float() not doing right business
Sergey Sharybin [Thu, 23 Jan 2014 10:51:32 +0000 (16:51 +0600)]
Fix for IMB_(un)premultiply_rect_float() not doing right business

- Made them receive number of channels rather than number of planes.
  This matches to how ImBuf structure stored planes and channels.
- IMB_premultiply_rect_float() was called with channels passed instead
  of planes already :S.

7 years agoFix T38284: Crash with several shrinkwrap constraint using same target
Sergey Sharybin [Thu, 23 Jan 2014 10:24:41 +0000 (16:24 +0600)]
Fix T38284: Crash with several shrinkwrap constraint using same target

Issue is caused by the race condition between getting custom data layers
from target's derived mesh (for vertices and faces) and releasing this
derived mesh from other threads.

When one releases the derived mesh it'll free temporary data from it,
and it'll also update data layers mapping.

General rule for threading is that no one is ever allowed to modify
data he doesn't own. This means that no temp layers are to be allocated
in derived mesh and making it so `CustomData_free_temporary()` doesn't
update mapping if nothing was freed will solve the race condition.

It is still possible to do other improvements, namely detect which
additional data/layers are to be present in derived mesh and create
it as a part of `object_handle_update()`, but this is to be solved

7 years agoRemoved the omat matrix from DupliObject.
Lukas Tönne [Thu, 23 Jan 2014 09:20:42 +0000 (10:20 +0100)]
Removed the omat matrix from DupliObject.

This was storing the original object matrix, which builds on the
assumption that obmat is modified during dupli construction, which is a
bad hack.

Now the obmats are still modified, but this only happens outside of the
dupli system itself and the original ("omat") is stored as local
variables in the same place where the obmat manipulation takes place.
This is easier to follow and avoids hidden hacks as much as possible.

Reviewed By: campbellbarton

Differential Revision:

7 years agoFix T38042: Keymap crash after reloading operators
Campbell Barton [Thu, 23 Jan 2014 08:00:30 +0000 (19:00 +1100)]
Fix T38042: Keymap crash after reloading operators

After some investigation with mont29, seems like the best way to ensure
keymaps point to valid operators is using WM_keyconfig_update().

7 years agoWM: add WM_operatortype_remove_ptr to remove a known operator
Campbell Barton [Thu, 23 Jan 2014 07:01:52 +0000 (18:01 +1100)]
WM: add WM_operatortype_remove_ptr to remove a known operator

7 years agoFix T38328: GLSL display shows texture mapping completely messed up in some cases
Bastien Montagne [Thu, 23 Jan 2014 07:37:07 +0000 (08:37 +0100)]
Fix T38328: GLSL display shows texture mapping completely messed up in some cases

Own stupid typo in rB28ca299d4dfc...

7 years agoFix T38110: GameEngine keyboard sensor ignores unicode characters
Campbell Barton [Thu, 23 Jan 2014 03:58:04 +0000 (14:58 +1100)]
Fix T38110: GameEngine keyboard sensor ignores unicode characters

7 years agoBGE Bitmap Text: add in check if the character is outside the range
Campbell Barton [Thu, 23 Jan 2014 02:37:09 +0000 (13:37 +1100)]
BGE Bitmap Text: add in check if the character is outside the range

7 years agoFix T38325: Game Engine Bitmap fonts failed for characters >128
Campbell Barton [Thu, 23 Jan 2014 02:29:49 +0000 (13:29 +1100)]
Fix T38325: Game Engine Bitmap fonts failed for characters >128

7 years agoThemes: update for tab colors
Campbell Barton [Thu, 23 Jan 2014 01:08:39 +0000 (12:08 +1100)]
Themes: update for tab colors

7 years agoTab theme colors
Campbell Barton [Thu, 23 Jan 2014 00:44:35 +0000 (11:44 +1100)]
Tab theme colors

patch D234 from Jonathan Williamson with edits

- de-duplicate rna_def_userdef_theme_space_gradient and rna_def_userdef_theme_space_generic
- ui_theme_init_new_do now always sets theme settings (no need to test),
  used by bpy.ops.ui.reset_default_theme()

7 years agoFix T38311: cycles BVH cache crash on Windows.
Brecht Van Lommel [Thu, 23 Jan 2014 00:13:09 +0000 (01:13 +0100)]
Fix T38311: cycles BVH cache crash on Windows.

7 years agoMemory allocation: do not use mmap for memory allocation on 64 bit.
Brecht Van Lommel [Thu, 23 Jan 2014 00:08:37 +0000 (01:08 +0100)]
Memory allocation: do not use mmap for memory allocation on 64 bit.

On Windows we can only do mmap memory allocation up to 4 GB, which causes a
crash when doing very large renders on 64 bit systems with a lot of memory.

As far as I can tell the reason to use mmap is to get around address space
limitation on some 32 bit operating systems, and I can't see a reason to use
it on 64 bit. For the original explanation see here:

Fixes T37841.

7 years agoFix T38316: Half of a Face is Missing on Newly Created Cubes or Cylinders.
Bastien Montagne [Wed, 22 Jan 2014 18:49:14 +0000 (19:49 +0100)]
Fix T38316: Half of a Face is Missing on Newly Created Cubes or Cylinders.

Own bug from rBc691551249f3. Now at least I understand why `test_index_face()` is needed for tessellated quads!

Added a bunch of comments to explain the issue, as it's far from an obvious one...

We loose some performances, but it's still much quicker than org code.

7 years agoFix T38323: blender viewport render in particle hair edit mode renders halos.
Brecht Van Lommel [Wed, 22 Jan 2014 18:50:36 +0000 (19:50 +0100)]
Fix T38323: blender viewport render in particle hair edit mode renders halos.

Currently it's not supported to do viewport render of particles while in
particle edit mode, hide the particle instead of rendering halos.

7 years agoFix T37940: Curve Render bug in Blender Internal Render.
Sergey Sharybin [Wed, 22 Jan 2014 16:53:50 +0000 (22:53 +0600)]
Fix T37940: Curve Render bug in Blender Internal Render.

Issue was caused by curve object really scale up. It was
caused by 677f519 to make scaled down curves work fine.

After some tweaks to epsilon value scaled up curves seems
to work as well.

7 years agoFix T38319: no camera error message for render not showing correctly.
Brecht Van Lommel [Wed, 22 Jan 2014 16:40:10 +0000 (17:40 +0100)]
Fix T38319: no camera error message for render not showing correctly.

7 years agoFix T37198: Vorbis encoding is broken
Sergey Sharybin [Wed, 22 Jan 2014 16:11:13 +0000 (22:11 +0600)]
Fix T37198: Vorbis encoding is broken

Issue was caused by wrong PTS calculation. This commit
makes this calculation closer to what's happening in
FFmpeg itself.

Seems everything is working now including newer FFmpeg,
but there's one thing which still doesn't work: writing
avi files with h264 codec and Vorbis audio doesn't play
correct in mplayer here. But didn't manage to get this
working even using FFmpeg CLI, so this might be just a
bug in FFmpeg/mplayer. Since this file works fine in
blender just fine wouldn't consider this is crucial thing
to look into at this moment.

7 years agoFix tool properties region drawing even if the toolbar is hidden.
Brecht Van Lommel [Wed, 22 Jan 2014 15:35:11 +0000 (16:35 +0100)]
Fix tool properties region drawing even if the toolbar is hidden.

This would show as a line on the side of the 3D view with high DPI / retina,
not easy to notice.

7 years agoFix T38318: blender internal viewport now uses viewport, not render visibility.
Brecht Van Lommel [Wed, 22 Jan 2014 14:48:17 +0000 (15:48 +0100)]
Fix T38318: blender internal viewport now uses viewport, not render visibility.

This is the same as cycles and more consistent with it also using viewport

7 years agoFix for particle emission bug, reported on IRC by Thomas Beck
Lukas Tönne [Wed, 22 Jan 2014 15:26:09 +0000 (16:26 +0100)]
Fix for particle emission bug, reported on IRC by Thomas Beck
(@plasmasolutions): When the particle emitter is parented to a fast
moving object, the emission locations will not be interpolated over
subframes. This works if the particle emitter is animated itself.
Particle system evaluates the emitter location for each subframe, but
has to do this for the parent objects as well to get reliable results.

7 years agoRevert "Fix T37920: BGE LibLoad failed for meshes with no materials"
Campbell Barton [Wed, 22 Jan 2014 13:49:58 +0000 (00:49 +1100)]
Revert "Fix T37920: BGE LibLoad failed for meshes with no materials"

This reverts commit 6a473305af22468abfc4c4f8f3002dc0a97fffd7.

Caused T38296, need to investigate this further but for now
better not leave blender in unstable state.

7 years agoFix T38011 and cleanup of Lens Distortion node code.
Lukas Tönne [Wed, 22 Jan 2014 13:32:21 +0000 (14:32 +0100)]
Fix T38011 and cleanup of Lens Distortion node code.

The area-of-interest calculation for that node didn't work reliably.
It tries to estimate the distorted rectangular area based on min/max
distortion and dispersion values, but this fails in some cases and
leaves uninitialized buffer chunks. So now simply use the full input
rect as the area, even though it may not be as efficient - at least it
works ...

Also cleaned up the code somewhat to make it understandable, using
separate functions for common stuff instead of cryptic walls of math.

7 years agoFix T38315: keymap configuration export did not export deactivated items correct.
Brecht Van Lommel [Wed, 22 Jan 2014 13:24:37 +0000 (14:24 +0100)]
Fix T38315: keymap configuration export did not export deactivated items correct.

7 years agoFix T38312: Crash when using snap transform in edit mode
Sergey Sharybin [Wed, 22 Jan 2014 10:28:28 +0000 (16:28 +0600)]
Fix T38312: Crash when using snap transform in edit mode

Issue was caused by uninitialized boolean flag.

7 years agoMake memory checker happy about FileGlobal
Sergey Sharybin [Wed, 22 Jan 2014 10:23:55 +0000 (16:23 +0600)]
Make memory checker happy about FileGlobal

FileGlobal structure in write_global() didn't initialize
the while build_hash property and only placed there null
terminated meaningful content, leaving trailing uninitialized.

This made valgrind complain about using uninitialized memory
later in undo stack.

7 years agoBMesh: collapse_uvs - avoid clearing and flagging for every cd-layer
Campbell Barton [Wed, 22 Jan 2014 06:11:46 +0000 (17:11 +1100)]
BMesh: collapse_uvs - avoid clearing and flagging for every cd-layer

7 years agoFix T38306: dupliframes causing viewport render to continually restart.
Brecht Van Lommel [Tue, 21 Jan 2014 20:01:12 +0000 (21:01 +0100)]
Fix T38306: dupliframes causing viewport render to continually restart.

Evaluating the animation is causing the object to get tagged as changed, but in
this case it's not a permanent change so no one should be notified. Also found
a case where the persistent ID for duplis wasn't unique, fixed that as well.

7 years agoCycles Standalone: Volume integrator settings.
Thomas Dinges [Tue, 21 Jan 2014 19:56:29 +0000 (20:56 +0100)]
Cycles Standalone: Volume integrator settings.

7 years agoUsual UI messages fixes.
Bastien Montagne [Tue, 21 Jan 2014 19:18:07 +0000 (20:18 +0100)]
Usual UI messages fixes.

7 years agoCycles Standalone: XML Updates for the integrator.
Thomas Dinges [Tue, 21 Jan 2014 18:15:54 +0000 (19:15 +0100)]
Cycles Standalone: XML Updates for the integrator.

7 years agoAdd missing struct Lattice declaration.
Bastien Montagne [Tue, 21 Jan 2014 16:24:15 +0000 (17:24 +0100)]
Add missing struct Lattice declaration.

7 years agoCode Cleanup: reduce sign conversion
Campbell Barton [Tue, 21 Jan 2014 15:56:52 +0000 (02:56 +1100)]
Code Cleanup: reduce sign conversion

7 years agoCode Cleanup: use bool for return values and correct comments
Campbell Barton [Tue, 21 Jan 2014 15:48:11 +0000 (02:48 +1100)]
Code Cleanup: use bool for return values and correct comments

also remove CDDM_Check, theres no need for it.

7 years agoMinor cleanup from latest coverity checks - if we have a previous curve, we can safel...
Bastien Montagne [Tue, 21 Jan 2014 15:45:31 +0000 (16:45 +0100)]
Minor cleanup from latest coverity checks - if we have a previous curve, we can safely assume we also have a previous stroke!

Better to assert here, than checking this randomly...

7 years agoOptimize tessellation code (min 20% better, up to 300% with some CD layers to tessell...
Bastien Montagne [Tue, 21 Jan 2014 15:32:36 +0000 (16:32 +0100)]
Optimize tessellation code (min 20% better, up to 300% with some CD layers to tessellate).

The main idea is to store (during tessellation) or recreate (during tessdata update) a tessfaceverts-to-loops mapping, and then update all tessdata
in one pass, instead of calling `BKE_mesh_loops_to_mface_corners` repeatedly for all tfaces!

Differential Revision:

Reviewed by Campbell, thanks a lot!

7 years agoFix T38229: 3D view shadeless display not supported with GLSL, so hide in UI.
Brecht Van Lommel [Tue, 21 Jan 2014 14:49:03 +0000 (15:49 +0100)]
Fix T38229: 3D view shadeless display not supported with GLSL, so hide in UI.

7 years agoTiming macros: remove the (void)0 at the end of TIMEIT_BLOCK_INIT,
Bastien Montagne [Tue, 21 Jan 2014 14:48:07 +0000 (15:48 +0100)]
Timing macros: remove the (void)0 at the end of TIMEIT_BLOCK_INIT,
it prevents declaring/using more than one of these timing blocks in a same code block
(C rule, no var declaration and code mixing)...

7 years agoReplace XOR swapping by default ("naive", with extra var) one.
Bastien Montagne [Tue, 21 Jan 2014 14:19:27 +0000 (15:19 +0100)]
Replace XOR swapping by default ("naive", with extra var) one.

Ref:, modern compilers/CPUs are much more efficient with "naive" algo than XOR one.
Doubled check, for me in an optimized build, XOR is several times slower than naive algo.

7 years agoEnable XDND on FreeBSD
Campbell Barton [Tue, 21 Jan 2014 14:48:09 +0000 (01:48 +1100)]
Enable XDND on FreeBSD

7 years agoFix T38265: transferring vertex weights from an object with modifiers not working.
Brecht Van Lommel [Tue, 21 Jan 2014 14:36:00 +0000 (15:36 +0100)]
Fix T38265: transferring vertex weights from an object with modifiers not working.

It was using the modified mesh for the vertex coordinates, and the unmodified mesh
for the vertex weights, which can't work and crashed in some cases, now it used the
modified mesh for both.

Perhaps an option should be added to indicate if you want to transfer from the
unmodified mesh or transfer to the modified mesh, but I think this fix makes it
works as intended when this was implemented.

7 years agoFix T38298: crash saving float image with 3 channels from exr to png/jpeg.
Brecht Van Lommel [Tue, 21 Jan 2014 14:28:13 +0000 (15:28 +0100)]
Fix T38298: crash saving float image with 3 channels from exr to png/jpeg.

7 years agoRevert "Fix T38303: Inconsistent sorting of names in Append/Link view"
Campbell Barton [Tue, 21 Jan 2014 14:29:29 +0000 (01:29 +1100)]
Revert "Fix T38303: Inconsistent sorting of names in Append/Link view"

This reverts commit ba49d7e0e338b2b85cc162d265280bac8dc859cc.

7 years agoFix T38303: Inconsistent sorting of names in Append/Link view
Campbell Barton [Tue, 21 Jan 2014 14:25:07 +0000 (01:25 +1100)]
Fix T38303: Inconsistent sorting of names in Append/Link view

7 years agoFix T38302: sequencer animation data lost in original scene when copying scene.
Brecht Van Lommel [Tue, 21 Jan 2014 14:15:47 +0000 (15:15 +0100)]
Fix T38302: sequencer animation data lost in original scene when copying scene.

7 years agoFix T38300: Bevel didn't always reconstruct faces properly.
Howard Trickey [Tue, 21 Jan 2014 13:58:56 +0000 (08:58 -0500)]
Fix T38300: Bevel didn't always reconstruct faces properly.

With new subdivision method for making the vertex mesh, we always
subdivide the edges between the new vertices around a vertex
(we used to not subdivide edges between two non-beveled edges).
This fixes a bug related to this change.

7 years agoFix T38303: same names with different case sorted unpredictable in the file browser.
Brecht Van Lommel [Tue, 21 Jan 2014 13:50:40 +0000 (14:50 +0100)]
Fix T38303: same names with different case sorted unpredictable in the file browser.

The string comparison was in lower case, so the same strings with different case
were considered the same which can make qsort give different results on each
sort since it's not a stable sort. Now take case into account in comparison.

7 years agoFix T38128: snapping to node border uses node centers.
Lukas Tönne [Tue, 21 Jan 2014 12:13:41 +0000 (13:13 +0100)]
Fix T38128: snapping to node border uses node centers.

This was caused by recent change to transform locations being changed
to the upper-left corner of nodes (rBa857a6f).

7 years agoFix for dupli's using float for id's and signed/unsigned conversion
Campbell Barton [Tue, 21 Jan 2014 11:48:27 +0000 (22:48 +1100)]
Fix for dupli's using float for id's and signed/unsigned conversion

Enable strict flags exposed some strange issues.

7 years agoCode cleanup and structural improvements for dupli generation.
Lukas Tönne [Tue, 21 Jan 2014 11:11:34 +0000 (12:11 +0100)]
Code cleanup and structural improvements for dupli generation.

This is a first step toward improving our dupli system. It implements a more
generic way of treating the various methods of dupli generation by adding a few
  * DupliContext holds a number of arguments commonly used in the recursive dupli functions and defines a recursion state for generating sub-duplis (nested groups). It also helps to prevent bloated argument lists.
  * DupliGenerator is a type struct that unifies the different dupli creation methods (groups, frames, verts, text chars, faces, particles). (As with context there should be no overhead from pointer indirection because everything can still be inlined inside anim.c)

Beside making the code more easily understandable this implementation should
also help to avoid weird side effects from custom matrix hacks by defining
clearly what a generator does. The DupliContext is deliberately made const, so a
generator can not simply add hidden matrix or flag modifications that are hard
to track down.

The result container for the generated duplis is stored in the context instead
of being passed explicitly. This means the generators are oblivious to the
storage of duplis, all they need to do is call the make_dupli function. This
will allow us to implement more efficient ways of storing DupliObject instances,
such as MemPools or batches. These can be implemented alongside the current
ListBase so we can improve dupli bottlenecks without having to replace each and
every dupli use case at once.

Differential Revision:

7 years agoFix for Freestyle stroke rendering performed for each SSS material.
Tamito Kajiyama [Tue, 21 Jan 2014 03:21:12 +0000 (12:21 +0900)]
Fix for Freestyle stroke rendering performed for each SSS material.

7 years agoFix T38295: Crash when changing screen with different visible layers
Sergey Sharybin [Tue, 21 Jan 2014 09:01:32 +0000 (15:01 +0600)]
Fix T38295: Crash when changing screen with different visible layers

The issue was caused by missing object update for the curve object
before going to new screen. And that new screen had different visible
layers due to disabled lock_camera_and_layers option.

Solved by calling DAG_on_visible_update() in ED_screen_set() even
in cases scene doesn't change. This ensures all the objects which
weren't visible before are correctly updated.

7 years agoCleanup: no need to use constraint space transform API here, we can directly call
Bastien Montagne [Tue, 21 Jan 2014 08:13:43 +0000 (09:13 +0100)]
Cleanup: no need to use constraint space transform API here, we can directly call
BKE_armature_mat_pose_to_bone (and avoids the need to get an Object pointer!).
Note the former just calls the later internally, in this case.

7 years agoFix T38251: "Apply Visual Transform to Pose" Offsets bone unpredictably
Bastien Montagne [Tue, 21 Jan 2014 08:10:08 +0000 (09:10 +0100)]
Fix T38251: "Apply Visual Transform to Pose" Offsets bone unpredictably

Code here was using pchan->chan_mat, which for some reason does not work,
we rather have to use pchan->pose_mat, and convert it again from
pose space to bone space, as done by visual keyframing.

7 years agoFix for own refcount error in recent commit
Campbell Barton [Tue, 21 Jan 2014 03:23:39 +0000 (14:23 +1100)]
Fix for own refcount error in recent commit

7 years agoFix own mistake with zealous check for face splitting
Campbell Barton [Tue, 21 Jan 2014 01:27:38 +0000 (12:27 +1100)]
Fix own mistake with zealous check for face splitting

Was disallowing adjacent loops to be split which is correct for a single
split across a face, but not fore BM_face_split_n

7 years agoCode Cleanup: style
Campbell Barton [Mon, 20 Jan 2014 14:19:51 +0000 (01:19 +1100)]
Code Cleanup: style

7 years agoCycles Standalone: Updates for the XML API, added some missing nodes. Still not compl...
Thomas Dinges [Tue, 21 Jan 2014 00:30:20 +0000 (01:30 +0100)]
Cycles Standalone: Updates for the XML API, added some missing nodes. Still not complete, but better.

7 years agoFix T38264: undo/redo broken with text overwrite mode in text editor (insert key).
Justin Dailey [Mon, 20 Jan 2014 21:12:35 +0000 (22:12 +0100)]
Fix T38264: undo/redo broken with text overwrite mode in text editor (insert key).

7 years agoFix T38297: missing StringProperty subtype 'PASSWORD' in API docs.
Brecht Van Lommel [Mon, 20 Jan 2014 21:01:11 +0000 (22:01 +0100)]
Fix T38297: missing StringProperty subtype 'PASSWORD' in API docs.

7 years agoFix T37976: blender internal transparent shadows from volumes not working correct.
Brecht Van Lommel [Mon, 20 Jan 2014 20:55:28 +0000 (21:55 +0100)]
Fix T37976: blender internal transparent shadows from volumes not working correct.

7 years agoCycles Standalone: GUI flag was not passed correctly to the code, own mistake when...
Thomas Dinges [Mon, 20 Jan 2014 20:12:28 +0000 (21:12 +0100)]
Cycles Standalone: GUI flag was not passed correctly to the code, own mistake when I added the GUI build option.

7 years agoCycles: Add a cmake config to easily compile Cycles Standalone.
Thomas Dinges [Mon, 20 Jan 2014 19:41:54 +0000 (20:41 +0100)]
Cycles: Add a cmake config to easily compile Cycles Standalone.

On Linux/Mac OS X, simply type "make cycles" inside the Blender source directory, to get a standalone build of the engine.

Reviewed by: Brecht
Differential Revision: