5 years agoOpenGL: pull glBegin/End out of loops
Mike Erwin [Fri, 22 Jan 2016 06:03:15 +0000 (01:03 -0500)]
OpenGL: pull glBegin/End out of loops

When drawing 2D grid and 3D axes.

5 years agoGPencil: Select Grouped (Shift G)
Joshua Leung [Fri, 22 Jan 2016 02:31:20 +0000 (15:31 +1300)]
GPencil: Select Grouped (Shift G)

This commit adds a "Select Grouped" operator. Although it is set up to
allow more types of "grouping" in future, it current only supports
a single mode (i.e. "Same Layer"). As a result, it does not pop up
any menus/submenus in all the usual places.

5 years agoOpenGL: fewer state changes for wireframe PBVH
Mike Erwin [Fri, 22 Jan 2016 02:07:17 +0000 (21:07 -0500)]
OpenGL: fewer state changes for wireframe PBVH

Wireframe drawing doesn’t use the following GL state, so don’t update
- ShadeModel
- NormalPointer
- ColorPointer

Normal & color data are still uploaded as part of the interleaved VBO,
but those attributes are disabled for wireframe.

5 years agoHacky compile fix for mingw compile issue reported by bat3a on bf-committers
Joshua Leung [Fri, 22 Jan 2016 00:59:54 +0000 (13:59 +1300)]
Hacky compile fix for mingw compile issue reported by bat3a on bf-committers

I've been using this fix in another branch locally, so it seems to work fine.
The other #ifdef checks should be checked on too, as __MINGW32__ and __MINGW64__
do NOT seem to be defined when compiling that file

5 years agoFix: Breakdowner value would jump when starting the tool a second time during a Blend...
Joshua Leung [Fri, 22 Jan 2016 00:55:19 +0000 (13:55 +1300)]
Fix: Breakdowner value would jump when starting the tool a second time during a Blender session

As reported on the Blender Institute Podcast 009. See my comment on the cloud blog
for further details.

When used a second (or third, etc.) time, the breakdowner's (Shift-E) percentage value
would initially be the last-used value (e.g. 33% or 75%), before suddenly jumping
to another value as soon as the mouse moves. The cause of this behaviour was that it
was initially reusing the value from the previous time the operator was run, but then
as soon as the mouse moved, it would snap to the percentage implied by the mouse position.

(Note: The mapping from mouse position to percentage is "absolute" - i.e. the percentage
is based on how far across the 3D view the mouse is, instead of being some kind of
relative offset thing).

To make things a bit less jumpy, I've changed the behaviour so that the mouse position
always gets used immediately, instead of having it jump suddenly only when making
some mouse movement.

5 years agoSequencer: Speedup gaussian blur effect
Sergey Sharybin [Thu, 21 Jan 2016 19:11:37 +0000 (00:11 +0500)]
Sequencer: Speedup gaussian blur effect

Apply X and Y blur as separate step, this reduces number of accumulations
required and makes effect more realtime.

Another quick thing for the Nieve project.

5 years agoMS Visual Studio 2015 does not find std::inserter
Martijn Berger [Thu, 21 Jan 2016 16:21:32 +0000 (17:21 +0100)]
MS Visual Studio 2015 does not find std::inserter

5 years agoSculpt: pinch/inflate support for snake-hook
Campbell Barton [Thu, 21 Jan 2016 10:06:49 +0000 (21:06 +1100)]
Sculpt: pinch/inflate support for snake-hook

Snake-hook tended to loose volume along the stroke,
now with pinch > 0.5 its possible to sculpt shapes without loosing volume.

5 years agoSculpt: Add rake option to snake-hook
Campbell Barton [Thu, 21 Jan 2016 10:05:49 +0000 (21:05 +1100)]
Sculpt: Add rake option to snake-hook

This allows for dragging out shapes that rotate to follow the cursor motion.

Values over 1 can be set for 'interesting' artistic effects.

5 years agoCycles: Improve UI feedback for light samples.
Thomas Dinges [Thu, 21 Jan 2016 08:00:10 +0000 (09:00 +0100)]
Cycles: Improve UI feedback for light samples.

Fix T47213.
There was actually no real bug here, just clarify now in the UI that Mesh, World and Lamp samples only have an effect if we sample all lights (direct or indirect).

