5 years agoBGE Scenegraph clean up: double-promotion warnings
Jorge Bernal [Mon, 14 Dec 2015 05:39:52 +0000 (06:39 +0100)]
BGE Scenegraph clean up: double-promotion warnings

5 years agoOpenGL: system info tweaks
Mike Erwin [Sun, 13 Dec 2015 20:58:01 +0000 (15:58 -0500)]
OpenGL: system info tweaks

- show extensions one per line in order for easier human scanning
- show DrawElements vertex & index limits
- assume GL version >= 2 for GLSL limit queries

5 years agoCleanup: unused args
Campbell Barton [Sun, 13 Dec 2015 16:24:42 +0000 (03:24 +1100)]
Cleanup: unused args

5 years ago3D Cursor: Add option to lock it in place to prevent accidental modification
Joshua Leung [Sun, 13 Dec 2015 14:06:06 +0000 (03:06 +1300)]
3D Cursor: Add option to lock it in place to prevent accidental modification

This option helps users protect themselves from accidentally changing the cursor
location (and not being aware of this until it has already caused problems)
when drawing using Grease Pencil (or with other tools where this is equally likely).
It seems to occur most frequently when using a tablet.

Currently, this only affects the use of the mouse to set the cursor, as this is
where most accidental invocations occur.

(I'm aware that this change may turn out to be quite contentious. Fortunately, it
should be simple to just revert this commit in that case :)

5 years agoRemoved duplicated define
Joshua Leung [Sun, 13 Dec 2015 13:58:46 +0000 (02:58 +1300)]
Removed duplicated define

5 years agoDopesheet: Mirroring GPencil keyframes now works again
Joshua Leung [Sun, 13 Dec 2015 13:36:02 +0000 (02:36 +1300)]
Dopesheet: Mirroring GPencil keyframes now works again

5 years agoDopesheet: IKEY (Insert Keyframe) operator now works in GPencil Mode
Joshua Leung [Sun, 13 Dec 2015 13:07:27 +0000 (02:07 +1300)]
Dopesheet: IKEY (Insert Keyframe) operator now works in GPencil Mode

It will create blank keyframes, or copies of the prevailing keyframe,
depending on whether "Additive Drawing" is enabled or not.

5 years agoFix yet one more Intel driver with crappy dfdy support in offscreen
Antony Riakiotakis [Sun, 13 Dec 2015 13:17:24 +0000 (14:17 +0100)]
Fix yet one more Intel driver with crappy dfdy support in offscreen

5 years agoBMesh: split-face by edges support isolated edges
Campbell Barton [Sun, 13 Dec 2015 13:15:36 +0000 (00:15 +1100)]
BMesh: split-face by edges support isolated edges

Previously edges needed to be connected to the faces.

5 years agoBMesh: replace BLI_array w/ BLI_buffer
Campbell Barton [Sun, 13 Dec 2015 10:34:12 +0000 (21:34 +1100)]
BMesh: replace BLI_array w/ BLI_buffer

Also reuse temporary buffer between calls.

5 years agoBMesh: add BKE_bmbvh_find_face_closest
Campbell Barton [Sun, 13 Dec 2015 13:10:40 +0000 (00:10 +1100)]
BMesh: add BKE_bmbvh_find_face_closest

5 years agoGP Sculpt: WheelUp/Down can be used to control brush size/strength while a sculpt...
Joshua Leung [Sun, 13 Dec 2015 12:12:42 +0000 (01:12 +1300)]
GP Sculpt: WheelUp/Down can be used to control brush size/strength while a sculpt stroke is in progress

5 years agoFixed incomplete comment
Joshua Leung [Sun, 13 Dec 2015 12:09:28 +0000 (01:09 +1300)]
Fixed incomplete comment

5 years agoFix: unreported crash with misconfigured nvidia opengl drivers
Ines Almeida [Sun, 13 Dec 2015 10:35:16 +0000 (10:35 +0000)]
Fix: unreported crash with misconfigured nvidia opengl drivers

