Commit Graph

75472 Commits

Author SHA1 Message Date
Mike Erwin
0e695f671a cleanup: C99
- tighter scoping
- declare vars closer to where they’re used
- use more bool
2016-01-07 16:32:36 -05:00
Mike Erwin
f01f74d5dd cleanup: C99
- tighter scoping
- declare vars closer to where they’re used
- minor spacing cleanup
2016-01-07 16:32:35 -05:00
Mike Erwin
0df1bdc268 OpenGL: fix max texture anisotropy check
Query max supported on init, use that to clamp user-set values.
2016-01-07 16:32:35 -05:00
Mike Erwin
1aff22b81d OpenGL: use best available mipmap gen function
ARB_framebuffer_object works just like GL 3+ and is the preferred
method.

Fall back to older EXT_framebuffer_object if necessary.
2016-01-07 16:32:35 -05:00
Mike Erwin
290b0a97ba cleanup: OpenGL comment
Removed reference to GL 1.x since we no longer support that. ES is
likely in our future though!
2016-01-07 16:32:35 -05:00
Mike Erwin
77641c28ef OpenGL: remove some hacks/workarounds
Everything I've tested works fine without these hacks. Variety of Mac, Linux, Windows, Intel, nVidia, AMD.
If these workarounds are for old unsupported systems let's clean house.

Reviewers: #opengl_gfx

Differential Revision: https://developer.blender.org/D1707
2016-01-07 16:32:35 -05:00
Mike Erwin
e20b30a1d8 OpenGL: remove glPointSize hack 2016-01-07 16:32:35 -05:00
Bastien Montagne
261ac69f57 Fix RNA_enum_set_identifier(), needs a context to handle correctly dynamic enums. 2016-01-07 21:52:54 +01:00
Campbell Barton
5d118f6dd7 BMesh: add select next/prev operator
This uses selection history to select the next vert/edge/face based on surrounding topology.
Select previous just removes the last selected element.

Uses key-bindings: Ctrl-Shift +/-
2016-01-08 03:21:31 +11:00
Sergey Sharybin
08185d2af0 Fix T46723: Issue with linking to rigs running Blender in new depsgraph mode
This isn't really ideal fix, but currently i can't tell how proxies should work
with the new dependency graph. This backward links are crazy, non-threadsafe
and mindblowing. Need to do some smarter/easier system.
2016-01-07 20:06:13 +05:00
Campbell Barton
3e530f9439 Fix error in recent commit 2016-01-07 21:05:49 +11:00
Campbell Barton
eed28a1db8 Select mirror multiple axis support
Previously you could only select mirror on X axis,
now support mirroring on multiple axis as well as more than one
(for mesh and lattice data).
2016-01-07 20:57:03 +11:00
Sergey Sharybin
9e3ae79a54 Fix access possibly uninitialized armature's bounding box flag 2016-01-07 14:35:01 +05:00
Campbell Barton
c4fda6f7d0 Cleanup: use generic xyz axis enums 2016-01-07 20:22:49 +11:00
Campbell Barton
0778856268 Cleanup: remove unused scene arg 2016-01-07 20:11:59 +11:00
Thomas Dinges
83e73a2100 Cycles: Refactor how we pass bounce info to light path node.
This commit changes the way how we pass bounce information to the Light
Path node. Instead of manualy copying the bounces into ShaderData, we now
directly pass PathState. This reduces the arguments that we need to pass
around and also makes it easier to extend the feature.

This commit also exposes the Transmission Bounce Depth to the Light Path
node. It works similar to the Transparent Depth Output: Replace a
Transmission lightpath after X bounces with another shader, e.g a Diffuse
one. This can be used to avoid black surfaces, due to low amount of max
bounces.

Reviewed by Sergey and Brecht, thanks for some hlp with this.