5 years agoAdd missing weight paint selection mirror
Campbell Barton [Thu, 21 Jan 2016 07:46:17 +0000 (18:46 +1100)]
Add missing weight paint selection mirror

Was lost resolving merge-conflict.

5 years agoCorrect comments & some explanation from last commit
Campbell Barton [Thu, 21 Jan 2016 00:03:37 +0000 (11:03 +1100)]
Correct comments & some explanation from last commit

5 years agoRemove errors for unsupported math operations
Campbell Barton [Wed, 20 Jan 2016 23:30:17 +0000 (10:30 +1100)]
Remove errors for unsupported math operations

5 years agoCleanup: line length, indentation
Campbell Barton [Wed, 20 Jan 2016 22:05:52 +0000 (09:05 +1100)]
Cleanup: line length, indentation

5 years agoWeight Paint: Make multi-paint & mirror work as if bone selection was symmetric
Alexander Gavrilov [Wed, 20 Jan 2016 21:03:15 +0000 (08:03 +1100)]
Weight Paint: Make multi-paint & mirror work as if bone selection was symmetric

The simplest way of handling mirroring in multi-paint is creating a
uniform symmetric selection and relying on existing symmetric weights
to direct changes to the appropriate vertex groups. This already works
if mirror bones are selected manually, and can be made easier to use
by doing it implicitly.

5 years agoRemove old multipaint related argument from wpaint_blend.
Alexander Gavrilov [Tue, 19 Jan 2016 12:17:13 +0000 (15:17 +0300)]
Remove old multipaint related argument from wpaint_blend.

With multipaint based on collective weight there is no need for this.

5 years agoWeight Paint: Multi-paint support for blur tool
Alexander Gavrilov [Tue, 19 Jan 2016 11:56:28 +0000 (14:56 +0300)]
Weight Paint: Multi-paint support for blur tool

Use the collective weight when using blurring.

This brings blur in sync with the rest of multi-paint modifications.

Also, blur has no business calling `defvert_verify_index` anyway when
it simply wants to read weights.

5 years agoDelete unused code, separate for better diff appearance.
Alexander Gavrilov [Tue, 19 Jan 2016 11:12:22 +0000 (14:12 +0300)]
Delete unused code, separate for better diff appearance.

5 years agoWeight Paint: multi-paint uses collective weights
Alexander Gavrilov [Tue, 19 Jan 2016 11:54:47 +0000 (14:54 +0300)]
Weight Paint: multi-paint uses collective weights

Similarly, the displayed weight distribution should be used as the
target of brush application instead of the invisible active group.

Multi-paint is split into a new function because all the calls to
defvert_verify_index at the top of the old code should never be
done in multi-paint mode.

5 years agoWeight Paint: 'Sample' now supports multi-paint
Alexander Gavrilov [Tue, 19 Jan 2016 15:57:52 +0000 (18:57 +0300)]
Weight Paint: 'Sample' now supports multi-paint

Since the coloring uses sum or average of the weights of all selected
groups, the weight pick tool should also use that instead of reading
the weight of the single active group that you can't see.

5 years agoWeight Paint: reduce alert color brightness
Alexander Gavrilov [Tue, 19 Jan 2016 17:30:50 +0000 (20:30 +0300)]
Weight Paint: reduce alert color brightness

This condition can actually happen quite often if weight painting for
a rig that uses separate control bones, so the color shouldn't be so
bright that it's hard to look at for a significant amount of time.

5 years agoCleanup: remove remainings of OMP in sculptpaint area.
Bastien Montagne [Wed, 20 Jan 2016 19:39:18 +0000 (20:39 +0100)]
Cleanup: remove remainings of OMP in sculptpaint area.

5 years agoParticle_system.c: OMP -> BLI_task.
Bastien Montagne [Wed, 20 Jan 2016 18:43:45 +0000 (19:43 +0100)]
Particle_system.c: OMP -> BLI_task.

The threaded code is twice quicker now (from an average of 20ms/frame to 10ms/frame
while baking 10000 particles here e.g.)!

Think this is mostly due to usage of 'dynamic' scheduler in OMP code though,
from my experience so far this tends to have dramatic effects over performances,
static scheduler is usually much much more efficient.

5 years agopaint_mask.c: OMP -> BLI_stack.
Bastien Montagne [Wed, 20 Jan 2016 16:05:06 +0000 (17:05 +0100)]
paint_mask.c: OMP -> BLI_stack.