5 years agoBMesh: don't use total faces to detect edits
Campbell Barton [Sun, 13 Dec 2015 08:42:12 +0000 (19:42 +1100)]
BMesh: don't use total faces to detect edits

Possible a boolean operation edits the mesh while keeping the same number of faces.

5 years agoBMesh: no need to tag edges created to fill holes
Campbell Barton [Sun, 13 Dec 2015 08:35:08 +0000 (19:35 +1100)]
BMesh: no need to tag edges created to fill holes

Was selecting these edges after applying boolean,
which isnt useful since selection is supposed to be along the cuts.

5 years agoCleanup: style/warnings
Campbell Barton [Sun, 13 Dec 2015 08:50:59 +0000 (19:50 +1100)]
Cleanup: style/warnings

5 years agoGPencil: Bump subversion and ensure that the datablock-level onionskinning flag is...
Joshua Leung [Sun, 13 Dec 2015 08:09:47 +0000 (21:09 +1300)]
GPencil: Bump subversion and ensure that the datablock-level onionskinning flag is set correctly

5 years agoGrease Pencil: Merge GPencil_Editing_Stage3 branch into master
Joshua Leung [Sun, 13 Dec 2015 08:03:13 +0000 (21:03 +1300)]
Grease Pencil: Merge GPencil_Editing_Stage3 branch into master

This commit merges all the work done in the GPencil_Editing_Stage3 branch
as of ef2aecf2db981b5344e0d14e7f074f1742b0b2f7 into master. For more details
about the changes that this brings, see the WIP release notes:

5 years agoBGE Rasterizer clean up: double-promotion warnings
Jorge Bernal [Sun, 13 Dec 2015 02:17:19 +0000 (03:17 +0100)]
BGE Rasterizer clean up: double-promotion warnings

5 years agoMoto Clean-up: double-promotion warnings
Jorge Bernal [Sun, 13 Dec 2015 01:50:30 +0000 (02:50 +0100)]
Moto Clean-up: double-promotion warnings

5 years agoBGE: Use float as default instead of double in Moto library.
Porteries Tristan [Sun, 13 Dec 2015 01:01:28 +0000 (02:01 +0100)]
BGE: Use float as default instead of double in Moto library.

Use float in moto instead of double for MT_Scalar.
This switch allow future optimization like SSE.
Additionally, it changes the OpenGL calls to float versions as they are
very bad with doubles.

Reviewers: campbellbarton, moguri, lordloki

Reviewed By: lordloki

Subscribers: brecht, lordloki

Differential Revision:

5 years agoKnife: use BM_face_split_edgenet for detecting holes
Campbell Barton [Sat, 12 Dec 2015 16:46:36 +0000 (03:46 +1100)]
Knife: use BM_face_split_edgenet for detecting holes

Knife had its own code for detecting holes which worked quite well,
but would prefer to use generic bmesh API call here.

5 years agoCorrect own mistake in 3e499c1a
Campbell Barton [Sat, 12 Dec 2015 14:57:57 +0000 (01:57 +1100)]
Correct own mistake in 3e499c1a

5 years agoUse material remapping for bmesh-boolean
Campbell Barton [Sat, 12 Dec 2015 13:34:09 +0000 (00:34 +1100)]
Use material remapping for bmesh-boolean

5 years agoFix T46958: NLA Editor's 'Add Modifier' button is the wrong size on Retina Display
Joshua Leung [Sat, 12 Dec 2015 10:09:29 +0000 (23:09 +1300)]
Fix T46958: NLA Editor's 'Add Modifier' button is the wrong size on Retina Display

5 years agoCleanup: style/spelling
Campbell Barton [Sat, 12 Dec 2015 04:10:03 +0000 (15:10 +1100)]
Cleanup: style/spelling

5 years agoBMesh: editmode booleans ignored when no faces cut
Campbell Barton [Sat, 12 Dec 2015 02:58:03 +0000 (13:58 +1100)]
BMesh: editmode booleans ignored when no faces cut