I tested compilation and usage on CPU (SVM and OSL), CUDA, OpenCL Split
and Mega kernel. Hopefully this covers all devices. :)
2016-01-06 23:43:29 +01:00
Bastien Montagne
be28706bac Proper fix for memleaks when rendering partsys from edit mode... 2016-01-06 21:22:01 +01:00
Bastien Montagne
f286df75c0 ...And fix memleak in previous commit, sigh... 2016-01-06 20:28:21 +01:00
Bastien Montagne
31e6978066 Fix (unreported) crash when rendering hairs from edit mode (own regression in recent particle edit fix).
*sigh* hope we fix some day that recursion issue that makes it such a PITA to generate DM of other targets from DM stack...
2016-01-06 20:20:50 +01:00
Bastien Montagne
4acf0f05a1 'users of ID' py API.
This mainly adds bpy.data.user_map() method, which goes over the whole Main database
to build a mapping (dict) {ID: {users_of_that_ID}}.

Very handy to check and debug ID usages, but could also be really valuable for py addons
creating temporary scenes, or some exporters, etc.

Note: current code in master's libquery misses some IDs (and reports some it should not,
like nodetrees), this is fixed in id-remap but still needs serious review before going to master.
This basically means that current bpy.data.user_map() **will not** report a complete and exhaustive
state of dependencies between IDs. Should work OK in most cases though.

Original work/idea comes from id-remap branch, was heavily reworked by @campbellbarton
and myself for master.

Reviewers: campbellbarton, sergey

Differential Revision: https://developer.blender.org/D1678
2016-01-06 19:48:10 +01:00
Campbell Barton
cbc0a73ae4 Fix T47034: Explode "Cut Edges" looses UV's
Own regression in c61e4f2
2016-01-06 22:08:49 +11:00
Kévin Dietrich
7e6d09608b Fix Blender Player linking issue.
Removed the conflicting declaration since it is not needed anymore, as
the stipple arrays are now only used in gpu_shader_basic.c.
2016-01-06 01:33:12 +01:00
Sergey Sharybin
8c8215fb77 Fix T46984: Image mapping bug
The issue was caused by wrong scaling applied on top of the image sampling.

It seems there's no reason to apply alpha clipping when using EWA filtering,
this filtering currently works in the way that it apples all needed clipping
and scaling to a clipped kernel already.
2016-01-05 22:41:41 +05:00
Campbell Barton
c42ae8be60 CMake: copy python DLL for MinGW builds 2016-01-05 22:13:36 +11:00
Mike Erwin
0a9935cb28 OpenGL: various small optimizations
- set uniform colors outside of loop
- replace glBegin/End with DrawRangeElements
- use GL_LINES when drawing single lines
2016-01-05 01:35:19 -05:00
Bastien Montagne
2ac555fe47 ID: Sanitize handling of 'USER_ONE' (ensure_user) case.
Note that this has little impact on current master - yet it allows to fix the 'Image Editor' bug
(open image in editor, use same image in texture, delete image from texture, image us is 0 and
red in image editor...) and probably a few other similar cases.

But that change is mandatory to get a proper handling of ID deletion/reamapping/reloading/etc. as done in id-remap branch.

Instead of just adding a user if none already present, new code use two new ID tags to get a three-states status:
  - Normal: nothing changes.
  - Needs extra user: we know that ID needs an extra user, so we take of never going down to 0 in 'real' usercount handling.
  - Has extra user: we do have increased that ID usercount to get our needed extrauser.

Reviewers: sergey, campbellbarton

Differential Revision: https://developer.blender.org/D1696
2016-01-04 20:17:23 +01:00
Bastien Montagne
82d88e42a5 BLI_task threaded looper: do not assert when start == stop.
This can happen quite often in forloops, and would be annoying to have to check for this
in caller code! So now, just return without doing anything in this case.
2016-01-04 19:17:09 +01:00
Bastien Montagne
17eb5b3af6 Fix (unreported) memleak related to PBVH and looptri.
Looptri are not mesh data, they are allocated and built for PBVH only, and totally 'local' to it,
so duplicating like we do for verts & co leads to leaking memory.
2016-01-04 19:17:09 +01:00
Bastien Montagne
0b157f7c6c Sculpt: OMP -> BLI_task, step III.
The remaining bits in editors' sculpt.c, which is now free from OMP.