5 years agoFix error in rBa6eae7339190.
Bastien Montagne [Wed, 20 Jan 2016 13:54:57 +0000 (14:54 +0100)]
Fix error in rBa6eae7339190.

5 years agoFix T43896: Knife Project fails when zoomed out
Campbell Barton [Wed, 20 Jan 2016 09:41:47 +0000 (20:41 +1100)]
Fix T43896: Knife Project fails when zoomed out

While knife-project still uses screen-space projection,
use much lower snap thresholds when projecting.

5 years agoFix T46243: New Depsgraph: changing action misses relations update tag
Sergey Sharybin [Wed, 20 Jan 2016 09:30:34 +0000 (10:30 +0100)]
Fix T46243: New Depsgraph: changing action misses relations update tag

5 years agoFix T47198: Broken UV/VCol in BI and Cycles with some degenerated faces - BI part.
Bastien Montagne [Wed, 20 Jan 2016 09:03:14 +0000 (10:03 +0100)]
Fix T47198: Broken UV/VCol in BI and Cycles with some degenerated faces - BI part.

Problem is actually similar in both engines - in some cases, we changed
'natural' quad splitting order to alternative one, without properkly 'notifying'
UV/VCol/other tessface data about it.

So code would use a 'wrong' triangle of UVs etc.

Fix for Cycles was committed by sergey as rBa6eae7339190d1.

5 years agoFix (partial) T47198: Cycles have broken UVs in some degenerated quads cases
Sergey Sharybin [Wed, 20 Jan 2016 08:13:04 +0000 (09:13 +0100)]
Fix (partial) T47198: Cycles have broken UVs in some degenerated quads cases

The issue was discontinuity in logic when importing vertices from blender
and then importing data layers regardless of how we split the face. Quite
interesting we didn't notice this issue before.

Thanks Bastien for the investigation, based on D1742 but redid it to make
patch a bit more clear to follow.

5 years agoFix for tangent regression w/ looptri changes
Campbell Barton [Wed, 20 Jan 2016 04:35:51 +0000 (15:35 +1100)]
Fix for tangent regression w/ looptri changes

LoopTri changes in 2.76 calculated all tangents as triangles,
this gave different results though in most cases it was hard to notice.

Though no bugs were reported we should keep our tangents compatible with other users of mikktspace.

5 years agoCleanup: style, use const
Campbell Barton [Wed, 20 Jan 2016 04:05:01 +0000 (15:05 +1100)]
Cleanup: style, use const

5 years agoerror in last commit
Campbell Barton [Wed, 20 Jan 2016 06:09:18 +0000 (17:09 +1100)]
error in last commit

5 years agoCleanup: naming convention
Campbell Barton [Wed, 20 Jan 2016 06:00:12 +0000 (17:00 +1100)]
Cleanup: naming convention

Follow isect_ray_tri_watertight_v3 naming.

5 years agoSupport multi-paint & show zero-weights as black
Alexander Gavrilov [Mon, 18 Jan 2016 19:00:56 +0000 (22:00 +0300)]
Support multi-paint & show zero-weights as black

Specifically, when only one bone is selected and it's not really active.
(With multiple bones on the other hand that behavior is forced on,
since multi-paint can't modify purely zero weight verts and that's important.)

5 years agoCarve: Remove empty implementation files
Sergey Sharybin [Tue, 19 Jan 2016 21:56:37 +0000 (22:56 +0100)]
Carve: Remove empty implementation files

5 years agoCycles: Fix OpenCL kernel compilation after the bake commit
Sergey Sharybin [Tue, 19 Jan 2016 21:51:43 +0000 (22:51 +0100)]
Cycles: Fix OpenCL kernel compilation after the bake commit

There is no function pointers in OpenCL specification. For as long
as we want to support this platform we should follow the specifications.

While the code is not totally optimal now, it should not be that huge
of performance issue on CPU since it does jump tables just nicely, so
it's not that much extra computation here.

5 years agoCycles: Pass missing shader filter argument to CUDA and OpenCL kernels
Sergey Sharybin [Tue, 19 Jan 2016 21:28:16 +0000 (22:28 +0100)]
Cycles: Pass missing shader filter argument to CUDA and OpenCL kernels