For the intersect tool this made sense, but booleans can use cuts which overlap edges exactly.

5 years agoCorrect error in last boolean commit
Campbell Barton [Sat, 12 Dec 2015 02:15:09 +0000 (13:15 +1100)]
Correct error in last boolean commit

Side was flipped

5 years agoBGE: Improve clock management
Arnaud Degroote [Sat, 12 Dec 2015 01:37:42 +0000 (02:37 +0100)]
BGE: Improve clock management

This patch improves clock management in BGE, to be able to accelerate /
slow the time, and also to finely synchronize clock with external
engines. Several new python functions have been added and existence ones
have been improved for that purpose. Now we have:

- getClockTime(): Get the current BGE render time, in seconds. The BGE
render time is the simulation time corresponding to the next scene that
will be rendered.

- getFrameTime(): Get the current BGE frame time, in seconds. The BGE
frame time is the simulation time corresponding to the current call of
the logic system. Generally speaking, it is what the user is interested

- getRealTime(): Get the number of real (system-clock) seconds elapsed
since the beginning of the simulation.

- getTimeScale(): Get the time multiplier between real-time and
simulation time. The default value is 1.0. A value greater than 1.0
means that the simulation is going faster than real-time, a value lower
than 1.0 means that the simulation is going slower than real-time.

- setTimeScale(time_scale): Set the time multiplier between real-time
and simulation time. A value greater than 1.0 means that the simulation
is going faster than real-time, a value lower than 1.0 means that the
simulation is going slower than real-time. Note that a too large value
may lead to some physics instabilities.

- getUseExternalClock(): Get if the BGE use the inner BGE clock, or rely
or on an external clock. The default is to use the inner BGE clock.

- setUseExternalClock(use_external_clock): Set if the BGE use the inner
BGE clock, or rely or on an external clock. If the user selects the use
of an external clock, he should call regularly the setClockTime method.

- setClockTime(new_time): Set the next value of the simulation clock. It
is preferable to use this method from a custom main function in python,
as calling it in the logic block can easily lead to a blocked system (if
the time does not advance enough to run at least the next logic step).

Rationale are described more precisely in the thread

See also T37640

Reviewers: sybren, panzergame, #game_engine, lordloki, moguri

Reviewed By: sybren, panzergame, #game_engine, lordloki, moguri

Subscribers: moguri, hg1, sybren, panzergame, dfelinto, lordloki

Projects: #game_engine

Maniphest Tasks: T37640

Differential Revision:

5 years agoFix T46945: Mesh Deform binding to a cage object with modifiers is unreliable.
Bastien Montagne [Fri, 11 Dec 2015 16:22:14 +0000 (17:22 +0100)]
Fix T46945: Mesh Deform binding to a cage object with modifiers is unreliable.

Binding code was re-building its own DM for the cage, now it uses given one instead.
I cannot see really any good reason not to use 'visual' modified cage for binding process,
using base mesh instead was breaking any 'advanced' binding as described in the report.

5 years agoFix for invalid void* to typed pointer assignment in bmesh when used in C++ code.
Lukas Tönne [Fri, 11 Dec 2015 15:16:11 +0000 (16:16 +0100)]
Fix for invalid void* to typed pointer assignment in bmesh when used in C++ code.

C++ does not allow the assignment of a void pointer to a typed pointer without
explicit casting. Since we use a generic macro in bmesh for iterators we only
ever get a void* back and cannot cast it to the target type. However, casting
the target to a void* as well solves that issue.

This tweak is #ifdef'd to be used in C++ code only.

5 years agoCommend timing prints for boolean
Campbell Barton [Fri, 11 Dec 2015 14:30:03 +0000 (01:30 +1100)]
Commend timing prints for boolean

5 years agoBMesh: boolean wasn't ignoring hidden faces
Campbell Barton [Fri, 11 Dec 2015 13:51:45 +0000 (00:51 +1100)]
BMesh: boolean wasn't ignoring hidden faces