All in all, changes in this file allow from below 2% to above %20 speedup per stroke, depending
on brush complexity, size, and definition of the mesh below it...

Note that this commit also unifies all 'threaded data' into a single struct, a few more
floats/pointers do not hurt here, and it makes code a bit simpler.
2016-01-04 19:17:09 +01:00
Dalai Felinto
353d0237bc Cycles-Bake: Unset properties fallback only working for invoke 2016-01-04 13:20:34 -02:00
Dalai Felinto
c59e8cc12a Fix T47076 part II
We still got unfreed memory after b909dfda
2016-01-04 13:19:08 -02:00
Campbell Barton
66123ef3ad Cleanup 2016-01-05 01:46:13 +11:00
Sergey Sharybin
ba432299cd Move Libmv from extern/ to intern/
Logically it is intern library since being mainly developed by 1.5 blender guys.
2016-01-04 19:39:13 +05:00
Sergey Sharybin
69f4080839 Re-organize structure of GLog/GFlags CMake libraries
The idea is to split them into two separate targets and have dedicated include
directories list for each of them in order to avoid some annoying include header
modifications in comparison with upstream.

Reviewers: campbellbarton, juicyfruit

Differential Revision: https://developer.blender.org/D1706
2016-01-04 19:39:13 +05:00
Martin Felke
8608a0f4f0 added new "Fake User" option for appending objects, this sets a fake user on each newly appended item except Groups and Objects. 2016-01-04 14:02:30 +01:00
Bastien Montagne
aad24468e2 Fix T47038: Particles in Particle Edit Mode get added in completely wrong location.
It also fixes another issue (crash) related to symmetric editing.

Quite involved, we (try to!) fix complete broken logic of parts of particle code, which would use poly index
as tessface one (or vice-versa). Issue most probably goes back to BMesh integration time...

This patch mostly fixes particle editing mode:
  - Adding/removing particles when using generative modifiers (like subsurf) should now work.
  - Adding/removing particles with a non-tessellated mesh (i.e. one having ngons) should also mostly work.
  - X-axis-mirror-editing particles over ngons does not really work, not sure why currently.
  - All this in both 'modes' (with or without using modifier stack for particles).

Tech side:
  - Store a deformed-only DM in particle modifier data.
  - Rename existing DM to make it clear it's a final one.
  - Use deformed-only DM's tessface2poly mapping to 'solve' poly/tessface mismatches.
  - Make (part of) mirror-editing code able to use a DM instead of raw mesh, so that we can mirror based on final DM
    when editing particles using modifier stack (mandatory, since there is no way currently to find orig tessface
    from an final DM tessface index).

Note that this patch is not really nice and clean (current particles are beyond hope on this side anyway),
it's more like some urgency bandage. Whole crap needs complete rewrite anyway,
BMesh's polygons make it really hard to work with current system (and looptri would not help much here).

Also, did not test everything possibly affected by those changes, so it needs some users' testing & validation too.

Reviewers: psy-fi

Subscribers: dfelinto, eyecandy

Maniphest Tasks: T47038

Differential Revision: https://developer.blender.org/D1685
2016-01-04 12:19:45 +01:00
Campbell Barton
982904fcc9 Fix T47109: Expose sound data-block selector 2016-01-04 21:08:14 +11:00
Campbell Barton
598180f98d Fix crash sequencer drawing with no sound 2016-01-04 20:42:44 +11:00
Sergey Sharybin
5d99cde822 Remove SCons building system
While SCons building system was serving us really good for ages it's no longer
having much attention by the developers and started to become quite a difficult
task to maintain.

What's even worse -- there started to be quite serious divergence between SCons
and CMake which was only accumulating over the releases now. The fact that none
of the active developers are really using SCons and that our main studio is also
using CMake spotting bugs in the SCons builds became quite a difficult task and
we aren't always spotting them in time.

Meanwhile CMake became really mature building system which is available on every
platform we support and arguably it's also easier and more robust to use.

This commit includes:

- Removal of actual SCons building system
- Removal of SCons git submodule
- Removal of documentation which is stored in the sources and covers SCons
- Tweaks to the buildbot master to stop using SCons submodule
  (this change requires deploying to the server)
- Tweaks to the install dependencies script to skip installing or mentioning
  SCons building system
- Tweaks to various helper scripts to avoid mention of SCons folders/files
  as well

Reviewers: mont29, dingto, dfelinto, lukastoenne, lukasstockner97, brecht, Severin, merwin, aligorith, psy-fi, campbellbarton, juicyfruit

Reviewed By: campbellbarton, juicyfruit

Differential Revision: https://developer.blender.org/D1680
2016-01-04 14:20:48 +05:00
Mike Erwin
1eb5e0b660 minor cleanup 2016-01-04 01:38:49 -05:00
Mike Erwin
d2b4f9c627 OpenGL: image drawing tweaks
- no need to allocate client memory up front
- delete unneeded GL calls
- set default alpha test function on exit
2016-01-04 01:38:49 -05:00
Mike Erwin
ed2daace76 minor cleanup: typos
no functional change
2016-01-04 01:25:52 -05:00
Mike Erwin
2e8a840307 OpenGL: GPU_legacy_support workaround for nVidia
nVidia Linux driver reports GL_CONTEXT_PROFILE_MASK = 0, which is a bug.
In that case check for the ARB_compatibility extension.

Non-buggy drivers will continue to use
GL_CONTEXT_COMPATIBILITY_PROFILE_BIT.

Thx to Dr Hackerman for reporting.
2016-01-04 01:03:47 -05:00
Campbell Barton
193b38cc47 Remove select-next-loop operator
Taken from original bmesh-branch but doesn't give useful results
(misses selection flushing).
2016-01-04 15:03:18 +11:00
Bastien Montagne
2e77c413ab Sculpt: OMP -> BLI_task, step II.
This time, all tools' code itself.

Not much to say, except that we can also get rid of that OMP caching pre-process ugly stuff
for multires smoothing.

Together with previous commit, we have about 5% average speedup on stroke execution
(though this vary a lot, up to 30% speedup in rare cases, and in even rarer cases some
odd massive slowdowns...).

Tech note: we may want to add 'guided'-similar feature to our BLI_task threaded loop,
I suspect this could explain random massive slowdowns of new code (very rare, but annoying...).
2016-01-03 23:56:54 +01:00
Campbell Barton
d57847ca5b Fix text wrapping off-by-one error w/ string width
Caused odd white space error in tooltip enum values.
2016-01-04 01:41:58 +11:00
Antony Riakiotakis
d48abb8ffd Get rid of yet another instance of DM_DRAW_OPTION_NO_MCOL
Logic here is weird. Generally, textured drawing overrides
material color unless material uses object color instead?
It doesn't make sense, material color is a material color
whatever the circumstance.

Repeating: idea as always is to push all those options out of per-
polygon callbacks and make decisions such as color enable in the higher
level functions.
2016-01-03 00:26:28 +01:00
Antony Riakiotakis
09e3ef29c1 Get rid of three needless instances of DM_DRAW_OPTION_NO_MCOL.
It would be good to get rid of this entirely, ideally decision
about mcols can be taken at material level and not done per face. More
work needs to be done for that to work though.
2016-01-02 23:22:22 +01:00
Antony Riakiotakis
c2bd260122 GPU buffers: Add update functionality for existing buffers.
Only used for color for now, but we need this for any kind of buffer
updates actually.

This should get rid of some allocation/deallocation, making
vertex painting a bit faster.
2016-01-02 19:55:15 +01:00
Lukas Stockner
5c682a901b Cycles: Add Saw option to the wave texture
This commit adds "Bands Saw" and "Rings Saw" to the options for the Wave texture node in Cycles, behaving similar to the Saw option in BI textures.
Requested by @cekuhnen on BA.

Reviewers: dingto, sergey

Subscribers: cekuhnen

Differential Revision: https://developer.blender.org/D1699
2016-01-01 23:25:37 +01:00