5 years agoUsual i18n/UI messages tweaks.
Bastien Montagne [Tue, 19 Jan 2016 19:31:06 +0000 (20:31 +0100)]
Usual i18n/UI messages tweaks.

5 years agoCycles: Add a debug flag to disable QBVH
Sergey Sharybin [Tue, 19 Jan 2016 17:38:41 +0000 (18:38 +0100)]
Cycles: Add a debug flag to disable QBVH

5 years agoSequencer: Implement Tone Map strip modifier
Sergey Sharybin [Tue, 19 Jan 2016 14:53:43 +0000 (15:53 +0100)]
Sequencer: Implement Tone Map strip modifier

Behaves same exact way as compositor node, but could be applied
in the sequencer and used as a grading tool.

Requested by the Nieve project artists.

5 years agoFix T47203: Render Crash due to missing zbuf_float handling in IMB scaling.
Bastien Montagne [Tue, 19 Jan 2016 12:24:03 +0000 (13:24 +0100)]
Fix T47203: Render Crash due to missing zbuf_float handling in IMB scaling.

5 years agoFix T47201: Cycles+OSL keeps image files open until Blender exits
Sergey Sharybin [Tue, 19 Jan 2016 09:55:40 +0000 (14:55 +0500)]
Fix T47201: Cycles+OSL keeps image files open until Blender exits

Now image will be opened for while render session is active, this is
needed to keep image cache working correctly. But stopping render
should now release all files descriptors.

5 years agoGTests: were using C++11 feature
Campbell Barton [Tue, 19 Jan 2016 09:44:57 +0000 (20:44 +1100)]
GTests: were using C++11 feature

5 years agoLibmv: Solve some strict warnings in tests
Sergey Sharybin [Tue, 19 Jan 2016 09:00:53 +0000 (14:00 +0500)]
Libmv: Solve some strict warnings in tests

5 years agoGTests: split array_utils tests
Campbell Barton [Tue, 19 Jan 2016 08:54:17 +0000 (19:54 +1100)]
GTests: split array_utils tests

5 years agoCMake: check for LLVM static library by default
Campbell Barton [Tue, 19 Jan 2016 01:37:26 +0000 (12:37 +1100)]
CMake: check for LLVM static library by default

Even when static option isn't enabled, use the static library path if the dynamic library isn't found.

5 years agoWeight Paint: Add lock-aware normalize
Campbell Barton [Mon, 18 Jan 2016 22:14:35 +0000 (09:14 +1100)]
Weight Paint: Add lock-aware normalize

D1713 from @angavrilov (with own edits)

The way current weight paint code works is that instead of making normalization lock aware, a separate `enforce_locks` function is called to do a different kind of normalization, hoping that by the time real normalize is called, there is nothing for it to do. The problem is that:

- That different normalization is based on adding the same amount to all unlocked groups, whereas true normalize uses multiplication to preserve ratio between them. The multiplicative approach should match the way weights operate better.
- If `enforce_locks` fails to achieve perfect normalization, true normalize will change locked groups.

Try to fix this by replacing `enforce_locks` with true lock-aware normalization support.

Supporting locked groups in normalize means that freezing the active group can make full normalization impossible if too much weight was added or removed, so it may be necessary to do two normalize passes. This is similar to how enforce_locks operates.

Also, now there is no need to go through the multi-paint branch just because of the locks. In the actual multi-paint case, the same normalize code can be used via a temporary flag array that represents the union of selected and locked groups.

User-visible effect should be:

- Auto-Normalize doesn't change behavior vertex to vertex depending on whether it has any locked groups.
- It never changes locked groups; if you lock some groups and start painting with seriously non-normalized weights, it's assumed you intended that.
- It never adds vertices to new groups, since the computer can't do that intelligently anyway - it was especially broken in case of mirroring.
- It always acts to preserve the ratio between groups it changes, instead of (sometimes, see point 1) adding or subtracting the same amount.

5 years agoGTests: array_utils
Campbell Barton [Mon, 18 Jan 2016 20:15:27 +0000 (07:15 +1100)]
GTests: array_utils

5 years agoBLI_array_utils: add binary and/or functions
Campbell Barton [Mon, 18 Jan 2016 20:00:55 +0000 (07:00 +1100)]
BLI_array_utils: add binary and/or functions