Needed for editmode use

5 years agoFix T46949: Latest blender builds are using shared pcre and xml2 libraries
Sergey Sharybin [Fri, 11 Dec 2015 12:18:37 +0000 (17:18 +0500)]
Fix T46949: Latest blender builds are using shared pcre and xml2 libraries

5 years agoBMesh: Add option to use BMesh boolean modifier
Campbell Barton [Fri, 11 Dec 2015 09:24:39 +0000 (20:24 +1100)]
BMesh: Add option to use BMesh boolean modifier

This uses a bmesh-intersection, BLI_kdtree and watertight intersections to perform boolean operations.

For now keep both BMesh and Carve booleans usable at once for testing & bug reports,
however we plan to phase out Carve by next release.

5 years agoUse Python3.5's unpacking generalizations
Campbell Barton [Fri, 11 Dec 2015 07:14:02 +0000 (18:14 +1100)]
Use Python3.5's unpacking generalizations

5 years agoMistake in last commit
Campbell Barton [Fri, 11 Dec 2015 07:12:46 +0000 (18:12 +1100)]
Mistake in last commit

5 years agoBMesh: Boolean as an edit-mode tool
Campbell Barton [Fri, 11 Dec 2015 06:46:19 +0000 (17:46 +1100)]
BMesh: Boolean as an edit-mode tool

Works much the same as intersect operator,
expose as a new operator since for users its quite different.

Access from face menu.

Internally, this adds boolean args to BM_mesh_intersect function.

5 years agoCorrect error in recent commit w/ hole-filling
Campbell Barton [Fri, 11 Dec 2015 05:18:24 +0000 (16:18 +1100)]
Correct error in recent commit w/ hole-filling

edge-groups weren't being sorted with 2d-coords applied.

5 years agoFix T46951: GLSL draw mode missing some textures.
Brecht Van Lommel [Fri, 11 Dec 2015 01:53:21 +0000 (02:53 +0100)]
Fix T46951: GLSL draw mode missing some textures.

5 years agoBMesh: hole support for intersect tool
Campbell Barton [Fri, 11 Dec 2015 00:47:54 +0000 (11:47 +1100)]
BMesh: hole support for intersect tool

Support cutting many outlines into a single face (creating edges between isolated regions).

5 years agoBMesh: Add BM_face_kill_loose
Campbell Barton [Fri, 11 Dec 2015 00:45:27 +0000 (11:45 +1100)]
BMesh: Add BM_face_kill_loose

Removes edges/verts that become unused.

5 years agoMemutil: remove some unused code.
Brecht Van Lommel [Fri, 11 Dec 2015 00:46:28 +0000 (01:46 +0100)]
Memutil: remove some unused code.

5 years agoIK Solver: remove unused and outdated test code.
Brecht Van Lommel [Fri, 11 Dec 2015 00:42:09 +0000 (01:42 +0100)]
IK Solver: remove unused and outdated test code.

5 years agoMoto: remove some unused code.
Brecht Van Lommel [Fri, 11 Dec 2015 00:34:22 +0000 (01:34 +0100)]
Moto: remove some unused code.

5 years agoMath Lib: 2d ray-segment intersection function
Campbell Barton [Fri, 11 Dec 2015 00:25:24 +0000 (11:25 +1100)]
Math Lib: 2d ray-segment intersection function

5 years agoIK Solver: replace TNT math library with Eigen.
Brecht Van Lommel [Thu, 10 Dec 2015 22:05:45 +0000 (23:05 +0100)]
IK Solver: replace TNT math library with Eigen.

Performance is about the same or slightly better for typical IK chains.
In extreme cases with many bones and multiple targets, of which some are
unreachable, I've seen 2x speedups.

5 years agoIK solver: replace Moto math library with Eigen.
Brecht Van Lommel [Thu, 10 Dec 2015 18:12:26 +0000 (19:12 +0100)]
IK solver: replace Moto math library with Eigen.

5 years agoMSVC 2015 fix, /WX warnings as errors is to restrictive for msvc 2015 currently for...
Martijn Berger [Thu, 10 Dec 2015 16:23:59 +0000 (17:23 +0100)]
MSVC 2015 fix, /WX warnings as errors is to restrictive for msvc 2015 currently for bmesh

5 years agoMSVC 2015 fix hack around internal compiler crash on openmp atomic
Martijn Berger [Thu, 10 Dec 2015 13:59:17 +0000 (14:59 +0100)]
MSVC 2015 fix hack around internal compiler crash on openmp atomic

Eigen3 bug report:

5 years agoFix for mistake in intersect duplicate list check
Campbell Barton [Thu, 10 Dec 2015 13:43:51 +0000 (00:43 +1100)]
Fix for mistake in intersect duplicate list check

In practice this hardly ever happened.

5 years agoBMesh: minor optimization for intersect
Campbell Barton [Thu, 10 Dec 2015 12:39:50 +0000 (23:39 +1100)]
BMesh: minor optimization for intersect

Avoid double lookup on insertion ghash

5 years agoUpdate Eigen to version 3.2.7
Martijn Berger [Thu, 10 Dec 2015 11:37:46 +0000 (12:37 +0100)]
Update Eigen to version 3.2.7

The main purpose of this is to get MSVC 2015 fixes

5 years agoBegin to add some MSVC 2015 support
Martijn Berger [Thu, 10 Dec 2015 10:49:53 +0000 (11:49 +0100)]
Begin to add some MSVC 2015 support

5 years agoCleanup: quiet warning
Campbell Barton [Thu, 10 Dec 2015 10:18:50 +0000 (21:18 +1100)]
Cleanup: quiet warning

5 years agoUse 'peek' instead of 'last' for stack macro
Campbell Barton [Thu, 10 Dec 2015 10:08:10 +0000 (21:08 +1100)]
Use 'peek' instead of 'last' for stack macro

5 years agoEigen: fold remaining OpenNL code into intern/eigen.
Brecht Van Lommel [Tue, 24 Nov 2015 19:42:10 +0000 (20:42 +0100)]
Eigen: fold remaining OpenNL code into intern/eigen.

Differential Revision:

5 years agoEigen: move C API into intern/eigen.
Brecht Van Lommel [Thu, 10 Dec 2015 00:18:01 +0000 (01:18 +0100)]
Eigen: move C API into intern/eigen.

5 years fix (hopefully) broken OSL building on modern RPM-like distro.
Bastien Montagne [Wed, 9 Dec 2015 20:56:47 +0000 (21:56 +0100)] fix (hopefully) broken OSL building on modern RPM-like distro.

Those stupid ones only have one version of llvm (obviously not 3.4 one ;) ), so we have to build again
LLVM3.4 in those cases. Thing is,
* I did not update LLVM magic number when fixed a stupid typo breaking OSL building (the terminfo thing),
  so many people were still using previously-built LLVM.
* Even worse, options passed to OSL to specify own LLVM from /opt/lib were wrong (not sure when this got
  out of sync...).

Thanks to mib2berlin and slikdigit for the report & testings!

5 years fix utmost stupid typo breaking 'skip-osl' option on RPM-based distro...
Bastien Montagne [Wed, 9 Dec 2015 19:49:49 +0000 (20:49 +0100)] fix utmost stupid typo breaking 'skip-osl' option on RPM-based distro...

5 years print correct set of sources tested when a wget fails...
Bastien Montagne [Wed, 9 Dec 2015 19:45:50 +0000 (20:45 +0100)] print correct set of sources tested when a wget fails...

5 years agoCycles: Comment out unused arguments
Sergey Sharybin [Wed, 9 Dec 2015 13:37:43 +0000 (18:37 +0500)]
Cycles: Comment out unused arguments