5 years agoIgnore const qualifier when comparing types
Campbell Barton [Mon, 18 Jan 2016 20:50:07 +0000 (07:50 +1100)]
Ignore const qualifier when comparing types

5 years agoCleanup: style
Campbell Barton [Mon, 18 Jan 2016 09:10:18 +0000 (20:10 +1100)]
Cleanup: style

5 years agorather then → rather than
Sybren A. Stüvel [Mon, 18 Jan 2016 09:20:08 +0000 (10:20 +0100)]
rather then → rather than

5 years agoOpenGL: remove ARB_fragment_program comment
Mike Erwin [Mon, 18 Jan 2016 04:26:23 +0000 (23:26 -0500)]
OpenGL: remove ARB_fragment_program comment

This a list of OpenGL extensions used. Minus one thanks to
kevindietrich’s smoke work!

5 years agoTransform: no need to store distance to snap point
Campbell Barton [Mon, 18 Jan 2016 02:15:38 +0000 (13:15 +1100)]
Transform: no need to store distance to snap point

Compare squared distance to snap target since the value is only ever used for comparison.

5 years agoFix T29153: Rotate & scale ignore snapping points
Campbell Barton [Mon, 18 Jan 2016 01:03:43 +0000 (12:03 +1100)]
Fix T29153: Rotate & scale ignore snapping points

Checking for 'Closest' here isn't needed since
TransSnap.snapTarget callback is already ensuring the selected target is the closest.

Also don't reuse the pre-calculated distance,
since its only valid to do this when there are no snap points
and this isn't a significant gain to avoid the extra calculation - run once per update.

5 years agoUI: use a callback for the progress tooltip
Campbell Barton [Mon, 18 Jan 2016 02:53:38 +0000 (13:53 +1100)]
UI: use a callback for the progress tooltip

Avoids constructing tip text and storing it when its not used.

Also quiet divide by zero warning when no progress was made.

5 years agoUI: redesign of the progress bar.
Kévin Dietrich [Mon, 18 Jan 2016 00:39:09 +0000 (01:39 +0100)]
UI: redesign of the progress bar.

A picture is worth a thousand words:

Reviewers: #user_interface, brecht, dingto

Reviewed by: brecht, dingto

Differential Revision:

5 years agoBGE: Allow access to light shadow settings with python
Ulysse Martin [Sun, 17 Jan 2016 17:41:37 +0000 (18:41 +0100)]
BGE: Allow access to light shadow settings with python

This patch adds a new API which allow us to access light shadow settings from python. The new API can be used to write custom GLSL materials with shadows.

Reviewers: brecht, kupoman, agoose77, panzergame, campbellbarton, moguri, hg1

Reviewed By: agoose77, panzergame, campbellbarton, moguri, hg1

Projects: #game_engine

Differential Revision:

5 years agopaint_cursor: OMP -> BLI_task.
Bastien Montagne [Sun, 17 Jan 2016 16:16:57 +0000 (17:16 +0100)]
paint_cursor: OMP -> BLI_task.

5 years agoBump boost to 1.60
Martijn Berger [Sun, 17 Jan 2016 11:44:25 +0000 (12:44 +0100)]
Bump boost to 1.60

5 years agoCMake: clarify missing Python package message
Campbell Barton [Sun, 17 Jan 2016 05:01:32 +0000 (16:01 +1100)]
CMake: clarify missing Python package message

Blender builds properly without extra Python packages,
avoid FUD for new devs.

5 years agoCleanup: spelling
Campbell Barton [Sun, 17 Jan 2016 02:40:30 +0000 (13:40 +1100)]
Cleanup: spelling

Also use doxy formatting for warning/note.

5 years agoCleanup: style
Campbell Barton [Sun, 17 Jan 2016 02:40:22 +0000 (13:40 +1100)]
Cleanup: style

5 years agoRevert "Make 'incompatible pointer type' gcc warning an error by default."
Campbell Barton [Sun, 17 Jan 2016 02:18:41 +0000 (13:18 +1100)]
Revert "Make 'incompatible pointer type' gcc warning an error by default."

This reverts commit b5bd39b5182590fd4d5ddb24d7b7bdbe714d57bf.

This is problematic because it means minor differences in system headers can cause errors
(glew in this case errored for me both with system and Blender's bundled version).

Developers can enable -Werror=* locally for warnings that aren't reliable across different systems.

5 years agoRevert "Fix compile error in gpu_debug (incompatible-pointer-type)."
Campbell Barton [Sun, 17 Jan 2016 02:19:14 +0000 (13:19 +1100)]
Revert "Fix compile error in gpu_debug (incompatible-pointer-type)."

This reverts commit 75cfc81ec39ac9953f25eb0ae5f9e70d3c24ee7e.

5 years agoPoint Cache bake: make sure endframe is initialize with a decent value.
Kévin Dietrich [Sun, 17 Jan 2016 02:13:15 +0000 (03:13 +0100)]
Point Cache bake: make sure endframe is initialize with a decent value.

This is how the old code used to initialize it. Current value was
failing big time when baking all caches (always set to MAXFRAME), and it
was added right before commit to quiet a warning... (I know, I know...)

5 years agoDynamic Paint: use job system for the image sequence bake operator.
Kévin Dietrich [Sun, 17 Jan 2016 01:04:46 +0000 (02:04 +0100)]
Dynamic Paint: use job system for the image sequence bake operator.

Reviewers: brecht

Differential Revision:

5 years agoPoint Cache: use job system for bake operators.
Kévin Dietrich [Sun, 17 Jan 2016 01:01:41 +0000 (02:01 +0100)]
Point Cache: use job system for bake operators.

Reviewers: brecht

Differential Revision:

5 years agoFix compile error in gpu_debug (incompatible-pointer-type).
Kévin Dietrich [Sun, 17 Jan 2016 00:58:06 +0000 (01:58 +0100)]
Fix compile error in gpu_debug (incompatible-pointer-type).

5 years agoFix memory leak in (the still unused) WM_reportf.
Brecht Van Lommel [Sat, 16 Jan 2016 22:21:27 +0000 (23:21 +0100)]
Fix memory leak in (the still unused) WM_reportf.

5 years agoMake 'incompatible pointer type' gcc warning an error by default.
Bastien Montagne [Sat, 16 Jan 2016 22:00:42 +0000 (23:00 +0100)]
Make 'incompatible pointer type' gcc warning an error by default.

This is the second time at least that kind of stuff slips in during one of my refactor,
a mere warning here is really not enough (too easy to miss it)!

5 years agoFix T47189: Large smoke simulation sometimes make Blender crash.
Bastien Montagne [Sat, 16 Jan 2016 21:37:34 +0000 (22:37 +0100)]
Fix T47189: Large smoke simulation sometimes make Blender crash.

Issue was with very thin domains along one or two axes, these could lead to simulation
with only one cell width - and smoke code assumes we have at least 4 cells in each direction.

So now, we clamp resolution to a minimum of 4 in smoke_set_domain_from_derivedmesh().

Note: in extreme cases like this report, this will generate very un-cubic cells,
check it still works OK in 3DView is needed here.

Thanks to @genscher and @kevindietrich for help on this issue. :)

5 years agoFix incorrect function for sculpt multithreading task after recent refactor.
Brecht Van Lommel [Sat, 16 Jan 2016 21:25:52 +0000 (22:25 +0100)]
Fix incorrect function for sculpt multithreading task after recent refactor.

5 years agoWM: remove unnecessary context argument from WM_report, no good reason to have it.
Brecht Van Lommel [Sat, 16 Jan 2016 20:51:05 +0000 (21:51 +0100)]
WM: remove unnecessary context argument from WM_report, no good reason to have it.

5 years agoFix smoke BLI_task'ed code after recent refactor.
Bastien Montagne [Sat, 16 Jan 2016 20:43:10 +0000 (21:43 +0100)]
Fix smoke BLI_task'ed code after recent refactor.

Curse gcc for not erroring by default on passing wrong func pointers... :/

5 years agoOpenGL Smoke: fix possible inconsistency between fire shader/texture binding.
Brecht Van Lommel [Sat, 16 Jan 2016 17:48:38 +0000 (18:48 +0100)]
OpenGL Smoke: fix possible inconsistency between fire shader/texture binding.

5 years agoCycles: Fix compilation with older OSL
Sergey Sharybin [Sat, 16 Jan 2016 17:46:23 +0000 (22:46 +0500)]
Cycles: Fix compilation with older OSL

We didn't switch to OSL-1.6.9 on all platforms yet,
so please keep codeabse compiled with 1.5 for the
time being.

5 years agoCleanup: BLI_task foreach looper API doc.
Bastien Montagne [Sat, 16 Jan 2016 15:06:27 +0000 (16:06 +0100)]
Cleanup: BLI_task foreach looper API doc.

5 years agoCleanup: BLI_task - API changes.
Bastien Montagne [Sat, 16 Jan 2016 14:59:37 +0000 (15:59 +0100)]
Cleanup: BLI_task - API changes.

Based on usages so far:
- Split callback worker func in two, 'basic' and 'extended' versions. The former goes back
  to the simplest verion, while the later keeps the 'userdata_chunk', and gets the thread_id too.
- Add use_threading to simple BLI_task_parallel_range(), turns out we need this pretty much systematically,
  and allows to get rid of most usages of BLI_task_parallel_range_ex().
- Now BLI_task_parallel_range() expects 'basic' version of callback, while BLI_task_parallel_range_ex()
  expectes 'extended' version of the callback.

All in all, this should make common usage of BLI_task_parallel_range simpler (less verbose), and add
access to advanced callback to thread id, which is mandatory in some (future) cases.

5 years agoFix (unreported) missing scene->gm.dome.warptext in libquery looper.
Bastien Montagne [Sat, 16 Jan 2016 11:46:04 +0000 (12:46 +0100)]
Fix (unreported) missing scene->gm.dome.warptext in libquery looper.

5 years agoFix T47188: Blender crashes when trying to undo adding new scene with "copy settings".
Bastien Montagne [Sat, 16 Jan 2016 11:44:55 +0000 (12:44 +0100)]
Fix T47188: Blender crashes when trying to undo adding new scene with "copy settings".

Our RenderSettings struct may have a bit too much levels, makes it hard to track
all 'pointer' data during copy...

Fixed several issues here, but not sure I found all existing ones. :/

5 years agoFix T47180: Cycles deform motion blur + displacement behaves weirdly
Sergey Sharybin [Sat, 16 Jan 2016 10:36:42 +0000 (15:36 +0500)]
Fix T47180: Cycles deform motion blur + displacement behaves weirdly

Displacement shader was not updating motion vertex positions.

Current solution is not totally correct because it applies same offset
for all time steps. Ideally we'll need to evaluate displacement shader
for every time offset separately, but currently we don't have subframe
image access.

For the time being will consider this a TODO.

5 years agoOpenGL: remove redundant state change
Mike Erwin [Sat, 16 Jan 2016 07:19:16 +0000 (02:19 -0500)]
OpenGL: remove redundant state change

5 years agocleanup: C99
Mike Erwin [Sat, 16 Jan 2016 07:17:05 +0000 (02:17 -0500)]
cleanup: C99

- tighter scoping
- declare closer to use
- struct initializers
- bool vs int

5 years agoOpenGL: simplify some UI draw calls
Mike Erwin [Sat, 16 Jan 2016 06:17:51 +0000 (01:17 -0500)]
OpenGL: simplify some UI draw calls

- vectorscope grid
- color ramp handles
- box shadows (image file preview)

5 years agoOpenGL: pull glBegin/End out of loop
Mike Erwin [Sat, 16 Jan 2016 05:11:49 +0000 (00:11 -0500)]
OpenGL: pull glBegin/End out of loop

so that all points here are drawn between one Begin/End pair.

5 years agoOpenGL: fixes related to GL_POINTS
Mike Erwin [Sat, 16 Jan 2016 03:59:42 +0000 (22:59 -0500)]
OpenGL: fixes related to GL_POINTS

I put all usage of GL_POINTS under the microscope. Fixed problems &
optimized a couple of spots.

- reduce calls to glPointSize by about 50%
- draw selected & unselected vertices together for UV editor & EditMesh
- draw initial gpencil stroke point the proper size
- a few other smaller fixes

New policy: each GL_POINTS draw call needs to set its desired point
size. This eliminates half our calls to glPointSize (setting it back to
its 1.0 default after every draw).

5 years agoCleanup: stdbool no longer optional, remove checks
Campbell Barton [Sat, 16 Jan 2016 04:34:49 +0000 (15:34 +1100)]
Cleanup: stdbool no longer optional, remove checks

5 years agoCleanup: use enum constant for DNA comparison
Campbell Barton [Sat, 16 Jan 2016 04:00:22 +0000 (15:00 +1100)]
Cleanup: use enum constant for DNA comparison

5 years agoBlender Internal: subframe render support
Campbell Barton [Sat, 16 Jan 2016 02:06:16 +0000 (13:06 +1100)]
Blender Internal: subframe render support

Note this doesn't expose the option to the interface,
it just means scripts that set the subframe can render (as with Cycles).

5 years agoCleanup: style
Campbell Barton [Sat, 16 Jan 2016 02:01:10 +0000 (13:01 +1100)]
Cleanup: style

5 years agoFix T47181: Blender OSL script node crash (OSL 1.6.9)
Lukas Stockner [Sat, 16 Jan 2016 00:32:22 +0000 (01:32 +0100)]
Fix T47181: Blender OSL script node crash (OSL 1.6.9)

Compiling OSL scripts with errors in them would cause Blender to crash since the OSL version
bump to 1.6.9 instead of printing the error to the console as it did before.

With version 1.6.2, OSL added a pointer to an OpenImageIO ErrorHandler as an argument to the
OSLCompiler constructor. However, since it defaults to the NULL pointer, Blender still compiled
fine after the OSL version bump.
It turns out, though, that this pointer is used without further checks inside the OSL code, which
makes it crash when it tries to report an error unless a valid ErrorHandler pointer is specified.
Therefore, this commit simply passes a pointer to the static default handler that OIIO offers,
which prints the error to the console just like OSL did before.

Using this feature for a more advanced error handling and displaying from the Blender side would
be possible and seems reasonable, but for now it's not really relevant for fixing this bug.

5 years agoCycles-Bake: Custom Baking passes
Dalai Felinto [Fri, 15 Jan 2016 15:00:56 +0000 (13:00 -0200)]
Cycles-Bake: Custom Baking passes

The combined pass is built with the contributions the user finds fit.

It is useful for lightmap baking, as well as non-view dependent effects

The manual will be updated once we get closer to the 2.77 release.
Meanwhile the new page can be found here:

Reviewers: sergey, brecht

Differential Revision:

5 years agoFix T47185: Wrong items order with template_icon_view.
Bastien Montagne [Fri, 15 Jan 2016 14:19:14 +0000 (15:19 +0100)]
Fix T47185: Wrong items order with template_icon_view.

5 years agoChanges around update normals from PBVH to CDDM
Sergey Sharybin [Fri, 15 Jan 2016 11:29:57 +0000 (16:29 +0500)]
Changes around update normals from PBVH to CDDM

- Only do this if PBVH is not used for display, this should correspond
  to whats' happening in sculpt.c now.

- No need to do such synchronization for solid drawing, it supports
  optimal display from PBVH.

In fact, such synchronization is only needed in the following case:

Drawing callback does not support PBVH draw and sculpt session is
configured to use PBVH for display and related operations.

5 years agoTracking: Make plane track sliding aware of closest mouse
Sergey Sharybin [Fri, 15 Jan 2016 10:37:46 +0000 (15:37 +0500)]
Tracking: Make plane track sliding aware of closest mouse

Also made threshold aware of zoom, so now it's always 12px threshold
regardless of how much you're zoomed in.

5 years agoTracking: Split tracking_ops into smaller files
Sergey Sharybin [Fri, 15 Jan 2016 09:02:26 +0000 (14:02 +0500)]
Tracking: Split tracking_ops into smaller files

The file started to be rather really huge and difficult to follow.
Should be no functional changes.

5 years agoTracking: Cleanup, use more strict code style
Sergey Sharybin [Fri, 15 Jan 2016 08:48:24 +0000 (13:48 +0500)]
Tracking: Cleanup, use more strict code style

Should be no functional changes.

5 years agoCleanup: used pre-defined atoms in ghost
Campbell Barton [Fri, 15 Jan 2016 07:39:40 +0000 (18:39 +1100)]
Cleanup: used pre-defined atoms in ghost

5 years agoTracking: Use sliding zone which is closer to the mouse
Sergey Sharybin [Fri, 15 Jan 2016 07:23:24 +0000 (12:23 +0500)]
Tracking: Use sliding zone which is closer to the mouse

Previously it was simplier logic which only checked whether the mouse
is inside of some area around sliding zone, which was resulting in
wrong sliding zone used when zoomed out.