5 years raise default py version to 3.5.1 (due to some obscure bugs with...
Bastien Montagne [Wed, 9 Dec 2015 13:33:41 +0000 (14:33 +0100)] raise default py version to 3.5.1 (due to some obscure bugs with OPM and 3.5.0).

5 years add '-U' update commands to onle-liner CMake-based build command...
Bastien Montagne [Wed, 9 Dec 2015 12:32:13 +0000 (13:32 +0100)] add '-U' update commands to onle-liner CMake-based build command line.

Avoid user to have to edit themselves their CMake config.

Thanks a bunch @campbellbarton for the tip! :D

5 years agoCMake: include eigen as a system header
Campbell Barton [Wed, 9 Dec 2015 07:55:01 +0000 (18:55 +1100)]
CMake: include eigen as a system header

5 years agoBMesh: move BM_face_split_edgenet to its own file
Campbell Barton [Wed, 9 Dec 2015 05:21:43 +0000 (16:21 +1100)]
BMesh: move BM_face_split_edgenet to its own file

Isolate edge-net splitting in preparation for other functions to be added here.

5 years agoMath Lib: add axis_dominant_v3_ortho_single
Campbell Barton [Wed, 9 Dec 2015 02:57:18 +0000 (13:57 +1100)]
Math Lib: add axis_dominant_v3_ortho_single

5 years agoremove a debug printf
Mike Erwin [Wed, 9 Dec 2015 01:13:45 +0000 (20:13 -0500)]
remove a debug printf

5 years agoOpenGL: split off framebuffer, shader and texture code into separate files.
Brecht Van Lommel [Sun, 6 Dec 2015 20:20:19 +0000 (21:20 +0100)]
OpenGL: split off framebuffer, shader and texture code into separate files.

5 years agoOpenGL: remove non-power-of-two texture check, where even ES 2.0 does not need it.
Brecht Van Lommel [Sun, 6 Dec 2015 20:41:21 +0000 (21:41 +0100)]
OpenGL: remove non-power-of-two texture check, where even ES 2.0 does not need it.

5 years agoCorrect recent OpenGL cleanup
Campbell Barton [Tue, 8 Dec 2015 11:52:51 +0000 (22:52 +1100)]
Correct recent OpenGL cleanup

5 years agoOpenGL: use extension form of FBOs
Mike Erwin [Tue, 8 Dec 2015 07:14:09 +0000 (02:14 -0500)]
OpenGL: use extension form of FBOs

FBOs are a GL 3.0 feature but enjoy nearly universal support via

The newer ARB extension brings these features to GL 2.1 without needing
an ARB suffix.

The older EXT extensions *do* use a suffix. Since we don’t know which
is used until runtime, I added the suffix to all functions & enums.

Also updated the check to look for the FBO feature set instead of the
specific EXT extension.

5 years agoOpenGL: use sized texture internal formats
Mike Erwin [Tue, 8 Dec 2015 06:19:08 +0000 (01:19 -0500)]
OpenGL: use sized texture internal formats

Maybe this is pedantic but I read it’s best to explicitly set the
desired component size.

Also append “_ARB” to float texture formats since those need an
extension in GL 2.1.

5 years agodisable old Mac OpenGL workaround
Mike Erwin [Tue, 8 Dec 2015 04:59:36 +0000 (23:59 -0500)]
disable old Mac OpenGL workaround

Comment says this is from the MacOS 10.5 era. Surely it’s been fixed by
now. If nobody complains in the next few months let’s delete this.

5 years agoOpenGL: simple cleanup
Mike Erwin [Tue, 8 Dec 2015 02:24:41 +0000 (21:24 -0500)]
OpenGL: simple cleanup

It’s still immediate mode, but at least it’s shorter & clearer.

5 years agoBGE code cleanup: Removing RAS_GLExtensionManager.
Mitchell Stokes [Mon, 31 Mar 2014 01:35:02 +0000 (18:35 -0700)]
BGE code cleanup: Removing RAS_GLExtensionManager.

This class did nothing but print out extensions if they were found.
Instead, the code from bge.logic.PrintGLInfo() is now printed as the
Rasterizer is initialized. This gives better information, and it removes
some GL code from KX_PythonInit.cpp (the PrintGLInfo method now calls
the Rasterizer to print the information).

Differential Revision:

5 years agoOpenGL/BGE: Remove RAS_StorageIM (glBegin/glEnd rendering of mesh data)
Mitchell Stokes [Sun, 6 Dec 2015 23:24:55 +0000 (15:24 -0800)]
OpenGL/BGE: Remove RAS_StorageIM (glBegin/glEnd rendering of mesh data)

The only use we had for RAS_StorageIM was to render derived meshes using
Blender's mesh drawing. This is now handled as a special case in
RAS_OpenGLRasterizer instead of in RAS_StorageIM.

We are now left with RAS_StorageVA and RAS_StorageVBO. At the moment
vertex arrays are still the default since our vertex array with display
lists implementation is still much faster than our VBO code in a lot of
cases. As we improve our VBO code, we can drop vertex arrays since
Blender's minimum OpenGL version is being bumped up to 2.1, which
supports VBOs.

5 years agoBGE: Remove RAS_IRasterizer::IndexPrimitivesMulti()
Mitchell Stokes [Sun, 6 Dec 2015 22:35:14 +0000 (14:35 -0800)]
BGE: Remove RAS_IRasterizer::IndexPrimitivesMulti()

The work that was being done in IndexPrimitiveMulti() is now done by
IndexPrimitive() and we always assume multitexture support.

5 years agoPython: remove support for Python 3.4
Campbell Barton [Tue, 8 Dec 2015 00:59:30 +0000 (11:59 +1100)]
Python: remove support for Python 3.4

5 years agoUsual UI messages fixes.
Bastien Montagne [Mon, 7 Dec 2015 20:06:14 +0000 (21:06 +0100)]
Usual UI messages fixes.

5 years agoAdd support for compiling the cuda kernel on the Nvidia Jetson TX1
Martijn Berger [Mon, 7 Dec 2015 16:51:24 +0000 (17:51 +0100)]
Add support for compiling the cuda kernel on the Nvidia Jetson TX1

5 years agoAdded a comment to our use of the term 'adjoint' in BLI_math.
Lukas Tönne [Mon, 7 Dec 2015 11:35:36 +0000 (12:35 +0100)]
Added a comment to our use of the term 'adjoint' in BLI_math.

In modern usage this means the conjugate transpose, but we stick to
the classical usage (i.e. adjugate matrix), like Eigen does.

5 years agoBLI_linklist: add alloca append macro
Campbell Barton [Mon, 7 Dec 2015 08:13:30 +0000 (19:13 +1100)]
BLI_linklist: add alloca append macro

5 years agoMinor changes needed for standalone mathutils
Campbell Barton [Mon, 7 Dec 2015 00:07:26 +0000 (11:07 +1100)]
Minor changes needed for standalone mathutils

5 years agoOpenSubdiv: refine OpenGL version & extension checks
Mike Erwin [Sun, 6 Dec 2015 23:47:58 +0000 (18:47 -0500)]
OpenSubdiv: refine OpenGL version & extension checks

Use new GPU_legacy_support() function.

Determine GLSL version once instead of per shader.

For Texture Buffers, allow ARB or EXT version of the extension. Either
one will do.

5 years agoOpenGL: remove old version check
Mike Erwin [Sun, 6 Dec 2015 23:26:10 +0000 (18:26 -0500)]
OpenGL: remove old version check

+ minor cleanup

5 years agoOpenGL: new GPU_legacy_support() function
Mike Erwin [Sun, 6 Dec 2015 23:00:22 +0000 (18:00 -0500)]
OpenGL: new GPU_legacy_support() function

Is current context compatible with legacy GL (version 2.1)?

My earlier approach -- checking for GLEW_ARB_compatibility -- was not

This should always return true if we set our GL context up properly. It
will return false when we switch to core profile.

5 years agoOpenGL: request version 2.1 when creating context on Windows
Mike Erwin [Sun, 6 Dec 2015 19:29:23 +0000 (14:29 -0500)]
OpenGL: request version 2.1 when creating context on Windows

In practice this gives us a context that is *compatible* with GL 2.1. On
my machine it gives a GL 3.3 or 4.3 compatibility profile context,
depending on graphics card installed.

Also fixed enum for core profile (not used yet).

Also added option for GL 3.2 compatibility profile. This will be useful
during Blender 2.8 development, until we are able to use the core
profile. On my machine this gives exactly a GL 3.2 compatibility profile
context, not 3.3 or 4.

5 years agoOpenSubdiv: disable TF on lower GL versions. Fixes T46794
Mike Erwin [Wed, 2 Dec 2015 01:48:08 +0000 (20:48 -0500)]
OpenSubdiv: disable TF on lower GL versions. Fixes T46794

My previous edit to this check was too lax.

OSD's shader for the Transform Feedback evaluator declares itself
#version 410 so disable the feature if user's GL < 4.1.

5 years agoCycles: Fold Value and RGB node as well.
Thomas Dinges [Sun, 6 Dec 2015 22:47:38 +0000 (23:47 +0100)]
Cycles: Fold Value and RGB node as well.

This way, connecting Value or RGB node to e.g. a Math node will still allow folding.

Note: The same should be done for the ConvertNode, but I leave that for another day.

5 years agoFix Scons after GLSL changes.
Thomas Dinges [Sun, 6 Dec 2015 22:09:17 +0000 (23:09 +0100)]
Fix Scons after GLSL changes.

5 years agoFix (unreported) Ocean modifier assuming all its faces are quads.
Bastien Montagne [Sun, 6 Dec 2015 20:06:11 +0000 (21:06 +0100)]
Fix (unreported) Ocean modifier assuming all its faces are quads.

Would be true in most cases (and in particular with own generated geometry),
but in case one would be using original geometry this could have crashed badly.

5 years agoCleanup in main Ocean modifier code.
Bastien Montagne [Sun, 6 Dec 2015 20:03:57 +0000 (21:03 +0100)]
Cleanup in main Ocean modifier code.

Note that I tried to parallelize the loops porting result of the simulation to the
DM data itself, but that ended up being 20% slower than non-threaded code!

5 years agoOpenGL: rename simple shader to basic shader.
Brecht Van Lommel [Sat, 5 Dec 2015 21:11:31 +0000 (22:11 +0100)]
OpenGL: rename simple shader to basic shader.

5 years agoOpenGL: use simple shader for texture drawing in a few places.
Brecht Van Lommel [Sat, 28 Nov 2015 00:20:28 +0000 (01:20 +0100)]
OpenGL: use simple shader for texture drawing in a few places.

Differential Revision:

5 years agoOpenGL: isolate fixed function lighting in simple shader code.
Brecht Van Lommel [Fri, 27 Nov 2015 20:32:14 +0000 (21:32 +0100)]
OpenGL: isolate fixed function lighting in simple shader code.

Differential Revision:

5 years agoOpenGL: use simple shader for armatures.
Brecht Van Lommel [Fri, 27 Nov 2015 20:36:59 +0000 (21:36 +0100)]
OpenGL: use simple shader for armatures.

Differential Revision:

5 years agoOpenGL: move two sided lighting check into GPU material code.
Brecht Van Lommel [Fri, 27 Nov 2015 20:28:36 +0000 (21:28 +0100)]
OpenGL: move two sided lighting check into GPU material code.

Differential Revision:

5 years agoOpenGL: pass flag to indicate of drawMappedFaces needs to use normals.
Brecht Van Lommel [Fri, 27 Nov 2015 20:16:26 +0000 (21:16 +0100)]
OpenGL: pass flag to indicate of drawMappedFaces needs to use normals.

Differential Revision: