1
1

Compare commits

...

6152 Commits

Author SHA1 Message Date
cd1319d095 cleanup: removed outdated/outcommented code 2018-11-23 00:37:56 +01:00
c5f14a3eec Merge remote-tracking branch 'origin/blender2.8' into collada2.8 2018-11-23 00:29:24 +01:00
7bd7848374 refactor: Simplify the Collada module. moved Blender context information into its own class. 2018-11-23 00:28:45 +01:00
73547952a9 Pose: support wpaint+pose w/ object-lock enabled
Mode locking made it nearly impossible to enter wpaint + object mode.

Now enter pose mode when entering wpaint mode
when the pose object is selected.
2018-11-23 10:19:12 +11:00
7b4f545e28 Fix bone selection w/ mixed wpaint & pose mode 2018-11-23 10:03:04 +11:00
5df55e184e Merge remote-tracking branch 'origin/blender2.8' into collada2.8 2018-11-22 22:03:35 +01:00
7c74f5006a Cleanup: newlines in error prints 2018-11-23 07:29:21 +11:00
3fb77591f4 UI: fix wrong icons after recent update.
This cleans up old icon .data files that were still hanging around,
but not in the SVG anymore.
2018-11-22 21:27:20 +01:00
a7f9b57983 UI: activate tabs immediately on press, and drag to quickly cycle through. 2018-11-22 21:10:12 +01:00
14b60c620f Fix T55535: N panel in sequencer breaks display of preview.
This preview region should not have been part of region overlap.
2018-11-22 21:03:50 +01:00
62592ae987 UI: Object Context Menu tweaks.
* Move type-specific options first.
Allows to get quicker access to settings like Shading Smooth/Flat
by pressing W -> S/F, or camera or light settings.

* Lights: Rename Strength to Energy
* Lights: Show Energy when using EEVEE
2018-11-22 19:02:51 +01:00
f30271e3d4 Image Empties: Potential Fix for T57696
So far this makes a new pass for image empties that does not write to the depth buffer.

Todo:
- Sort empties using `DRW_pass_sort_shgroup_z`.
- Calculate correct bounding boxes.
- fix bounding box memory leak.

Reviewers: fclem

Differential Revision: https://developer.blender.org/D3922
2018-11-22 18:31:03 +01:00
e16ef56a0d Fix T57980: Assert failure in draw manager when opening file 2018-11-22 16:55:29 +01:00
ce6d1e890c Cleanup: Use proper module prefix in function names 2018-11-22 16:35:12 +01:00
76ea125c2e GP: Keep activated the same Brush in toolbar 2018-11-22 16:26:39 +01:00
6a3451fe4e Depsgraph: Ensure solver cleanup order
Ensure that pose cleanup is never run before all IK solvers are finished.
2018-11-22 16:17:18 +01:00
60857cdb79 Depsgraph: Cleanup, line wrapping 2018-11-22 16:17:18 +01:00
447cfdca01 Fix missing newline in error print 2018-11-22 16:17:18 +01:00
a20d350dd5 Depsgraph: Cleanup, make it easier to create relations with flags 2018-11-22 16:17:18 +01:00
3d77517ad5 Eevee: Reflection Plane: Small UI fix and invert facing fading 2018-11-22 16:15:14 +01:00
3280adc0aa Fix T57977: VSE: Markers lines get highlighted when using box select
Was caused by a missing uniform.
2018-11-22 16:15:14 +01:00
e815784aa6 Keymaps: make click event detection use a larger distance threshold.
Previously this was hardcoded to 2 pixels, which is too low for tablets and
not taking into account DPI. Now we set it equal to the tweak threshold, so
you either always do click or drag.

The default distance of 10 pixels may be quite far for something to be
considered a click, and we'll need to see how well it works. But I find this
to help a lot when selecting vertices in quick succession.

Thanks to Julien for spotting this.
2018-11-22 14:33:07 +01:00
783b0809b6 Fix T57578: Vertex Connect crash with less than two verts selected 2018-11-22 13:28:53 +01:00
a0d7d3187b GP: Cleanup old TODO comments
These ToDo were ported when 2.7x code was ported to 2.8, but now they are not needed.
2018-11-22 10:44:06 +01:00
d9215b064c Cleanup: keymap wrapper for tool-setting operator 2018-11-22 16:58:46 +11:00
5155572fc7 Keymap: add popup keymap
Allow manually mapping keys for the popup toolbar.

Useful for tools that don't have immediate access,
add transform, annotate & measure.
2018-11-22 16:52:57 +11:00
d0ac13d6b1 Cleanup: minor simplification of keyconfig merge 2018-11-22 16:33:57 +11:00
ea2d0f9a7a Correct typo 2018-11-22 16:17:09 +11:00
William Reynish
dcf4bf8db9 Icons: use newly added icons 2018-11-22 15:31:19 +11:00
27bbf19af8 Icons: binary data update from SVG 2018-11-22 15:29:26 +11:00
9b788546b7 Icons: updates by jendrzych
Changed to correct disclosure triangles everywhere,
added new icon for Output Properties,
added new icons for Image & Empty types in Add menu,
added icons for add-on types, plus other tweaks and adjustments.
2018-11-22 15:26:01 +11:00
4b9d242be5 Merge branch 'master' into blender2.8 2018-11-22 15:16:45 +11:00
c66570f519 Fix T57989: File loaded as startup
The file contents was used to check if the file was a startup file.

Now pass in an argument from startup loading code instead.
2018-11-22 15:06:14 +11:00
1844ccd521 UI: disable screen edges for full-screen areas 2018-11-22 12:34:15 +11:00
3e625a7a06 UI: hide shortcut from gizmo tip when none found 2018-11-22 12:19:07 +11:00
fb8aa611d0 UI: String tweak for "UnLock" and Un-Mute in VSE 2018-11-22 02:02:11 +01:00
644e66caca UI: Fix Lock/Mute menu in VSE
Thanks @tintwotin for reporting it!
2018-11-22 02:02:11 +01:00
d5f1d4f789 Cleanup: utility function to avoid duplicate keys 2018-11-22 11:54:53 +11:00
553307bec1 Tool System: auto-assign A-Z keys for toolbar popup
Assign keys based on tool name when they're free, allows:
Space-T for Transform, Space-A for Annotate.
2018-11-22 11:35:46 +11:00
120be7740d Fix toolbar popup keymap not allowing 'A' key 2018-11-22 11:33:10 +11:00
3b7daa5bf4 Tool System: Updates for keymap stored as string 2018-11-22 11:13:53 +11:00
1a4595618c Fix factory-settings using stale preferences
We need to reload defaults on factory startup because the defaults
now have preferences that may have changed.
2018-11-22 10:51:27 +11:00
f44a8bd257 Tool System: store keymap name in tool instead of the keymap
Resetting keymaps caused them to become invalid (crashing on access).
2018-11-22 10:25:24 +11:00
4fa693f627 Keymap: always show pie menu w/ tab-pie-menu pref
Wasn't working well with armatures used ctrl-tab
to switch to pose mode, making tab always switch to pose mode
w/ this preference enabled.

Now always show pie-menu.
2018-11-22 09:09:42 +11:00
7e50813d58 Keymap: Use Z to toggle wire instead of xray
This now works like 2.7x more or less exactly,
x-ray is enabled by default for wire so unless users change this,
it will enable x-ray too.
2018-11-22 09:01:00 +11:00
d52c41b040 Keymap: 3D view pref for tab to show pie menu
This behaves like the 2.7x pie menu add-on,
for users who prefer single-key access to all modes.
2018-11-22 08:14:20 +11:00
77764ab22c UI: Add Image and Clip space panels category.
Pretty much all were missing those here... Put all in same category for
image, tried to sort them logically for Clip, since we already had at
least two (stabilization and 'misc')... sigh.

Another topic for UI team to work on I guess.
2018-11-21 22:03:24 +01:00
b508de3d3c UI: First batch of fixing missing categories for panels. 2018-11-21 22:03:24 +01:00
ce137699f9 Cleanup: Move debug warning message about panels missing category from drawing code to registering code.
In drawing it was pretty stupid (since we did not know *which* panels were
affected), and really, really annoyingly noisy!
2018-11-21 22:03:24 +01:00
a9bf6a3b3a UI: hide keymap preferences when filter is used 2018-11-22 07:52:34 +11:00
360fd9ac2c Keymap: correct error in grease pencil change 2018-11-22 07:48:34 +11:00
d78f1eb916 Keymap: remove annotation keymap editmode toggle
This is now used for grease pencil objects.
2018-11-22 06:51:47 +11:00
4c63ea2bc8 Keymap: Adjust shading key bindings
- 'Z' now toggles xray
  (convenient, 2.7x-like binding to show occluded).
- 'D' shows the draw-type pie-menu.
2018-11-22 06:51:00 +11:00
2ad4cd097a Keymap: remove D-Key shortcuts for annotations
Use tools for annotations instead.
2018-11-22 06:44:32 +11:00
7d985fcc1b 3D View: move x-ray toggle to operator
Allows binding to a key.
2018-11-22 06:44:32 +11:00
44612e07fe Keymap: use Ctrl-Tab to toggle fcurve/graph editor
Suggested by Pablo Vazquez.
2018-11-22 05:59:02 +11:00
0a3cf08364 Keymaps: take into account DPI for tweak/drag/pie thresholds.
The intention is to fix a too low default threshold on high DPI screen.
Users with high DPI screens that have increased the threshold to fix this
or liked the lower threshold will need to lower it again.

This is still somewhat of a guess, ideally this would be based on the
physical distance travalled, and maybe different per type of input device.
However we do not have access to this information, and hope this gives a
better default.
2018-11-21 19:31:20 +01:00
e8b9ff78dc Keymaps: a few small improvements.
* Annotation tools now have Alt+LMB as for erase, like sculpt.
* In the LMB keymap, Shift+RMB drag now transforms 3D cursor for easy snapping.
* Curve edit mode draw is now only availble as tool, solves 3D cursor conflict.
2018-11-21 19:31:20 +01:00
d203234dd0 Python API Docs: better titles.
The HTML title did not make it clear that these are docs for the API rather
than a general Blender documentation. Some of the page titles were also too
long and redundant.
2018-11-21 19:31:20 +01:00
f5df1efa2f Cleanup: warnings 2018-11-22 05:26:18 +11:00
146f6cea55 GP: Set Vertex opacity default for templates 2018-11-21 19:19:10 +01:00
79ef6f30f0 UI: Use primary gizmo color for loopcut edge pre-select.
Instead of hardcoded pink.
2018-11-21 19:14:56 +01:00
2ab798feb0 transform_snap_object: Use the texture space bound box to test the need to snap to meshes in edit mode.
Before a value for bound box was stored in a local cache.
2018-11-21 14:38:56 -02:00
2261aed031 GP: Init new Eraser Hard 2018-11-21 18:04:08 +01:00
96e39af948 transform_snap_object: Fix snap to curves.
Use `BKE_curve_texspace_get` instead `BKE_curve_boundbox_get`.
The snap to curve, even out of edit mode, is not done on the displist. So test a boundbox that covers the points seens in edit mode.
2018-11-21 13:07:51 -02:00
cec83e92e6 Fix T57884: Triangle count is incorrect when above around 2 billion
Maniphest Tasks: T57884

Differential Revision: https://developer.blender.org/D3962
2018-11-21 16:34:32 +01:00
d3e686d61e Depsgraph: Update comment 2018-11-21 16:29:22 +01:00
2a354dd4bd Depsgraph: Allow flush of CoW tag from Action
This way we guarantee that action tagged for CoW will ensure
order of updates with objects which are using it.

Fixes T57870: Scaling keyframes in Graph Editor causes crash
Fixes T57971: Moving keys in the Dopesheet crashes with Segfault 11
Fixes T57530: Moving keys on a rig, Crash
Fixee T57491: Crash when trying to move keyframe in dope sheet
2018-11-21 16:21:24 +01:00
693233b198 Fix T57975: Drawing with Onion Skin enabled crash Blender 2018-11-21 15:53:45 +01:00
5e4ed2793b Depsgraph: Move boundbox sync to the post-geometry evaluation
Boundbox does not depend on transform and only need geometry
component.

This change solves possible race condition accessing geometry
data and allocating/assigning pointers.

Based on disacussion in IRC with @mano-wii and @brecht.
2018-11-21 15:04:18 +01:00
b6693f1f54 Depsgraph: Cleanup, use more clear name
Five years later since the original commit, is probably not so bad
timing on calling things by their clear name.
2018-11-21 14:52:42 +01:00
539b465b32 Implement basic global tablet pressure curve options.
Grease Pencil already implements support for full-featured
per-brush pressure curves, but it is useful to have some
basic global settings that affect all brushes and tools.

This adds two simple options:

- Raw pressure required to achieve full brush intensity.
- Softness control, using a gamma curve internally.

The most important one is the max pressure setting, because it is
critical for ergonomics, but the Linux Wacom driver lacks it.

The softness option internally converts to gamma = 4^-softness.

Reviewers: brecht, campbellbarton

Differential Revision: https://developer.blender.org/D3967
2018-11-21 16:34:07 +03:00
968bf0df14 Fix T57811: Render crashes in certain scenes when AO Bounces are used 2018-11-21 14:17:26 +01:00
b93c81e002 Image Empties: always show in orthographic view by default 2018-11-21 13:52:12 +01:00
6f48bfc7a8 Cycles: Cleanup, use utility function
Replaces inlined platform-specific code.
2018-11-21 13:51:18 +01:00
65143542af Cycles: Cleanup, reduce indentation level 2018-11-21 12:41:24 +01:00
ed1ee89288 I18N: tweak some UI labels and tips. 2018-11-21 12:06:59 +01:00
638622971b I18N defaults: enable tooltip translation.
That is minimal change for now, we may want to fully enable i18n by
default...
2018-11-21 12:05:56 +01:00
5892f0fd0c UI: small clean-up of I18N UI in userpref.
Mainly do not hide i18n options anymore, this is against our rules, just
disable them instead.
2018-11-21 12:04:09 +01:00
700330afe8 Cycles: Cleanup, comments and dead code 2018-11-21 11:33:11 +01:00
65d01def80 Cycles: Cleanup, CUDA code path is not possible inside AVX2 2018-11-21 11:28:49 +01:00
e85aa8b8da GP: Change cursor for primitves 2018-11-21 10:52:46 +01:00
3a64d7ca48 GP: Remove Target Weight switch 2018-11-21 09:03:17 +01:00
7de712e1e5 Fix uv-sculpt use w/ tool-system 2018-11-21 17:56:10 +11:00
77a80d9f2f Gizmo: show dial handle for unconstrained extrude
Now only show an arrow when extrude was constrained on an axis.
2018-11-21 17:15:53 +11:00
1a551328b4 Gizmo: set operator options before execution
Avoid setting all operator options every redraw,
instead set them before invoking.
2018-11-21 16:00:00 +11:00
6b6105a87e Gizmo: run invoke_prepare even when the gizmo isn't modal
This is useful for setting up state for gizmos that run
operators too.
2018-11-21 15:35:29 +11:00
67c3791f63 Object: minor changes to jump-to API
- Always select the jump-to object, even if it's active.
- Remove check for invalid object data
  (these cases will fail much earlier).
2018-11-21 13:07:36 +11:00
18593c7cd3 Cleanup: add reveal_hidden arg to jump-to API calls
Jumping to data shouldn't necessarily change hidden status
or visible layers.
2018-11-21 13:04:03 +11:00
a86a1292f3 Gizmo: workaround for extrude modifying normals for XYZ axis
This was done for the normal gizmo, but not the XYZ handles.
2018-11-21 12:58:06 +11:00
774471dd45 Fix custom matrix orientation being written to scene 2018-11-21 12:58:06 +11:00
ac5889a9ee Correct editbone root-select check
Mistake in recent commit.
2018-11-21 12:58:06 +11:00
63150511a2 Gizmo: use Y-axis for armature extrude on normal
For bones it's useful to extrude a bone aligned to the existing bone.
2018-11-21 12:14:28 +11:00
04d09014e9 Gizmo: set the extrude transform constraint matrix 2018-11-21 11:45:16 +11:00
b6918eaf23 UI: Horizontal/Vertical split options in Area menu. 2018-11-21 01:33:41 +01:00
5b45434be4 Transform: use root/tip for bone normal orientation
When there are no fully selected bones,
use the normal of bones which only have the root/tip selected as a
fallback.

Without this, the extrude gizmo isn't very useful
since extrude is often used with only the tip selected.
2018-11-21 11:32:08 +11:00
d433e9de5c UI: Icon and separator for Add Node (Search). 2018-11-21 01:25:44 +01:00
f021536bab UI Theme: Minor improvements on contrast and consistency.
* 3D Viewport grid adjustment to work with both bright/dark viewports (e.g. 2D Animation)
* Match header/grid of NLA with Dopesheet/Graph Editor.
* Avoid pure whites in unselected/inactive text.
* Darken the scrollbar numbers.
2018-11-21 00:40:36 +01:00
91e8509467 Cleanup: use boolean array for mirror modifier 2018-11-21 10:30:51 +11:00
19875439b5 Modifier: Mirror learns to bisect on plane
D3966 by @kioku w/ edits.

This adds bisect and flip options to mirror modifier.
2018-11-21 10:01:04 +11:00
6aa7cea3c2 Cleanup: rename extrude gizmo 2018-11-21 09:25:55 +11:00
d3a75c48fd Cleanup: move extrude gizmo to transform module
Since this is no longer mesh only, move out of mesh,
rename next.
2018-11-21 09:20:19 +11:00
34b9bd3a9b Gizmo: initial extrude support for non mesh types 2018-11-21 09:09:34 +11:00
c17cc4c0d8 Fix extrude tool redo
Redo operator properties weren't being set.
2018-11-21 08:20:22 +11:00
fb4c2ed1a9 Fix T57892: Align Objects in Blender 2.8 Alpha 2 last Builds.
Needed some update for API changes...
2018-11-20 22:14:00 +01:00
b7ee0912a7 Fix T57921: Crash when loading 2.7x .blend with scene without any render layer.
We need at least one view layer, always. :)
2018-11-20 21:50:46 +01:00
3a13b89296 Cleanup: unused args, indentation 2018-11-21 06:29:19 +11:00
176b0df920 Cleanup: gcc function type warning 2018-11-21 06:24:52 +11:00
a4a9123c33 GP: Refactor target weight paint
Now, the target weight is defined as the final maximum value with a new property and all fields have be moved to brush struct.
2018-11-20 20:05:37 +01:00
e63c947204 GP: Refactor drawing engine to single VBO
This is part of T57829.

Reduce the number of batches used to only one by shader type.  This reduces GPU overhead and increase a lot the FPS. As the number of batches is small, the time to allocate and free memory was reduced in 90% or more.

Also the code has been simplified and all batch management has been removed because this is not necessary. Now, all shading groups are created after all vertex buffer data for all strokes has been created using DRW_shgroup_call_range_add().

All batch cache data has been moved to the Object runtime struct and not as before where some parts (derived data) were saved inside GPD datablock.

For particles, now the code is faster and cleaner and gets better FPS.

Thanks to Clément Foucault for his help and advices to improve speed.
2018-11-20 20:05:37 +01:00
140d383393 Fix T57935: Crash Alt clicking w/ poly build tool 2018-11-21 05:25:52 +11:00
5aa728ec7e Cleanup: style 2018-11-21 05:25:52 +11:00
ec908beab3 GP: New option to paint a predefined weight
Enabling this option, the weight is set to the predefined value and not the result of the sum of the paint actions.
2018-11-20 18:12:04 +01:00
53d9ddf772 UI: Color Ramp: Add menu and functions to distribute color stops
Suggestion from Right-Click Select: https://blender.community/c/rightclickselect/Npcbbc/color-ramp-flags-auto-distribution-function

Differential Revision: https://developer.blender.org/D3965
2018-11-20 17:02:31 +00:00
23656d01d8 Merge branch 'master' into blender2.8 2018-11-20 18:01:13 +01:00
ec851efda9 Fix T57923: Freeze in mesh vnors computation code with some degenerated geometry.
Second part of the fix: do not try at all to compute normals in degenerated
geometry. Just loss of time and potential issues later with weird
invalid computed values.
2018-11-20 17:54:48 +01:00
c9c6433a59 Fix T57923: Freeze in mesh vnors computation code with some degenerated geometry.
Fix first part of it, the freeze itself being caused by float NAN values
never comparing equal to anything, not even themselves.
2018-11-20 17:52:21 +01:00
d2e473f01c GP: Reorganize Reproject options
The options depend of drawing mode and this was very strange. Now, the options are listed in the menu.
2018-11-20 16:29:33 +01:00
1824aad3f3 GP: Set Gizmo orientation for edit mode 2018-11-20 16:04:19 +01:00
4dc639ac99 Speedup rigs with multiple objects deformed by bbones
Previously each of the objects which has armature modifier will
request deformation matricies from bbones. Thing is, all those
deformations are the same and do not depend on object which is
being modified. What's even worse is that this calculation is
not cheap.

This change makes it so bbones deformation is calculated once
and stored in the armature object. After this armature modifiers
simply use it.

With a rigs we've got here dependency graph evaluation time
goes down from 0.02 sec to 0.012 sec.

Possible further optimization is to make bbone deformation
calculated at the time when bone is calculated. This will avoid
an extra threaded loop over all bones.
2018-11-20 15:53:59 +01:00
163be42a96 Cleanup: Use more const qualifiers 2018-11-20 15:07:38 +01:00
5c632ced53 Merge branch 'master' into blender2.8 2018-11-20 15:02:13 +01:00
01e8e7dc6d Task scheduler: Optimize parallel loop over lists
The goal is to address performance regression when going from
few threads to 10s of threads. On a systems with more than 32
CPU threads the benefit of threaded loop was actually harmful.

There are following tweaks now:

- The chunk size is adaptive for the number of threads, which
  minimizes scheduling overhead.

- The number of tasks is adaptive to the list size and chunk
  size.

Here comes performance comparison on the production shot:

 Number of threads        DEG time before        DEG time after
       44                     0.09                   0.02
       32                     0.055                  0.025
       16                     0.025                  0.025
       8                      0.035                  0.033
2018-11-20 14:58:17 +01:00
98bcd52ef2 Comment out all derived mesh evaluation
Seems all the usecases of derived mesh are if-defed already,
so no need to have API for it in place, and definitely no
need to waste CPU ticks on converting evaluated mesh to
derived mesh.
2018-11-20 14:54:16 +01:00
e81aca85cb Depsgraph: Don't use derived mesh
Ideally would need to make check based on evaluated mesh,
but is now a good time to go away from derived mesh.
2018-11-20 14:54:16 +01:00
fd926f0058 Modifier stack: Only ensure derived mesh when USE_DERIVEDMESH is defined
This is more an internal transition away from derived mesh.
2018-11-20 14:53:41 +01:00
1ee8c3e46a Modifier stack: Use evaluated mesh to check normals 2018-11-20 14:53:41 +01:00
88d634ca05 Vertex parent: Remove CCGDM optimization
Currently we never return CCGDM from the modifier stack,
so the optimization was doing pretty much nothing.

Removing it completely for now, it needs to be re-done
with the new evaluated Mesh/Subdiv.
2018-11-20 14:53:41 +01:00
129b8833c6 UI: increase spacing at sides of headers, to avoid region split zone overlap. 2018-11-20 13:39:49 +01:00
fc181d855e Fis T57948: Crash in 2.8x lookdev 2018-11-20 13:30:29 +01:00
566a4a96cb Fix T57891: Radius of strip hair doesn't scale with object scale
Note that this only works fine with uniformly scaled objects.
Otherwise, the hair thickness will vary in a weird way depending on viewing
angles.
2018-11-20 13:09:27 +01:00
86e0d13218 Images: "Image" submenu in "Add" menu
The submenu has two entries currently: "Reference" and "Background".
Both operators produce an image empty with different settings.
2018-11-20 12:44:49 +01:00
76d602f38d Add option not to print debug/info in ngon_tessellate.
That func can be called a lot, generating a lot of noise in the
console...
2018-11-20 12:35:05 +01:00
a29740e290 GP: Fix bottom statistics 2018-11-20 11:42:36 +01:00
a19ee4e926 Tool System: define tools for lattice editmode 2018-11-20 21:41:39 +11:00
057ba2eb68 Fix error generating toolbar tooltip
C code needed to be updated for module move.
2018-11-20 21:35:24 +11:00
789a259d71 Merge branch 'master' into blender2.8 2018-11-20 10:46:36 +01:00
9bc2570e2a Removed superfluous NULL check 2018-11-20 10:46:17 +01:00
f8f5751dac Merge branch 'master' into blender2.8 2018-11-20 10:38:55 +01:00
92a47e3b53 Multires: Cleanup, remove unused function 2018-11-20 10:34:01 +01:00
0540d2b65c Added MovieClip.fps read-only property to RNA
This makes it possible for a Python script that loads a MovieClip into the
clip editor to also change the scene frame rate to match.
2018-11-20 10:32:24 +01:00
698f1e3d94 Fix T57938: Dynamic paint baking issues
Quite usual fix for the caching systems.
2018-11-20 10:29:35 +01:00
640eb00670 Tool System: define tools for meta-ball editmode 2018-11-20 18:52:56 +11:00
812205f936 UI: unhide bones in Jump To Target instead of failing.
The whole point is to avoid the need to manually hunt for the
bone, so it makes more sense to unhide it automatically.

If the bone is on multiple layers, just the first one is enabled.

Also, ED_pose_bone_select already checks PBONE_SELECTABLE.
2018-11-20 10:24:33 +03:00
1edc3f74ed Cleanup: make object deselect match other ED_ APIs
Use SEL_* argument, matching ED_pose_deselect_all.
2018-11-20 18:08:24 +11:00
d227c58e3e UI: support jumping to target object/bone
Complex rigs are built from many bones (often overlapping)
connected by constraints.

When investigating or debugging such rigs one often wants to switch to
the target of a constraint, or a parent bone, but it is difficult to do
manually due to overlap confusion.

This adds a right click menu option that automatically selects
and makes the target object or bone active for UI fields where a
suitable reference is readily available.
2018-11-20 17:38:35 +11:00
93f82698e7 Object: utility (de)select all functions
part of D3955 by @angavrilov
2018-11-20 17:00:55 +11:00
82eecc6c00 Multi-Objects: Calc origin w/ all edit-objects
D3924 by @Leon95 w/ code de-duplication.
2018-11-20 16:26:46 +11:00
15db2acd9f Fix T57722: Clipped LookDev preview spheres
D3948 by @pablodp606
2018-11-20 15:08:56 +11:00
720368e2d0 Cleanup: use const mesh arg to BM_mesh_bm_from_me
Needed for D3966
2018-11-20 13:30:25 +11:00
9d85cf0d54 Theme: avoid right-shift in XML files
Use 2 space indent for attributes, ~20% smaller files.
2018-11-20 13:15:26 +11:00
9a1796797e Keymap: update addon register/unregister utilities
Use the same data format and loader that the default key-maps use.

This supports nested properties (needed for macros)
and fixes modal key-maps which weren't supported.

This format still needs to be documented.
2018-11-20 12:37:04 +11:00
916446e83f Cleanup: move keymap hierarchy into own file 2018-11-20 11:38:13 +11:00
bb5a96e76e Cleanup: move toolbar keymap generation to bl_keymap_utils
The function is getting complicated, any refactoring
would be best done outside of 'space_toolsystem_common'.
2018-11-20 11:17:36 +11:00
f8c16b0175 Cleanup: move bpy_extras.keyconfig_utils to own module
bpy_extras were meant to be useful high-level helper functions for
script authors to perform common operations,
to avoid writing to verbose API's.

bpy_extras.keymap_utils contains some specialized API calls
mainly intended for Blender's own internal use.

Move keymap import export to internal API.
2018-11-20 11:06:01 +11:00
d870e7d930 Keymap: skip save prompt for default keymap
See T57880
2018-11-20 10:15:33 +11:00
47139c69d7 Keymap: only use delete confirmation for X-key
Only use confirmation w/ X-key since this is more likely to be pressed
by accident. Delete-key delete doesn't confirm.

Part of D3953 by @Zachman w/ edits
2018-11-20 10:06:02 +11:00
750690ae7a Object: report number of deleted objects
Part of D3953 by @Zachman w/ edits
2018-11-20 09:49:52 +11:00
5f9de429ac UI: show keyconfig prefs directly under preset
The keyconfig preset and it's preferences were too far apart,
show the preferences under the preset in a collapsible box.
2018-11-20 09:15:53 +11:00
f0b5a9da01 Cleanup: style, unused 2018-11-20 08:53:00 +11:00
8617594515 Keymap: remove 3ds and maya keymaps
These aren't well maintained and as far as we know
never gained wide adoption.

Remove, we can focus efforts on other key-maps, see: T54963.
2018-11-20 08:15:53 +11:00
c9f24a5690 WM: remove interaction presets
These only exposed a few options, which didn't end up helping
much to make Blender's key-map fit the behavior of other applications.
2018-11-20 08:11:46 +11:00
3c8c976086 Cleanup: gpu docs 2018-11-20 07:38:20 +11:00
5f21030a81 Image Empties: Option to not display the backside of image empties
Reviewers: brecht

Differential Revision: https://developer.blender.org/D3964
2018-11-19 19:33:09 +01:00
99d9d3dbce Fix T57554: texture bake object to active error after recent changes. 2018-11-19 19:19:03 +01:00
eff8903026 UI: hide scene / layer in properties context in some cases, for compactness. 2018-11-19 19:19:03 +01:00
0ff05daee0 Fix handling of B-Bone custom handle references in Edit mode undo.
Correct a couple of places that should process the handle pointers.
2018-11-19 20:35:21 +03:00
7bb512594c Workbench: Use non-negative lighting evaluation
This makes the lighting a bit more diffuse but don't produce negative
values.

Add a bias of 1.5f to make the lighting a bit more directionnal.

The implementation is based on:
https://github.com/kayru/Probulator/blob/master/Source/Probulator/SphericalHarmonics.h#L136
which is derived from:
http://www.geomerics.com/wp-content/uploads/2015/08/CEDEC_Geomerics_ReconstructingDiffuseLighting1.pdf

The shader implementation is optimized and has the same runtime cost
as previous method:
* no sh eval : 0.13ms
* prev sh eval : 0.14ms
* new sh eval : 0.22ms
* new sh eval opti : 0.14ms
2018-11-19 18:05:15 +01:00
2b56d21839 Workbench: Performance: Fix performance drop caused by specular lighting
In my test, the composite pass went from 1.52ms to 0.24ms when specular
lighting is enabled.
2018-11-19 18:05:15 +01:00
98f8b48e69 Remove note about Blender Internal 2018-11-19 16:28:26 +01:00
6ffb0a0ee7 DRW: Make profiling more precise on certain drivers.
This makes the whole rendering slower (because of sync point) but the
numbers displayed by the draw manager profiler is more precise on some
buggy drivers. They seems to issue the query before the last one ends.
2018-11-19 15:48:17 +01:00
ee44dd1b2b Studio Lights: Big Cleanups
* Less Lengthy enum/macro names.
* Optimize computation of Spherical Harmonics.
* Reduce radiance cubemap size a bit. Higher resolution is not necessary.
* Remove STUDIOLIGHT_LIGHT_DIRECTION_CALCULATED (was not used).
* Do windowing on each component separately instead of using luminance.
* Use ITER_PIXELS to iterate on each pixels, using pixel center coords.
* Remove gpu_matcap_3components as it is only needed when creating the gputex.
* Fix a lot of confusion in axis denomination/swizzle.

These changes should not affect functionallity.
2018-11-19 15:48:17 +01:00
8d51e3c062 STUDIOLIGHT: leave a comment of why STUDIOLIGHT_SPHERICAL_HARMONICS_WINDOWING was commented. 2018-11-19 10:39:30 -02:00
422992a135 Py API Docs: use new bind context manager in gpu examples 2018-11-19 14:32:51 +01:00
51711fdcaa Revert "BKE object: Correct bound box of bezier curve objects not matching the object viewed."
This reverts commit 24677cf77b.
2018-11-19 10:28:31 -02:00
3f59bdc1bd PyAPI: GPUOffscreen: Add context manager for the bind method to work with the with statement.
Differential Revision: https://developer.blender.org/D3918
2018-11-19 10:16:27 -02:00
d2560dc614 LOOKDEV: disable STUDIOLIGHT_SPHERICAL_HARMONICS_WINDOWING
This option is causing the texture to become full of nan(ind)s.
I don't know how it worked before.

Until this is resolved, this feature (which improves the quality of LOOKDEV's irradiance texture) will be disabled.
2018-11-19 09:05:22 -02:00
6647e2c71e EEVEE: Cleanup: default_world_frag.glsl 2018-11-19 09:05:22 -02:00
80499bcc52 EEVEE: Cleanup remove unused shader. 2018-11-19 09:05:20 -02:00
24677cf77b BKE object: Correct bound box of bezier curve objects not matching the object viewed. 2018-11-19 09:05:20 -02:00
de231887b4 Themes: Remove deprecated themes.
Most themes have missing/wrong settings due to the new editors in 2.8

A Call-for-content has been made at devtalk.blender.org for the community to contribute new ones.
2018-11-19 12:31:08 +01:00
b0c463a274 Fix T57889: Crashes on undo and redo while working with image or image empty 2018-11-19 12:04:39 +01:00
9b8d479e41 RNA: re-enable update notifier flags
This was causing too many missing updates and each need investigation
which won't happen before beta.
2018-11-19 21:30:54 +11:00
6fe1b7158b Py API Docs: Fix wrong type 2018-11-19 10:29:10 +01:00
b33afe4df3 Tool System: improve popup w/ modifier keys
When the toolbar is accessed with modifiers (eg shift-space):

- Check if we can use the key without any modifiers to set the cursor.
- Pie-menu stile release event no longer checks for modifiers.
2018-11-19 14:39:25 +11:00
740adf2a4b Cleanup: style 2018-11-19 13:37:18 +11:00
db8f662cc9 Cleanup: use define for key-config string 2018-11-19 13:16:18 +11:00
472b114761 Fix keymap loading multiple times
Blender defaults data-file was loading it's own key-map
with a capital 'B', the preset would load it again w/ a lowercase name.

Use lowercase key-map names.
2018-11-19 13:11:33 +11:00
3d92afca7e Fix tool-system popup and tips w/ empty keymap
That this looks like an issue loading keymaps correctly,
needs to be investigated.
2018-11-19 11:58:09 +11:00
90be7e90e0 Gizmo: tweak navigation highlight display
Show occluded axis highlight on top when pointing away.
2018-11-19 11:40:59 +11:00
5dc2ecdf05 Merge branch 'master' into blender2.8 2018-11-19 08:54:07 +11:00
Roel Koster
f74fa98e53 Linux: list GVFS mount points 2018-11-19 08:53:19 +11:00
3e096b47ba Fix object box select new w/o any objects
A new selection with no objects found needed to de-select all.
2018-11-19 07:21:14 +11:00
9f4e4d672c Cleanup: naming 2018-11-19 07:06:38 +11:00
3b48620098 Cleanup: naming 2018-11-19 07:04:24 +11:00
074cd53c19 Keymap: move left click select to a preference 2018-11-19 06:27:17 +11:00
64920a8feb GP: Harmonize Sculpt Struct and field names
Changed the following names:

- GP_EditBrush_Data->GP_Sculpt_Data
- eGP_EditBrush_Types->eGP_Sculpt_Types
- eGP_EditBrush_Flag->eGP_Sculpt_Flag
- eGP_BrushEdit_SettingsFlag->eGP_Sculpt_SettingsFlag
- GP_BrushEdit_Settings->GP_Sculpt_Settings
- GP_EDITBRUSH_FLAG*->GP_SCULPT_FLAG*
- GP_EDITBRUSH_TYPE*->GP_SCULPT_TYPE*
- GP_BRUSHEDIT_FLAG_*->GP_SCULPT_SETT_FLAG_*
2018-11-18 19:30:20 +01:00
991bb00762 GP: Rename GPENCIL_OT_brush_paint to GPENCIL_OT_sculpt_paint
This makes the operator name more consistent. Part of T57818
2018-11-18 18:07:16 +01:00
1b7b1d60c5 Fix T57835: Textured-fill layer opacity not working
This was an unsupported feature.
2018-11-18 16:28:57 +01:00
5e61fd7c23 Fix T57896: Crash updating grease pencil material preview 2018-11-18 15:56:57 +01:00
bbd4613ed9 Keymaps: make click event use position on button press rather than release.
This may improve reliability with left click select and pen input, assuming
that the place where the pen first touched the surface is closer to the
intended location than where it was released from the surface.

I'm not sure if this will make a significant difference in practice, but it
seems worth a try.
2018-11-18 12:21:55 +01:00
c1e1ea5b8f GP: Set Rim Blur default to 0 2018-11-18 10:21:37 +01:00
0cac506f6e Keymap: preference to swap space/shift-space keys
This option is for animators who may not use the tool-system much
(mostly staying in object/pose-mode with the transform-tool active).
2018-11-18 13:43:44 +11:00
c57951d903 Keymap: add user-prefs to the default keyconfig
Currently the only option is to use select-all as a toggle.
2018-11-18 12:45:14 +11:00
50a4a899fd Keymap: Default pref for select-all to toggle
Access in the UI next.
2018-11-18 12:39:31 +11:00
d5c751012b UI: show active keymap user preferences 2018-11-18 12:32:35 +11:00
0f1a63d34c PyAPI: add bpy.utils.execfile
Wraps `importlib.util`, avoids duplicate preset loading calls.
2018-11-18 11:49:03 +11:00
f520f01b46 Cleanup: tweak to keymap layout args
Needed to support user-keyconfig draw call.
No functional changes.
2018-11-18 11:16:25 +11:00
d5e61240ae GP: Set Thickness default to 2
New modifiers have thsi default value.
2018-11-17 19:28:58 +01:00
65fa5a1926 Eevee: Optimize Color Ramp node for common cases. 2018-11-17 18:20:10 +01:00
68b670698f Eevee: Fix SSR/SSS when the bsdf nodes are inside groups 2018-11-17 17:08:21 +01:00
c599aeaee5 GPU: Cleanup / Opti : Vectorize + MADD and remove unused function 2018-11-17 14:56:18 +01:00
735ad525a6 Fix T53750: Mirrored UV have bad tangent space
I feel silly because it was my fault all along! (see the WATCH IT warning)
2018-11-17 14:56:18 +01:00
0c987aa7ac BLI: Math: Add normal_float_to_short_v4 2018-11-17 14:56:17 +01:00
b4640ea020 DRW: Fix object wire appearing when object is drawn as bounds 2018-11-17 14:56:17 +01:00
9c378dc901 Cleanup: correct variable names 2018-11-17 22:23:25 +11:00
93cd8e2494 Cleanup: style 2018-11-17 22:23:25 +11:00
dab0bc7bf8 Cleanup: correct const usage 2018-11-17 22:23:24 +11:00
92d1e6606c Draw Manager: Fix memory leak 2018-11-17 00:23:17 -02:00
2c347ebbba Fix T57874: Crash due to IMM_BUFFER_SIZE when drawing cached frames...
... in the timeline.
2018-11-16 19:26:23 +01:00
64dc0f2685 UI: Eevee: Rename Volume Exponential Sampling to Distribution 2018-11-16 19:24:55 +01:00
b24b1ec74b Eevee: SSR: Only fade based on reflected pixel position
Not on reflector pixel position. This improve the feel of SSRs and the
final render quality.
2018-11-16 18:49:45 +01:00
1f458895f8 Fix crash when rendering a scene first and then goes to eevee preview modes and cleanup
The crash only occurs with Intel 3rd generation GPUs.
It occurs because the program needs to be used at least once in the opengl context in which it is created.
2018-11-16 13:46:13 -02:00
0d5b291b74 Cleanup: removes unused varyings 2018-11-16 12:43:46 -02:00
f6c2fb0eb6 Minor edits in effect_ssr_frag.glsl 2018-11-16 12:43:45 -02:00
e9eb80055b Cleanup: remove unused variable 2018-11-16 12:43:44 -02:00
33ac6c25b9 Fix T56673: Tara.blend from Blender cloud crashes on load
The issue was caused by dependency cycle solver killing relation
which was guaranteed various things: i.e. copy-on-write component
orders and pose evaluation order (which must first run pose init
function).

Now it is possible to prevent such relations from being ignored.

This is not a complete fix, but is enough to make this specific
rig to work. Ideally, we also need to run copy-on-write operation
prior to anything else.
2018-11-16 16:29:46 +01:00
91aa81b61d Fix T57850, bevel modifier crash with vertex groups and face area mode.
Used wrong Loop variable in this case.
2018-11-16 10:06:05 -05:00
54091d935f Fix inconsistent frame set event in graph compared to other animation editors. 2018-11-16 15:53:48 +01:00
d5ab6af864 Keymaps: some more tweaks for left click select based on user feedback.
* More tools now combine with select click by only starting on drag.
* Alt+LMB works again as loop select as alternative to double click LMB.
2018-11-16 15:28:56 +01:00
2589263b6e Fix related to T57851: broken normalmap handling in py shader wrapper.
Pretty stupid mistake...
2018-11-16 14:59:30 +01:00
be405495a9 Fix T57477: Switching between edit mode, and particle edit mode crashes 2018-11-16 14:22:35 +01:00
da344b4045 Merge branch 'master' into blender2.8 2018-11-16 14:05:05 +01:00
ec20d311da Call PRE_VIEW and POST_VIEW draw callbacks in movie clip editor 2018-11-16 13:59:16 +01:00
20963a6a06 PyTemplates operator_modal_view3d_raycast: update to blender2.8 (*/@) 2018-11-16 12:10:35 +01:00
50ba4762f6 Fix T57566: Blender 2.8 crashes with the new multires 2018-11-16 10:34:00 +01:00
c1f5ccb11a Keymap: allow filling in existing key-configs
Needed so we can get the preferences of a key-config
which are sent to a function that generates the contents.
2018-11-16 16:00:37 +11:00
cb79b691cd Cleanup: set variable for preference name 2018-11-16 15:00:27 +11:00
f54b239269 Keymap: add support for key-config preferences
This is needed for keymaps to define their own options,
which can include left/right mouse select.

This can also help to us to provide popular keymap tweaks as options,
so users can easily fit blender to their workflow with well supported
adjustments which don't give the overhead of having to maintain
your own keymap, which become out-dated when operators change.
2018-11-16 14:54:41 +11:00
77ff9a2006 Keymap: remove loading keymaps from old files
These keymaps are not going to work usefully in 2.8x,
remove support for loading them.
2018-11-16 12:30:02 +11:00
59f0db430a Cleanup: remove 27X define 2018-11-16 11:04:57 +11:00
a765403955 BKE: Fix probe duplication not duplicating data block 2018-11-16 01:03:13 +01:00
b24de94c29 Cleanup: de-duplicate 3d view select items 2018-11-16 10:51:33 +11:00
a915da221f Edit Mesh: Fixes display of custom normals
Should fix T57620
2018-11-16 00:45:22 +01:00
988c4259e5 Keymaps: add double click loop select to RMB keymap. 2018-11-16 00:37:30 +01:00
e18cc071f8 Fix Blender RMB keymap cursor being set when using border select. 2018-11-16 00:37:30 +01:00
8510ef02f9 Fix Blender 2.7 keymap missing spacebar search menu. 2018-11-16 00:24:52 +01:00
23c3124b56 Edit Mesh: Improve mesh cage drawing / fix errors and cleanup
* Fixes vertices with bad coloring. Now vertices draw with depth write so
they occlude the underlying face geom overlay, avoiding double drawing the
vertex.

* Decrease the z_offset of edges so they don't poke too much through
geometry. Also delete this offset in ortho view.

* Add zoffset to active and selected vertices so they always draw on top
if they overlap a non selected vertex.

* Fix alpha of edge_fix in vertex selection mode
2018-11-16 00:13:06 +01:00
Dalai Felinto
98765e3700 RNA: LayerCollection.has_hidden_objects
With this we have a way to tell that a collection has visible objects
but not all of its objects are visible.
2018-11-15 21:01:01 -02:00
bf7af31e9f Keymaps: left click select keymap changes
Both the active tools and selection are now on LMB, which leads to
various conflicts.

For that reason the LMB keymap now has a couple of differences
compared to before. These changes do not affect the RMB keymap.

* Context Menu: W -> RMB
* Select Tool activate: None -> W
* Set Cursor: RMB -> Shift+RMB
* Loop Select: Alt+LMB -> double click LMB
* Mask Feather Vertex Slide: Shift+RMB -> Ctrl+Shift+RMB
* Node Select: only with LMB now, no RMB

The idea behind the W key Select Tool shortcut is that various
tools can't be combined with selection, unlike the RMB keymap.
So this works as a quick shortcut to drop a tool
and go back to selection.

Tools: set Select Box tool as default, rather than Cursor.

This goes along with coming LMB select keymap changes,
where we want the user to be able to LMB click to select by default,
rather than set the cursor.
The cursor will still be directly setabble with shift+RMB.
2018-11-16 09:54:50 +11:00
5215c42e3c Revert "Keymap: remove 3D cursor keymap"
This reverts commit 8ecc51e87f.

This is needed for keymaps that dont include cursor placement by
default.
2018-11-16 09:44:19 +11:00
0f21b64b1a WM: fix hard coded rename
Currently the filenames are used when setting keymaps.
This hard coded naming meant the preset and setting function
need to be kept in sync.

Prefer to not have hard coded replacements which need to be duplicated.
2018-11-16 09:37:18 +11:00
be66428a8f Error in recent keymap update 2018-11-16 09:23:48 +11:00
e0a30aef19 WM: Fix secondary toolbar events being ignored
Error in recent workaround.
2018-11-16 09:19:33 +11:00
088be7eb2f Keymaps: replace select / action mouse system
For Blender builtin configurations the option to choose the select mouse remains
and is now also in the splash screen. It works by changing the keymap dynamically
in the script, rather than using special events.

The system of automatic switching of events was not flexible enough to deal with
side effects that require further keymap changes, so it is now under more manual
control in the script.

This breaks compatibility for some scripts and exported key configurations.
These can be fixed by replacing SELECTMOUSE, ACTIONMOUSE, EVT_TWEAK_S and
EVT_TWEAK_A with appropriate LEFTMOUSE, RIGHTMOUSE, EVT_TWEAK_L and
EVT_TWEAK_R events.

Other than that, there should be no functional changes.
2018-11-16 08:31:00 +11:00
76a18d555c Merge remote-tracking branch 'origin/blender2.8' into collada2.8 2018-11-15 22:10:20 +01:00
06862486d4 cleanup: Collada Importer: better readable report in Blender console 2018-11-15 22:09:35 +01:00
8ecc51e87f Keymap: remove 3D cursor keymap
Rely on 3D view keymap, fixes T57843
2018-11-16 07:59:00 +11:00
ffa461f13c Eevee: Add Filter Quality setting
This setting can be tweaked to improve glossy reflection cubemaps.

It increases the sample count for each roughness level.
This settings affect the lookdev mode quality as well.
2018-11-15 20:04:47 +01:00
1b321048a7 Eevee: Add Glossy Reflection clamping
This enables reducing the noise comming from very bright light sources
(like a sun) that can be found in distant HDRIs.

The lost energy may be replaced manually by a sunlight that compensate the
this loss.

This clamping only concerns Reflection Cubmaps and is done on all on all
of them.

Setting to 0.0 disables it (default).
2018-11-15 20:04:47 +01:00
Dalai Felinto
f8964809b8 Viewport collections visibility: Viewport and Selection options
Right now we have a different behaviour whether users click on the name or on
the visibility eye.

When clicking on the eye, it is a toggle. When clicking in the name, you
are isolating this collection (unless you use shift).

As for the UI I tried using separator_spacer, but it was more work than
worth. A lot of sub panels, and LEFT/RIGHT alignment work just fine.
2018-11-15 16:59:42 -02:00
Dalai Felinto
0ff424b299 Viewport collections visibility: Remove collection icon
I added the icon inspired by the H menu, but there is no need for this.
2018-11-15 16:49:20 -02:00
Dalai Felinto
d9abb0eaae Explicitly disable separator spacer in popover and pie menus
It is doable to get it to work, you just need to process it line
by line though, and get the right width of each one.

Disabling it for now since it is not implemented anyways.
2018-11-15 16:48:23 -02:00
26ea8cd2d0 Fix tool error opening Sculpt template. 2018-11-15 18:48:29 +01:00
d1ff122db6 Templates: set autosmooth threshold to 30°, matching default for new meshes. 2018-11-15 18:35:57 +01:00
113a70808c Fix T57854: Disable viewport visibility crash 2018-11-15 18:29:02 +01:00
c2164e579c Eevee: Add irradiance smoothing
This is a parameter that will make the interpolation between irradiance
cells of a same Irradiance Volume smoother, reducing the weight of the
light leaking correction factors.

It is usefull in some cases to avoid harsh lighting transition that can
happen when a sample point it near a surface.
2018-11-15 18:16:30 +01:00
11b3954346 Eevee: Irradiance Grid: Make the influence shape corners round
This makes it easier to add corrective light grids without having ugly
blending corners revealing the shape of the grid bounds.
2018-11-15 18:16:30 +01:00
21b0f74a6f Eevee: Lights: Reduce default cascade distance 2018-11-15 18:16:30 +01:00
7ced0d3cc0 Eevee: Cleanup & small optimization 2018-11-15 18:16:30 +01:00
516e000aa9 Eevee: Add Light Threshold value
This is an important change. Starting from now, all lights have a finite
influence radius (similar to the old sphere option for BI).

In order to avoid costly setup time, this distance is first computed
automatically based on a light threshold. The distance is computed
at the light origin and using the inverse square falloff. The setting
can be found inside the render settings panel > shadow tab.

This light threshold does not take the light shape into account an may not
suit every case. That's why we provide a per lamp override where you can
just set the cutt off distance (Light Properties Panel > Light >
Custom Distance).

The influence distance is also used as shadow far clip distance.

This influence distance does not concerns sun lights that still have a
far clip distance.

---

This change is important because it makes it possible to cull lights
an improve performance drastically in the future.
2018-11-15 18:16:30 +01:00
d082b18d87 Eevee: Optimisation: Bypass light power calculation when not needed
This makes quite a big improvement in my case 1.8ms vs 2.3ms for a single
area light.
This will make even more difference with light attenuation.
2018-11-15 18:16:30 +01:00
d0b0e7efed Eevee: Cleanup: Fix wrong sun area light power calculation 2018-11-15 18:16:30 +01:00
f3074b96d6 Eevee: Make sun power match cycles better.
I made an empirical test with a 100% diffuse sphere and manually tweak the
lighting power of a sun lamp trying to fit cycles and eevee the best I can.

Then I plotted the result and found a rough fit to the equation and that
seems to work pretty well.
2018-11-15 18:16:22 +01:00
cfb6f14616 Fix node_shader_utils: "Specular Tint" is a float (not a color) 2018-11-15 17:52:40 +01:00
e6276e1748 RNA: always allow fallback from defaultarray to defaultvalue.
The python getters for the array already allowed that, but not the
actual C RNA access functions. This is inconsistent, so implement
the fallback in all cases. Now if by default the property should
contain the same value in all positions, it is not necessary to
actually use an array.

Reviewers: campbellbarton

Differential Revision: https://developer.blender.org/D3940
2018-11-15 19:42:03 +03:00
8610b57271 Cycles: Cleanup, code style 2018-11-15 17:19:26 +01:00
c617fcad10 Merge branch 'master' into blender2.8 2018-11-15 17:17:37 +01:00
cd9ab9d99e Cycles: Cleanup, code style 2018-11-15 17:16:40 +01:00
4fbde56f51 Py API: Fix documentation/actual behavior missmatch in gpu.matrix 2018-11-15 17:10:32 +01:00
4d04235d5f Py API Docs: Fix formatting 2018-11-15 16:54:29 +01:00
7291996f3b Fix T57825: Crash when assign material
We need to make sure that all the nested node trees are localized.

Because of this reason, we need to roll back to a bit older way
of dealing with materials.

Should be all safe now with the fixes from few moments ago.
2018-11-15 16:50:30 +01:00
637d5ab635 Depsgraph: Clear localization tag for CoW IDs
They are self-contained now, and should not cause any sync or
free happening when freeing them.
2018-11-15 16:38:20 +01:00
ba9bd979f1 Tag all localized ID types as such 2018-11-15 16:36:35 +01:00
9edff9ce9b Remove legacy node tree localization tag
Is stored on ID level now.
2018-11-15 16:35:28 +01:00
c5219abd74 Followup to the previous commit
Thought this is to be fixed in master first. Turns out, nope :)
2018-11-15 16:33:00 +01:00
d546269de8 Cleanup: Double semicolon at the end of line 2018-11-15 16:32:18 +01:00
9d52ff1ced Fix strict compiler warnings/errors 2018-11-15 16:31:26 +01:00
61ee2f0db8 Merge branch 'master' into blender2.8 2018-11-15 16:28:37 +01:00
74fdf68a41 Cleanup: Comments 2018-11-15 16:28:07 +01:00
6a311402db Merge remote-tracking branch 'origin/blender2.8' into collada2.8 2018-11-15 16:14:55 +01:00
2aa0a69015 Splash: tweak quick setup to use single column style layout. 2018-11-15 15:26:53 +01:00
8dbf0957f6 Keymaps: add select with left / right option to quick setup splash screen. 2018-11-15 15:12:48 +01:00
Dalai Felinto
098e807f9e Viewport collections visibility popover
This brings the functionality currently in the H shortcut, to hide/show
individual collections.

In order to convey hierarchy, and to make justice to the originally
intended 1-10 shortcuts, we group the collections per siblings.
2018-11-15 11:52:00 -02:00
Dalai Felinto
b85886f8d5 LayerCollection RNA API util functions
* has_objects()
* has_visible_objects(view_layer)
* has_selected_objects(view_layer)
2018-11-15 11:51:57 -02:00
Dalai Felinto
570e37261d Hide collections menu: ignore excluded collections
Note: I didn't change the shortcuts, I think this is a separate decision
to be made. I just want at the moment to have the H operator to mimic
the upcoming popover.

Personally if we are to keep the 1-10 shortcuts (and they do work) I
think we should skip the excluded collections altogether.

In fact we could have an option to hide them from the outliner too.
2018-11-15 11:51:57 -02:00
bdca863956 Units: Identifiers in Python
I only specified the identifiers for the units that are actually accessible for now.
This way we can postpone some decisions for now. E.g. if it should be `METER_SQUARE`, `SQUARE_METER`, `METER_SQ`, ...

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3945
2018-11-15 14:40:22 +01:00
cdfc128267 Fix T57848: Transforming large linked instances freezes Blender 2018-11-15 13:55:15 +01:00
71fd7e610a Keymaps: minor code refactor after adding tools to default preset. 2018-11-15 12:50:33 +01:00
9a9ca5e40b Depsgraph: Build all type of IDs for modifiers and constraints
It was missing handling of collections there, which caused collection
used for smoke colliders to not be in the dependency graph.
2018-11-15 12:48:55 +01:00
William Reynish
c3e2b40a91 Icons: sculpt tool updates r62157
- Blue = Add/Subtract
- Yellow = Flatten/Contrast
- Red = Grab
- Grey = General/Other
2018-11-15 22:32:38 +11:00
William Reynish
165c447691 Tool System: add curve tilt tool 2018-11-15 22:31:47 +11:00
William Reynish
93b373060f Icons: add tilt tool 2018-11-15 22:31:42 +11:00
d2c41293a0 Fix T57831: Crash with multi-select / delete of the same object in Collection outliner.
Tssst… that piece of code should have been removed when we got rid of
bases here, kind of obvious it would break if object pointer itself is
NULL! And since deleting an object clears its ID pointers in outliner
tree, this fixes for free the issue of deleting several time the same
object (being selected in several collections at once).
2018-11-15 12:26:55 +01:00
e318da5350 Remove unused parameter. 2018-11-15 14:19:35 +03:00
90cf9bcc7d Depsgraph: Make drivers builder less noisy
Do early output when trying to add target relation with wrong rna_path.

We can't do anything reliably in that case anyway, so hopefully it is
a no-functional-change for artists, just avoids noisy error prints in
the terminal.
2018-11-15 12:13:28 +01:00
a575c508fe Stretch To: fix initialization of the constraint with copy-on-write.
The constraint is supposed to automatically initialize the rest
length when it is first evaluated, so now that evaluation is done
on a separate copy it also has to copy the value to the master
instance - or newly created constraints will be broken.

Since this is supposed to happen once at constraint creation,
implementing as a search for now instead of adding new fields.
2018-11-15 14:10:24 +03:00
773110f848 Depsgraph: Save memory by ignoring invisible objects
This finished old standing TODO which was attempting to
ignore objects of all invisible collections.

The difference here is that we remove invisible bases from
view layers. This guarantees that the evaluated state is
consistent and does not reference original objects.
2018-11-15 11:43:12 +01:00
156fe74f91 Depsgraph: Fix/workaround crash after recent point cache changes
For some reason relations can not always be found. This is to be
investigated, but doesn't hurt to be safe here. Also allows to
unlock production.
2018-11-15 11:43:12 +01:00
4a3a4eef14 Depsgraph: Use more human readable relation keys identifier 2018-11-15 11:43:12 +01:00
48c137ad5d UI: remove node tree panels
This duplicates items in the add menu and uses a lot of vertical space.

This should be used for tools or disabled.
2018-11-15 19:36:32 +11:00
b8d21f9b9b Cleanup: typo, whitespace 2018-11-15 18:50:18 +11:00
5ec1d709e7 WM: use Python bytecode cache to run presets
Key-maps can be very large, avoid parsing on every startup.
2018-11-15 18:46:00 +11:00
49cd13768f UI: 'Add Object' rename dimensions
D3943 by @Zachman w/ edits
2018-11-15 17:44:50 +11:00
7c03365861 WM: use spacebar press event (not double click)
Functionality) is nicer but this uses a hack to make it work,
keep the code under a variable in case we want to remove.
2018-11-15 17:12:33 +11:00
02a21420e8 Fix gizmos in the node editor 2018-11-15 15:43:50 +11:00
8c7727946c Gizmo: tweak navigation drawing for axis views
Axis aligned views now show both small/large handles,
this makes it possible to well if the view is in front or behind.
2018-11-15 14:11:08 +11:00
b3d84853ac Keymap: remove keymap export that wrote API calls
Use new keymap format which defines data to be loaded.
2018-11-15 13:51:55 +11:00
8734a09379 Tool System: use preset keymap loading logic
The data structures for tool keymaps and presets were different,
use the same structure and expose function publicly.
2018-11-15 13:38:27 +11:00
349d85eb9e Missed when moving tool keymaps 2018-11-15 13:34:47 +11:00
02d77e5bf5 Keymap: use parameters for tool keymap 2018-11-15 12:54:44 +11:00
27eba3867a Keymap: move tool system keymaps into the default keymap
Note that tools can still define their keymaps,
since it's useful for add-ons.
2018-11-15 12:45:45 +11:00
c94f806dc7 WM: remove warning when toolbar not found
Not useful for general usage, so removing.
2018-11-15 09:51:37 +11:00
3ecc79fa1a Gizmo: use color fading to show depth for navigate
Previously the positive axis was always brighter,
now use bright colors which face towards the view.
2018-11-15 09:44:03 +11:00
28e7c94de2 Gizmo: minor fix for navigation axis color
When view aligned, the near axis was hidden,
making it seem as if the opposite axis was at the front.
2018-11-15 08:17:16 +11:00
d04947b422 Gizmo: skip text drawing w/ select for navigate
Also use struct for storing extra args.
2018-11-15 07:59:03 +11:00
445b60270f fix: collada: preserve original object and bone names in export 2018-11-14 20:18:29 +01:00
0833084fd6 Merge remote-tracking branch 'origin/blender2.8' into collada2.8 2018-11-14 19:47:47 +01:00
14d4c5477d fix: collada: preserve original material names in export 2018-11-14 19:47:09 +01:00
5fa08d1ff0 refactor: collada: move generation of effect id names into own function 2018-11-14 19:46:19 +01:00
cf43f4ed2f new: collada: support proper setup of collada attribute names (wip) 2018-11-14 19:43:29 +01:00
78207eac9b Py API Docs: New custom shader example 2018-11-14 18:41:33 +01:00
6f08124fbd Fix assert in bevel modifier with certain geometry.
This happened in in the barbershop_interior.blend benchmark file, seems
duplicate hash entries are ok for this algorithm.
2018-11-14 18:21:28 +01:00
a4fccde67a Fix some templates for 2.8. 2018-11-14 18:21:06 +01:00
844c7440fc Fix (unreported) bpy.ops.wm.read_factory_settings(use_empty=True) crash.
`BKE_blendfile_read_make_empty()` was not preserving workspaces...
2018-11-14 18:21:06 +01:00
e20557046b Depsgraph: suppress logs from add_relation on invalid driver variables.
Rig generators (e.g. rigify) use dummy drivers to attach extra
ID references to rigs for Append/Link. These references use
Single Property variables with empty path, which is intentionally
invalid and shouldn't produce low-level error logs from depsgraph.

The removed code would always print an error because RNAPathKey
requires a valid path to produce a non-NULL reference.
2018-11-14 20:18:48 +03:00
7d908f87b4 Merge remote-tracking branch 'origin/blender2.8' into collada2.8 2018-11-14 17:21:17 +01:00
8073d672ab fix: collada: exporting object parent/child hierarchies only exported the root object 2018-11-14 17:20:32 +01:00
10bab568d3 Fix assertion failure evaluating depsgraph on an empty armature.
If there are no bones, chan_array may not be allocated.
2018-11-14 19:15:41 +03:00
b44e6f2b3d Fix T57760: Depsgraph 'object_instances' showing incorrect list of objects.
It appears that Python gets next item before using current one, which
would break our Depsgraph instance iterator (since only current item is
valid there, we use the same memory at each iteration).

Working around that with an ugly ping-pong game between two sets of
iterator data, so that previous one (C RNA-iterator-wise) remains valid
memory for Python to access to.
2018-11-14 17:07:02 +01:00
d2dd278c5e Fix typo in comment. 2018-11-14 17:07:02 +01:00
b785586232 Fix T57558: Outliner displaying same object twice in some cases.
Logical flaw in `BKE_scene_objects_iterator_begin()` code (two errors
actually, wrong handling of first object of Master collection, and
missing call to `object_base_unique()` to 'register' that first object
and avoid getting it returned a second time).

Simply fixed by always calling `BKE_scene_objects_iterator_next()`
after minimal proper init, that one knows how to do the things. ;)
2018-11-14 17:07:02 +01:00
46ac317a29 Py API Docs: documentation for gpu_extras.presets 2018-11-14 16:43:48 +01:00
2e16905480 fix: collada adjust importer/exporter for no longer supported HEMI lights 2018-11-14 14:50:56 +01:00
eefae747da Depsgraph: Remove meaningless evaluation mode
With the current implementation it only confuses logic around
checks like vewport/render subdivision levels.

If this mode is really needed for any decision making, implement
this properly.
2018-11-14 14:08:39 +01:00
d3c08b1aa6 Depsgraph: Fix missing point cache reset when physics changes
Among all the lines moved around, the general idea is quite simple.
Actually, there are two ideas implemented there.

First one, is when object itself is tagged for update, we tag its
point cache component for evaluation, which makes it so point cache
is properly reset. We do it implicitly because otherwise we'll need
to go everywhere and add explicit tag in almost all the properties.

Second thing is, we link all collider and force fields to a point
cache component using special type of link. This type of link only
allows flush if change is caused by a user update. This way reset
does not happen when change is caused due to animation, but will
properly happen when user causes indirect change to the objects
which are part of physics simulation.
2018-11-14 14:08:39 +01:00
1d8db50538 Depsgraph: Remove unused operation code 2018-11-14 14:08:39 +01:00
39cd872acb Add function to query whether object has any point cache 2018-11-14 14:08:39 +01:00
ec2fea733b Make object point cache iteration more generic
Currently should be no functional changes, but this will
simplify implementing some incoming logic.
2018-11-14 14:08:39 +01:00
fdd1fea851 Depsgraph: Cleanup, code style
Should be no functional changes.
2018-11-14 14:08:39 +01:00
1386a4a0f2 Gizmo: get background color based on view option 2018-11-15 00:05:54 +11:00
69a04c6140 Cleanup: correct flag comparisons
Also use smaller types for shading data.
2018-11-14 23:31:06 +11:00
69a9bcc206 minor cleanup 2018-11-14 13:06:11 +01:00
61ecd3d24e minor cleanup 2018-11-14 13:06:10 +01:00
2aab0e85cf Merge remote-tracking branch 'origin/blender2.8' into collada2.8 2018-11-14 13:02:12 +01:00
4722003ca5 Fix icon in Clip Editor header (Graph view type with enabled Filters)
fix provided by sebastian_k over IRC, thx!
2018-11-14 12:39:59 +01:00
57573e0da9 Fix copy tracking settings operators
use keyword arguments
2018-11-14 12:39:59 +01:00
7d2bb2c9d9 Merge remote-tracking branch 'origin/blender2.8' into collada2.8 2018-11-14 12:36:02 +01:00
8778656692 minor api docs fix 2018-11-14 12:33:10 +01:00
92166ecd91 Py API: Remove GPUShader.transform_feedback_enable/disable
It couldn't really be used in the current implementation, so it is better to remove it instead of confusing everyone.
2018-11-14 12:27:09 +01:00
5c27c76ed3 Depsgraph: fix relations for drivers on bone weight in Armature constraint. 2018-11-14 14:01:40 +03:00
43ee433dce UI: Comment out "Clip border" operator
Also Remove it from the UI as it has not been ported to 2.8 and it is a
delicate thing to do.
2018-11-14 11:50:37 +01:00
c3d03b4434 Lamps: Remove HEMI light type
This type is not supported by either Eevee or Cycles. If other types of
lamps are needed by external engines, we should support adding custom types.
2018-11-14 11:50:37 +01:00
0b0b3d7f7e Keymap: assigning keys for tools now checks mode
Adding shortcuts to tools was always adding to the top-level window map.
2018-11-14 20:26:00 +11:00
f91b797b2b Tool System: remove duplicate gpencil draw UI
Tool properties showed options twice.
2018-11-14 19:19:04 +11:00
477407bd3b Gizmo: draw navigation negative axes over positive
Using low alpha meant it wasn't possible to see which was in-front.
2018-11-14 18:00:20 +11:00
cf6a101d23 Correct assert generating tool tip/keymap 2018-11-14 17:40:12 +11:00
55e719ec35 Merge branch 'master' into blender2.8 2018-11-14 17:21:34 +11:00
d7f55c4ff5 Cleanup: comment block tabs 2018-11-14 17:10:56 +11:00
c279f879ab Paint: remove brush select paint_mode
Instead check which property has been set.
2018-11-14 11:55:02 +11:00
2b3b481c3d Merge branch 'master' into blender2.8 2018-11-14 11:27:42 +11:00
b97a2c3688 Cleanup: naming for paint modes
- Rename ePaint* -> PAINT_MODE_*.
- Use PAINT_OVERLAY_ prefix for eOverlayControlFlags.
2018-11-14 11:20:08 +11:00
91d0c7f979 Fix gizmo handler initialization w/ quad-view
It's not enough to get the active window region,
now the region is passed in as an argument.
2018-11-14 10:48:59 +11:00
Dalai Felinto
79fa8f193b Fixup for view3d collection name drawing when no active object 2018-11-13 21:33:29 -02:00
ae6e84471a Merge branch 'master' into blender2.8 2018-11-14 09:54:55 +11:00
c1d29ea783 WM: enforce descriptions being NULL or defined
Without this bugs slip through that don't null check the descriptions
since many were set to empty strings.
2018-11-14 09:47:23 +11:00
a5a86f3921 Cleanup: python doc-strings
Indentation & trailing space.
2018-11-14 09:26:53 +11:00
72369c638d Cleanup: python doc-strings
Indentation & trailing space.
2018-11-14 09:05:07 +11:00
Dalai Felinto
4a71102309 Add active collection to viewport "name" stats
Only visible when in object mode.

Most of the time we will have the active object not being a part of the active
collection. So it is important to clearly communicate what is the active
collection, so users know for instance where new or appended objects
will be added to.
2018-11-13 18:39:17 -02:00
Dalai Felinto
51a14b64d8 Add active collection to stats bar
Only show the collection name when in object mode.
It is not relevant in any other mode.
2018-11-13 18:34:38 -02:00
Dalai Felinto
42fbb8af83 Util to get collection UI name
Note we still have hardcoded IFACE_("Scene Collection") in the outliner.
I'm ok with getting of them as well, though no strong feelings here.
2018-11-13 18:14:14 -02:00
520f71b43a Fix tool keymaps not working properly after recent changes.
Not sure this is the best fix, but this should be working. Regardless it seems
good to tag active tool keymaps as such.
2018-11-13 21:02:40 +01:00
f9145bded3 Keymaps: minor code refactor to abstract some events, no functional changes. 2018-11-13 20:29:36 +01:00
ca6dd692b5 Keymaps: reload key configuration when changing select mouse.
For configuration scripts that want to change keymaps based on this setting.
2018-11-13 19:29:13 +01:00
c39d5a6c88 Fix T57708: Crash on Eevee rendering with SSR enabled.
Intel does not like dead code.
The driver for `Intel HD Graphics 4000` crashes in these cases.
2018-11-13 15:19:10 -02:00
b0d0179d60 Depsgraph: fix missing relations for drivers on ShaderNode properties.
Also fix duplicate driver to target relations due to a redundant line.
2018-11-13 21:11:09 +03:00
445d813c87 GP: Don't calculate fast drawing when playing 2018-11-13 18:53:42 +01:00
8a14306c38 Keymap: code refactor to makes some events changeable with parameters.
No functional changes.
2018-11-13 18:22:07 +01:00
7aae28af2d Keymaps: refactor loading of default keymap, fix bugs.
This refactors loading of key configurations to clear and refill existing
ones, rather than adding a new one and then removing the old one.

This fixes broken loading of non-default configurations after recent changes,
and prepares for future changes to make it possible to dynamically change
key configurations based on user preferences.
2018-11-13 18:22:07 +01:00
fe4df40f30 Fix crash when Python creates modal keymaps without items. 2018-11-13 18:22:07 +01:00
4290c938e5 Merge remote-tracking branch 'origin/blender2.8' into collada2.8 2018-11-13 17:22:38 +01:00
3749eac075 Merge remote-tracking branch 'origin/blender2.8' into collada2.8 2018-11-13 17:21:51 +01:00
81caa7fd6d GP: Fix wrong fill texture when draw primitives 2018-11-13 17:09:29 +01:00
c2dc5dfa0d GP: Fix wrong fill after subdivide 2018-11-13 17:09:28 +01:00
9caa587519 Py API Docs: Remove older GPUOffScreen example
I think this example does not belong into the api docs and certainly not in the place where it was until now.
Maybe this can become a template in Blender but personally I don't see much value in it as an "official example" because it is hard to see what is going on exactly.
There are a few other examples that show how to use the GPUOffScreen object now.
2018-11-13 16:43:17 +01:00
3aa30406dd Py API Docs: New Example for off screen rendering 2018-11-13 16:38:12 +01:00
dc6ba4f2ec Py API: fix parameter order in offscreen.draw_view3d 2018-11-13 16:23:31 +01:00
77238819f4 Python GPU API: gpu_extras.presets.draw_texture_2d
Review wasn't finished yet, but I just commit this for now so that I can make some progress..

Differential Revision: https://developer.blender.org/D3901
2018-11-13 16:20:16 +01:00
c8975b0fc7 Py API Docs: GPUVertFormat documentation 2018-11-13 15:25:51 +01:00
444f1fd423 Py API Docs: Cleanup 2018-11-13 15:25:51 +01:00
3f478f4260 Py API Docs: GPUIndexBuf documentation 2018-11-13 15:25:51 +01:00
4e1057780b GP: Remove redundant texture attachment 2018-11-13 13:44:56 +01:00
6ae84ddc6e Py API Docs: GPUBatch documentation 2018-11-13 13:00:18 +01:00
de36a2f99b Fix T57794: Text in Clip Editor Dopesheet not visible
Maniphest Tasks: T57794

Differential Revision: https://developer.blender.org/D3937
2018-11-13 12:04:46 +01:00
34058c4ff1 Fix T57105: Baked Particles could not be rendered as expected
Same fix as for smoke (and is what caching proposal is AFAIK):
share cache between copied and original objects.

One thing which is still missing to be fixed is to make auto-cache
more reliable. It was already kind of broken, so don't think it
should be a stopping factor for this fix.
2018-11-13 11:39:02 +01:00
647a798076 Workbench: Volume: Fix slice display opacity 2018-11-13 11:22:29 +01:00
14e4fb2773 GPU: Fix crash at startup 2018-11-13 11:22:28 +01:00
f4d4f50212 UI: move gpencil paint into topbar only layout
Tool properties were duplicating UI elements.
2018-11-13 20:59:25 +11:00
4503c96a17 Cleanup: remove redundant checks 2018-11-13 17:04:57 +11:00
aab959d71c Cleanup: split object mode out of tool checks 2018-11-13 16:58:29 +11:00
b657e9875c Tool System: use enum for gp sculpt/weight paint
Fixes T57525
2018-11-13 16:52:39 +11:00
3437cd9ac2 Cleanup: add arg to GP_EDITABLE_STROKES macro
Without this, we use arguments defined in the macro
making code hard to read.
2018-11-13 15:07:10 +11:00
184ab749c3 Merge branch 'master' into blender2.8 2018-11-13 14:25:36 +11:00
fe566a30f3 Cleanup: use lowercase 2d/3d in function names 2018-11-13 14:21:42 +11:00
97062a1b9b Cleanup: use doxy groups 2018-11-13 14:16:23 +11:00
ab2fa6d3f4 Keymap: more more standard keys for select tools
This uses shift to extend, ctrl to de-select, both to intersect.
2018-11-13 14:05:20 +11:00
b323167600 GP: box/lasso support for select-operations
This adds support for more adbvanced select operations
matching 3D view select operators.

Also de-duplicate box/lasso select code.
2018-11-13 14:04:00 +11:00
ed4f204d86 WM: default operators to replace selection
Tools now default to creating new selection.
2018-11-13 14:02:28 +11:00
bba868ebf9 Cleanup: use const args 2018-11-13 13:28:43 +11:00
9879ea8a53 Cleanup: remove unused source 2018-11-13 09:38:02 +11:00
e17843782c Cleanup: use namedtuple for KeymapParams
Prefer immutable types where possible.
2018-11-13 08:58:53 +11:00
6844f7eb0c Merge branch 'master' into blender2.8 2018-11-13 08:25:50 +11:00
77a5250975 Eevee: Hide Sprite threshold as it is not implemented yet 2018-11-12 21:18:10 +01:00
6ba7345ca5 Workbench: Volumes: Fix volumetrics step length calculation
Step size is now one voxel diagonal.
Fix T57678 Culling of smoke depending on view direction
2018-11-12 21:15:58 +01:00
3eb7928406 Workbench: Volumes: Fix volumetrics rendering twices 2018-11-12 21:12:34 +01:00
20d06eb3a8 WM: avoid string replace w/ appconfig-activate
Better construct an exact path, this would fail if the path exists
multiple times in the string.
2018-11-13 07:02:51 +11:00
7254e92ba2 material importer - initial version 2018-11-12 20:42:11 +01:00
d941f40c21 Fix T57571: Blender crashes on UV transformation
That was caused by a thread safety issue on gpu_batch_presets_unregister()
which was not designed to be used for this kind of situation (managing 3D
meshes batches).
2018-11-12 18:07:01 +01:00
7f2401532e style fix 2018-11-12 18:04:48 +01:00
bb39e33d25 Fix: draw_circle_2d not using the segment count from parameter list 2018-11-12 17:54:51 +01:00
15a5cc6ca0 Py API Docs: another use case for offscreen rendering 2018-11-12 17:54:51 +01:00
c34c688b47 Fix build: min and max not found. 2018-11-12 19:36:31 +03:00
3b9700aa51 Remove AnimMapper: it has been left unimplemented for almost ten years.
It was supposed to be a feature for substituting RNA paths on the
fly, but has never been implemented, apart from a couple of structure
definitions and passing around some always-NULL pointers. Now it gets
in the way of refactoring NLA evaluation to use GHash for efficiency.
2018-11-12 19:36:31 +03:00
406452ec5d Py API Docs: Another example for offscreen rendering 2018-11-12 17:17:59 +01:00
583bc70435 GP: Hide cursor in some modes 2018-11-12 16:56:50 +01:00
c199040438 UI: Scale control points on curve map when zooming
Mentioned by Pablo on Blender Today : https://www.youtube.com/watch?v=67NIL5A-07c @ about 27:47

Differential Revision: https://developer.blender.org/D3902
2018-11-12 14:18:35 +00:00
36d25fc81b GP: Cleanup unused code 2018-11-12 14:31:55 +01:00
314048b195 GP: Change View icon for annotations 2018-11-12 14:31:55 +01:00
aee0446b6b Add a lot of update tagging to operations with NLA tracks and strips. 2018-11-12 16:18:33 +03:00
36a3a40033 Eevee: Fix ESM not working after a certain distance
This was caused by overflow caused by the background and precision during
filtering.
2018-11-12 13:50:22 +01:00
e51dae4af8 Eevee: Fix lamps shadows not updating correctly
This was visible if the lamps was out of frustum.
2018-11-12 13:50:22 +01:00
150218e58b Ruler Tool: Fix non readable text
The ruler tool is using a hard coded background color. Invert it if the
text color is bright. In the future we should maybe use a theme color
instead of guessing as it does not work well with middle gray colors.
2018-11-12 13:50:22 +01:00
b44ea9f8bb Ruler Tool: Fix text background glitch
It was using UI_draw_roundbox_aa which is not available when drawing with
the view3d opengl context (because of VAO not being shared). Replace with
simpler rect box. Of course it's a bit more ugly but at least it's working.
2018-11-12 13:50:22 +01:00
ded780f13e Py API Docs: fix typos/wording
found by Omar Ahmad
2018-11-12 13:48:31 +01:00
f0759a413e fix: export preset for SL rigged used a no longer existing parameter 2018-11-12 12:25:14 +01:00
3a05331445 Merge branch 'master' into blender2.8 2018-11-12 12:16:31 +01:00
d23a53c74a Cycles: Fix/workaround for gcc-7.2
For some reason when building with gcc-7.2 (which is default
in previous Ubuntu LTS) the guarded allocator is not being
properly instantiated.

Doesn't happen with newer version of gcc-7 which is 7.3, and
also doesn't happen with gcc-6 and gcc-8.

Would be nice to know what is wrong, but for the time being
committing workaround which keeps Blender users happy.
2018-11-12 12:16:07 +01:00
492dbae4d1 Py API Docs: Restructure gpu module introduction 2018-11-12 12:14:18 +01:00
e37a6be9e1 Fix T57766: error in Quick Effects > Quick Fur
Maniphest Tasks: T57766

Differential Revision: https://developer.blender.org/D3933
2018-11-12 12:10:49 +01:00
a0022f80f4 Merge branch 'master' into blender2.8 2018-11-12 11:02:46 +01:00
e732c6af3b Cycles: Proper comment for closing header guard 2018-11-12 11:02:10 +01:00
b6ad300a13 Fix T57713: Object not selecteable after separate strokes
The object was duplicated in Edit mode.
2018-11-12 10:09:10 +01:00
df6530594f Fix T57527: GP draw takes events from gizmos
Add keymap flag to the gizmo handler so events can be handled
on the UI level and not get over-ridden by grease pencil.
2018-11-12 18:51:14 +11:00
5aeec31821 Fix hidden HUD region being used - zero winrct 2018-11-12 15:01:00 +11:00
30ed837473 Revert "Fix hidden action-zone interaction"
This reverts commit 03e5ba3183.

Causes T57729, will look into an alternative fix.
2018-11-12 14:31:28 +11:00
64b463c262 Revert "Fix for hidden regions becoming active"
This reverts commit 484faaea4f.

Causes T57729, will look into an alternative fix.
2018-11-12 14:27:47 +11:00
81ed1d7093 UI: don't show shortcuts in toolbar buttons
Restrict these to displaying in tooltips.
2018-11-12 14:05:54 +11:00
48ad67f4a3 Tool System: support for 'dropping' tools
While there is no support for dropping tools exactly,
the cursor tool supports a keyboard oriented workflow
which is often over-ridden by other tools key-maps

While many tools had shortcuts there was no fast way to get back to
the cursor tool.

Now double-tapping space sets the cursor tool
(as long as this tool doesn't have a key mapped).
2018-11-12 13:18:08 +11:00
8d2ca0b8ef Fix error clearing the popup toolbar keymap
Generating the keymap for the tooltip stopped shortcuts from running.

While this could be supported - the shortcuts show in the button,
so remove shortcuts from these tips.
2018-11-12 12:22:05 +11:00
89786d4e30 Add back layout context for toolbar popup
Removed when removing search.
2018-11-12 11:56:13 +11:00
423668765a Missed last commit 2018-11-12 11:19:30 +11:00
e58da0b6e8 UI: remove search from toolbar popup
Reduce toolbar clutter, keep it only for tool access.

This is available in the menu, users who need to access this can use
the direct shortcut.
2018-11-12 10:46:09 +11:00
fb70ee0bb5 Cleanup: minor gpencil changes
- Replace BKE_brush_getactive_gpencil -> BKE_paint_brush
  (no need for per-paint-type brush access).
- Rename TOT_GP_EDITBRUSH_TYPES -> GP_EDITBRUSH_TYPE_MAX
  (avoid sharing prefix w/ unrelated constants).
- Rename instances of `GP_EditBrush_Data` to 'gp_brush'
  (`Brush` is typically called 'brush').
2018-11-12 09:59:16 +11:00
9c3e324a0d Fix headless build 2018-11-12 09:18:45 +11:00
92263b67eb Update test, missed when changing Object.select_set() 2018-11-12 09:05:38 +11:00
2fdd80ba1d GP: Use same name when duplicate datablock 2018-11-11 14:31:23 +01:00
fd65ebf39a Fix T57776: Error when adding a Torus to the scene.
Not all Object.select_set() cases had been updated to new API... Tsst. ;)
2018-11-11 11:22:38 +01:00
0dea135a36 NLA: fix frame mapping applied twice keyframing from graph/action editors.
The insert_keyframe function already applies NLA strip to action
time remapping, so doing it in insert_graph_keys/insert_action_keys
is redundant outside the code path that inserts directly into fcurve.
2018-11-11 12:42:13 +03:00
d81d77d17c Merge branch 'master' into blender2.8 2018-11-11 16:35:44 +11:00
89c2ff31d9 PyAPI: update keyword list 2018-11-11 09:37:26 +11:00
a48bc15707 GP: Change Thickness Text 2018-11-10 22:20:21 +01:00
473465aae2 GP: Add brush parameter to Shapes tools
Need the brush to define thickness and color of the primitive (line, box, circle)
2018-11-10 20:33:37 +01:00
2ff435adb4 GP: Fix mouse cursor problems
In some situations the check of the windows got false positives and the cursor was hidden by error.
2018-11-10 16:30:37 +01:00
fcf6f78d19 Fix (unreported) crash when deleting collection in freshly duplicated scene.
From startup .blend, add a 'full copy' new scene, and delete its
Collection 1.001 collection. That would make blender crash, once again
due to NULL collection pointer in some ChildrenCollection struct...
2018-11-10 16:22:41 +01:00
78ebb59604 GP: Reorganize Drawing Plane options 2018-11-10 13:19:20 +01:00
cabb918aea GP: Keep synchronized layer list in top bar
Now when the layer is changed, the list of layers and the topbar selector keep equal.
2018-11-10 13:06:44 +01:00
f1ae7f9cc1 GP: Autolock layers was not working with dopesheet
Also fixed a delayed update of the panels
2018-11-10 12:58:07 +01:00
e8251289d2 GP: Add to stats number of objects/selected
This information was not visible when select a GP object and can be useful.
2018-11-10 11:48:02 +01:00
William Reynish
c7d2b4530a Brush: re-order sculpt tool enum
Order is now used by the tool-system,
separators currently not supported.
2018-11-10 20:36:09 +11:00
9268de3a0e Cleanup: naming 2018-11-10 20:27:20 +11:00
f9378e5413 Merge branch 'master' into blender2.8 2018-11-10 20:02:33 +11:00
3756f920f4 BMesh: backport minor changes from 2.8 2018-11-10 19:56:02 +11:00
5a59327fb3 Cleanup: includes 2018-11-10 19:02:26 +11:00
0feeea1bd5 BMesh: avoid incorrect/invalid matrix calculation
- `BKE_object_scale_to_mat3` was used to get the worldspace scale,
  without taking constraints, parenting etc into account.
- Don't pass object's into BMesh API, (prefer matrices instead).
- Avoid matrix invert for each edge-angle calculation.
- Avoid 2x matrix multiplies when looping over edge pairs.
2018-11-10 18:55:03 +11:00
dc21ef7b86 Fix 'Load Factory Settings' loosing the keymap
Caused by recent move to Python based keymaps.
2018-11-10 11:04:32 +11:00
0121258770 Merge branch 'master' into blender2.8 2018-11-10 10:57:35 +11:00
7efac2b0b0 PyAPI: add imports arg to BPY_execute_string
Allows for avoiding `__import__` in expressions,
was already supported for BPY_execute_string_as_* API calls.
2018-11-10 10:55:04 +11:00
2f44ea68d3 Cleanup: style 2018-11-10 09:27:20 +11:00
4d5c87f101 Fix missing tips for some RNA Object API functions parameters.
Without description, parameters are not documented at all in API (not
even their type)... Always nice to have a short description anyway.

Also fixed a few other issues in existing descriptions.
2018-11-09 22:33:27 +01:00
2618d0e8e2 GP: Make Sculpt and Edit Toolbar consistent 2018-11-09 22:20:39 +01:00
0c1934f3c2 Multi-Objects: MESH_OT_select_similar worldspace completion
This makes the operator to work 100% with worldspace similarity:
* SIMFACE_PERIMETER
* SIMFACE_AREA
* SIMEDGE_FACE_ANGLE

Note from revisor (Dalai Felinto):

I'm not sure we want to pass Object * to the bmesh api, though I
personally don't see why not. Either way I group the patches together so
we can more easily roll them back if needs be.

Maniphest Tasks: T56948
Differential Revision: D3908, D3899, D3896
2018-11-09 17:19:04 -02:00
dc346c05fe GP: Add missing preset properties 2018-11-09 20:04:37 +01:00
e6b08b6306 GP: Hide Arrow cursor while painting
The arrow cursor is too intrusive
2018-11-09 20:01:41 +01:00
03ca79a509 GP: Remove duplicate shapes popover
Now the tools are in Toolbar
2018-11-09 19:48:25 +01:00
Dalai Felinto
221d078641 Multi-Objects Metaball: Selection refactor - fix pick and box selection
This is inspired/based on the code we use for armature bone selection.
Both pick selection, and box selection should be working now.
2018-11-09 16:40:43 -02:00
983a928e1d GP: Reorder Move to Layer to TopDown 2018-11-09 19:25:38 +01:00
a4bfccc439 Py API Docs: More gpu module documentation 2018-11-09 19:20:55 +01:00
6cbb6db987 Cleanup: fix layer_collection_sync() using int's for short values.
Collection flag and runtime_flag are shorts, not ints...
2018-11-09 18:43:08 +01:00
615e383ec2 Fix typo in assert that we do not delete master collection.. 2018-11-09 18:43:08 +01:00
William Reynish
89a66633f1 UI: split grease pencil brush curves into subpanels. 2018-11-09 18:06:25 +01:00
William Reynish
8aa17c5b12 UI: add edge markings to top level of edge menu again.
These are commonly used and should be quick to access.
2018-11-09 18:06:25 +01:00
8d07af5d10 Merge branch 'master' into blender2.8 2018-11-09 17:56:28 +01:00
65e9388440 Revert "Cycles: Cleanup, move Embree BVH logic to own file"
While we shouldn't have logic in an entry point, and since one should
not be making typos when moving lines around, there is bigger entanglement
issue with BVH host code using kernel function. This is bad violation,
but is tricky to get solved moments before the weekly.

In order to keep things in a (less) broken state than before own cleanup
reverting the changes.

This reverts commit 2bad10be96.
This reverts commit ddabb21d05
2018-11-09 17:54:09 +01:00
5494683651 Cycles: Free Blender side data as soon as we don't need it
Currently this is possible after built-in images are loaded in memory.
Allows to save memory used by dependency graph and copy-on-write.

In practice this lowers peak system memory usage from 52GB to 42GB on
a production file of spring 03_035_A.lighting.

Note, that this only applies to F12 and command line renders.

Bigger note, that this optimization is currently only possible if
there are no grease pencil objects to be rendered.
2018-11-09 17:53:02 +01:00
cbbf991f62 Cycles: Add name field to scene
Doesn't mean much for Cycles itself, but allows to have nice logs
and progress reports without access of original scene.
2018-11-09 17:53:02 +01:00
1ed31bef1a Draw manager: Expose grease pencil helper function 2018-11-09 17:53:02 +01:00
Dalai Felinto
49a7bcafd9 gpu.offscreen, fix pydoc, example and rename modelviewmatrix > viewmatrix
Technically this is only the view matrix, not model view matrix.
And view layer was missing from the pydoc.
2018-11-09 13:54:38 -02:00
6cb5340e01 RNA ID: forbid editing names of non-GMain IDs.
We even had an assert about that in setter callback!

That means that we do not allow editing names of evaluated IDs, nor
non-data-block IDs (mainly root nodetrees and scene master collections).
2018-11-09 16:51:09 +01:00
3d0383d259 Fix T57737: crash displaying expanded tooltip for transform tool
Maniphest Tasks: T57737

Differential Revision: https://developer.blender.org/D3923
2018-11-09 16:32:47 +01:00
0c8cf8fe7f Fix use of wrong icon IDs. 2018-11-09 15:39:57 +01:00
8bf5af7bd3 UI: Make Region overlap slide instead of fade
Requested by @billreynish.
Increases the TIMESTEP to 60Hz to have smooth animation.
2018-11-09 15:35:31 +01:00
36e6a41f6f Object Mode: Grid: Make antialiasing more grounded
Went a bit anal on this but at least we will have a decent AA reference
for lines in the future.
2018-11-09 15:35:31 +01:00
9c1c2a40bf Merge branch 'master' into blender2.8 2018-11-09 15:22:21 +01:00
e6573138f7 Cycles: Cleanup, remove unused method declaration
Was never defined. If it's really needed, consider using `const string&`.
2018-11-09 15:21:19 +01:00
78a6689aea Merge branch 'master' into blender2.8 2018-11-09 14:34:33 +01:00
Dalai Felinto
6c10ec74d5 Fix crash when renaming metaballs
This handles both renaming via outliner and rna.

Metaballs as we all know have their geometry based on the metaballs that
share the same name with them.

Changing the name of a metaball without tagging its geometry to change
is asking for trouble.
2018-11-09 11:01:55 -02:00
Dalai Felinto
88d621a68f BKE_id_is_in_gobal_main > BKE_id_is_in_global_main 2018-11-09 10:59:31 -02:00
Dalai Felinto
e49485a15c Greasepencil: double promotion cleanup and related 2018-11-09 10:01:22 -02:00
Dalai Felinto
494ba42254 GreasePencil: division by zero when stroke has one point
Error "runtime error: division by zero" when opening:
"Sketch 1 demo by Brain Graft.blend"
2018-11-09 09:57:37 -02:00
ab77f5b5fe Improvements on CURVE_OT_select_similar: SIMCURHAND_DIRECTION
Consider rotation and scale when calculating direction in world space.

Reviewers: dfelinto
Maniphest Tasks: T56948

Differential Revision: https://developer.blender.org/D3911
2018-11-09 09:39:46 -02:00
9ee9a257c9 UI: Fix checking for sequences. 2018-11-09 12:39:26 +01:00
ddabb21d05 Cycles; Cleanup, line length
There are some more sanitization which would be cool to be done
in the neighbourhood of those functions, but that could also happen
later.
2018-11-09 12:31:46 +01:00
2bad10be96 Cycles: Cleanup, move Embree BVH logic to own file
There is no way we can keep generic entry point functions easy to
follow if we start adding actual logic in them.
2018-11-09 12:28:55 +01:00
2d98b198e9 Cycles: Cleanup, indentation in preprocessor 2018-11-09 12:12:11 +01:00
3e76cc494a Cycles: Cleanup, indentation 2018-11-09 12:10:48 +01:00
203de0bbf0 Cycles: Cleanup, space after (void)
It was used in like 95% of places.
2018-11-09 12:08:51 +01:00
7c227e4740 Py API Docs: Warnings for some properties that are slower to access than expected. 2018-11-09 12:07:10 +01:00
2330cadb0f Cycles: Cleanup, don't use strict C prototypes
Those are more like a legacy of language, which is not
needed in C++.
2018-11-09 12:04:41 +01:00
c86d4b1d80 Cycles: Cleanup, split array from vector
Those are similar but different types, no reason to keep
their definitions in a single file.
2018-11-09 11:54:24 +01:00
395f0fdd48 UI: Fix bug when no sequencer strips were selected on a new scene.
Reported by Tintwotin on DevTalk. Thanks!
2018-11-09 11:53:20 +01:00
b394e05118 Cycles: Cleanup, some documentation 2018-11-09 11:46:09 +01:00
a15e631537 Cycles: Cleanup, remove unneeded manual constructors specification 2018-11-09 11:44:33 +01:00
0e9be6fd7d Cycles: Cleanup, remove unneeded method from vector
Since we've defaulted to C++11, no need to override this
method manually anymore.
2018-11-09 11:42:12 +01:00
cb4b5e12ab Cycles: Cleanup, spacing after preprocessor
It is supposed to be two spaces before comment stating which if
else/endif statements corresponds to. Was mainly violated in the
header guards.
2018-11-09 11:34:54 +01:00
ab73935dbb Cleanup, indentation 2018-11-09 09:46:12 +01:00
f47d2163c6 Correct error in last commit 2018-11-09 17:48:19 +11:00
26e904ab5c Icons: rename gpencil 2018-11-09 17:41:18 +11:00
77b925c9f8 Icons: update to r62155
- Tweaked GP toolbar icons and added Line, Rectangle & Circle.
- Added the remaining toolbar icons for all our paint & sculpt modes.
- Made all the toolbar icons the same simple style.
2018-11-09 17:33:50 +11:00
b1df82fc88 Cleanup: de-duplicate poll function 2018-11-09 17:18:38 +11:00
80a7c57e5e Tool System: add grease pencil primitive tool 2018-11-09 17:12:07 +11:00
39663fd049 UI: Decrease the fade in/out time of regions with region overlap on. 2018-11-09 03:26:50 +01:00
f96e7154f6 UI: tweak object type active state
The state of the objects visibility should only impact
the 'active' display of the select icon, not it's self.
2018-11-09 13:18:50 +11:00
7346c4f513 Cleanup: use proportional edit template for keymap 2018-11-09 13:14:48 +11:00
e81c1d3d48 Cleanup: use tuple instead of dict
This just loops over pairs so no mapping is needed.
2018-11-09 13:14:48 +11:00
87186f49cc UI: Tweaks to Object Types Visibility popover.
Replace checkbox for visibility with eye icon instead.
Thanks a.monti and zebus3d for the help.

Closes T57714
Part of UI Paper Cuts T56950
2018-11-09 02:58:35 +01:00
8a41de0f8c Cleanup: de-duplicate keymap items 2018-11-09 12:46:00 +11:00
e2a401f344 UI: Name added LightProbe objects after their type.
Just like Light objects do.

Thanks ThinkingPolygons from DevTalk forums for suggesting this!

See T56950
2018-11-09 02:18:05 +01:00
2c2c996a1b readme: remove 'game creation'. 2018-11-09 11:51:40 +11:00
dd96c8dda7 Merge branch 'master' into blender2.8 2018-11-09 11:51:14 +11:00
33039a4602 readme: use name 'macOS' 2018-11-09 11:49:49 +11:00
04cdf8d040 Keymap: skip loading the keymap preset in background mode
Caused a crash on exit and isn't needed.
2018-11-09 11:43:45 +11:00
3064da1200 Keymap: move builtin keymaps from C to Python
This should be purely an implementation change,
for end users there should be no functional difference.

The entire key configuration is in one file with ~5000 lines of code.
Mostly avoiding code duplication and preserve comments and utility
functions from the C code.
It's a bit long but for searching and editing it's also convenient to
have it all in one file.

Notes:

- Actual keymap is shared by blender / blender_legacy
  and stored in `keymap_data/blender_default.py`

  This only generates JSON-like data to be passed into
  `keyconfig_import_from_data`, allowing other presets to load and
  manipulate the default keymap.

- Each preset defines 'keyconfig_data'
  which can be shared between presets.

- Some of the utility functions for generating keymap items still
  need to be ported over to Python.

- Some keymap items can be made into loops (marked as TODO).

See: D3907
2018-11-09 11:33:06 +11:00
b43ce7908f Eevee: Fix broken Vector Transform node
The Camera to Object space matrix was not implemented in gpu_codegen.
2018-11-08 21:50:17 +01:00
4f11441913 Eevee: Add partial support for the Light Path Node
This makes it possible to tweak indirect lighting in the shader.

Only a subset of the outputs is supported and the ray depth has not exactly
the same meaning:

Is Camera : Supported.
Is Shadow : Supported.
Is Diffuse : Supported.
Is Glossy : Supported.
Is Singular : Not supported. Same as Is Glossy.
Is Reflection : Not supported. Same as Is Glossy.
Is Transmission : Not supported. Same as Is Glossy.
Ray Length : Not supported. Defaults to 1.0.
Ray Depth : Indicate the current bounce when baking the light cache.
Diffuse Depth : Same as Ray Depth but only when baking diffuse light.
Glossy Depth : Same as Ray Depth but only when baking specular light.
Transparent Depth : Not supported. Defaults to 0.
Transmission Depth : Not supported. Same as Glossy Depth.

Caveat: Is Glossy does not work with Screen Space Reflections but does work
with reflection planes (when used with SSR or not).
We have to render the world twice for that to work.
2018-11-08 19:20:40 +01:00
9d12a5aa9e Eevee: Fix geometry node for environments and support true_normal
Also minor cleanup for the Bump node.
2018-11-08 19:20:40 +01:00
1250ace641 Eevee: Fix refraction materials
Fix refraction depth not working without ScreenSpace Refraction.
Fix ScreenSpace Refraction masking reflections.
2018-11-08 19:20:40 +01:00
de8c2336ad Fix wrong selectability icon in viewport menu. 2018-11-08 19:06:42 +01:00
626ca4a2d5 Fix X-Ray option showing in LookDev mode, where it does nothing. 2018-11-08 19:00:53 +01:00
f17a5a96c2 Fix depsgraph console warning after recent changes. 2018-11-08 18:53:30 +01:00
c39f34def9 Fix Cycles viewport render info overlapping other text.
Now it shows more compact info below the view/object name. Render time and
memory usage is left out, as in most cases this is not so important. These
could be added back optionally if needed.
2018-11-08 18:31:33 +01:00
c81ddc97ef UI: Tweaks to Add menu in Video Sequencer Editor.
Mainly organization and bringing it closer to the Add menu in the 3D Viewport.

* Icons for most top-level items when available.
* New Transitions menu for Cross, Gamma Cross and Wipe.
* Move Color and Text to top level. These options are used way too often to be in a submenu.
Having a menu with 2 entries defeats the purpose, so I've removed it for now. I checked if
add-ons used it and apparently not. It can be brought back if needed.
* Avoid empty dropdown in Scene/Mask/Clip. Solution is ugly for now and should be improved in C.
* Some effects couldn't be used without 1 or 2 strips selected, now the menu entry is grayed out accordingly.
* Some more icons for other menus.
2018-11-08 16:01:26 +01:00
acb8334e70 UI: Some icons for Image menu in Image editor. 2018-11-08 16:01:26 +01:00
11a53ec28a Fix T57689: world nodes / texture not updating for Eevee.
Only do GPU material updates through depsgraph evaluation now. This was
already happening for material, just missing for the world.
2018-11-08 16:01:02 +01:00
d4370e2e00 Cleanup, compiler warnings in release mode 2018-11-08 15:49:25 +01:00
146b39a45d Merge branch 'master' into blender2.8 2018-11-08 15:15:29 +01:00
3cf724209f Cleanup, spelling 2018-11-08 15:00:19 +01:00
116be3deff Fix build on 32bit after Embree changes. 2018-11-08 14:58:01 +01:00
70355052e2 Fix: show options of image empty only for image empties 2018-11-08 14:30:27 +01:00
fe0fdf1771 RNA: tag animation update when changing Action Extrapolation/Blend/etc.
These fields affect the final result when using NLA.
2018-11-08 14:01:45 +03:00
0bb33294c1 RNA API: ViewLayers: add name to LayerCollection struct.
Just use Collection name (same as for material slots e.g.).

That way, one can access those by their names as well, in
LayerCollection.children ... collection property (yeah, collection,
collection, and moar collection).
2018-11-08 11:36:33 +01:00
aba4a56703 UI: fix glitch showing the redo panel 2018-11-08 15:44:59 +11:00
406f36f574 build: add proper embree support to platform_win32.cmake
made the use of findpackage optional and add support for debug builds
2018-11-07 19:34:49 -07:00
d3b11de7d6 build_environment: add debug libs for embree on windows 2018-11-07 19:33:07 -07:00
cd9f3019f4 build_deps_windows: add option to to only create project files. 2018-11-07 19:18:53 -07:00
47c77cd89c Cycles: Write Cryptomatte metadata according to the specification
Reviewers: brecht, sergey, swerner

Subscribers: creamsurfer, Tanguy, Noss, SteffenD

Differential Revision: https://developer.blender.org/D3862
2018-11-08 01:07:54 +01:00
5987c4bc57 Render API: Support arbitrary length for custom image metadata fields 2018-11-08 01:07:54 +01:00
a421cfa8d3 UI: hide bundled addons which haven't been updated
All are displayed when '--debug' is set, see: T56351
2018-11-08 10:10:08 +11:00
bcf1997ac2 Merge branch 'master' into blender2.8 2018-11-08 09:56:22 +11:00
9ccb70f202 Cleanup: minor simplification to user-addon check 2018-11-08 09:54:13 +11:00
f12d2adc87 RNA: Object.select_set use boolean, only select
- Was setting active state, making it necessary to backup/restore
  active object in cases where this isn't needed.
  Existing scripts are explicitly setting the active object when needed.

- Use a boolean select arg (toggle selection wasn't used anywhere).

- Add an optional view layer argument since scripts should be able to
  operate outside the user context.
2018-11-08 08:54:55 +11:00
c121bc6219 Cleanup: use explicit 'select_and_set_active' API name
Selection should be separated from active state and handled by higher
level code (operators/editors) instead of happening automatically.
2018-11-08 08:31:11 +11:00
bdd44564c9 GPU: Cleanups: Remove GPUMatType, Vectorize / MADD some operations 2018-11-07 22:16:13 +01:00
4f709152f4 Eevee: Add support for interpolation options for Environment Texture nodes 2018-11-07 22:16:13 +01:00
e0edac4cb2 Eevee: Support for extension type in the Node Image Texture
This does not work with the box projection mode. Implementing for box
projection mode would be difficult, slow, and produce a lot of code
duplication. Also i'm not sure this is worth it, as it's not a common use
case.
2018-11-07 22:16:13 +01:00
0b837a4986 Cleanup: style, use const args 2018-11-08 08:02:09 +11:00
64ec05b64d Cleanup: remove some useless BKE_library and BKE_main includes.
Makes it simpler to make some changes...

Also fix order of some includes (use alphabetical please).
2018-11-07 20:58:54 +01:00
1ff8be24ef Cleanup/Refactor: move Main stuff into BKE's new main.c file (and header).
We already had a BKE_main.h header, no reason not to put there
Main-specific functions, BKE_library has already more than enough to
handle with IDs and library management!
2018-11-07 20:58:53 +01:00
4b2110fc86 Cleanup: Remove 'BKE_library.h' include from 'BKE_main.h'
That kind of implicit includes should really only be done when totally,
absolutely necessary, and ideally only with rather simple 'second-level'
headers.

Otherwise not being explicit with includes always end up biting in
unexpected ways...
2018-11-07 20:58:53 +01:00
4779165ca1 Fix dpesgraph wrongly refcounting NLA strip actions when duplicating IDs.
NLA strips are users of their action, so we need to pass along ID
management flags.

This commit also cleans up a bit things by passing along ID_CREATE/COPY
flags instead of dummy booleans...
2018-11-07 20:58:53 +01:00
Stefan Werner
a0d8e52b54 Cycles: Fixed BVH UI options enabling/disabling when Embree is enabled. 2018-11-07 20:50:45 +01:00
Stefan Werner
85a9744905 Merge branch 'master' into blender2.8 2018-11-07 20:44:40 +01:00
Stefan Werner
ee6cc1d558 install_deps: Added optional build of Embree to install_deps.sh, turned off by default. 2018-11-07 20:36:03 +01:00
6be69a6b75 NLA: use animsys_write_orig_anim_rna when applying NLA stack results.
Without this keyframing on top of an NLA stack is quite weirdly broken.
2018-11-07 19:59:15 +03:00
921cad194d Depsgraph: add proper handling of actions contained in NLA strips. 2018-11-07 18:17:30 +03:00
b82eac8986 Py API Docs: improve 2D image example 2018-11-07 16:14:11 +01:00
c018cea680 GP: Show all objects sharing data in edit modes
Only need hide particle objects
2018-11-07 16:13:49 +01:00
9a38526be0 Py API Docs: show gpu_extras module 2018-11-07 15:45:28 +01:00
Stefan Werner
d3320c5488 Cycles: Rearranged macros in kernel_types.h to fix Embree build. 2018-11-07 15:20:24 +01:00
7b271d5fc1 Depsgraph: Ensure dependency cycle does not clear runtime memory
If there was a dependency cycle involved, it was possible that pchan
array will be freed before all bones are evaluated. Now clear is
done in a dedicated node, which is never a part of dependency cycle.
2018-11-07 15:06:39 +01:00
4610ca599a Merge branch 'master' into blender2.8 2018-11-07 14:54:32 +01:00
36b9ee1277 Fix T57390: properties editor crash creating new scene in some cases. 2018-11-07 14:54:16 +01:00
33201a48b0 Fix build with OSL, remove unneeded file after Embree changes. 2018-11-07 14:38:07 +01:00
Stefan Werner
9d0eac6ba5 Merge branch 'master' into blender2.8 2018-11-07 14:30:09 +01:00
0c8aa85069 Physics baking: tag interface locked during backing
This is a variation of older hach which was setting is_rendering
to truth to tell window manager to not do dependency graph update.

In the nowadays reality window manager is supposed to do dependency
graph update during rendering, that was the whole purpose of CoW
project. This works fine for rendering, since render engines has
their own dependency graphs.

Physics, on the other hand, is using same dependency graph as used
for the viewport, and what's worse: it modifies objects from it.
For example, in a single threaded evaluation ASAN instantly catches
case when cached BVH constructed by smoke is referencing looptri
layer which is freed by viewport's update.

Now we are locking interface, allowing only a subset of navigation
operators to run. This seems to be safest way of dealing with the
problem. There are following variations which we can consider
doing:

- Allow viewport navigation, which will require making it so draw
  manager does not write to the objects.

  A bit dangerous, since smoke simulation might in theory modify
  data which is also used by a draw manager.

- Make physics simulation to have own dedicated dependency graph,
  solving all threading conflicts all together.

This fixes crash when baking smoke. Steps to reproduce:

- Call "Quick Smoke"
- In smoke panel, click "Bake".
2018-11-07 14:04:47 +01:00
ee201d8a50 Cleanup, more meaningful and up to date comments 2018-11-07 14:04:47 +01:00
48488b7106 Skip dependency graph update when interface is locked
This is a variation of legacy dependency graph update check based on
G.is_rendering. Now it is ensured, that locked interface does not
tempter around with the dependency graph.
2018-11-07 14:04:47 +01:00
1cadd811ce Cleanup, indentation 2018-11-07 14:04:47 +01:00
Stefan Werner
d3dd3739f6 Cycles: Fixed a warning. 2018-11-07 14:04:22 +01:00
Stefan Werner
e96986fa47 Cycles: Fixed OpenCL render after the Embree checkin. 2018-11-07 13:53:56 +01:00
e31625a697 Fix 'Set and Use 3D Cursor' normal editing command.
Was missing a return of OPERATOR_RUNNING_MODAL for that subcommand.
2018-11-07 07:43:19 -05:00
13944c3dda Workbench: Scale shadowing based on density
This makes previewing thick smoke a bit more plausible with better shadows.

The shadowing is clamped so that nothing is completely black. That said the
lower bound is pretty low.

This is not an option but could become one if users do not like it in
all situations.
2018-11-07 13:25:28 +01:00
84ad9b102e Workbench: Add cubic filtering for smoke simulation
The option is per domain and only affects the solid / xray / wireframe view.

Eevee is not yet supported.
2018-11-07 13:25:28 +01:00
faecd16d31 Eevee: Fix volumetric broken after recent change 2018-11-07 13:25:28 +01:00
Stefan Werner
2c5531c0a5 Cycles: Added Embree as BVH option for CPU renders.
Note that this is turned off by default and must be enabled at build time with the CMake WITH_CYCLES_EMBREE flag.
Embree must be built as a static library with ray masking turned on, the `make deps` scripts have been updated accordingly.
There, Embree is off by default too and must be enabled with the WITH_EMBREE flag.

Using Embree allows for much faster rendering of deformation motion blur while reducing the memory footprint.

TODO: GPU implementation, deduplication of data, leveraging more of Embrees features (e.g. tessellation cache).

Differential Revision: https://developer.blender.org/D3682
2018-11-07 12:58:12 +01:00
f1fc5ba537 Fix installing Blender due to missing icons. 2018-11-07 11:31:07 +01:00
5dfe7858b1 CMake: missed removing from file list 2018-11-07 21:14:40 +11:00
469005f1f6 Dopesheet: correctly use floating point threshold in ActKeyColumn tree.
After some thinking, since the tree itself does always use floating
point numbers, it is better to use the threshold - but correctly.
2018-11-07 10:41:38 +03:00
03e5ba3183 Fix hidden action-zone interaction 2018-11-07 18:20:15 +11:00
484faaea4f Fix for hidden regions becoming active 2018-11-07 18:20:07 +11:00
767a395727 Fix redraws from non-existing scrollbars
Cursor motion was often causing redraws.

Distance to scrollbars that don't exist in hidden regions
caused redraws (for alpha fading).

Check if scrollbars are used before calculating fade.
2018-11-07 18:19:46 +11:00
0bd61227c2 Tool System: display tooltip generation error
While this shouldn't ever happen there have been reports
of tooltip creation failure - keep this until the issue is resolved.
2018-11-07 14:40:44 +11:00
4e11b6f037 Merge branch 'master' into blender2.8 2018-11-07 13:40:39 +11:00
8a014e780e Cleanup: use STRPREFIX for mount point checks
From D3846 by @kostex
2018-11-07 13:37:42 +11:00
5f8d369495 Multi-Objects: MBALL_OT_select_similar
Compared to previous implementation, the following has been changed:
* Threshold: is now an absolute value. This allows a comparison with e.g. radii
  that are much larger than selected radius. This is also consistent with
  `CURVE_OT_select_similar`

* Radius in world space is the average of the radius scaled in x, y and z
  directions
* Since MetaBalls are symmetrical, rotation is only considered from 0 to π/2.
  So for example rotations of 90° and -90° are considered equal.
  This is also consistent with the way `CURVE_OT_select_similar` works.

Fix/changes from committer (Dalai Felinto):
* Drawing not updating after changes. (see original patch for details).

Reviewers: dfelinto
Differential Revision: https://developer.blender.org/D3895
2018-11-07 00:15:39 -02:00
ad3a2415fc Icons: add ops.paint.weight_sample 2018-11-07 12:57:24 +11:00
b9e919b003 Icons: remove unused vertex paint icons
Also update names to match enum.
2018-11-07 12:57:24 +11:00
188857e0f2 Cleanup: style 2018-11-07 12:57:24 +11:00
Dalai Felinto
0a893c0901 Multi-Objects: MBALL_OT_select_all
Based on D3893 by Habib Gahbiche.
2018-11-06 23:32:49 -02:00
f6bec570c5 Merge branch 'master' into blender2.8 2018-11-07 12:28:26 +11:00
dca3d3ef0e Cleanup: use BLI_compiler_compat.h for BLI_INLINE 2018-11-07 12:17:58 +11:00
6bda925aa1 Cleanup: remove GPENCIL_OT_sculpt_select
This can be done via WM_OT_context_set_enum
2018-11-07 12:04:03 +11:00
101fd08348 Merge branch 'master' into blender2.8 2018-11-07 11:59:41 +11:00
4e9911663a Multi-Objects: CURVE_OT_select_similar
Implemented the following methods:
* SIMCURHAND_TYPE
* SIMCURHAND_RADIUS
* SIMCURHAND_WEIGHT
* SIMCURHAND_DIRECTION

Limits:
* DIRECTION does not support surfaces, because `BKE_nurb_bpoint_calc_normal`
  does not work with Nurbs of type `CU_CARDINAL`. This also didn't work prior
  to this patch, so we wait until surfaces are properly supported in EditMode.

* Also DIRECTION should take scaling into consideration. We need our own
  versions of BKE_nurb_bpoint_calc_normal/bezt.

* Threshold default is too large. Not sure if it's better to change the default
  or scale the threshold in code.

Differential Revision: https://developer.blender.org/D3846

Changes from committer (Dalai Felinto):
 * Moved nurb_bpoint_direction_worldspace_get/bezt to functions.
 * Comments hinting at the mode (direction) that require scaling to be
   taken into account - to be addressed by patch creator in a future
   patch.
2018-11-06 22:56:33 -02:00
59e70d5f8d Cleanup: renmae ePaintTexture(Projective) -> 3D
Matches ePaintTexture2D, less verbose.
2018-11-07 11:52:14 +11:00
c19dafd2a6 Paint: paint.brush_select now supports gpencil
Replace grease pencil specific brush select operator.
2018-11-07 11:42:30 +11:00
895295a9f0 Paint: update shortcut detection for new logic 2018-11-07 10:54:56 +11:00
87a6aab251 UI: Fix hard to see unselected channel name in Graph Editor.
And unify colors with the Dope Sheet.
2018-11-07 00:43:39 +01:00
451ca8453b GPU: Make node texture "Blend" parameter interactive.
This parameter is only used for Box projection type.
2018-11-07 00:19:14 +01:00
b23c68a937 Workbench: Improve volume render by removing noise using temporal AA 2018-11-07 00:19:14 +01:00
8af53dbeab Workbench: Fix volumetric blending leading to corrupted render results
Use simpler premultiplied blending.
2018-11-07 00:19:14 +01:00
4c8d88b485 Workbench: Fix non transparent background in viewport render 2018-11-07 00:19:14 +01:00
1fe561e662 Eevee: Wireframe: Increase precision a bit
Take the full derivative and compute its length instead of using fwidth.
2018-11-07 00:19:14 +01:00
c3a0af736a Eevee: Make Normal node interactive
Before it was triggering shader recompilation. Include small cleanup/opti.
2018-11-07 00:19:14 +01:00
57b4e122fc GPU: Fix wrong socket value struct
This was causing bad behavior of the node Normal.
2018-11-07 00:19:14 +01:00
d6908471c0 Eevee: Fix non normalized Normals in BSDFs and Layer Weight
Although the normal was normalized when evaluating the lighting, the normal
is often used for other purpose. In this case using the non normalized
normal maybe the source of errors.
2018-11-07 00:19:14 +01:00
c6c3d2e0f0 GPU: Cleanup: Vectorize operations and use MADD 2018-11-07 00:19:14 +01:00
fac2cfdfa7 Eevee: Improve Hashed Alpha transparency by reducing noise size
This only affect renders and static viewport accumulation.
It reduces helps reduce noise when lots of half transparent surfaces
overlaps.
2018-11-07 00:19:14 +01:00
8a204ccdb4 Eevee: Support monochromatic Transparent BSDF correctly
This fits Cycles better even if it is only for grey scale values. This only
work if the blend mode is Alpha Blend or Alpha Hashed.
2018-11-07 00:19:14 +01:00
bc1c263a8a Cleanup: naming (inconsistent paint_mode term) 2018-11-07 09:43:07 +11:00
199017ac14 feature: Collada: Added initial support for texture import 2018-11-06 23:24:42 +01:00
fb932bb52a Cleanup: use BKE_brush_tool_get/set macros
Also add API call WM_toolsystem_ref_sync_from_context
(was in rna_workspace_api.c)
2018-11-07 08:43:56 +11:00
150864dfb9 Paint: bring back brush switching
Was temporarily replace with code that used the tool-system,
bring back logic which cycles and toggles brushes.

Tool slots are used for the initial brush,
after that toggle or cycle is used.
2018-11-07 08:43:56 +11:00
99c1075e3b Paint: fix for creating duplicate brushes
Setting the tool added a brush if none was found
but wasn't checking for existing brushes.
2018-11-07 08:43:56 +11:00
57aea0ce19 Paint: correct brush defaults 2018-11-07 08:43:56 +11:00
87c1893f8d Cleanup: style 2018-11-07 08:43:56 +11:00
fbce8f27c8 UI: Move pin icon to the right in the context breadcrumbs.
Leaves more room for the actual breadcrumbs path, and it's less intrusive.

Thanks Luciano for the suggestion!
2018-11-06 22:43:12 +01:00
a55ef18309 UI: Use icons for some operators.
* Area and Workspace duplicate.
* Toggle Area Fullscreen
* Operator Search
* Workspace reorder to front/back (arrows help to know which direction means front/back)
2018-11-06 22:05:05 +01:00
2b1843c491 Fix broken shortcuts in F3 'operator search' menu.
From own changes in that area... Now we also enforce handling shortcuts
in case relevant drawflag of searchbutton is set. Should allow to cover
all cases, hopefully.
2018-11-06 20:56:38 +01:00
5c18393c8e Fix T57656: Keyframes cannot be selected in Grease Pencil Dopesheet.
Partial revert of rBf250f9256e065: GP and masks use integer
frames, so float code isn't working or even needed.
2018-11-06 22:36:10 +03:00
ad248333a6 Merge branch 'master' into blender2.8 2018-11-06 20:04:06 +01:00
d323c0ad9c UI: change Cycles render panels organization.
Move geometry panels to top level, move device/OSL back to top, and
various other changes.
2018-11-06 20:04:04 +01:00
Troy Sobotka
81e2515a04 Fix T56055: color discrepancy between viewport and render for Filmic transforms. 2018-11-06 19:35:50 +01:00
f600b4bc67 Shrinkwrap: new mode that projects along the target normal.
The Nearest Surface Point shrink method, while fast, is neither
smooth nor continuous: as the source point moves, the projected
point can both stop and jump. This causes distortions in the
deformation of the shrinkwrap modifier, and the motion of an
animated object with a shrinkwrap constraint.

This patch implements a new mode, which, instead of using the simple
nearest point search, iteratively solves an equation for each triangle
to find a point which has its interpolated normal point to or from the
original vertex. Non-manifold boundary edges are treated as infinitely
thin cylinders that cast normals in all perpendicular directions.

Since this is useful for the constraint, and having multiple
objects with constraints targeting the same guide mesh is a quite
reasonable use case, rather than calculating the mesh boundary edge
data over and over again, it is precomputed and cached in the mesh.

Reviewers: mont29

Differential Revision: https://developer.blender.org/D3836
2018-11-06 21:20:17 +03:00
0709fac41e BKE_mesh: add a utility to get edge indices from looptri.
Not all three sides of a tesselated mesh triangle are guaranteed
to be original mesh edges, so a somewhat complicated check is
required to detect which ones are real. It seems that until now
there was no utility function for that, only some example code.
2018-11-06 21:20:17 +03:00
84fa806491 BLI_kdopbvh: add an option to use a priority queue in find_nearest.
Simple find_nearest relies on a heuristic for efficient culling of
the BVH tree, which involves a fast callback that always updates the
result, and the caller reusing the result of the previous find_nearest
to prime the process for the next vertex.

If the callback is slow and/or applies significant restrictions on
what kind of nodes can qualify for the result, the heuristic can't
work. Thus for such tasks it is necessary to order and prune nodes
before the callback at BVH tree level using a priority queue.

Since, according to code history, for simple find_nearest the
heuristic approach is faster, this mode has to be an option.
2018-11-06 21:20:16 +03:00
39b1e66afd Defaults: disable AV Sync by default again, it breaks physics caching.
This reverts back to the 2.79 situation. The better solution would be to make
physics caching somehow simulate the skipped frames. But for now the more
important thing is to have working physics.

Ref T54943, T56352.
2018-11-06 17:52:27 +01:00
b04c856122 UI: some reordering of Cycles panels. 2018-11-06 17:51:58 +01:00
7b38df41ae Fix/cleanup RNA viewlayer API.
RNA's ViewLayer would present 'first level' of layer collection as a
list (collection property), when it is actually now only a single item,
same as the scene's master collection.

Note: did not try to update view_layer python tests, those are already
fully broken for quiet some time I guess (they still assume
view_layer.collections to be mutable e.g.)...
2018-11-06 17:20:49 +01:00
fd31a63a5c Merge branch 'blender2.8' of git.blender.org:blender into collada2.8 2018-11-06 16:41:51 +01:00
6e5f271a00 added initial support for material import (wip) 2018-11-06 16:41:21 +01:00
aa9912ec04 Proper fix for new 'SimpleHeap' gtests...
This reverts reverting commit rB55324b8a2e6799300, and do proper 'cleanup' (sigh)
in gtest as well.

Sorry for the noise, did not understood what had happened here
immediately. :/
2018-11-06 16:25:00 +01:00
55324b8a2e Revert rBfee6ab18e7e9 in BLI_heap_test.cc
Most certainly commite by mistake, FastHeap is not in BLI yet!
2018-11-06 16:06:53 +01:00
a145c7dc62 Cleanup: No need to save/restor frame buffer twice 2018-11-06 15:46:07 +01:00
50b43ff6d4 GPU: frame buffer stack
Reviewers: fclem

Differential Revision: https://developer.blender.org/D3903
2018-11-06 15:24:13 +01:00
ddc64b9dd4 UI: Tooltip for context properties too verbose.
"Type of active data to display and edit" is a bit too descriptive and takes
away from reading which context we're actually viewing. Also minor tweaks to
context description.
2018-11-06 14:32:04 +01:00
9d32b9fb8a GP: Fix unreported error moving material slots 2018-11-06 13:08:31 +01:00
5d6ec23e3e Multires: Refactor propagation to the higher levels
Now it is forumlated in terms of deltas, and consists of the
following steps:

- Original displacement at the reshape level are being backed up.
- New displacement is being written by the reshape routines.
- Delta of the displacement is calculated.
- Deltas are propagated to the higher levels, which also includes
  their interpolation/
- Original displacement is restored.
- New interpolated displacements are added to the original ones.

This is a base ground for the upcoming change related on using
Catmull-Clark smoothing for the deltas instead of linear
interpolation. Currently is no changes for artists, just preparing
for upcoming work.
2018-11-06 12:40:50 +01:00
c3149a712c Eevee: Make nodegroup fix recursive. 2018-11-06 12:05:21 +01:00
26d5a92606 Eevee: Fix broken shader if only using an Ambient Occlusion node
This quick fix does generate some invalid uniform. Will fix that later on.
2018-11-06 12:05:21 +01:00
2a0a7cd73d Eevee: Fix missing UBO bound if using a muted Shader to RGB node with SSS
This is a nasty bug. Because the node does not get properlly tagged as SSS
(sss_id is 0) but is still evaluated (so tagging the GPUMaterial as having
SSS). The sssProfile UBO is still declared and we need to bind something
to it.
2018-11-06 12:05:21 +01:00
15ad75ffef Eevee: Correctly handle Sharp glossy/refraction BSDF nodes
This is a quick workaround, but I don't see the point of making the
lighting functions more complex than it is now in order to optimize this
rather not so common case.
2018-11-06 12:05:21 +01:00
5ccd60e0e7 GP: Fix Time Offset for frames before range 2018-11-06 11:10:14 +01:00
0f1390c99e GP: Rename variable 2018-11-06 11:10:14 +01:00
32dca36afb Cleanup: Use annotation for the new class 2018-11-06 09:57:03 +01:00
798cdaeeb6 Implement an Armature constraint that mimics the modifier.
The main use one can imagine for this is adding tweak controls to
parts of a model that are already deformed by multiple other major
bones. It is natural to expect such locations to deform as if the
tweaks aren't there by default; however currently there is no easy
way to make a bone follow multiple other bones.

This adds a new constraint that implements the math behind the Armature
modifier, with support for explicit weights, bone envelopes, and dual
quaternion blending. It can also access bones from multiple armatures
at the same time (mainly because it's easier to code it that way.)

This also fixes dquat_to_mat4, which wasn't used anywhere before.

Differential Revision: https://developer.blender.org/D3664
2018-11-06 10:56:08 +03:00
a817613be5 Cleanup: remove unused brushes 2018-11-06 18:21:52 +11:00
80109c976c Brush: split out vertex paint tool & blend mode
- Vertex & weight paint now use the 'blend' setting.
- Weight paint now has it's own tool setting,
  since weight paint doesn't deal with color - we'll likely
  support different tools eventually.
2018-11-06 18:06:33 +11:00
900c562b71 Cleanup: rename fast-heap -> heap-simple
In general prefer API names don't start with adjectives
since it causes grouping of unrelated API's for completion.
2018-11-06 13:06:49 +11:00
d805a4a5ef Cleanup: move fast heap into own source & header 2018-11-06 12:52:34 +11:00
a90bcdf93d Tool System: use tool type enum to access brushes
Previously the brush names were used which had the limit that:

- Brush names that were deleted wouldn't show up in the toolbar.
- Naming collisions between user defined brushes and existing tools
  broke tool selection.

Now brushes are created as needed when tools are selected.

Note, vertex/weight paint combine tool and blend modes,
this should be split out into a separate enum.
2018-11-06 12:39:51 +11:00
29dfe9a614 Cleanup: style 2018-11-06 12:39:51 +11:00
a22167b9a2 Fix/Updated Object API example.
Was still 2.7x code... ;)
2018-11-05 20:42:00 +01:00
5ae853d20a Fix (unreported) potential race condition in view_layer_bases_hash_create().
When you check for undone work before acquiring a lock that ensures you
are the only one actually doing the work, you have to redo the check
*after* acquiring said lock.

Otherwise, there is room for nasty random race condition issues...
2018-11-05 20:29:36 +01:00
46060d54bf GP: Limit internally Time offset to something logic
If the offset is greater than frame range, the offset could gets some unlogic values, so now the value is normalized in the range.
2018-11-05 19:52:51 +01:00
a8e9959e07 API Docs: gpu api introduction + examples 2018-11-05 19:28:28 +01:00
abbe4df301 GP: More tweaks to Time Offset 2018-11-05 19:10:52 +01:00
fee6ab18e7 BLI_heap: implement a limited but faster version of heap.
If the user only needs insertion and removal from top, there is
no need to allocate and manage separate HeapNode objects: the
data can be stored directly in the main tree array.

This measured a 24% FPS increase on a ~50% heap-heavy workload.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3898
2018-11-05 20:49:17 +03:00
a120b120ce GP: Fix Time Offset bug when use range
The frames greater than frame range were wrongly calculated.
2018-11-05 18:35:34 +01:00
b4dfe00fd6 Wireframe: Extend Xray slider range
This makes it possible to bypass the depth dithering effect at the cost
of less accurate depth perception.
2018-11-05 16:31:12 +01:00
946f9d8fb3 Eevee: Fix "Show Irradiance/cubemap" icons 2018-11-05 16:31:12 +01:00
2ae88c4d78 UI: Make the grid alpha themable
Now that the 3d grid is infinite, antialiased, not occluded, and overlaid
on top of rendered view, being able to decrease its opacity to reduce
visual strain is a must.
2018-11-05 16:31:12 +01:00
205d1876ff DRW: Fix crash with deferred compilation 2018-11-05 16:31:12 +01:00
050e91340d Edit Mesh: Fix wire opacity when not rotating the view in Xray mode 2018-11-05 16:31:11 +01:00
3927fbf98e LightProbe: Fix description of influence type 2018-11-05 16:31:11 +01:00
83b3b540de GP: Change Lock icon and Popover title 2018-11-05 16:29:07 +01:00
72a23e6564 UI VSE: Use icon for Refresh Sequencer button in the header. 2018-11-05 15:34:23 +01:00
3e5e4a05f1 UI VSE: Rename submode Image Preview to Preview.
It's confusing that it says Image when it's also video or final result.
And also since the third option is called Sequencer/Preview, having the
others called Sequencer, and Preview, makes sense.
2018-11-05 15:34:23 +01:00
721a484ccb BLI_kdopbvh: reduce branching in calc_nearest_point_squared.
This lets the compiler use min/max instructions for 4.5% FPS
improvement in Shrinkwrap to Nearest Surface Point.
2018-11-05 17:16:06 +03:00
a70589e439 BLI_heap: optimize heap_swap, heap_down and heap_up.
The index field of nodes is supposed to be its actual index, so
there is no need to read it in swap. On a 64-bit processor i and
j are already in registers, so this removes two memory reads.

In addition, cache the tree pointer, use branch hints, and
put the most frequently accessed 'value' field at 0 offset.

Produced a 20% FPS improvement for a 50% heap-heavy workload.
2018-11-05 17:16:06 +03:00
2d3493d50c UI VSE: Rename OpenGL Render to Sequence Render.
Follows change in the 3D Viewport.
2018-11-05 15:12:27 +01:00
69fcffb78f UI: Move Sync Markers from View to Marker menu.
In Dopesheet and Sequencer. Suggested by tintwotin in DevTalk, thanks!
2018-11-05 15:11:56 +01:00
7c7c8f3492 GP: Add new layer above active layer
Before, the layer was added to tail always, but this was weird for 2D animators.
2018-11-05 09:59:38 +01:00
efd133a9a6 Paint: setting the brush now updates tool slots
Adding a brush wasn't refreshing the tool-system (left blank topbar).
2018-11-05 16:20:15 +11:00
1b928c2d9a Paint: add tool offset & mode to runtime data
It was getting too impractical to call BKE_paint_brush_tool_info
which needed to lookup the scene pointers.

Now each store tool offset and brush mode in 'Paint.runtime'
2018-11-05 16:18:43 +11:00
56917bcf73 Missing from last commit 2018-11-05 15:47:22 +11:00
8b31f6fb21 Paint: add BKE_paint_ensure to initialize toolsettings
Each mode had its own logic for initializing paint structs,
move to a single function.

Also remove "BKE_brush_get_gpencil_paint", entering grease pencil
mode is responsible for ensuring the data is created.
2018-11-05 15:31:25 +11:00
8fcc04edce Cleanup: avoid using instance to get enum 2018-11-05 13:54:43 +11:00
25a9816c30 Cleanup: use bool 2018-11-05 13:22:49 +11:00
9361c1c83d UI: Add back line to curve map
D3894 by @charlie with edits
2018-11-05 13:04:43 +11:00
7c5d014666 UI: rename Cursor 'Depth' -> 'Surface Project' 2018-11-05 12:08:51 +11:00
642fe9e0f2 PyAPI: use keywords for ToolDef.from_fn.with_args
Enforces explicit names,
allows for keywords to be forwarded to the dictionary.
2018-11-05 11:58:23 +11:00
4cdf4d1eba Cleanup: correct last commit, also use font_id var 2018-11-05 11:06:09 +11:00
c192ce6717 Gizmo: use fonts for drawing 3D axis characters 2018-11-05 10:48:18 +11:00
1e56c8c47d Merge branch 'master' into blender2.8 2018-11-05 00:30:33 +01:00
4e37796976 Fix various Freestyle rendering bugs. 2018-11-05 00:22:33 +01:00
287c023b85 Gizmo: tweak 3D view navigation axis sizes
This now matches original design more closely, see: T54723.
2018-11-05 08:31:31 +11:00
61c5890c2c Fix missing NULL check initializing paint tools 2018-11-05 07:15:47 +11:00
2f8a45e314 Tool System: support passing in args to ToolDef functions
Needed since class aren't yet defined
so we can't access their namespace.

This avoids intermediate draw functions.
2018-11-05 07:12:57 +11:00
5195f03ca1 Cleanup: style, use ARRAY_SET_ITEMS macro 2018-11-05 07:12:53 +11:00
8d9d473eec GP: New API to move layers in layer list
This can be required  in som production scripts
2018-11-04 20:56:38 +01:00
b98f76cd90 Fix T57388: Blender Internal + Freestyle viewport render wrongly using FSAA. 2018-11-04 20:36:49 +01:00
ea8e45de29 Fix assert rendering hair tests on some systems. 2018-11-04 20:25:57 +01:00
db59f30f2b Fix assert rendering with denoising, after recent changes. 2018-11-04 20:15:33 +01:00
bbb348afc1 GP: Move init code to new version section 2018-11-04 19:52:42 +01:00
665efe401a Fix T57611: Crash on entering Grease Pencil Sculpt Mode
The problem was when some layers was locked in multiedit. The cache size was not checked and gets an segment fault.
2018-11-04 19:37:03 +01:00
807b460a11 GP: Time Offset verify range if loop is disabled 2018-11-04 13:27:41 +01:00
5cfcee8c39 GP: Reorganize Canvas Grid
Now the grid is always controlled by the topbar selector and not in the canvas panel. To have two places to define orientation was confuse.

The orientation by default (no lock) is always to view plane.
2018-11-04 13:00:37 +01:00
d3c815bd08 BLI_heap: add an API function to directly read the top node value.
It is very commonly needed in loop conditions to check if
the items in the heap are good enough to continue.
2018-11-04 13:29:17 +03:00
0d69a5aa34 Merge branch 'master' into blender2.8 2018-11-04 18:12:58 +11:00
76b9eaf7a8 Fix ghash masking out upper bits on 64bit systems
The code this was taken from assumes a 'size_t' result,
which isn't the case here.

In practice the bucket distribution wasn't bad,
even so this was a nop so best fix.
2018-11-04 16:48:36 +11:00
179358e6c4 UI: Don't nest sculpt scrape/flatten
These are different enough not to be grouped.
2018-11-04 10:33:51 +11:00
628a0209a4 Cleanup: missed last commit 2018-11-04 10:32:04 +11:00
2402c56a67 UI: move gpencil tool-draw code to topbar
The grease pencil UI was showing twice in tool properties space.
Move to top-bar because this UI is meant as quick convenience access
which is expanded on in the tool properties editor.
2018-11-04 10:29:40 +11:00
bc870f17a7 Cleanup: style, shadow warning 2018-11-04 10:10:00 +11:00
771b9c8010 GP: Update Canvas grid orientation when change option 2018-11-03 20:33:38 +01:00
0db31c03c6 GP: Fix Time Offset when range frame is 0 2018-11-03 20:27:30 +01:00
f2858fbb9a UI: Draw curve map with solid color
Differential Revision: https://developer.blender.org/D3891
2018-11-03 17:42:40 +00:00
d2b4eaa137 GP: New Time Offset custom frame range parameters
These parameters allow to define a frame range for the animation loop and make possible to loop a section while the scene is playing.
2018-11-03 17:11:38 +01:00
ec017861b6 GP: Fix update problems with Grid Canvas
The grid canvas was not updated when changed parameters
2018-11-03 16:18:54 +01:00
f267921774 UI: remove grease pencil icons
Grease pencil tool now uses an icon for each tool,
previously it mapped icons to tool icons which is now not needed
because for each tool a different brush can be selected which has it's
own icon.
2018-11-03 20:35:34 +11:00
e53cb83d07 UI: separate sculpt from smooth, flatten 2018-11-03 20:35:34 +11:00
c2a12eedd1 GP: Use stroke and fill switches while drawing 2018-11-03 10:01:28 +01:00
270a6a6689 GP: Change presets for new stroke and fill switches 2018-11-03 10:01:28 +01:00
97336343c4 UI: show brush selector in topbar 2018-11-03 19:47:20 +11:00
628908a710 GP: New main switches to hide stroke and fill material
New parameters to switch visibility of stroke and fill
2018-11-03 08:51:36 +01:00
c48ca87bce Correct error in last commit 2018-11-03 16:54:17 +11:00
888a0735ee Tool System: validate tool slots when setting modes
Needed for entering paint modes on new scenes.
2018-11-03 16:52:06 +11:00
13c3c9b22f Cleanup: move brush query into utility function 2018-11-03 15:55:45 +11:00
a18927463c Cleanup: style 2018-11-03 15:55:45 +11:00
4affea081a UI: Move Simplify panel from Scene to Render properties.
It mainly contains properties that affect the final render/viewport and it's handy
to see if it's enabled or not while going through the render settings.
2018-11-03 05:12:45 +01:00
9b2fff4ff8 UI: On markers alternate between filled/outline camera icon on selection.
Instead of between the Camera and Camera Data as they are completely different shapes that don't indicate selection.
2018-11-03 04:39:40 +01:00
3bfd2cdad6 UI: Align Panel drag widget with collapse triangle.
As pointed out by Harleya in DevTalk. Thanks!
2018-11-03 04:11:04 +01:00
689cf14447 Transform Snap: Refactoring to avoid duplicate code. 2018-11-02 23:55:02 -03:00
df0058061d UI: Soft drop shadow on 3D Viewport info text.
Soft shadow similar to the title of pie menus to increase readability.
For the full white background issue an extra box container might be needed.
2018-11-03 03:47:25 +01:00
2b6ae64257 UI: Blue color for selected row in Outliner.
Same hue as used in the rest of the Default theme. Darkened slightly the background and tweaked category icon colors for better contrast.
2018-11-03 03:43:14 +01:00
018d22fb7a UI: Sort panels in Properties.
* Viewport Display always last before Custom Properties.
* DoF panel second as it's changed more often than Camera sensor width.
* In scene, move Simplify higher up as it is changed more often than Gravity or Audio.
2018-11-03 03:25:51 +01:00
346b00f6d1 UI: Tooltip for 3D View and rename to 3D Viewport. 2018-11-03 02:26:31 +01:00
56a8781116 UI: Don't use abbreviations for view names. 2018-11-03 02:18:22 +01:00
a8c545e61e UI: Fix white shadow when resetting to defaults.
Resetting the theme to default would set the shadow brightness to 1.0f,
which was used as emboss when we used dark text on brighter backgrounds.
Now that we use white labels, bright shadows just makes all text fuzzy.
2018-11-03 02:03:42 +01:00
Dalai Felinto
046ec863ff Multi-Objects: MBALL_OT_duplicate_metaelems 2018-11-02 16:15:21 -03:00
Dalai Felinto
6bee49eca4 Multi-Objects: MBALL_OT_delete_metaelems 2018-11-02 16:15:21 -03:00
74737091c0 GP: Fix problem when alpha is too low
There are still some color when the alpha is set to 0
2018-11-02 19:28:36 +01:00
55a743fade GP: Add Draw Brush selector to topbar 2018-11-02 19:28:36 +01:00
982ca8c45a Add hide_buttons option to template_ID_preview
When use the template in the topbar for only select an ID is very annoying to have the buttons after the name and only adds noise to the selector.

This option hide the number of users, new and delete buttons to get a cleaner topbar selector.

By default the parameter is disabled in order to keep all existing code/UI running.
2018-11-02 19:28:36 +01:00
Dalai Felinto
c63d133f4d Small cleanup on curve separation error handling 2018-11-02 14:12:20 -03:00
Dalai Felinto
3335618489 Multi-Objects: CURVE_OT_make_segment
And another go at a more complete error handling.
I couldn't test all the error throwing cases but hopefully it is all
working as expected.
2018-11-02 14:12:20 -03:00
Dalai Felinto
b5a18c1aac Multi-Objects: CURVE_OT_reveal 2018-11-02 14:12:20 -03:00
Dalai Felinto
597d0ce93c Multi-Objects: CURVE_OT_hide 2018-11-02 14:12:20 -03:00
Dalai Felinto
3e55b3c6d0 Multi-Objects: CURVE_OT_switch_direction 2018-11-02 14:12:20 -03:00
Dalai Felinto
14344de261 Multi-Objects: CURVE_OT_tilt_clear 2018-11-02 14:12:20 -03:00
Dalai Felinto
3d4fd6ce1e Multi-Objects: CURVE_OT_handle_type_set 2018-11-02 14:12:20 -03:00
3f9a751d47 Fix T57586: crash linking node group through material properties editor. 2018-11-02 17:49:34 +01:00
aa41c17d32 UI: add option for permanently allowing execution of scripts to dialog.
Ref T57197
2018-11-02 17:34:50 +01:00
26c613c061 Fix missing separators after recent changes. 2018-11-02 17:28:20 +01:00
3e5483ffe1 Fix T57316: material preview icons not updating.
The editors update callback was getting the COW datablock, it should be the
original where the preview icons are stored.
2018-11-02 16:54:07 +01:00
Dalai Felinto
500ebf7348 Multi-Objects: CURVE_OT_normals_make_consistent 2018-11-02 12:37:56 -03:00
fddf608e79 GP: Reduce space between draw option buttons
Using new separator parameter, reduce space. The default value was too much.
2018-11-02 16:35:53 +01:00
f3ffb4e049 Add new factor parameter to layout.separator()
The new parameter allows to define the scale of the space.
2018-11-02 16:35:53 +01:00
d3ade45774 Armature: Fix stick bones not scaling with pixel size 2018-11-02 16:27:34 +01:00
Dalai Felinto
4135c7786e Multi-Objects: CURVE_OT_separate
This is also a first take on trying to handle errors for partial
succeeded operators. Handling it all manually for now.

For the remaining operators I will use changed_multi to get over with
multi-objects. But we can handle their errors in a separate pass.
2018-11-02 12:16:59 -03:00
ef42dcd31e UI: Darken the backdrop of navigation gizmos.
Bright backdrop would get lost when having bright elements/background in the viewport.
This makes it use a darkened/lighten version of the theme space header color.
Since icons are colored using the 'text' value of the Theme Space, it's likely that any
theme is going to have a contrasting background color, but just in case darken/lighten it slightly.
2018-11-02 16:16:40 +01:00
46d88c5850 Edit Mesh Mode: Improve edge drawing
Make edge decoration a bit thinner and try to reduce missing edge segment
due to triangle barycentrics.

This invert the "edge fix" strip offset direction, meanning there is now
the possibility that these triangles poke through nearby geometry depending
on the viewport near/far clips distances.
2018-11-02 15:45:13 +01:00
819e6745b0 DRW: Use GPU module wrapper for line width 2018-11-02 15:45:13 +01:00
721a19d2b8 GPU: Add safety check for max line width
On some platform does not support line width > 1.0 and can even throw and
error. Better check an at least display something rather than no lines at
all.
2018-11-02 15:45:13 +01:00
00ef0a4d8e UI: disable decorators for color management and motion path panels. 2018-11-02 15:35:06 +01:00
c7d20949fb Multires: Apply uniform scale on displacement when applying scale on object
This is sued by both object joinig and object apply scale operations.

Currently only uniform scale is working correct. Non-uniform gets averaged
and will produce slightly distorted results. This is something we should
fix, but priority of this particular case is not so high.
2018-11-02 15:24:54 +01:00
c75a25e9e1 Fix issues with hide/restrict icons after recent changes.
Set the names to match the original order again, to avoid breaking addons and
various places in the code that relied on them.
2018-11-02 15:21:54 +01:00
2e6637bdf6 UI: Fix 'extra' fake user showing in UI ID template usercount.
User do not care about that 'virtual' user, it only makes it more
confusing. So now, that template always shows actual number of real
users, we already have own dedicated button to show fake user status.
2018-11-02 15:12:10 +01:00
f2132b0237 UI: Fix showing '2' number of users in ID templates for fake-user IDs.
Using FakeUser on an ID sill put its usercount to 2 if it is actually
also 'really' used once. But we do not want to show that to user
(especially not since it also allows to 'make single user' of an ID
already only used once...).
2018-11-02 15:12:10 +01:00
8197b247d9 Fix 'id_single_user' wrongly reseting usercount to 0.
We want to undo the initial usercount from low-level ID duplication, not
to erase all possible extra processing (like e.g. setting Fake User...).

Fixes part of mess in brush usercount.
2018-11-02 15:12:10 +01:00
a0e82342d7 Multires: Cleanup, naming
First of all, follow our naming convention to use module prefix.

Second of all, mesh is being created and is to be freed, we also
have convention for such function names.
2018-11-02 13:59:04 +01:00
af6585cc9c Merge branch 'blender2.8' of git.blender.org:blender into collada2.8 2018-11-02 11:33:07 +01:00
f2873b3ce5 Multires: Prevent crash when joining two multires objects
This only works thing around, just so we can unlock production here.
Joining objects of a different scale will not yet work correctly.

Proper fix is coming later (the code needs to be ported to new
Subdiv API).
2018-11-02 11:00:51 +01:00
ac8d787327 Tool System: brushes are now categorized by tool
The toolbar now shows brush types, the brush selector now
only shows brushes matching the current tool type.

Details:

- Add's Paint.tool_slots (used by the toolbar).
- Removed custom grease pencil brush tool code.
- Bumped subversion.

See T57526 for details.
2018-11-02 19:40:39 +11:00
5bd3f3e64b Fix assert setting fake user then removing 2018-11-02 16:23:05 +11:00
37fc52cbc6 UI: Minor tweaks on User Preferences header.
* Move Save User Preferences to the right (matches file browser and quit prompt).
* Icons for Import/Export keyconfig
* Match order of install/reset of Themes section
* Rename "Install MatCap/HDRI" to "Add MatCap/HDRI"
2018-11-02 03:15:38 +01:00
d9dd20bcb3 UI: Rename Save User Settings operator to Save User Preferences.
The term Settings is not used anywhere, plus the menu entry and editor use the word Preferences.
2018-11-02 03:08:58 +01:00
1f4068214f UI Cycles: Open "Sampling" panel by default
Now that the Dimensions panel moved to Output, we can have the Sampling panel as the only one open by default.
2018-11-02 02:29:09 +01:00
034e777038 UI: Sort panels in Render and Output 2018-11-02 02:21:35 +01:00
c4c62e6df5 UI: tweak panels open by default 2018-11-02 12:04:04 +11:00
86b2f8ef38 UI: add render output tab to properties editor 2018-11-02 11:58:56 +11:00
2d6a10615d UI: Typo 2018-11-02 01:19:34 +01:00
2959e4c72c Multi-Object-Mode: Edit curve draw (deselect all)
D3887 by @zazizizou
2018-11-02 08:31:36 +11:00
93b99306d8 Multi-Object-Mode: Edit curve toggle cyclic
D3882 by @zazizizou
2018-11-02 08:26:11 +11:00
68a4610fc4 UI: Math Node Menu: Group and reorder
Change menu so that maths functions are grouped together more logically.
2018-11-01 21:01:52 +00:00
28f3f4da12 Cleanup: style 2018-11-02 07:44:26 +11:00
f667a250f4 Fix bpy.app, sentinel was removed by accident 2018-11-02 07:43:28 +11:00
fecb09ceff Eevee: Fix crash during Light cache baking
This was caused by some threading conflict.
2018-11-01 21:23:12 +01:00
b2a6e149a6 Eevee: Opti: Irradiance: Remove sqrt and max on backface test
Did not have any impact in my tests and it saves some instructions.
2018-11-01 21:23:12 +01:00
d3ca5f8395 Merge remote-tracking branch 'origin/blender2.8' into collada2.8 2018-11-01 19:46:17 +01:00
569ad49a01 fix: Collada: remove not needed Context attribute from DocumentExporter 2018-11-01 19:45:57 +01:00
10d7740e01 UI: show messages and progress in topbar when status bar is collapsed. 2018-11-01 19:44:03 +01:00
c2bcde5c28 UI: show blocking popup when auto execution of scripts is disabled.
This is important information, and it was easily missed at the top/bottom of
the screen.

Ref T57197.
2018-11-01 19:44:03 +01:00
1e8a2e1a10 UI: support red alert on labels, not just buttons. 2018-11-01 19:43:46 +01:00
c7752df86d Fix T57559: fix wrong disable/mute icons for particles and shape keys. 2018-11-01 19:31:20 +01:00
97bb56711e Defaults: leave user prefs temp directory empty, so it gets right value per OS. 2018-11-01 19:31:20 +01:00
79ec5f5cb8 GP: Separate not related buttons on topbar 2018-11-01 19:03:06 +01:00
1237e50c9b GP: Reorganize origin popover and top area
- Draw on back buttons moves near mode
- zDepth offset moved from View Panel to Popover
- Target for Stroke mode moved to popover
- New First point snap mode
2018-11-01 17:05:04 +01:00
e6da49295c UI: Rename "Cursor to Center" to "Cursor to World Origin"
Center is misleading since it could mean the center of the objects, selection, etc.
Python API is left as is to not break compatibility. Maybe it could be renamed as well?
2018-11-01 16:12:52 +01:00
7d765eca13 UI: Rename Copy Material to Others to Copy Material to Selected.
"Others" is not clear, "selected" is more descriptive and it follows the convention used in similar operators
2018-11-01 15:57:27 +01:00
423e887c74 UI: Rename AO to Ambient Occlusion in tooltips and labels when possible.
Just tooltips and RNA labels when possible. Node outputs use their name to keep connections,
so they haven't been changed, otherwise it will break old files.
2018-11-01 15:57:27 +01:00
d6d5c436e3 Subdiv: Cleanup, better naming yet again 2018-11-01 15:45:57 +01:00
623574ffa2 Subdiv: Cleanup, de-duplicate some code 2018-11-01 15:20:50 +01:00
d710cb91b9 Subdiv: Cleanup, de-duplicate tangent matrix calculation 2018-11-01 15:20:50 +01:00
c2aa8d03f2 Subdiv: Cleanup. better naming 2018-11-01 15:20:50 +01:00
34ec716352 Subdiv: Cleanup, deduplicate some code 2018-11-01 15:20:50 +01:00
9d5edf2d39 Eevee: Fix nodegroup sockets behaviour
Node group inputs should behave like cycles now.

----

We create dummy nodes that contains the default values for the nodegroup
inputs and link them to the sockets. This way the uniform buffer gathering
function can read them.

But we also need to disconnect all the internal links to sockets that have
hidden values. Theses sockets must not get the values from the nodegroup
input sockets if there is no link to them otherwise we get broken results
(i.e.: normals for a bsdf node).
2018-11-01 15:06:42 +01:00
Dalai Felinto
c2316909ff Fix for object.set_select not updating selection in viewport
Note: This function changes the active object as well. Not sure it
should do.
2018-11-01 12:43:48 +00:00
1b974563b1 Fix T57529: 2D image paint fill tool not taking into account alpha. 2018-11-01 13:05:57 +01:00
77c126dd4c Fix T57553: Python operator popup size does not follow UI scale and DPI.
Make it the convention to multiply by scaling factor inside the function, so
Python scripts that didn't add DPI scale start working correctly.
2018-11-01 12:33:27 +01:00
8f1b1b5abb GP: Fix Stroke mode when annotations not enabled
Internally, a drawing is done to calculate z-depth and needs always the drawing.
2018-11-01 12:02:08 +01:00
58dfe293cb Merge remote-tracking branch 'origin/blender2.8' into collada2.8 2018-11-01 09:30:37 +01:00
10d7ebc469 Merge branch 'master' into blender2.8 2018-11-01 16:20:52 +11:00
38f57734ea Cleanup: move progress utility module into bpy_extras
Try avoid having too many toplevel modules with generic names.
2018-11-01 16:19:49 +11:00
Dalai Felinto
ae87adc73a Font cleanup: use ELEM 2018-10-31 21:45:27 -03:00
4a013e5dd5 Fix T57540: 3D Cursor snap in editing mode ignoring changed geometry. 2018-10-31 20:47:51 -03:00
9f2b380b41 Merge remote-tracking branch 'origin/blender2.8' into collada2.8 2018-10-31 23:52:06 +01:00
Dalai Felinto
95d4a6bdb1 Fix swapped on/off icons for brush overlays
This is the panels that you see when you invoke the painting tools from
the Image Editor.

If you do so from the viewport, the panels are different (and have it
properly swapped already, although the panels should be the same as
those ones I suppose - that said I like the one from the image editor
better, in regard to the overlay panel).
2018-10-31 19:27:49 -03:00
Dalai Felinto
679e0daaf8 Fix ui errors for brush toolbar 2018-10-31 19:23:58 -03:00
bb3219d2b1 Eevee: Fix pingpong buffer not using 32bit float buffer when rendering 2018-10-31 22:35:42 +01:00
c07d486dcd Fix gizmo extrude adjust & normal axis w/o faces
- Extruding edges/vertices on normals gave bad/strange results.
- The adjust gizmo used the orientation axis instead of the
  last-orientation (which could get out of sync).
2018-11-01 07:56:44 +11:00
eb8ddaee4c Transform: support for custom matrix property
Needed for situations when we can't use the orientation.

With extrude the initial extrusion recalculates normals for edges
and vertices which then don't give a useful axis.
2018-11-01 07:55:53 +11:00
798cd8a723 Cleanup: style 2018-11-01 07:32:13 +11:00
eac9021c62 Merge remote-tracking branch 'origin/blender2.8' into collada2.8 2018-10-31 21:17:03 +01:00
35b888fbda Eevee: Fix compilation issue cause by cleanup 2018-10-31 21:14:32 +01:00
c1b507f733 Merge remote-tracking branch 'origin/blender2.8' into collada2.8 2018-10-31 20:57:09 +01:00
97a1561283 Eevee: Cleanup: Remove TODOs about MSM
Soft shadows are supported in another manner, Multiple Shadow Maps are not
needed anymore.
2018-10-31 19:44:01 +01:00
f14315bac4 Eevee: Fix wrong default overscan value 2018-10-31 19:40:08 +01:00
e3384800a1 GP: Change icon for draw on back 2018-10-31 19:36:22 +01:00
acecadf16a UI: Particles improvements
* Icons in specials menu (Copy and the new Duplicate icon)
* Remove redundant "Settings" label next to ID template widget.
* Remove "Type" label and expand dropdown, since it only has 2 options (emitter/hair), saves 1 click.
* Move "Seed" to and "Hair Segments" to Emission panel
* Rename "Duplicate Particle Systems" to "Duplicate Particle System", since it
only duplicates one (the active one) at a time.
2018-10-31 18:39:01 +01:00
f4bc205a32 UI: Detach Material specials menu from add/remove column. 2018-10-31 18:39:01 +01:00
cde64619ca Eevee: Implement Overscan option
This option make the internal render size larger than the output size in
order to minimize screenspace effects disapearing at the render edges.

The overscan size added around the render is the maximum dimension
multiplied by the overscan percentage.
2018-10-31 18:32:54 +01:00
c6466ed0d2 UI: tweak usage of duplicate/add icon for consistency.
Still difficult to know when exactly the operator will duplicate and when
it will add a new one. Some open a menu with different choices too.
2018-10-31 18:31:27 +01:00
1180363792 UI: Small tweaks to Shape Keys/Vertex Groups menus
Mainly added separators to the Vertex Group/Shape Keys specials menu,
separating items by type and removing redundant icons for better readability.
2018-10-31 18:14:05 +01:00
748b89f124 Allow changing B-Bone custom handle references from Pose Mode.
@jpbouza was rather upset these were made read-only, and unlike
parents, it's not that hard to allow changing these Bone fields:
all is needed is to carefully refresh the matching fields in the
relevant bPoseChannel objects and properly tag update.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3870
2018-10-31 20:04:01 +03:00
William Reynish
9fbba61f4b UI: icon set updates by Andrzej Ambroz.
New icons for duplicate, driver types, window, hue/saturation.
2018-10-31 17:59:00 +01:00
William Reynish
4b7b1ba114 UI: more single column layout for brush and render properties. 2018-10-31 17:58:57 +01:00
a2a8e71210 OpenSubdiv: API, expose vertex boundary interpolation option
Only affects internal API, bout could be exposed as an option for
the compatibility reasons with other software.

Is a part of some ongoing development of multires, but might or
might not be used.
2018-10-31 17:47:40 +01:00
9c328502bb GP: Fix icons 2018-10-31 14:44:15 +01:00
494fbfc045 GP: Move Autlock to Layer menu 2018-10-31 14:18:39 +01:00
a3802f66e2 Image Empties: More visibility settings
Support for showing images in background/foreground and only in perspective/orthographic view.

Internally the depth of the image is modified in the fragment shader by setting `gl_FragDepth` explicitly.

The UI still needs some work to improve usability, see D3863 for details.
Currently there is one duplicated function, not sure how to best deduplicate it yet. (`is_image_empty_visible`)

Reviewer: fclem, brecht, campbellbarton

Differential Revision: https://developer.blender.org/D3863
2018-10-31 13:42:33 +01:00
0727abf1bc Expose full ID name in RNA as well.
That way scripts can have a consitent way to get unique ID key/string,
and can use it for access in bpy.data collections as well.

Note that this kind of douples the old py API way of doning this
(passing tuple of (ID-name, lib-path) instead of just ID-name).
2018-10-31 13:34:06 +01:00
06c5a9426a Make new library IDs named from the .blend file.
Now that we do use that ID name of them in UI sometimes...
2018-10-31 13:34:06 +01:00
08a92d8578 UI/Unique ID name: add library ID name if present.
Also reshuffle a bit that whole code, did some renaming,
`BKE_id_to_unique_string_key()` is now using same base code (instead of
using whole library filepath...), etc.
2018-10-31 13:34:06 +01:00
7fe1ecf89d UI: Move Color Management panel from Scene to Render properties.
It makes more sense to have Color Management under Render properties,
even though they are per scene (so are render dimensions anyway).
2018-10-31 13:06:44 +01:00
117bc96ce8 Eevee: Fix dot corruption on intel HD5xx/6xx series
It is caused by some sync issue apparently. Adding glFlush in these
two places fixes it.

Caveat: it might have a small perf impact (did not measure it).

The fix is limited to the affected driver/operating systems.
2018-10-31 12:32:18 +01:00
a248c2001a GPU: Add glFlush and glFinish wrapper 2018-10-31 12:32:18 +01:00
fc12a736bb Merge branch 'master' into blender2.8 2018-10-31 11:49:04 +01:00
e0cc3e9809 Cycles: Fix wrong BVH used when disabling AVX2 in debug settings
Mainly useful for debugging. Previously, when AVX2 was disabled
in the debug panel but BVH layout was kept on BVH8 nothing was
rendered.

Needed to make it so supported BVH layout mask for devices is
queried in "dynamic", so it is possible to use DebugFlags there.
2018-10-31 11:46:52 +01:00
14e1dfda4e GP: New Autolock Inactive Layer
This option locks any layer no active to avoid any accidental change.
2018-10-31 11:00:28 +01:00
7bc84559aa Add an option to do keyframe insertion in a cycle-aware fashion.
When enabled, inserting keyframes into F-Curves with simple cyclic
extrapolation (the same conditions as required for cycle-aware auto
handle smoothing to activate) will take the cycle into account:

- Keyframes that are being inserted outside of the cycle bounds
  are remapped to be inside the cycle. Thus it is not necessary
  to be within the main iteration of the cycle when tweaking.

  This becomes especially useful in the final animation tweaking
  phase when the channel keys may be staggered for overlap, so
  the actual master period is different for different channels.

- Modifying one of the end points of a cycle also changes the
  other end point when appropriate, to preserve smooth transition.

This feature applies to both manual keyframe insertion using
'I', and auto-keyframing.

Differential Revision: https://developer.blender.org/D3140
2018-10-31 11:50:57 +03:00
2d37f55559 UI: Match region tabs with other navigation tabs 2018-10-31 16:14:48 +11:00
bafd1b6d92 Multi-Object-Mode : Edit Curve Decimate
D3309 by @thornydre
2018-10-31 15:40:01 +11:00
1fb9fcb333 Cleanup: indentation 2018-10-31 14:43:25 +11:00
8d496c2f85 Cleanup: rename PyAPI VertBatch to Batch
Only used for internal functions, follow 'GPU_batch.h' naming.
2018-10-31 12:34:10 +11:00
b1d2db2c77 Fix leak in successive calls to Batch.program_set 2018-10-31 12:32:57 +11:00
205eac3038 PyAPI: add check for exceeding batch VBO limit 2018-10-31 12:11:38 +11:00
1a865b4ff0 Cleanup: batch Python API
Add utility function to raise an error.
2018-10-31 12:02:22 +11:00
756d1502e4 Fix missing error returns in batch API 2018-10-31 11:55:28 +11:00
9c23e24543 Fix T57504: Scaling 3D cursor crashes 2018-10-31 11:51:15 +11:00
c469c72405 Cleanup: grease pencil RNA naming
Follow naming conventions for boolean's,

Also rename enable_settings -> use_settings_postprocess.
2018-10-31 11:51:15 +11:00
3224b79289 Cleanup: remove redundant 'gpencil_' prefix
Also rename 'gpencil_brush_type' -> 'tool' & correct typo.
2018-10-31 11:51:15 +11:00
40412e3579 Fix grease pencil RNA path 2018-10-31 11:51:15 +11:00
Julian Eisel
fe07839d01 UI: Right-click menu entry to flip properties Tab Bar left/right 2018-10-31 00:52:07 +01:00
Julian Eisel
0bc427f5c3 UI: Don't show scrollbar in Properties tab-bar
Addresses feedback from D3840.
2018-10-31 00:52:07 +01:00
4e23c69bfa Workbench: Attenuate dithering effect when using viewport render
Quick hack to get rid of most of the noise when doing a viewport render in
xray or wireframe mode.
2018-10-31 00:46:08 +01:00
d86e77ac16 UI: Rename "OpenGL Render" operator to "Viewport Render"
Since we now have an Opengl "render engine", it is misleading to have this
operator still called "OpenGL Render" when all it does is take a snapshot
of the viewport.
2018-10-31 00:46:08 +01:00
ca30930e36 Merge remote-tracking branch 'origin/master' into blender2.8 2018-10-30 17:39:20 -06:00
5490708c39 make.bat: fix unquoted variables.
causing build issues for some users.
2018-10-30 17:36:36 -06:00
036a4b4087 UI: Match tabs active color with properties background color
Also match topbar background color with active tab so they blend better.
And other minor adjustments for consistency.
2018-10-30 23:37:22 +01:00
Julian Eisel
a287194bce Fix Properties tabs all showing tooltip of active tab 2018-10-30 23:21:34 +01:00
Dalai Felinto
e9980e5a75 Multi-Objects: CURVE_OT_split 2018-10-30 18:59:43 -03:00
Dalai Felinto
46bf079b7f Fix error checking on curve duplication 2018-10-30 18:59:43 -03:00
Dalai Felinto
5a156fd109 Cleanup style :|
So much for saving time by copying existing patches from phabricator.
2018-10-30 18:48:21 -03:00
Dalai Felinto
b9d5888728 Multi-Objects: CURVE_OT_duplicate 2018-10-30 18:31:27 -03:00
Dalai Felinto
993f4d4827 Multi-Objects: CURVE_OT_extrude 2018-10-30 17:53:52 -03:00
Dalai Felinto
258ad21cf2 Multi-Objects: CURVE_OT_spin 2018-10-30 17:37:45 -03:00
Dalai Felinto
d7c6013d01 Multi-Objects: CURVE_OT_dissolve_verts 2018-10-30 17:07:32 -03:00
df613a52e6 Multi-Objects: CURVE_OT_de_select_last
Reviewers: dfelinto
https://developer.blender.org/D3841
2018-10-30 16:22:55 -03:00
9d9d44dbcb Multi-Objects: CURVE_OT_de_select_first
Reviewers: dfelinto
https://developer.blender.org/D3839
2018-10-30 16:22:55 -03:00
Dalai Felinto
47afabbb42 Multi-Objects: CURVE_OT_select_nth
Based on D3407 by Daniel Griffin.
2018-10-30 16:22:55 -03:00
456e3f00e0 Fix broken 'search pointer' UI since this morning.
Own rB4669c3692cc4f broke completely those searchbox pointers UI
widgets... This is a quick fix, better name handling is for tomorrow.
2018-10-30 19:55:02 +01:00
10caf398b3 UI: Cleanup typos and minor tweaks to Grease Pencil related text
First pass on adding articles, capitalize Grease Pencil, use 'keyframes' instead of 'frames' when
possible, and other minor adjustments.
2018-10-30 19:54:42 +01:00
603774c1eb Fix T56865: Selection of bones not working properly if the option In Front (old X-ray) is enabled
Differential Revision: https://developer.blender.org/D3828
2018-10-30 15:31:32 -03:00
bf5ba49698 Partial fix to T56865: X-ray modes does not work for the weight paint overlay.
Part of the D3828 review.
2018-10-30 15:20:47 -03:00
ffcf193653 UI: Make Wireframe size respect DPI settings 2018-10-30 19:07:49 +01:00
Roel Koster
09416fe6e1 Fix outliner scrollbar overlapping icons.
Differential Revision: https://developer.blender.org/D3650
2018-10-30 19:04:38 +01:00
c8e6134386 Fix T56499: Adapt incremental snapping to orthographic viewport scale. 2018-10-30 14:22:30 -03:00
6f311ef57e GP: New Fade no active layer overlay option
This option allows to fade all layers except active one. This can help in very crowded scenes with a lot of layers, to verify you are working in the right one.
2018-10-30 17:54:01 +01:00
e7811ce0c4 Fix T57517: multires displacement baking relative to smooth base mesh not working.
When baking relative to multires level 0, it would apply one level of simple
subdivision still, which gave artifacts.
2018-10-30 17:15:32 +01:00
87f4c83018 Object Mode: Grid: Allow more subdivision in orthographic views
2.7x was displaying 2 additional subdivision for theses views. Bumping to 3
just to say we improved it!
Hypothetically it can be increased as much as we want but float precision
can quickly become an issue.
2018-10-30 16:44:23 +01:00
c4f69794ca UI: Fix point size and line width ignoring UI scaling option 2018-10-30 16:44:23 +01:00
26223f8d9a Object Mode: Grid: Reduce line thickness a tiny bit and apply UI scaling 2018-10-30 16:44:23 +01:00
a1cdf9cc3f UI: Fix inverted selection restrict icon 2018-10-30 16:44:23 +01:00
c62fad2a9a Fix T57512: Creating a full copy scene doens't support parenting.
Will say it once again: we should really, really switch all that
duplicating code to proper use of new ID management API :(
2018-10-30 16:14:33 +01:00
974d158f3f PyAPI: GPU: improve GPUShader.from_builtin and GPUShader.code_from_builtin description. 2018-10-30 11:38:42 -03:00
2dbddaf3be Fix "make update" on Windows not updating addons to the blender2.8 branch.
based on rB8e183a83b7aa3bbdefcdea6a86ca2c0dbd00417f
2018-10-30 07:55:45 -06:00
8e183a83b7 Fix "make update" on macOS/Linux not updating addons to the blender2.8 branch.
This will need to be removed once we merge into master.
2018-10-30 14:43:09 +01:00
450f0c4a90 Fix wrong grease pencil modifier show viewport/render icons. 2018-10-30 14:15:03 +01:00
6e04c8e3ff UI: update Cycles passes panel for single column. 2018-10-30 14:14:56 +01:00
dffde4a49c Merge branch 'master' into blender2.8 2018-10-30 14:13:47 +01:00
500fbfd02a GP: Back Stroke projection mode
Back the old 2.7x  stroke mode when drawing. This mode try to project the new strokes over the previous strokes.
2018-10-30 12:59:58 +01:00
5f0cee26f0 GP: Cleanup unused 2018-10-30 12:59:58 +01:00
f3961ab46d GPU: Extend mac blitting workaround to AMD Radeon R9 familly 2018-10-30 13:04:06 +01:00
7c0d37deca Fix build error on Windows 32bit, alignment was wrong. 2018-10-30 11:39:44 +01:00
c760285ae0 Add 'O' for Overrides to our key-coded ID UI-names generator. 2018-10-30 11:00:25 +01:00
4669c3692c Add library-hint to datablock search menus.
We had those for ID templates, but it's also tremendously useful for
regular ID pointers UI, since often you can get local and linked
data-block with same exact name...

Fetaure request from Spring team (and long due TODO...).
2018-10-30 11:00:25 +01:00
76a047893c GPU: Fix faulty mac gpu detection 2018-10-30 11:02:59 +01:00
f907eb4268 PyAPI: Use 'None' arg to clear header text 2018-10-30 16:20:38 +11:00
f711c44b8d PyAPI: Support for 'None' string args from Python
This is needed because some RNA functions differentiate a NULL 'char *'
argument from an empty string.

Previously a NULL argument could be passed when the C definition
defined the default as NULL and the argument wasn't passed
which is a fairly hidden way of handling things.

Now strings use `PROP_NEVER_NULL` by default
which can be cleared for function arguments that allow None -> NULL.
2018-10-30 16:17:46 +11:00
0973ea5132 Multi-Object EditMode: curve delete
D3859 by @zazizizou
2018-10-30 14:14:03 +11:00
c3d170d538 Sequencer: replace notifier /w message-bus 2018-10-30 11:49:06 +11:00
3d550dd900 Cleanup: keep RNA types sorted 2018-10-30 11:07:00 +11:00
5e091de0dc Fix memory leak in workspace menu 2018-10-30 10:57:46 +11:00
817319a79e UI: add uiItemMenuFN which frees it's argument 2018-10-30 10:57:33 +11:00
4205cd269d UI: add uiItemMenuFN which frees it's argument 2018-10-30 10:53:47 +11:00
b3478930d8 Fix crash adding workspace 2018-10-30 10:28:12 +11:00
Julian Eisel
70582cf8d2 UI: Support using Ctrl+Scrollwheel to cycle properties editor tabs
Small side effect is that area operators (toggle fullscreen/maximized, duplicate
area) are now displayed in RMB-menu. Makes sense anyway.
2018-10-29 23:29:26 +01:00
Julian Eisel
a0d40c6a8c UI: Move Properties editor context path into header
This will probably be a temporary solution to fill empty space, for until we
have a search button there. Hence, I made this optional using a compile flag.
2018-10-29 22:59:57 +01:00
39a1d45279 WM: correct description for header/status_text_set
Make text a required argument for both.
2018-10-30 08:55:36 +11:00
79ff9a0e19 3D View: use 1.0 opacity for wpaint shading
Now the colors are multiplied, faded color isn't useful to see weights.

Matches 2.7x behavior.
2018-10-30 08:50:44 +11:00
d69fe6325d Eevee: Fix clearcoat materials not recieving AO 2018-10-29 22:40:42 +01:00
4f4a74c0af UI: Fix Studio Light panel in user preferencies 2018-10-29 22:40:42 +01:00
Julian Eisel
d64247976c UI: Update Default Theme File After Recent Changes 2018-10-29 21:47:27 +01:00
Julian Eisel
ab6c7ff2ab UI: Vertical Properties Editor Tabs
Moves the Properties editor context switching to a vertical tabs region.

Design Task: T54951
Differential Revison: D3840

The tabs are regular widgets, unlike the 'old' toolshelf tabs. This means they
give mouse hover feedback, have tooltips, support the right-click menu, etc.
Also, when vertical screen space gets tight, the tabs can be scrolled, they
don't shrink like the toolshelf ones.
The tab region is slightly larger than the header. The tabs are scaled up
accordingly. This makes them nicely readable.

The header is quite empty now. As shown in T54951, we wanted to have a search
button there. This should be added next.

Implementation Notes:

* Added a new region type, RGN_TYPE_NAVIGATION.
* Having the tabs in a separate region allows scrolling of the tab-bar, unlike
  the toolshelf tabs. We might want to remove the scrollbars though.
* Added a new region flag RGN_FLAG_PREFSIZE_OR_HIDDEN, to ensure the tab region
  is either hidden or has a fixed size.
* Added some additional flags to support fine-tuning the layout in panel and
  layout code.
* Bumps subversion.
2018-10-29 21:44:01 +01:00
Julian Eisel
ce148716c8 UI: Support Displaying Enums as Tabs
Adds `uiLayout.prop_tabs_enum(data, property, icon_only)` to BPY.
2018-10-29 21:20:58 +01:00
a0dfa320cd Dope Sheet: new option to display keyframe interpolation mode and extremes.
With the new automatic handle algorithm, it is possible to do a lot
of the animation via keyframes without touching the curves. It is
however necessary to change the keyframe interpolation and handle
types in certain cases. Currently the dopesheet/action editor
allows changing the types, but does not show them in any way.

To fix, add a new menu option to display this information. For handle
type, it is represented using the shape of the key icons: diamond for
Free, clipped diamond for Aligned, square for Vector, circle for Auto
Clamp, and cirle with dot for Automatic.

Non-bezier interpolation is a property of intervals between keys,
so it is marked by drawing lines, similar to holds. In this initial
version, only the fact of non-bezier interpolation is displayed,
without distinguishing types. For summaries, the line is drawn at
half alpha if not all curves in the group are non-bezier.

In addition, it is sometimes helpful to know the general direction
of change of the curve, and which keys are extremes. This commit
also adds an option to highlight extremes, based on comparing the
keyed values with adjacent keys. Half-intensity display is used
for overshot bezier extremes, or non-uniform summaries.

Reviewers: brecht, aligorith, billreynish

Differential Revision: https://developer.blender.org/D3788
2018-10-29 22:04:19 +03:00
William Reynish
b18ac77df3 UI: icon set updates Andrzej Ambroz, and various fixes.
* Text editor word wrap, line numbers & syntax toggles now use consistent icons
  that don’t change when you enable or disable them.
* Replaced icon toggle buttons in the snapping popover with normal checkboxes
  and descriptive text labels. This makes it clearer which item is the main
  radio button, is more consistent with other popovers, and allows us to use
  more descriptive text.
* Added correct icons for grease pencil add menu.
* Added bespoke icons for grease pencil modifiers.
* Added icon for particle instance modifier.
* Added icon for fake user on & off states.
* Added correct icons for enabling/disabling modifiers in the dopesheet &
  f-curve editor.
* Made it so the restrict viewport & restrict render toggles for modifier
  update correctly when enabled or disabled, by flipping the order in the
  icon sheet. This also required changing the outliner to match.
* Removed the few old remaining icons in the old style and made sure to replace
  the last places where they were used.
* Updated many icons to be clearer & more consistent.
2018-10-29 19:04:07 +01:00
b5667c2ca7 UI: allow off/on icons to be in reverse order.
The same icons are reused for "hide" and "show" properties, which need
to be in reverse order compared to each other.
2018-10-29 19:04:07 +01:00
4c7f08e5eb Cleanup: remove unused RNA flag. 2018-10-29 19:03:47 +01:00
bb770a2c85 Depsgraph: use full operation key to preserve update tags on rebuild.
The key used by find_operation consists of the operation code,
node name, and an index for array property drivers. All three
elements are required to unambiguously look up a node.
2018-10-29 20:54:38 +03:00
62e2bbd068 Fix T57488: crash in Shrinkwrap constraint due to unsafe multi-threading.
- Constraints must not use mesh_get_eval_final as it isn't thread-safe.
- Depsgraph should keep lastDataMask when re-running COW.
2018-10-29 20:33:15 +03:00
bd7cb42f3d GP: Remove unneeded code to get icon
Test the object type is not good idea here.
2018-10-29 17:49:26 +01:00
11f9018ec6 GP: Cleanup typo 2018-10-29 16:43:11 +01:00
29428859d9 Depsgraph cleanup: use proper DEG_debug_print_eval call... 2018-10-29 16:37:27 +01:00
363a196ed6 BBox accessor: switch to switch, add missing gpencil case. 2018-10-29 16:37:27 +01:00
8ee575867a Eevee: Fix Sun soft shadows not starting at first sample 2018-10-29 16:26:52 +01:00
6b3981737a Edit Mode: Fix "Hidden Wire" option not working 2018-10-29 16:26:52 +01:00
e3817e5ec1 Cycles: Support generating Denoising passes without actually denoising
Needed for the animation denoiser since the denoising filter is done separately there.

Reviewers: brecht, sergey

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D3833
2018-10-29 15:50:01 +01:00
2a9b53b970 UI: Typo in tooltip 2018-10-29 14:43:12 +01:00
abdda29dab Fix: Pose Breakdown operator (continued) 2018-10-29 14:07:47 +01:00
1c326e5079 Fix: Pose Breakdown operator
Reviewer: brecht

Differential Revision: D3848
2018-10-29 13:58:09 +01:00
e7f423dffd Merge branch 'master' into blender2.8 2018-10-29 13:26:09 +01:00
17d91bcb61 Cycles: more detailed tooltips for cryptomatte options. 2018-10-29 13:22:58 +01:00
48f9e24f0c Enable dependency graph update while rendering
It is a whole point of copy-on-write to make such updates safe.
If this causes an issues, we need to solve them.

Fixes T57302: Viewport (selection etc) not updated while rendering
2018-10-29 12:16:18 +01:00
087e086ef9 Merge remote-tracking branch 'origin/blender2.8' into collada2.8 2018-10-29 12:02:56 +01:00
b2411fe269 Fix unneeded/unwanted user counter when freeing CoW NLA 2018-10-29 11:48:37 +01:00
61d49d3448 Fix T57360: Crash when Play Animation in this scene
Was caused by a code which was putting animation value back to
original datablock.

The tricky part here is that we don't always know ID, so can not
put those values. Would be nice to have a solution for this, but
for until then we should be relatively good.
2018-10-29 11:48:37 +01:00
f887dc1f5c Fix T57372: Second full scene copy crashes on deletion.
Hope this time we are done for good (root of the issue was that master
collections are not in bmain...).
2018-10-29 11:42:38 +01:00
c2791777bd Fix stupid multiple-call of same function in Collections remapping code.
Related to T57372: Second full scene copy crashes on deletion (fixes
deleting second copy, but now it crashes on deleting the first copy...).
2018-10-29 10:53:10 +01:00
262504ddd1 Fix T57384: Depsgraph assert after loading file with Mask Node
Maniphest Tasks: T57384

Differential Revision: https://developer.blender.org/D3831
2018-10-29 10:40:02 +01:00
4e6f5fabd4 Fix topbar UI being lost on undo w/ mode change 2018-10-29 20:20:16 +11:00
9dcd4f9fcd Merge remote-tracking branch 'origin/blender2.8' into collada2.8 2018-10-29 08:42:50 +01:00
0e268fb68b Fix topbar tool UI being lost on undo
Using operators to the object mode was resetting the tool.

See: T56865
2018-10-29 17:36:39 +11:00
cf1cf105a0 Merge branch 'master' into blender2.8 2018-10-29 15:23:02 +11:00
7367c0bde4 Fix assert weight painting after undo 2018-10-29 15:21:25 +11:00
95150b8414 Multi-Object EditMode: curve select next/prev
D3842 & D3843 by @zazizizou
2018-10-29 13:41:44 +11:00
45aa812fb3 Multi-Object EditMode: curve select more/less
D3844 by @zazizizou with support for select-less
2018-10-29 13:25:04 +11:00
a0453dadf0 Merge branch 'master' into blender2.8 2018-10-29 13:04:47 +11:00
6c892efdbc Modifier: mask threshold option
D3834 by @Allosteric
2018-10-29 13:03:28 +11:00
d58cf8292c Cleanup: avoid C++ keyword in DNA 2018-10-29 12:49:47 +11:00
c750ebe113 PyAPI: remove GPUVertFormat() creation from a list
We already have `attr_add` method,
best not have two ways to do the same thing.

See: D3830
2018-10-29 11:08:55 +11:00
02035c34b7 Cleanup: typo 2018-10-29 10:35:05 +11:00
26ed545276 Cleanup: style 2018-10-29 10:24:42 +11:00
Julian Eisel
05588f909a Fix crash flipping region without active area
Would happen when cursor is in-between editors for example.
2018-10-28 22:56:37 +01:00
49f6c3556c DRW: Cleanup: Redundant check 2018-10-28 21:48:22 +01:00
b8331b79e6 Eevee: Implement jittered soft shadowmap
This new option is located in the shadows options in the render settings.
This approach is simple and just randomize the shadow map position (not
the lamp itself) and just let the temporal supersampling do the average of
all the shadowing. The downside is that is needs quite a large number of
samples to give smooth results and individual sample position can remain
visible.

Enabling this option will make the viewport refresh all shadow maps every
redraw so it has a serious performance impact.

This approach is not physicaly based at all and will not match cycles.

----

The sampling for point lamps (spheres) is not
2018-10-28 21:48:22 +01:00
2c545c0409 BLI: Add comment about to orthogonalize_m3/4 2018-10-28 21:48:22 +01:00
61e4e3178d Eevee: Fix contact shadow creating to overshadowing
This was because the shadow rays could be generated below the geometric
normal.
2018-10-28 21:48:22 +01:00
f15afc47ed Use keyword argument for ui label text in cryptomatte passes 2018-10-28 20:39:44 +01:00
39bc44ffc5 GP: Refactor Instance modifier and rename to Array
The old name Instance was logic when the modifier created new object instances, but now works equal to mesh Array modifier, so the old name was not logic and must be Array.

Also added a Object to use as offset similar to mesh Array modifier.
2018-10-28 18:20:50 +01:00
9bcdb19a3e Fix label misalignment when there are multiple buttons on the right side. 2018-10-28 17:46:52 +01:00
41a284212a Cleanup: fix compiler warnings. 2018-10-28 17:46:51 +01:00
046735d751 Merge branch 'master' into blender2.8 2018-10-28 16:41:30 +01:00
Roel Koster
e3d2df0380 Fix snaps appearing in system bookmarks on Linux.
Differential Revision: https://developer.blender.org/D3838
2018-10-28 15:08:21 +01:00
47953dee79 Fix Linux build after Cryptomatte commit. 2018-10-28 14:55:55 +01:00
94ab6429bb Fix T57394: missing bl_category in panel (custom props / stereoscopy)
Differential Revision: https://developer.blender.org/D3835
2018-10-28 10:40:38 +01:00
Stefan Werner
e58c6cf0c6 Cycles: Added Cryptomatte output.
This allows for extra output passes that encode automatic object and material masks
for the entire scene. It is an implementation of the Cryptomatte standard as
introduced by Psyop. A good future extension would be to add a manifest to the
export and to do plenty of testing to ensure that it is fully compatible with other
renderers and compositing programs that use Cryptomatte.

Internally, it adds the ability for Cycles to have several passes of the same type
that are distinguished by their name.

Differential Revision: https://developer.blender.org/D3538
2018-10-28 05:37:41 -04:00
Severin
3bc8bc0709 Cleanup: More meaningful variable name 2018-10-27 17:18:29 +02:00
c0b3e3daeb Fix T57393: Cycles OSL bevel and AO not working after OSL upgrade. 2018-10-27 15:00:37 +02:00
7e3e26d00a Tool System: pie menu style activate-on-release
Support activate on release for the popup toolbar.
2018-10-27 12:25:05 +11:00
5e853849eb UI: operator to press the active button
Needed to use the keymap to activate buttons from other keys.
2018-10-27 12:25:02 +11:00
Dalai Felinto
6479e800bc Multi-Objects: Curve - select pick, linked and short path
I'm following mesh editing to decide when to switch active object, or
deselect the other objects. I hope we can keep this all consistent in
the end.
2018-10-26 20:01:19 -03:00
Dalai Felinto
7cbbc65faa Cleanup: Remove silly redundant if check in ED_armature_edit_select_pick 2018-10-26 19:20:12 -03:00
Dalai Felinto
254774a988 Fix T57367: Multi-Object-Mode: Edit Lattice selection only working for active object
For the records, curves still have this problem.
2018-10-26 19:18:52 -03:00
Dalai Felinto
cd36d3f4d3 Fix lasso selection not working for lattices
Regression introduced on e88e80a6.
This was broken for both single and multi-objects.

It is a typo that apparently slipt through testing, oh well.
I'm glad I caught this, I just wished it would have been faster.
2018-10-26 18:30:09 -03:00
Dalai Felinto
009bfbf408 Fix crash when switching to Scripting workspace
Crash introduced on: a4a6ed1ba3.
2018-10-26 15:33:20 -03:00
Dalai Felinto
b6a795f285 Small cleanup: Remove uneeded/wrong check
If ob was NULL it would crash in the else part of the if statement.
If we really think we may run into that (which we should not) we can just assert
or add a if (ob == NULL) return; in the top of the function.
2018-10-26 13:48:14 -03:00
Dalai Felinto
f1974bb340 Fix unreported: Crash when adding lattice vertex group 2018-10-26 13:48:14 -03:00
Dalai Felinto
6d4e776711 Fix unreported: Crash when removing lattice vertex group 2018-10-26 13:39:51 -03:00
Dalai Felinto
4af280ac90 Refactor cleanup: BKE_object_is_in_editmode
Using switch and keep it concise.
2018-10-26 13:39:51 -03:00
Dalai Felinto
a2dc4d2532 Fix T57368: Multi-Object-Mode: Edit Lattice draws only active
As it turned out the issue wasn't that we were drawing only the active,
but that the "object mode" lattice drawing was drawing on top of the
drawing for all the edit mode lattice objects.

We are doing the same original behaviour for curves and even meshes. To be
investigated if it is ok for those other cases.
2018-10-26 13:11:07 -03:00
f1673d20fa Cycles: Expose noisy image pass by default when rendering with denoiser
Apparently quite a few users would like to have the noisy pass available when using the denoiser, and since it's being generated anyways we might as well expose it by default.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3608
2018-10-26 16:21:11 +02:00
Dalai Felinto
1cc7d71a0b Multi-Objects: LATTICE_OT_make_regular
Committing this for the sake of completionism. I'm going to bring this
up for review, I think we may want to revert it.

Fundamentally I'm changing the behaviour of the operator both in object
mode (acting on all selected lattice objects), as well as the edit mode
(acting on all lattices in edit mode, regardless of them having any
 selected vertice).
2018-10-26 11:04:54 -03:00
70d73ff500 Eevee: SSS: Fix issue with mac and stencil buffer blitting
Adding a workaround in this case: we blit the depth buffer instead of the
stencil buffer and use the copy as the texture. This is slower but at
least it should work.
2018-10-26 10:54:21 +02:00
d5fe6e4785 GPU: Add workarounds for buggy glBlitFramebuffer function on macOS + Radeon
When calling glBlitFramebuffer on most (if not all) mac that have a GPU
from the Radeon Pro series, the data is not properly copied and only a
subset of the pixels are correctly copied.

This only happens when blitting the depth buffer if the depth buffer is
GL_DEPTH24_STENCIL8.

Changing the depth buffer format to GPU_DEPTH32F_STENCIL8 fixes the issue
but only works if blitting the depth componnent. The stencil componnent
still provoke issues when being copied.
2018-10-26 10:54:21 +02:00
48b56481ea GPUTexture: Add supports for GL_DEPTH32F_STENCIL8 texture format 2018-10-26 10:54:21 +02:00
a321f68f64 Workbench: Fix shadows on macOS 2018-10-26 10:54:21 +02:00
9b7dd0a93f GP: Assign new materials to brushes
When create a new material, this must be set to the brushes automatically.
2018-10-26 09:02:28 +02:00
6be7a98906 PyAPI: raise error when toolbar panels use tabs
Add-ons that register panels in the toolbar can
no longer use 'bl_categories' (tabs).
2018-10-26 15:05:07 +11:00
4c75cc488a Correction for Gizmo.draw_custom_shape utility API 2018-10-26 12:43:40 +11:00
0264c050bf PyAPI: gpu utility module to create new batches
Support the common case of creating batches from python geometry,
a shader and optionally indices.

See D3779
2018-10-26 12:40:43 +11:00
ca8fee62ab Update gpu offscreen PyAPI example 2018-10-26 12:13:03 +11:00
065d19e223 Fix parsing single int for uniform_int
This worked for float but not int.
2018-10-26 11:59:49 +11:00
0f0eafaa0e Cleanup: minor change to last commit 2018-10-26 11:48:42 +11:00
6d2897c7ed Update Gizmo.draw_custom_shape for API changes 2018-10-26 11:26:39 +11:00
a4a6ed1ba3 WM: default tool was being set for space types w/o tools
Add mask for space types so we don't accidentally add tools
for space types that don't support it.
2018-10-26 10:46:35 +11:00
6c86e1a781 PyAPI: draw handlers now store args in the capsule context
Was using the handlers custom-data which crashes
when Blender frees the screen data before Python removes the handler.
2018-10-26 09:30:17 +11:00
35991d9990 PyAPI: Temp workaround for crash removing cursor
Opening a new file frees the cursors,
add check if the cursor is still valid.

This leaks a Python reference, so a better solution is needed.
2018-10-26 08:49:10 +11:00
9f298e2c81 Merge remote-tracking branch 'origin/blender2.8' into collada2.8 2018-10-25 23:09:04 +02:00
1d8ba9d618 PyAPI: Make GPUVertFormat() argument optional 2018-10-26 08:06:05 +11:00
e7e5930efb Merge branch 'blender2.8' of git.blender.org:blender into blender2.8 2018-10-25 23:01:21 +02:00
c437c017e3 Merge branch 'collada' into blender2.8 2018-10-25 22:45:40 +02:00
b445d57ccf GP: Add warning when mix Build and Time Offset 2018-10-25 19:15:32 +02:00
4c2561a877 GP: Include option to render layers by view layer
This allows to make composition getting each grease pencil layer in a different render output.
2018-10-25 16:50:42 +02:00
2b6253175e Cleanup: comments and unused code 2018-10-25 13:41:32 +00:00
65b25df801 Cycles: Overhaul ensure_valid_reflection to fix issues with normal- and bumpmapping
This function is supposed to prevent the black artifacts caused by strong normal- or bumpmapping, but failed in some cases.

Now the code correctly handles all test files and previous issues I am aware of and also has extensive comments describing
the algorithm and the math behind it.

Basically, the main problem was that there can be multiple valid solutions that fulfil the reflection angle criterium,
but I had assumed that only one would exist and therefore simply picked the first solution with a positive term in srqt().
Now, the code uses additional validity checks and a simple heuristic to pick the best valid solution.

Additionally, the code messed up very shallow reflections even if the normal map strength was zero due to the constant
limit for the outgoing ray angle, which caused shallow incoming rays to fail the initial test even when reflected directly
on Ng. Now, the code accounts for this by reducing the threshold in the case of a shallow incoming ray, ensuring that at
least N=Ng is always a valid solution.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3816
2018-10-25 14:50:48 +02:00
869b1a8d6e Tool System: draw circle-select brush outline 2018-10-25 21:05:47 +11:00
9a6d8f809d Tool System: support custom cursor drawing 2018-10-25 21:05:47 +11:00
f606ee7637 PyAPI: initial gpu_extras module (circle drawing utility) 2018-10-25 21:05:47 +11:00
6ed9fcbabc PyAPI: rename GPL VertBuf.attr_fill identifier to id
This is used elsewhere in the API and its a common abbreviation.
2018-10-25 20:34:23 +11:00
c25fa615d4 Depsgraph: don't lose the update tag on rebuild for op nodes with a name.
This fixes a missing update when clearing the Text On Curve
(follow_curve) option of a text object.
2018-10-25 10:32:32 +03:00
1a827e0564 Cleanup: move params into their own struct 2018-10-25 17:20:26 +11:00
ce08b07a89 PyAPI: take paint-cursor space/region type args 2018-10-25 16:27:13 +11:00
6d49b623e2 WM: space, region type filtering for paint cursor
Avoids calling poll on mouse-move for unrelated space/region types.
2018-10-25 16:06:47 +11:00
46587b3ccb PyAPI: support for Python paint cursors 2018-10-25 15:31:02 +11:00
f2c77558b4 Merge branch 'master' into blender2.8 2018-10-25 15:19:35 +11:00
2046817c08 WM: minor changes to cursor API 2018-10-25 15:18:24 +11:00
05f2caa210 Merge branch 'master' into blender2.8 2018-10-25 12:26:08 +11:00
c9e36e5434 Cleanup: unused vars, correct bad (unused) logic 2018-10-25 12:24:38 +11:00
23fdac8672 Cleanup: unused variables 2018-10-25 12:03:34 +11:00
bf34f95a9e UI: move 2d paint panels to topbar & toolsettings
Removed 'Tool' and 'Options' panels,
both these settings are quite obscure and
already available in the 'Brush' menu.
2018-10-25 11:15:48 +11:00
03e0fd289d Fix top bar unified color & image paint brush 2018-10-25 09:54:18 +11:00
4082502239 GP: Fix compiler warnings 2018-10-24 22:53:28 +02:00
14bb6a964a fix: Collada: Error handler does not report Parsing errors and continues processing instead of stopping the import/export 2018-10-24 22:06:40 +02:00
c103a3903f Merge branch 'master' into collada 2018-10-24 21:37:26 +02:00
97ec802da7 Depsgraph: fixes for the eval_flags API behavior.
- Use the original ID pointer for lookup in DEG_get_eval_flags_for_id.
- When the flags change after a DEG rebuild, tag the object for update.
- Instead of mixing int and short in different places, use uint32_t.

This fixes text not updating when a Follow Curve reference is set.
2018-10-24 22:14:32 +03:00
e66084268c Fix T56172 Accessing COW data from RNA - Dimension
Also fixes T55769 Dimension Not properly work
and T56064 Blender crashes on selecting text-object

We decided to go to the easy way in the end, simply enforcing computing
BBox of all objects when using 'active' depsgraph, and copying back to
orig object (same as transform matrix, etc.).
2018-10-24 17:21:56 +02:00
0ce8ee526f GP: Add missing title for Armature modifier 2018-10-24 17:10:51 +02:00
9691c32d38 GP: Rename Fixed type in Time modifier 2018-10-24 16:59:13 +02:00
735d6cb8d8 GP: Add new Layer Pass Index filter to modifiers
Now the modifier can be filtered using the new layer index.

Also changed panels to put layers and passes filter always at the end of the panel.
2018-10-24 16:46:35 +02:00
a211937892 Fix T57361: Creating a new scene with a full copy doesn't work.
BKE_scene_copy() & co. were pretty much doing nothing right...

Was a tough fight, but at least now they should behave a tad better (and
reported issue is fixed).

Proper fix is to fully rewrite that PoS, it was already a mess without
collections, now it's even hairier to handle properly, we need to use
modern new ID handling API for that (and maybe extend it a bit as
needed). But way too late to do that in 2.80.
2018-10-24 14:48:05 +02:00
91c6beb28a Cleanup: Remove unused modifiers callback
Was only used by subsurf in the past years, it is unlikely
other modifiers will every need this any time soon.
2018-10-24 14:04:29 +02:00
547d31c8da Depsgraph: minor renaming and refactor of API for adding evaluation flags. 2018-10-24 13:45:03 +03:00
6e3a9b9313 Subsurf: Remove edit mesh modifier callbacks
Those were used for partial updates during edit mode, which will
not be possible anymore with OpenSubdiv.

Optimization for OpenSubdiv would be to re-use topology refiner
if topology does not change. But this is something to be done
for both edit and object modes, no need to have separate code
paths for those.

This commit makes OpenSubdiv to properly work in edit mode.
2018-10-24 12:40:05 +02:00
f1f0666bfc Fix Python warnings when running in background. 2018-10-24 11:14:49 +02:00
727d6644da Cleanup: fix compiler warnings. 2018-10-24 11:14:49 +02:00
e1a66201da GP: Add layer pass index to time modifier 2018-10-24 11:03:09 +02:00
341306995b Fix: buffer overflow when creating gpu.types.GPUIndexBuf 2018-10-24 10:57:46 +02:00
5af716620a GP: Add new modes to Time Offset modifier 2018-10-24 10:32:03 +02:00
0589368615 GPUShader: shader.uniform_float, matrix parsing
Add checks to parse 3x3 or 4x4 matrices,
also use error from `mathutils_array_parse` instead of overwriting.
2018-10-24 18:47:36 +11:00
c8ab88fb89 Partially revert "GPUShader: shader.uniform_float parameters"
`mathutils_array_parse` is meant to parse 1d arrays of numbers.

Using matrices internal memory layout is confusing since
mathutils matrices are exposed as row major.

Also, the matrix shape wasn't checked for.

Callers that want to handle matrices should check for them explicitly.
2018-10-24 18:47:36 +11:00
ee18b21201 Fix T57359: Crash adding a Driver and then changing frame 2018-10-24 09:44:57 +02:00
8ccb27fc0a Merge branch 'master' into blender2.8
Conflicts:
	source/blender/blenkernel/intern/scene.c
2018-10-24 09:00:13 +02:00
65d4314b8e Fix (unreported) bad halding of ID usercounts when fully copying a scene. 2018-10-24 08:43:20 +02:00
7b79216c54 Merge branch 'master' into blender2.8
Conflicts:
	intern/locale/boost_locale_wrapper.cpp
2018-10-24 08:26:32 +02:00
35d7211bfa I18n: tweak/fix exception catching code of pgettex() wrapper.
Related to T57066, rather unlikely to fix core of the issue, but may
solve crash itself.

Same as rBf22385f28ec8 (did it by mistake in 2.8 first :/ ).
2018-10-24 08:23:14 +02:00
a41f85d324 Fix error w/ poly-build clearing the edit-object 2018-10-24 16:26:33 +11:00
4b2b8a0c3f Fix T57351: Deform modifiers skipped in editmode 2018-10-24 14:48:17 +11:00
Dalai Felinto
175326fed7 Fixup for LATTICE_OT_flip
Committed by accident (1076523b1b).
But now I need to fix building.

Note: The operator itself shouldn't have been committed because it
should operate in the world space (for the axis), not local.

I will tackle this later.
2018-10-24 00:00:57 -03:00
Dalai Felinto
975974e291 Silence some false positiver warnings 2018-10-23 23:47:04 -03:00
Dalai Felinto
1076523b1b Multi-Objects: LATTICE_OT_flip 2018-10-23 23:29:51 -03:00
69dd58f210 Fix mapped mesh display skipping generated faces 2018-10-24 13:12:18 +11:00
7dfd3539d5 Cleanup: use bmesh index access functions 2018-10-24 13:07:21 +11:00
860dd31647 Merge branch 'master' into blender2.8 2018-10-24 12:55:44 +11:00
db69deea89 BMesh: inline index lookups
For release builds this is now the same as indexing the array directly.
2018-10-24 12:54:26 +11:00
901ccfab52 Fix T57366: Mesh.from_pydata invalid loose-edge state 2018-10-24 11:37:44 +11:00
Dalai Felinto
134db5618a Lattice UI: Add select more/less to menu 2018-10-23 20:40:19 -03:00
Dalai Felinto
9f1857002e Multi-Objects: LATTICE_OT_select_more/less
Note: Those operators are yet to be added to the menu.
2018-10-23 20:38:30 -03:00
Dalai Felinto
c052d38d0a Multi-Objects: LATTICE_OT_select_ungrouped
I thought about having a single error message, or to use BKE_reportf to just
add the "s". That would be bad for translators, so now we have two
explicit messages.
2018-10-23 20:25:59 -03:00
ed7f6b511f Eevee: Fix lightcache not working for small caches
Was caused by a threading issue. The lightcache was free before the endjob
function pass it to the scene.

Also fix cache reuse if size matches.
2018-10-23 18:04:45 +02:00
8e8d1cab6f Eevee: Fix crash when clicking the lightcache bake button multiple time 2018-10-23 18:04:45 +02:00
ee8e866a0e Eevee: Fix crash when baking
Was caused by the normal pass being enbaled in the renderlayer settings.

Fix T57344
2018-10-23 18:04:45 +02:00
2c35307f09 Workbench: Use AntiAliasing in render even if not enabled in the User Prefs 2018-10-23 18:04:45 +02:00
8742f6358b Workbench: Fix Wrong AntiAliasing in renders
Was caused by offseting the same matrix for each samples instead of adding
the offset to the original projection matrix.
2018-10-23 18:04:45 +02:00
51b6e313de Fix T57326: Adding Scene with Transparent Film to VSE Crashes Blender
Previous Framebuffer can be NULL.
2018-10-23 18:04:45 +02:00
28d5ebbc15 Wireframe: Fix wireframe object drawtype with "in front" draw option
First problem is that enabling the "in front" option made the wire object
test against an not updated stencil buffer.

Second problem is that the "in front" option was useless on wire objects.
To fix this we bypass the depth test and live with some sorting problem.
2018-10-23 18:04:45 +02:00
238d3471bd Xray Mode: Fix wireframe object display type not being correctly occluded 2018-10-23 18:04:45 +02:00
0d453d3c48 GP: Rename Offset to Frame Offset in Time modifier 2018-10-23 17:28:02 +02:00
3e9405e26d GP: Add new frame scale parameter to Time modifier
This new parameter allows to increase or decrease the animation speed to break animation patterns when reuse data blocks.
2018-10-23 16:47:09 +02:00
ca003d0f5c Fix missing relations update after allocating compositor
Compositor has own node in the dependency graph, so need to make
sure relations are up to date.

This fixes wrong user counter when creating compositor nodes for
a new scene.
2018-10-23 15:38:09 +02:00
f22385f28e I18n: tweak/fix exception catching code of pgettex() wrapper.
Related to T57066, rather unlikely to fix core of the issue, but may
solve crash itself.
2018-10-23 14:36:05 +02:00
1ab08a2dff Rename editor to "Texture Node Editor"
This editor edits nodes, and the old name of "Texture Editor" is misleading,
since when one want to edit it is unclear whether UV/Image or Texture editor
is more suitable for the task.
2018-10-23 14:29:13 +02:00
767b49e492 Fix: missing sequencer update
This should be fixed differently in the future. Read D3821 for more details.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3821
2018-10-23 14:03:57 +02:00
bc480c4989 GP: Rename modifier Time to Time Offset 2018-10-23 13:16:15 +02:00
7cb0e1499d Fix compiler error in Windows 2018-10-23 13:13:04 +02:00
f77eafed33 GP: Add transform tools to Toolbar 2018-10-23 13:03:46 +02:00
f927f388f6 Fix T57288: Assert when deleting duplicated collection (id->us == 0).
Copying an ID also add a default user to new one (just like creating an
ID), by default...
2018-10-23 12:00:46 +02:00
6d1fd1dc58 GP: Reduce samples in glow
The number of samples was too high.
2018-10-23 10:57:50 +02:00
fc3d771801 GPUShader: shader.uniform_float parameters
Allow to pass in single numbers, sequences and mathutils.* types into `shader.uniform_float`.

Reviewers: mano-wii

Differential Revision: https://developer.blender.org/D3820
2018-10-23 10:19:08 +02:00
13cfb641c6 Point addons contrib to 2.8 branch 2018-10-23 09:41:12 +02:00
32de646d3d Multi-Objects: Calculate Transform origin w/ all editmode meshes
D3550 by @Leon95
2018-10-23 17:55:02 +11:00
bb3d999571 Fix T57190: loopcut crash w/o overlays 2018-10-23 15:16:49 +11:00
756ac74f81 Cleanup: rename 'dm' -> 'me' for 'Mesh' types 2018-10-23 15:00:40 +11:00
dbdf653f8e Fix bad origindex layers for editmode modifiers
Reverts workaround from last commit.
2018-10-23 13:53:42 +11:00
e3013fdc3b DRW: workaround for editmode crash w/ constructive modifiers
Actual cause is bad orig-index layer,
commit this to avoid crash for now.
2018-10-23 12:34:34 +11:00
5891f81f25 Cleanup: style, warning 2018-10-23 11:01:25 +11:00
e5182fa101 Cleanup: rename VertBuf.fill_attribute > attr_fill 2018-10-23 10:50:48 +11:00
William Reynish
43c6aba670 Fix various icon related issues:
* Used correct icons for Tracking.
* Flip Copy/Paste icons so they are correct.
* Add correct icon for softbody modifier.
* Replace speaker icons for enabling F-Curves with checkboxes.
2018-10-22 19:28:24 +02:00
efa3389b83 Fix build after recent changes, filename must have right case. 2018-10-22 19:10:48 +02:00
7e3c954bea Fix memory leak in drivers pover 2018-10-22 18:58:07 +02:00
e010d5e3b1 GP: New Time modifier
This modifier allows to offset the keyframe animated to get more variations in the animation when reuse the same datablock.
2018-10-22 18:30:26 +02:00
4bf4da12de Merge remote-tracking branch 'origin/master' into blender2.8 2018-10-22 10:19:06 -06:00
86dbbd156f Windows: Enable python debugging in Visual Studio.
see D3817 for technical details, and https://wiki.blender.org/wiki/Tools/Debugging/Python_Visual_Studio for a end user quick-start guide.

Differential Revision: https://developer.blender.org/D3817
2018-10-22 10:17:08 -06:00
9d81e937d2 Optimizadion: Fix performanse issue of UI on some old GPUs.
Apparently the registry is not large enough and the compiler does something bad in indexing the array.
2018-10-22 12:59:09 -03:00
650cdc6b2d Drag & Drop: Support Open/Link/Append when dropping .blend file
When a .blend file is dropped into Blender a small menu opens.
In that menu the user can choose between three options: Open, Link and Append.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3801
2018-10-22 17:18:42 +02:00
0628fe7a6c Followup to previous change, reduce number of relations updates
Only tag relations update when new f-curve was allocated. This solves
possible too slow keyframe insertion when doing character animation,
but still does proper relation update when new ID component became
animated.
2018-10-22 17:13:19 +02:00
3c655fd372 Depsgraph: Fix missing relation update
The issue was happening when adding animation to properties
which affects different components of IDs.

Reported by Philipp Oeser as part of T56636.
2018-10-22 16:49:39 +02:00
b4ebb9d8ef Fix T56636: Custom property cannot be animated
No need to tag object for time update, with new dependency graph
this forces animation to be re-evaluated, which is not something
we want in this instance.

Same patch/solution Philipp Oeser came to as well.
2018-10-22 16:43:49 +02:00
eba9c1507a Mark TODO/XXX as solved
We do have proper access to bmain now.
2018-10-22 16:43:34 +02:00
b31fc40fcd DRW: Fix missing uniform warning in debug mode
Fix T57318
2018-10-22 15:56:12 +02:00
a20c590966 DRW: Fix crash on startup for old Nvidia drivers
This should fix T57296 once and for all.
2018-10-22 15:56:12 +02:00
59054d5eba Python API: fix docstrings 2018-10-22 15:01:25 +02:00
c49142dafe API Docs: remove 'level' from blf.color arguments
Reviewers: brecht

Differential Revision: https://developer.blender.org/D3819
2018-10-22 14:55:18 +02:00
0f4064c66f Fix T57028: Connect Vertex not working with more than 2 selected
vertices

rB944054fbb61e introduced a sanity check which is not needed and
prevents the operator to run successfully with more than 2 selected
vertices

Reviewed By: dfelinto

Differential Revision: https://developer.blender.org/D3763
2018-10-22 14:09:43 +02:00
0f54c3a9b7 Outliner: drag&drop - separate moving from parenting
Use drag&drop to parent objects in the outliner by holding down shift.
Previously it was easy to accidently parent objects and there was no way to notice it immediatly.

In some views it is possible to parent objects without using shift; should be obvious from context.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3812
2018-10-22 13:53:36 +02:00
2d084d4ec4 GPU: Fix Issue with recursive downsample and Intel HDXXX
This is caused by a driver bug that prevent us from rendering to (or even
binding) a texture mip level that is below GL_TEXTURE_MAX_LEVEL of the
target texture. This is fine in most drivers (and legal AFAIK) but not on
thoses Intels HDXXX + Windows.

As a fix we just put GL_TEXTURE_MAX_LEVEL lower (which is illegal because
it is undefined behaviour), but in practice it works ok and does not
trigger any warnings or errors.

This commit fixes most of the problems encountered on these GPUs (T56668).
2018-10-22 13:00:40 +02:00
0e70feab22 Merge branch 'master' into blender2.8
Conflicts:
	source/blender/windowmanager/intern/wm_init_exit.c
2018-10-22 10:55:16 +02:00
32d66889e9 Tentative fix for T57066: Daily build of Blend 2.79 crashes on OSX Mojave.
Looks like we need to explicitly set i18n language to default value on
some OSs... Unless that 'need to create new translated-name IDs in
versionning code for startup file' situation is really seldom.

Anyway, hopefully that will fix the crash.
2018-10-22 10:39:57 +02:00
91b768ccb1 UI: remove mask toolbar, use menus instead 2018-10-22 18:08:19 +11:00
827207b08e UI: move scrollbars inside region tabs 2018-10-22 16:43:09 +11:00
84eff5c126 Merge branch 'master' into blender2.8 2018-10-22 15:13:43 +11:00
24162c977c Prevent G.fileflags changes when WM_OT_save_mainfile() is called from script
This is to solve an issue where a blend file could be compressed
unbeknownst to the artist. This happened in the following situtation:

- Artist edits an uncompressed blend file.
- Some script saves a compressed blendfile to a separate location.
- When the artist saves the file (s)he is editing (File>Save, or Ctrl+S),
  it was silently compressed.

Cherry pick from: cd3b313d5f
2018-10-22 15:08:26 +11:00
71466cac1e Merge branch 'master' into blender2.8
Reverts: 92fd931e53
2018-10-22 14:59:12 +11:00
64a6c78a9a Fix T57328: 'Save As Copy' prints warning 2018-10-22 14:51:06 +11:00
02e6916890 Cycles: Enable shadow information in requested features when denoising is used
The shadow information isn't only used for shadowcatchers, but also to generate the shadowing feature pass of the denoiser.
2018-10-22 00:14:22 +02:00
7756973b0c Fix T57320: Crash when adding a linked scene, then deleting it.
You want to check collections (for NULL children) first, before you
actually go into those children collections checking for NULL objects...
2018-10-21 17:22:09 +02:00
c989c5d37d Fix non-sense overloaded code in remapping post-process of objects and collections.
In one case, code was calling the same func on bmain for all objects or
collections inside that bmain... seriously...
2018-10-21 17:20:17 +02:00
4e36ebf593 Optimize meta-ball basis check.
`BKE_mball_is_basis_for()` was processing whole name, when we can
actually rule out most of cases by just checking third char of the ID
names first, which is much, much cheaper.

Even though MBalls are not much used nowadays, that's a nice
optimization when this is called over a whole Main database full of
meta-balls objects...
2018-10-21 17:17:34 +02:00
William Reynish
96fef7db5a Icons: update geometry icons
- Tweaked icons for Box Select, Circle Select & Lasso Select.
- Tweaked icons for Rip Region & Rip Edge.
- Added icons for Bone Envelope, Bone Size, Pose Breakdown,
  Pose Push & Pose Relax.
- Added icons for curve Extrude, Extrude Cursor.

Also removed grease pencil mirror tool which wasn't an active tool,
and is now consistent with regular Edit Mode.
2018-10-21 16:23:15 +11:00
1f67db75f1 Cleanup: style 2018-10-21 16:23:15 +11:00
769b979abb Cleanup: trailing space 2018-10-21 16:23:15 +11:00
34f2ed7f71 Cleanup: compiler warnings 2018-10-21 16:23:15 +11:00
8c9f8d6cbb GP: Fix duplication when draw strokes in multiple windows
The stroke must be visible only in the current region and only visible when the stroke is completed.
2018-10-20 19:40:29 +02:00
541d07045b GP: Redesign drawing cache to support particles
Full redesign of the cache system used for drawing strokes and handle derived frame data.

Before, the cache was saved in bGPdata and a hash was used to manage several objects with the same datablock.

Old design made the use of particles very inefficient and prone to bugs and segment faults, and especially when this was mixed with onion skinning and multiple objects using same datablock. Also, there were some conflicts with the depsgrah logic (the old design was done before despgraph was in place) that made the use of hash not working.

The new design saves the data in the object runtime struct and avoid the use of any hash to find the right data. This improves the speed and reduce a lot the complexity of the code, memory allocation, hash overload and adds full support for particles and reused datablocks.

The particles can reuse the modifiers and shader effects of the original grease pencil object.
2018-10-20 09:08:34 +02:00
b634bf9fb6 Fix typo 2018-10-20 15:30:21 +13:00
37ffd95594 Fix: Drivers popover not showing
This was broken since cca87ccc75

The problem was that as this popover was defined in the C-code
for the Graph Editor, the relevant panel never got added to the
WM_paneltype registry, since only Python defined panels get
WM_paneltype_add() called when they are defined.

Since the majority of panels defined for regions are only used there,
a more localised fix was applied here by only adding the driver popover
to the global list manually.
2018-10-20 15:30:21 +13:00
Dalai Felinto
3c61efcf20 Multi-Objects: pose slide operators
* POSE_OT_breakdown
* POSE_OT_relax
* POSE_OT_push
* POSE_OT_propagate

Note: I could not test relax because of T57313.

Note 2: I believe those are the last armature related operators to be
ported - \o/
2018-10-19 21:20:24 -03:00
8e3a680ebe Fix Eevee Reflection CubeMap and Irradiance Volume on some Intel gpus
When you pass a struct as a parameter to a function, the qualifier "layout(column_major)" is lost.
2018-10-19 18:23:26 -03:00
Dalai Felinto
39ad5c3ef1 Rename BakeAction > NLA_OT_bake
This was already the bl_idname anyways.

Now this seems to be working, for single and multi-pose.
That said, the operator seems to fail on redo.
2018-10-19 16:35:09 -03:00
Dalai Felinto
f10bc11061 Remove defunct NLA_OT_bake
It's been 9 years too long.
And don't get this one confused with nla.bake (why would you even?).

The·BakeAction operator will be renamed to NLA_TO_bake next.
2018-10-19 16:14:42 -03:00
Dalai Felinto
caad2d7528 Multi-Objects: POSE_OT_select_grouped > POSE_SEL_SAME_KEYINGSET 3/3
Note for posterity, I couldn't figure out a way to test this mode
properly. That said, it should be working with multiple-poses now.
2018-10-19 15:45:34 -03:00
Dalai Felinto
ed34e57796 Multi-Objects: POSE_OT_select_grouped > POSE_SEL_SAME_LAYER 2/3 2018-10-19 15:45:34 -03:00
Dalai Felinto
b8a792ddd2 Multi-Objects: POSE_OT_select_grouped > POSE_SEL_SAME_GROUP 1/3
And disable the other options for now.
2018-10-19 15:45:34 -03:00
Dalai Felinto
7cc799d03d Cleanup: CTX_DATA_BEGIN_FOR_ID no longer needed 2018-10-19 15:45:34 -03:00
af58646467 Fix py API docgen script for new context members. 2018-10-19 20:13:50 +02:00
fbf4c11960 Make Static Override optional/hidden by default.
That feature will not be ready (or at least, not tested enough) to be
officially part of 2.80 beta. So we disable it by default, hidding it
behind a startup option (`--enable-static-override`), and a python
app var (`bpy.app.use_static_override`).

That way, people who really want to play with it can do it easily, while
not exposing/enabling non-production-ready feature by default.

Note that underlying override code remains active, i.e. files we do have
overridden data-blocks will be loaded correctly according to static override.
2018-10-19 18:38:19 +02:00
e6fe207a52 Eevee: LightProbes: Fix negative padding 2018-10-19 18:13:22 +02:00
905921d2b5 Fix function using same local variable name as output variable
This may fix issues with certain compiler.
2018-10-19 18:13:22 +02:00
eaa527f694 Dope Sheet: remove many hard-coded color and alpha constants.
Add the necessary colors and/or alpha components to the theme instead.
Also switch the background for ordinary channels to use the likely
intended theme option, instead of the window background color.

The general rule is that the channel color is drawn full strength in the
channel list on the left, and with alpha in the actual key frame area on
the right. This alpha is also reused with bone group colors.

Reviewers: brecht, billreynish

Differential Revision: https://developer.blender.org/D3813
2018-10-19 18:30:24 +03:00
891078b3bc UI: reorder and group blend modes in menus, similar to other apps.
Differential Revision: https://developer.blender.org/D3815
2018-10-19 17:21:01 +02:00
b2d495c2de UI: move reports / job back to status bar, but make it more visible with color. 2018-10-19 17:19:03 +02:00
be52fd0d0f Merge remote-tracking branch 'origin/master' into blender2.8 2018-10-19 09:16:26 -06:00
dcef3c30e3 build_depenencies: Fix url for openal. 2018-10-19 09:09:06 -06:00
cdef1e911b Fix shadows of sun type lights on some Intel gpus
When you pass a struct as a parameter to a function, the qualifier "layout(column_major)" is lost.
2018-10-19 11:12:30 -03:00
fbfa3999e1 Fix T57284: poor result UV unwrapping concave n-gon. 2018-10-19 15:32:01 +02:00
Dalai Felinto
374a8b9da5 Multi-Objects: Implement/Fix POSE_OT_select_constraint_target
This operator had an initial multi-objects implementation.
However it would not select target bones across different selected objects.
2018-10-19 09:42:43 -03:00
c17f2c2eb6 Outliner: Open empty collection when something is dragged into it
Reviewers: brecht

Differential Revision: https://developer.blender.org/D3814
2018-10-19 14:30:39 +02:00
Dalai Felinto
bdd02cc082 UV_OT_unwrap: Error messages
Make sure a message is not reported multiple times when working with
multi-objects. Like in 2.7x we may have two infos coming from the same operator.

In 2.7 we could report non-uniform xor non-scaled, and subsurface.
Now we can report each one of those errors separately.
2018-10-19 09:14:01 -03:00
Dalai Felinto
15d5cd961c Fix multiple-object uv selection not "deselecting" other objects 2018-10-19 08:49:55 -03:00
Dalai Felinto
d01e0d1ef1 CTX_DATA_BEGIN for active object only (..._from_active_object)
For now only `selected_pose_bones_from_active_object`, more options can
be added on demand.

Discussed this with Campbell Barton. We may need this only for selected
pose bones, time will tell.
2018-10-19 08:31:58 -03:00
51b2d06613 Versioning: name screens by their workspaces
Avoids all screens in the startup file being named 'Default.###'.
2018-10-19 20:29:15 +11:00
16882ca535 Image Space: make 'UV Edit' a separate mode
This is needed for splitting UV into its own editor, see: T54744
2018-10-19 20:15:18 +11:00
3c30d3bcbd Outliner: only drag element under mouse if it was not selected before
Reviewers: brecht

Differential Revision: https://developer.blender.org/D3811
2018-10-19 10:59:53 +02:00
c92f125e75 Partial Revert: bring back some comments 2018-10-19 10:51:33 +02:00
56fd821e97 RNA: add widget property access 2018-10-19 19:33:29 +11:00
3f542312cf Merge branch 'master' into blender2.8 2018-10-19 17:51:40 +11:00
0bbc6a903a Fix error disabling all addons 2018-10-19 17:49:48 +11:00
13a797466b UI: correct face center button active state 2018-10-19 17:10:40 +11:00
30b1e37e94 Fix T57295: Edit-mesh modes got out of sync 2018-10-19 15:48:39 +11:00
9b5183769b Cleanup: compiler warnings 2018-10-19 14:51:55 +11:00
c41fb5fac2 Fix UI message-bus automatic subscription 2018-10-19 14:46:24 +11:00
6add652c38 Fix T57294: Modifiers cage ignore face visibility 2018-10-19 13:57:00 +11:00
60d7740fe6 Tool System: option for transform drag action
See: T57203
2018-10-19 11:54:26 +11:00
a30c9f710a Partial revert '#if 0' cleanup
Partially revert 41216d5ad4

Some of this code had comments to be left as is for readability,
or comment the code should be kept.
Other functions were only for debugging.
2018-10-19 09:18:22 +11:00
642b77e874 Edit Mesh: Decrease the depth bias on vertices 2018-10-18 20:42:32 +02:00
de3f9303eb Fix Copy Selection to Buffer breaking library paths.
This is a bug experienced by animators in the Blender Studio that developers
have been trying to fix for a /long/ time.

What happens is that partial file writing extracts the needed datablocks from
the main list of datablocks into a smaller one. Afterwards they are added back
to the main list, but in some cases not exactly in the same order.

There is file path remapping code that depends on the datablocks being in
exactly the same order as before, and when this was not the case filepaths
would get swapped between datablocks

The reason datablocks are not restored in the same order is because the sorting
of datablocks by name is a) case insensitive and b) undefined if there are
multiple datablocks with the same name from different libraries. This should
be made well defined, but the fix in this commit is simpler.

The way animators ran into this bug is that they use the Copy Attributes addon
a lot, which has as the first item in the menu Copy Selection to Buffer. In
some cases this would be clicked accidentally when menu is near the edge of the
window, breaking the library paths which would only be noticed a much later on
file save and reload.

The way this bug was finally tracked down is that it was suspected that the
undo system was the cause, and so Bastien added library validation for undo.
When Hjalti then did undo and noticed the error, he remembered accidentally
clicking Copy Selection to Buffer just before, and we could finally reproduce
the bug.
2018-10-18 20:21:36 +02:00
9d318da4a7 Merge branch 'master' into blender2.8 2018-10-18 20:11:14 +02:00
1d05f0dc22 Fix Copy Objects to Buffer breaking library paths.
This is a bug experienced by animators in the Blender Studio that developers
have been trying to fix for a /long/ time.

What happens is that partial file writing extracts the needed datablocks from
the main list of datablocks into a smaller one. Afterwards they are added back
to the main list, but in some cases not exactly in the same order.

There is file path remapping code that depends on the datablocks being in
exactly the same order as before, and when this was not the case filepaths
would get swapped between datablocks

The reason datablocks are not restored in the same order is because the sorting
of datablocks by name is a) case insensitive and b) undefined if there are
multiple datablocks with the same name from different libraries. This should
be made well defined, but the fix in this commit is simpler.

The way animators ran into this bug is that they use the Copy Attributes addon
a lot, which has as the first item in the menu Copy Selection to Buffer. In
some cases this would be clicked accidentally when menu is near the edge of the
window, breaking the library paths which would only be noticed a much later on
file save and reload.

The way this bug was finally tracked down is that it was suspected that the
undo system was the cause, and so Bastien added library validation for undo.
When Hjalti then did undo and noticed the error, he remembered accidentally
clicking Copy Selection to Buffer just before, and we could finally reproduce
the bug.
2018-10-18 20:10:15 +02:00
4925bb1ec3 Links: update development fund link to new URL. 2018-10-18 18:57:01 +02:00
Dalai Felinto
ec305ea91f Fix assert/crash when copying RGBA color into RGB
For example, copy from viewport display color into brush color.
2018-10-18 16:14:40 +00:00
ce0a468408 Outliner: drop into master collection when below everything else
Reviewers: brecht

Differential Revision: https://developer.blender.org/D3810
2018-10-18 15:45:48 +02:00
41216d5ad4 Cleanup: Remove more #if 0 blocks
Continuation of https://developer.blender.org/D3802

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3808
2018-10-18 15:43:06 +02:00
cfdd902d2d Fix debug build after recent changes. 2018-10-18 15:32:54 +02:00
3e6b34dede Eevee: Fix default texture coord for procedural texture in world tree 2018-10-18 15:30:16 +02:00
6ef5bc1b99 Cleanup: node_tex_checker: Vectorize operation in GLSL 2018-10-18 15:30:16 +02:00
a18b806004 Fix use of uninitialized variable in cloth collision.
No apparent difference in a quick simulation, but was clearly wrong.
2018-10-18 12:59:27 +02:00
5869bf5002 Cleanup: fix compiler warnings. 2018-10-18 12:19:06 +02:00
William Reynish
b3814d8645 UI: closure some more panels by default, leaving open mostly 1 per tab. 2018-10-18 12:14:25 +02:00
108475dc01 PyAPI: Support for custom tool registration
Added a module bpy.utils.toolsystem which only exposes ToolDef,
to avoid scripts referencing bl_ui internals.
2018-10-18 17:13:22 +11:00
321c8232bc Tool System: expose shear tool x/y option 2018-10-18 13:55:01 +11:00
3e0c87b27d Keymap: use tweak event for shear 2018-10-18 13:06:23 +11:00
9b5cf593a6 Gizmo: tweak sorting to avoid view-aligned shear 2018-10-18 13:00:16 +11:00
678c200309 Gizmo: remove 'Click Anywhere' option
Having an invisible gizmo caused event handling problems (see: T56603).

This is hard to avoid since gizmos are similar to buttons in the way
they have priority over the regular keymap.

Transform events use tweak so events to fall though to the general
view 3d keymap (for cursor placement for eg).
2018-10-18 12:36:39 +11:00
4c1250570b Cleanup: style 2018-10-18 12:03:04 +11:00
a5467637f2 Cleanup: use mul_m3_series 2018-10-18 11:50:22 +11:00
eee8153299 Gizmo: depth sort shear gizmos 2018-10-18 11:50:22 +11:00
40f679ccb9 Cleanup: move gizmo sort functions into an API 2018-10-18 11:50:22 +11:00
a2922f9840 Optimization: Edit Mesh Overlay
In tests with edit_cage: performance jumped from 9.37ms to 9.17ms.
2018-10-17 15:46:58 -03:00
65ea9ec948 node_shader_utils: Proper fix for node_normalmap accessor returning ellipsis value.
Ellipsis value is internal ingredient only, to tag hidden _node_normalmap
'real' property as not yet initialized. Public node_normalmap accessor
should never ever have that value, it's either None or a valid node!
2018-10-17 20:18:40 +02:00
5c038a6930 Revert "Fix error on FBX export after material changes"
This reverts commit ce4cfbe108.

Obviously wrong 'fix', please do not touch other dev’s code, especially
in active/WIP area, when you do not fully understand it.
2018-10-17 20:17:02 +02:00
Dalai Felinto
ce4cfbe108 Fix error on FBX export after material changes
Update the addons repository as well.
2018-10-17 17:12:17 +00:00
c9faaa6ea7 DRW: Fix DRW_shgroup_create_sub returning source shgroup
instead of the actual sub group...
2018-10-17 19:01:56 +02:00
f666be6edf EditMesh: Fix uninitialized value causing red outline on edges 2018-10-17 18:49:27 +02:00
fd61b49d50 ObjectMode: Fix Outlines being drawn for BBox meshes 2018-10-17 18:09:37 +02:00
91e5e02aff ObjectMode: Fix instances with BoundBox drawtype not displaying 2018-10-17 18:09:37 +02:00
e5b18390fa Shrinkwrap: implement the use of smooth normals in constraint & modifier.
- Use smooth normals to displace in Above Surface mode.
- Add an option to align an axis to the normal in the constraint.

I've seen people request the alignment feature, and it seems useful.
For the actual aligning I use the damped track logic.

In order to conveniently keep mesh data needed for normal
computation together, a new data structure is introduced.

Reviewers: mont29

Differential Revision: https://developer.blender.org/D3762
2018-10-17 17:55:34 +03:00
d31ea3b89a Merge branch 'master' into blender2.8
Conflicts:
	source/blender/blenkernel/BKE_global.h
	source/blender/editors/undo/ed_undo.c
2018-10-17 16:50:36 +02:00
5f8222501c DEBUG_IO: add sanity check on libdata in undo step as well.
There are serious suspicions that weird corruptions faced by studio
artists may happen in undo/redo code, so let's see whether that's the
case.

With this, and when --debug-io arg is passed on startup, the whole lib
data are checked at every undo. This makes undo slower (from two to
three times slower), but it could help us spot better what happens...
2018-10-17 16:43:02 +02:00
496c325ffa Expose 'debug_io' flag in bpy.app 2018-10-17 16:42:36 +02:00
2d1b9f7841 Minor style cleanup. 2018-10-17 16:42:18 +02:00
938aa52313 Dope Sheet: fix assert in new hold code when bezier keys are not sorted.
Turns out this can happen during duplicate+drag operations.
2018-10-17 16:30:34 +03:00
e6adf9ac9a Fix T57096: Crash when scaling bones
Reviewed By: brecht

Differential Revision: https://developer.blender.org/D3777
2018-10-17 15:09:01 +02:00
21744217ce Cleanup: remove some #if 0 blocks
Reviewers: brecht, campbellbarton

Differential Revision: https://developer.blender.org/D3802
2018-10-17 12:43:41 +02:00
c6eb5651ba Eevee: Fix error when using texture coordinate on world shaders
Compilation errors were happening on OSX with errors of the type:
```ERROR: Input of fragment shader 'viewNormal' not written by vertex shader```
2018-10-17 12:18:06 +02:00
53d152258e UI: particle deflector options in topbar
See: T57228
2018-10-17 18:56:21 +11:00
ec7c3b5b4f Cleanup: better naming
Suggested by Campbell here: https://developer.blender.org/rB09cd651bb7e59044cbcd0664e8b1064cb37734ed
2018-10-17 09:53:05 +02:00
8e071e76de Gizmo: change axis used for shear handles
The shear direction should be more obvious this way.
2018-10-17 17:47:09 +11:00
80fb943e4f Transform: map mouse input to shear direction 2018-10-17 17:18:30 +11:00
9273b91eef Transform: show arrows for 'custom' ratio input
Arrows are now shown for vertex/edge slide.
2018-10-17 17:14:36 +11:00
7ce387b1cd RNA: disable notifiers from property updates
This was re-enabled because it made copy-on-write bugs hard to
track down.

Since copy-on-write implementation has been simplified
this isn't a problem anymore.
2018-10-17 16:17:00 +11:00
8ecec995ed Cleanup: naming 2018-10-17 14:09:32 +11:00
ae093e6a84 Cleanup: whitespace 2018-10-17 14:08:44 +11:00
96dc1ad308 Fix T56735: Autosmooth option corrupts UVs 2018-10-17 13:26:27 +11:00
Dalai Felinto
098b86475d Use CTX_DATA_BEGIN_FOR_ID 2018-10-16 22:18:02 -03:00
Dalai Felinto
ff9e0b6781 Fix sculpt curve stroke paint 2018-10-16 21:41:29 -03:00
96bc69b117 Merge branch 'master' into blender2.8 2018-10-17 11:26:59 +11:00
Dalai Felinto
df816d534f Fix cmake not triggering rebuild on .glsl changes
At least on windows we do not re-run datatoc when the .glsl files change.

To test is simple, just change edit_mesh_overlay_common_lib.glsl
remove lines, write plain text, ..., now rebuild and go in edit mode
with the default cube.

I also had to remove the entry in gpu/CMakeLists.txt for
gpu_shader_material.glsl since this was being tracked directly, as well
as running data_to_c_simple (otherwise CMake raises an error for
duplicated entries).

We probably want to do the same for the other datatoc functions.

Reviewers: LazyDodo, brecht
Differential Revision: https://developer.blender.org/D3803
2018-10-17 11:24:33 +11:00
Dalai Felinto
7baa8d2e8f Multi-Objects: POSE_OT_ik_add + POSE_OT_constraint_add_with_targets
You can now add the target from the non-active armature when they are
both in pose mode.

There were different ways of going about those operators:

* We could create one constraint on each active bone of each object.
  That wouldn't follow what creating constraints from the UI does
  though.

* We could change the selection/active order and create a constraint for
  all the selected bones, to the active bone. However this would change
  the design of changing only the active bone (which also is the one we
  see in the buttons editor).

But in the end I think it makes more sense to let users set a constraint
from a charactor to a prop in a handy way.

This is pretty much what we had in 2.7x. There we would go for the
selected objects, if no selected bone was found in the active object.
In 2.8, however, we need this change to make things working as
before/intended.
2018-10-16 21:10:31 -03:00
41ad845531 Optimization: Edit Mesh Overlay: Avoid computing fixvec unnecessarily.
This brings a big difference to meshes with edit cage adjusted for modifiers.
In my tests, the suzanne with subdivision modifier level 3 went from 4.80ms to 3.05ms.
2018-10-16 20:42:50 -03:00
Dalai Felinto
418c16bd3b Multi-Objects: POSE_OT_constraints_copy (refactor)
This was already supporting multiple objects, but I changed it to use the API
we are using elsewhere.
2018-10-16 19:20:01 -03:00
Dalai Felinto
647218af07 Multi-Objects: POSE_OT_constraints_clear 2018-10-16 18:41:45 -03:00
Dalai Felinto
f3153f1c7f Multi-Objects: POSE_OT_ik_clear 2018-10-16 18:30:27 -03:00
Dalai Felinto
540f37003c Fix armature bones spline ik lines offset 2018-10-16 18:28:35 -03:00
Dalai Felinto
f280f83f83 Fix armature bones ik lines offset 2018-10-16 18:22:17 -03:00
1f1da26840 Edit Mesh Overlay Geometry Shader: Ignore correction geometry for loops that are not part of an edge.
By the tests I could only observe a considerable difference in the peformanse when the vertex size is 30.
Vertice 3 showed no difference in a suzzane with subdivision modifier level 3 + show-on-cage.

Point Size 30: 7.29ms vs 2.55ms

Reviewers: fclem

Reviewed By: fclem

Differential Revision: https://developer.blender.org/D3805
2018-10-16 23:04:57 +02:00
2ab6272233 DRW: Fix assert with BoundBox object display mode 2018-10-16 22:53:32 +02:00
Dalai Felinto
28a3958cb3 Fix cmake not triggering rebuild on .glsl changes
At least on windows we do not re-run datatoc when the .glsl files change.

To test is simple, just change edit_mesh_overlay_common_lib.glsl
remove lines, write plain text, ..., now rebuild and go in edit mode
with the default cube.

I also had to remove the entry in gpu/CMakeLists.txt for
gpu_shader_material.glsl since this was being tracked directly, as well
as running data_to_c_simple (otherwise CMake raises an error for
duplicated entries).

We probably want to do the same for the other datatoc functions.

Reviewers: LazyDodo, brecht
Differential Revision: https://developer.blender.org/D3803
2018-10-16 16:58:12 -03:00
Harley Acheson
90d1d39a95 UI: fix misaligned underline for menu item shortcut keys. 2018-10-16 20:31:42 +02:00
Harley Acheson
dd199d8032 UI: tweak icon spacing in menus to put them in the middle of the edge and text. 2018-10-16 20:31:03 +02:00
5134ed60d6 UI: icon set updates Andrzej Ambroz.
This adds and changes various icons, in particular modifier and force field
icons are now included.
2018-10-16 20:23:43 +02:00
569dfe5784 Fix T56250: brush cycling with shortcuts is broken.
It was cycling both in the brush system and tool system which conflicted.
Now it uses just the tool system. This is more of a temporary fix until
the new tool/brush decoupled design is in place.
2018-10-16 20:19:11 +02:00
fb550ca6b9 node_shader_utils: fix bad setting of use_nodes in readonly case.
Also added access to extension property in texture wrapper.
2018-10-16 19:58:50 +02:00
f250f9256e Dope Sheet: unify comparison threshold for the ActKeyColumn tree.
Use the same floating point precision threshold to merge keys
when building the tree as when searching it.
2018-10-16 19:49:03 +03:00
c7a84c23f1 Dope Sheet: rewrite computation of keyframe hold blocks.
Computation of hold blocks was done by storing ranges (with start and
an end, and likely overlapping) in a tree keyed only by the block start.
This cannot work well, and there even were comments that it is not
reliable in complex cases.

A much better way to deal with it is to split all ranges so they don't
overlap. The most thorough way of doing this is to split at all and every
known keyframe, and in this case the data can actually be stored in the
key column data structures, avoiding the need for a second tree.

In practice, splitting requires a pass to copy this data to newly added
keys, and the necessity to loop over all keyframes in the range being
added. Both are linear and don't add excess algorithmic complexity.

The new implementation also calls BLI_dlrbTree_linkedlist_sync for
its own needs, so the users of the *_to_keylist functions don't have
to do it themselves anymore.

Differential Revision: https://developer.blender.org/D3790
2018-10-16 19:27:10 +03:00
bd24ee8cb6 Templates: updated 2D animation template from grease pencil team. 2018-10-16 18:09:10 +02:00
cf2e5e3163 Small change to Annotation panel
Add one line more by default
2018-10-16 17:59:42 +02:00
d09a46c2ac UI: tweak and fixes for cycles sampling panel, remove unneeded decorators. 2018-10-16 17:14:49 +02:00
324e8ebb96 UI: put show emitter option in particles panels.
This settings is duplicated from the object duplication panel, but
otherwise it's too hard to find.
2018-10-16 16:54:45 +02:00
William Reynish
4aac9c934f Fix remaining copy/paste button header, these are in menus now. 2018-10-16 14:58:54 +02:00
William Reynish
dacc539f57 Fix incorrect icon for UV selection sync. 2018-10-16 14:58:11 +02:00
3f3eae675a Cleanup: naming
'mp' was a reference to 'manipulator'
2018-10-16 22:09:27 +11:00
48034f0eb3 Tool System: add gizmo for shear tool 2018-10-16 22:06:23 +11:00
5b9ab20fe4 Transform: axis support for shear tool 2018-10-16 22:06:23 +11:00
345175082b Fix T57247: Render animation does not respect render single view layer
Reviewers: brecht

Maniphest Tasks: T57247

Differential Revision: https://developer.blender.org/D3800
2018-10-16 13:00:45 +02:00
eba1b0487c Event System: don't invoke operator that should only be executed
Problem was that the event was not `NULL` even though the `context` is `WM_OP_EXEC_*`.
I noticed this problem when dropping .blend files into Blender.
Instead of only executing `WM_OT_open_mainfile`, it was invoked (opening a file selector).

The `wm_operator_invoke`, which also executes operators, always invokes operators when `event != NULL`. So setting `event` to `NULL` tells `wm_operator_invoke` not to invoke but to execute the operator.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3799
2018-10-16 11:48:12 +02:00
09cd651bb7 View 3D: fix image dropping in 3d view
Reviewers: brecht

Differential Revision: https://developer.blender.org/D3798
2018-10-16 11:18:16 +02:00
f807371c3e GP: Set Dopesheet layers in Top-Down order
The layers are Top-Down and the dopesheet must use the same order.
2018-10-16 10:37:18 +02:00
0b5786e96c GP: Fix Blur shift when add more samples
The image was moving in +X and +Y when added samples due round precission.
2018-10-16 10:23:13 +02:00
88f392f045 Set Annotation list in Top-Down order
This makes consistent the orders of any grease pencil related list
2018-10-16 08:45:01 +02:00
c1b8ce3170 Fix crash in loose edge check 2018-10-16 15:02:30 +11:00
a57f32b14c Cleanup: headers 2018-10-16 13:18:03 +11:00
1b65a95a08 Mesh: use mesh tessellation for face-map drawing
Also use batch instead of immediate mode.
2018-10-16 13:12:00 +11:00
c5f4c69643 Cleanup: replace check for derivedFinal w/ mesh_eval 2018-10-16 10:33:44 +11:00
e75169974c Fix UI error in annotation tool 2018-10-16 09:13:26 +11:00
8a94425e96 Cleanup: redundant check for hidden edge 2018-10-16 09:01:52 +11:00
3852e4bb8f Cleanup: redundant len() checks 2018-10-16 08:52:46 +11:00
20d38dafbd Mesh: replace derived-mesh with mesh API's for project paint 2018-10-16 08:45:25 +11:00
cf910575b1 Add popover for Annotations in topbar
Part of T57211
2018-10-15 18:54:23 +02:00
9ecf68e8ae Eevee: Fix Missing alpha when rendering with DOF
NOTE: There is a float imprecision near the focus plane
due to the current technique used for DOF. This makes the alpha channel
transparent on nearly in focus objects even when they should not.
This artifact should be fixed when the DOF will use scatter as gather for
low brightness areas.

Fix T57042 : Eevee does not render alpha when DOF is turned on
2018-10-15 16:04:50 +02:00
478899dee7 Edit Mesh: Fix missing loop normal display 2018-10-15 16:04:50 +02:00
22814ca555 Fix related to T55961: Glitch in selecting loose edges on some AMD drives. 2018-10-15 09:54:24 -03:00
c2afa3ef46 Edit Mesh: Add comments explaining weirdness in the code. 2018-10-15 09:50:31 -03:00
2875fb9e7b Texture Paint: Don't create material if operation is cancelled
Reviewers: brecht

Differential Revision: https://developer.blender.org/D3793
2018-10-15 13:53:14 +02:00
d1145306ec Texture Paint: remove odd UI behavior
Differential Revision: https://developer.blender.org/D3791
2018-10-15 12:17:45 +02:00
8fa16411e6 Fix an obvious typo: use CD_MASK_CUSTOMLOOPNORMAL for CustomDataMask. 2018-10-15 12:28:44 +03:00
0c39453071 Cleanup: Edit Mesh shader: Remove unecessary varying 2018-10-15 10:43:49 +02:00
38828309d3 Cleanup: unused code 2018-10-15 18:12:14 +11:00
918bb05799 GP: Cleanup style 2018-10-15 08:42:47 +02:00
4479813ae5 GP: Small tweak to improve speed 2018-10-15 08:42:46 +02:00
dbb35ff7c8 Cleanup: unused functions 2018-10-15 17:37:54 +11:00
27389362a4 Mesh: remove DerivedMesh for boundbox calculation
Fixes edit-mesh not having a boundbox calculated for it.
2018-10-15 17:14:05 +11:00
0941d99323 Cleanup: remove unused functions 2018-10-15 16:59:27 +11:00
2deeca4fb0 Cleanup: remove references to DerivedMesh 2018-10-15 16:06:42 +11:00
0ef4c4e12a Mesh: remove DerivedMesh for displist conversion 2018-10-15 16:01:39 +11:00
62a3dfec78 Mesh: mostly remove DerivedMesh for vertex parent
The exception is for subdivision surface which still uses derived mesh.
2018-10-15 15:31:17 +11:00
5b86899f21 Mesh: remove DerivedMesh for face-map drawing 2018-10-15 15:12:36 +11:00
f9f67e0239 Mesh: remove DerivedMesh from various places 2018-10-15 14:29:46 +11:00
881334c499 Cleanup: remove DerivedMesh bvhtree_from_mesh_get 2018-10-15 13:40:46 +11:00
2a2db39f3a Bake: remove derived mesh for bake API
Multires baking still uses DerivedMesh.
2018-10-15 13:38:58 +11:00
cd48d4576b Depsgraph: Add proper API functions for CustomDataMask dependencies.
There were a few copies of the same few lines in depsgraph build code,
so it seems to be logical to introduce a function for it, and make it
accessible from C code for completeness.

As an example, register the mask needs of the Data Transfer modifier.
2018-10-14 20:48:39 +03:00
9a38a91f41 Fix T55961: Anomalous edges cage on some AMD buggy drivers.
Reviwed on irc by @fclem.
2018-10-14 14:07:45 -03:00
ac61eb3900 GP: Fix several issues in blur FX
There were some problems with the z-depth and especially when tries to blur a pixel outside the viewport.
2018-10-14 12:21:44 +02:00
55e3c17ccc Edit Mesh: Optimize the overlay triangle geometry shader
On my test it's 30% faster than before.

Test case : Suzanne, subsurf lvl3, 64K tris, Edge select mode for fair
comparison.

0.95ms before optimization
0.64ms after optimization

Note that this only optimize the "nicest" display of edit mesh overlays,
not the one when rotating the view where half of the border edges are
missing.
2018-10-13 23:55:30 +02:00
de76a809f9 Edit Mesh: Do not use barycentric coord in EDGE_FIX shader and ...
... display vertex even when occluded.

Add back the vertex display because occluded vertex are not visible when
the triangle is almost parallel to the view.

The problem with the barycentric coord is that they are hard to work with
and their derivatives not enough precise to compute the vertex positions.

So we need to pass the vertices scree positions down to the fragment shader.
2018-10-13 23:48:19 +02:00
4e168e0036 Edit Mesh: Fix and increase the depth bias on vertices 2018-10-13 23:48:19 +02:00
b8327ee129 GP: Remove Layer order userprefs parameter
After a lot of discussion about this option (see 18f1175940) we have decided set always the order of GP layers in 2D mode (Top->Down) and remove the parameter from User Preferences screen.

Internally all works equal, but in the UI the list is inverted.

The filter buttons to reverse the list or sort alphabetically have been removed because these buttons are not logic in this context.
2018-10-13 20:34:36 +02:00
dd6bf3f84a node_shader_utils: several fixes, improvements and cleanups.
Fix broken behavior in case of texcoords mapping (we do need texcoords
node in all cases, then, even for UV coords...).

Use nodes by default when generating new write-allowed wrapper around a
material.

Do not try to find nodes in existing tree all the time, do it only once,
even for lazy-initialized nodes (through accessors).

Fix ugly spacing in property accessors (since it looks like some people
do not like a single 'block' with both getters, setters and prop
definition, at least use one sep line everywhere (and two sep lines to
separate properties)...
2018-10-13 19:36:47 +02:00
b11515332b GP: Improve qualitty in Wave when alpha is extreme 2018-10-13 18:28:33 +02:00
78673e5780 GP: Add more blur samples to some FX 2018-10-13 18:24:57 +02:00
7b9049f278 GP: Improve Blur FX quality in transparency. 2018-10-13 18:21:54 +02:00
Dalai Felinto
605fbad872 ED_pose_recalculate_paths: Run only for active object
New iterator CTX_DATA_BEGIN_FOR_ID, to restrict the loop to the specified object only.
This is not super efficient, but it should be fine for now.

I will talk to other developers. A more elegant solution would be to
have something like "active_object_selected_pose_bones" in the context.
2018-10-12 19:53:07 -03:00
Dalai Felinto
c462c43c1a Multi-Objects: POSELIB_OT_pose_add
Make it work only for the active object bones
2018-10-12 19:51:11 -03:00
Dalai Felinto
cf74a6db7e Revert "Multi-Object Pose: POSE_OT_select_parent by Harsha"
This reverts commit dcf1210c44.

In 2.79x select parent would only work for the active bone.
There is no reason to have it working for multi-objects.
2018-10-12 19:34:24 -03:00
Dalai Felinto
e02f6ed13d Pose path: skip time printing when not DEBUG_TIME 2018-10-12 19:34:21 -03:00
Dalai Felinto
478446e3a4 Revert "Multi-Objects: POSE_OT_paths_*"
This reverts commit 178530cc50e2fb4bd3faf4fff22392a58688bed1.

Those operators are called from the UI, which only takes into
consideration the active object for the parameters and whether to call
reset, update or calculate.

We can re-revert if needs be.
2018-10-12 17:44:29 -03:00
Dalai Felinto
3ffc2a8330 Multi-Objects: POSE_OT_paths_*
* POSE_OT_paths_clear
* POSE_OT_paths_calculate
* POSE_OT_paths_update

Despite my personal opinion on the matter, those operators were listed
as to be converted (see T54650).

They are called from the UI, where you only see the parameters for the
active object/armature.

I will commit and revert soon after, so we can quickly bring it back
once we re-visit this design.
2018-10-12 17:44:29 -03:00
5bf1128642 Dope Sheet: fix hold highlighting for non-bezier interpolation.
The automatic highlighting of constant curve areas was checking that
the bezier handles are horizontal even if a non-bezier interpolation
mode was active. Conversely, it was highlighting based on just handles
with Elastic interpolation, which always generates movement.
2018-10-12 22:20:32 +03:00
e333765d3e Python GPU: Best description for exceptions 2018-10-12 15:48:55 -03:00
Dalai Felinto
75e1c70577 Revert "Fix for ARMATURE_OT_layers_show_all
This reverts commits:
* 2a2858b30d
* 7cf8eed5e0

Similar to ARMATURE_OT_layers_show we should keep this operator
single-object oriented. This one is a bit more tricky since we
may want to quickly see all the layers of all the armatures.

I will check with animators what is the best way to proceed here.
But overall I think it makes sense to have this only for the active
object.
2018-10-12 15:26:23 -03:00
Dalai Felinto
894c3b1532 Revert "Multi-Objects: ARMATURE_OT_armature_layers
This reverts commits:
* 29a281f9ef
* 3a8b56ce24

This operator shouldn't behave multi-objects. This would only work
if all the selected objects had the same logic for their layers,
which may be likely for characters, but it won't be for mixing props and
characters.
2018-10-12 15:26:23 -03:00
Dalai Felinto
29a281f9ef Multi-Objects: ARMATURE_OT_armature_layers for pose
That said, I think we should not support multi-object for either edit or pose armatures.
2018-10-12 15:15:22 -03:00
Dalai Felinto
bb7f4f5714 Multi-Objects: POSE_OT_bone_layers 2018-10-12 15:05:46 -03:00
Dalai Felinto
299b51dc83 POSE_OT_rotation_mode_set: Adding missing notifier
Otherwise the space button does not redraw.
2018-10-12 14:56:13 -03:00
Dalai Felinto
3b9b6a80ba Multi-Objects: POSE_OT_rotation_mode_set 2018-10-12 14:55:15 -03:00
Dalai Felinto
dba7312f5e Rename: multi_changed > changed_multi
We are using changed_multi plenty more than multi_changed. May as well keep it
consistent across the code.
2018-10-12 14:48:12 -03:00
Dalai Felinto
c7bbcfe954 Multi-Objects: POSE_OT_autoside_names
Using CTX_DATA_BEGIN_WITH_ID here.

Unlike the edit mode counter-part this operator is well served with the
macro above. ARMATURE_OT_autoside_names needs to treat mirrored bones
separately, while for pose we don't handle those cases.

Be ware that using this macro makes the code smaller, however it also
tags every single (selected) pose to update, regardless of whether we
changed the names of the bones.

In this case it is fine since we most likely renamed all the bones.
But In other cases I'm still a bit wary of using CTX_DATA_BEGIN_WITH_ID
instead of BKE_view_layer_array_from_objects_in_mode_unique_data.

To be seen in upcoming commits. Stay tuned.
2018-10-12 14:42:08 -03:00
Dalai Felinto
2677e99217 Revert "Multi-Objects: ARMATURE_OT_select_hierarchy"
This reverts commit dcc623e7e7.
2018-10-12 13:49:55 -03:00
Dalai Felinto
d95bb08f39 Multi-Objects: POSE_OT_select_hierarchy (no real change)
This operator doesn't need any changes. Following the guideline of
multi-objects behaving alike joined armatures, there is no need
to change any armature that is not the active one.

That said I will revert the behaviour of ARMATURE_OT_SELECT_hierarchy to
follow the same rule (i.e., revert dcc623e7e7).
2018-10-12 13:49:55 -03:00
77653d97fb Edit Mesh: Fix issue with Edit cage on some buggy drivers 2018-10-12 17:21:04 +02:00
03d0219d7a Edit Mesh: Refactor edit mesh drawing
This decouple the vertex display from the face+edges.

This is to reduce the number of triangles required to fix the edges
artifacts (aliasing) and increase viewport reactivity when not actively
navigating (ie. mouse scroll).

Also it makes all vertices visible (not cut-off) even when navigating.

However it makes the navigation drawing a bit slower because it has to
render twice.

Also add a depth bias to the wires to avoid depth fighting when previewing
final mesh (modifiers applied).
2018-10-12 16:43:40 +02:00
fe4840ed4d Wireframe Overlay: Use Barycentric coord to optimize shader
This also fix a driver bug I was having on Linux + Mesa + AMD Vega.
2018-10-12 16:38:55 +02:00
01745051de DRW: Add DRW_shgroup_create_sub to create children shgroup
This makes is easy to create nested drawcalls that will inherit all the
parents properties. This is usefull if only a few uniforms changes for that
drawcall.
2018-10-12 16:38:55 +02:00
9b692ecabd GPUTexture: Add support for GPU_RGBA8UI 2018-10-12 16:38:55 +02:00
f2e6f8bb8d Fix misaligned icon in search buttons after recent changes. 2018-10-12 15:55:36 +02:00
78390f7724 Python: change node_shader_utils diffuse RGBA to base_color RGB.
Best to give its actual name so it's clear that the Principled BSDF does
not have a diffuse color exactly, and does not have an alpha component.

Also image textures use UVs by default, so avoid creating a texture
coordinate node for that.
2018-10-12 15:55:09 +02:00
86635402d5 Mesh: remove derivedFinal from various places 2018-10-12 19:29:40 +11:00
cd3b313d5f Prevent G.fileflags changes when WM_OT_save_mainfile() is called from script
This is to solve an issue where a blend file could be compressed
unbeknownst to the artist. This happened in the following situtation:

- Artist edits an uncompressed blend file.
- Some script saves a compressed blendfile to a separate location.
- When the artist saves the file (s)he is editing (File>Save, or Ctrl+S),
  it was silently compressed.
2018-10-12 10:24:25 +02:00
5eeb6c00be GP: Disable reverse list order when uncheck userprefs option
Before, the list kept the reverse order enabled in the filter. Now the filter is reset when the option is disabled and don't need any user change or restart.
2018-10-12 09:55:43 +02:00
fe1befcadf Modifier: remove derived mesh call for bind 2018-10-12 18:39:24 +11:00
b15123d279 Cleanup: remove unused derived mesh wrappers 2018-10-12 18:14:11 +11:00
8962b5e16b GP: Removed unused lines after previous commit
The reverse order is controlled inside operator.
2018-10-12 09:08:57 +02:00
54ecff1fca Mesh: remove derived mesh for nurbs conversion 2018-10-12 18:05:26 +11:00
75e4648e27 Mesh: remove derived mesh for conversion 2018-10-12 17:49:38 +11:00
5400d6a8fa DRW: correct loose edge hidden face check 2018-10-12 17:00:10 +11:00
db91414d7b Cleanup: minor mesh allocation changes 2018-10-12 16:47:43 +11:00
eef365a126 Cleanup: use const pointers 2018-10-12 16:42:11 +11:00
33e2cf2aab Cleanup: fill vertex buffer in order 2018-10-12 16:25:16 +11:00
8ef8b64fc6 DRW: edit-mesh cage loose edge/vert support 2018-10-12 16:05:31 +11:00
f4b0684a3f DRW: edit-mesh cage selection support 2018-10-12 13:05:18 +11:00
fcc88a6bf0 Cleanup: use generic macro 2018-10-12 10:42:12 +11:00
bbc5571093 Cleanup: trailing space w/ slash, right shift 2018-10-12 10:36:45 +11:00
bbca6af6a5 Fix crash in grease pencil fill 2018-10-12 10:22:05 +11:00
08ac015360 Cleanup: redundant 'struct' & 'static' vars 2018-10-12 10:12:25 +11:00
75bdfa2d46 Cleanup: style 2018-10-12 10:04:20 +11:00
6f6d76554f UI: move layer up/down reverse into the operator 2018-10-12 09:54:26 +11:00
45881003f0 GP: Remove old simplify code
The simplify is controlled by brush and thsi function is not used.
2018-10-11 19:16:55 +02:00
fb8332b1c0 GP: Reorder Userprefs grease pencil parameters 2018-10-11 19:14:18 +02:00
070c95dfe4 GP: Invert merge down if layer list is reversed 2018-10-11 18:49:03 +02:00
d6dc8cda8b GP: Invert UP/DOWN buttons when layer list is inverted
This fix the task T56985
2018-10-11 18:30:10 +02:00
18f1175940 GP: Add new Userprefs parameter to reverse layer list
This allows to configure the system as any other 2D software with the layers in a Top/Down order.
2018-10-11 18:30:10 +02:00
d12b3767f8 Add new parameter to reverse UIList items
Now, it was possible to invert the order of the UIlist using the filter, but it was impossible to know if the list was inverted or not.

The problem with this is that any other element depending of this value could not be adjusted.

See https://devtalk.blender.org/t/how-to-access-uilist-properties/2268

The new parameter allows to set the reverse order by default. When the list is set as reverse, it cannot be inverted again, so the invert button is removed of the filter.

This change is needed to fix a requested feature for Grease Pencil (T56985) and because a lot of 2D softwares use the drawing layers in the inverse order used in Blender.
2018-10-11 18:30:09 +02:00
cc1d6b849d Fix T56898: misaligned icons in buttons in popovers. 2018-10-11 17:45:17 +02:00
cd23e89634 Fix (unreported) wrong 'use_sep' setting for menu items.
This option defines whether or not menu items drawing code must
separate drawstring in two, keeping right part at all cost.

This is used to show shortcuts of operators' enum entries usually.

Previous way to decide that was based on button having an RNA prop
pointer, assuming those without it were not 'data buttons' and hence
needed the shortcut special handling thingy.

That's wrong is many, many cases (especially since search templates
often generate more than one buttons, not all linked to actual RNA
data). So instead now checking whether a button has an optype set or
not, hopefully this will be much more accurate...

Other solution if thsi also fails, is to add new flag to buttons, and
explicitely set it when needed, instead of trying to guesstimate...
2018-10-11 17:36:37 +02:00
4add09053c GP: Cleanup duplicate code moving to function 2018-10-11 16:05:08 +02:00
250ba17c83 GP: Cleanup duplicate code 2018-10-11 15:18:26 +02:00
45477efd0e UI: increase spacing between icon and text.
To avoid the icon and text blending together too much, which happens with
the new monochrome and slightly bigger icons.
2018-10-11 14:20:25 +02:00
d90eb35662 UI: tweak vertical centering of text in buttons.
This effectively moves up the text by one pixel to make it look more
centered in the button and relative to the icon.
2018-10-11 14:19:25 +02:00
3f0873fa1e Eevee: Fix blank output if scene complexity is high
Encountered on Nvidia + Linux, it seems that doing everything all at once
can make the driver give up the whole command list and return nothing as
the output of the render.
2018-10-11 13:20:00 +02:00
c901ebcd21 DRW: add mapped edit-mode face-dot drawing 2018-10-11 17:23:29 +11:00
5e9afe5018 Missed when bumping flags
Ideally these wouldn't be repeated in multiple places.
2018-10-11 17:02:42 +11:00
641190adff DRW: Initial edit-mode cage support
Modifiers such as sub-surf and mirror now work with show-on-cage.

Selection and loose geometry still needs to be supported.
2018-10-11 16:53:25 +11:00
d74b89aed0 DRW: add ability to skip drawing vertices 2018-10-11 16:43:38 +11:00
b7363941f7 Cleanup: make BKE_mesh_ensure_normals_for_display public 2018-10-11 16:34:12 +11:00
bf455c2ca9 DRW: avoid edit-mode layer lookups for freestyle 2018-10-11 15:24:26 +11:00
fb79357b3e Cleanup: assign a var to check an edge is real
Makes code slightly more readable.
2018-10-11 15:15:30 +11:00
fd2ffb0b9e RNA: remove redundant new_from_object/to_mesh arg
If the caller wants loop-tris, there is a function to calculate them.
2018-10-11 12:24:38 +11:00
92a494ed51 DRW: remove redundant editmode mesh tessellation
Also re-order logic so loop indices are ensured to be valid.
2018-10-11 11:41:24 +11:00
121c94b082 Cleanup: mesh iterators
- Split indexed/non-indexed into separate loops.
- Avoid assigning the same value in the loop.
- Use const variables.
2018-10-11 10:34:30 +11:00
4728eed70c UI: increase size of copy buffer
The length was 400 which isn't enough for some file paths.
2018-10-11 10:09:04 +11:00
926b9ae80a UI: copy-buffer was cleared w/ non-text buttons
Also correct invalid strncpy use.
2018-10-11 10:04:11 +11:00
f5e51ded09 Merge branch 'master' into blender2.8 2018-10-11 09:38:17 +11:00
b618c185cb Fix incorrect strncpy use
Didn't ensure null terminated.
2018-10-11 09:36:43 +11:00
59e4935266 Fix draw manager out of bounds assignment 2018-10-11 09:29:23 +11:00
0f147bf6d6 Remove image based bitmap font support
Was used in the game engine and is no longer used.
2018-10-11 09:27:29 +11:00
66738d4aa0 Merge branch 'master' into blender2.8 2018-10-11 09:08:30 +11:00
2083a7e274 Cleanup: style (pointers) 2018-10-11 09:03:39 +11:00
95f2604ea7 Cleanup: indentation 2018-10-11 08:20:35 +11:00
060adfbd1b Correct case 2018-10-11 08:14:04 +11:00
c2519d8521 GP: New Glow Shader FX (wip)
New shader to simulate a glow of the color.

The glow can be generated by luminance threshold or using a selection color.
2018-10-10 23:00:56 +02:00
d29f98e3f2 Python GPU: Use PyC_AsArray_FAST in GPUVertBuf.fill_attribute.
This allows you to use other types of sequences besides tuples.
2018-10-10 13:39:03 -03:00
5e88d103f7 Python GPU: Use PyC_AsArray_FAST when initing GPUIndexBuff.
This allows you to use other types of sequences besides tuples.
2018-10-10 13:39:02 -03:00
Dalai Felinto
1b1702abb0 Fix runtime error: shift of uint
The warning was: runtime error: left shift of 1 by 31 places cannot be
represented in type 'int'

Patch by Clément Foucault.
2018-10-10 13:35:34 -03:00
7dc2a5a267 Fix T57144: saving theme presets not working after recent changes. 2018-10-10 18:27:01 +02:00
Dalai Felinto
4149ee9bf6 Revert "Cmake build missing geom icons"
This reverts commit 468474a653.
2018-10-10 16:10:58 +00:00
54931324f5 Fix diagonal line artifact in view navigate icons.
Thanks to Clément for finding the fix!
2018-10-10 17:47:26 +02:00
e65784a051 Python API: add loop triangles access, remove tessfaces.
Loop triangles are tessellated triangles create from polygons, for renderers
or exporters that need to match Blender's polygon tesselation exactly. These
are a read-only runtime cache.

Tessfaces are a legacy data structure from before Blender supported n-gons,
and were already mostly removed from the C code.

Details on porting code to loop triangles is in the release notes.

Differential Revision: https://developer.blender.org/D3539
2018-10-10 17:43:44 +02:00
Dalai Felinto
468474a653 Cmake build missing geom icons
The icons themselves (their .dat) still need to be updated. But this will make
sure they are part of the pack next time the icons are updated.
2018-10-10 14:56:44 +00:00
074cbc403c Fix material properties Python error when there is no active object. 2018-10-10 15:09:12 +02:00
ae3ac8062f Fix T57128: error in Blender 27X keymap (Z key)
Reviewed By: brecht

https://developer.blender.org/D3781
2018-10-10 14:32:24 +02:00
1fad887d9e Fix T57130: Crash when running 'set active object as camera' on an empty
Reviewed By: brecht

https://developer.blender.org/D3782
2018-10-10 14:30:44 +02:00
84cf670d1d Modifier: Fix cage option for deform modifiers
Show-on-cage and show-in-editmode options now work as it did in 2.7x
(but only for deformation).
2018-10-10 15:53:52 +11:00
606ac3eb7f Fix modifier cage option being overwritten
Editmesh modifier calculation behaved as if eModifierMode_OnCage
was enabled for all modifiers.

Remove assignment after all modifiers are calculated.
2018-10-10 15:22:47 +11:00
9751d7188e Cleanup: naming 2018-10-10 15:18:34 +11:00
9bb1bd0b5e Correct bad statvis default in recent commit 2018-10-10 15:11:00 +11:00
62020eddec Cleanup: naming
- mesh_calc_modifiers & editbmesh_calc_modifiers
  now follow similar naming.
- me and mesh were too easily confused in mesh_calc_modifiers
  (remove 'me', access ob->data).
2018-10-10 15:01:46 +11:00
58a41df51e Cleanup: add back add_shapekey_layers to modifier stack
Looks like this might not be used, add back just in case.
2018-10-10 14:37:08 +11:00
c3c4f8f60a Cleanup: uncomment statvis calculation (still disabled) 2018-10-10 14:28:31 +11:00
c61142c0b5 Modifier: use simplified bmesh -> mesh conversion 2018-10-10 13:14:15 +11:00
633e2cddd7 BMesh: simple bmesh -> mesh for evaluation
Copied from CDDM_from_bmesh, the modifier stack doesn't
need to handle shape keys, vertex parents or selection history
(needed for mode switching).
2018-10-10 13:14:15 +11:00
7e6a8678c6 RNA: Always keep at least one element in snap_mode. 2018-10-09 22:30:00 -03:00
44f478bb1a Modifier: remove derived-mesh for sculpt crazy-space 2018-10-10 12:01:05 +11:00
Dalai Felinto
8c470e26d2 Fix for VIEW3D_OT_snap_selected_to_active
There is no active bone data in the cowed edit armature.

This was introduced on rBe12df10120a0, back when we hoped the depsgraph
would fullfill all our hopes and dreams.

Before the single-context-editing depsgraph reality came crashing on us.
2018-10-09 21:28:06 -03:00
9f2b3fc80e Cleanup: prefer parenthesis over breaking lines 2018-10-10 11:21:30 +11:00
626def1ac2 Cleanup: naming
lockaxis -> lock_axis
2018-10-10 11:18:09 +11:00
bfe4e79f02 Cleanup: naming 2018-10-10 11:12:41 +11:00
43f46bb664 Tool System: add back layer selector
This was removed in 1b0c1c551a since most settings changes the
current stroke, however the layer selector is used for the next stroke.
2018-10-10 11:10:13 +11:00
1dd3b93d2f Revert "Cleanup: avoid for loop"
This reverts commit 390dc94562.

After testing this is approx half the speed of a for loop.

Add missing break and assign snap_elements to a variable.
2018-10-10 10:57:13 +11:00
Dalai Felinto
2a2858b30d Fix for ARMATURE_OT_layers_show_all in pose mode 2018-10-09 20:42:54 -03:00
4fa39d9df8 UI: show confirmation for metaball delete
Matches other modes.
2018-10-10 10:31:48 +11:00
390dc94562 Cleanup: avoid for loop 2018-10-10 10:31:48 +11:00
Dalai Felinto
7cf8eed5e0 Multi-Objects: ARMATURE_OT_layers_show_all 2018-10-09 20:30:29 -03:00
ae90dc19e7 View3D Header: Display the text "Mix" instead of an icon when more than one snap element is enabled. 2018-10-09 20:11:52 -03:00
Dalai Felinto
ba36e90170 Dissolve/delete dont need confirmation when called from menu 2018-10-09 19:41:04 -03:00
Dalai Felinto
396eba4533 Multi-Objects: ARMATURE_OT_reveal 2018-10-09 19:28:12 -03:00
Dalai Felinto
4c3578b6af Multi-Objects: ARMATURE_OT_hide 2018-10-09 19:28:12 -03:00
91ea42b8df Remove Align to View Operator
This only worked on new objects, which is no longer needed.
It didn't account for:

- Quaternion or axis-angle rotation.
- Parenting.
- Constraints.

If we support object rotation alignment, it might be best to
make it a more general set of alignment operators
(align transform, orientation - not limiting to view).
2018-10-10 09:21:37 +11:00
54967955bc Empty Image: use draw size instead of object scale
Object scale has implications for parenting, use draw size instead.

Also use add-empty view_align option instead of a separate operator.
2018-10-10 09:11:45 +11:00
Dalai Felinto
10a8786054 Removal of "extend" option for ARMATURE_OT_select_linked
This property (even in 2.7) was not working. In fact it behaves as extended
when extended was FALSE.

Besides all that, the operator is not affected my multi-objects, so it
is good to go.
2018-10-09 18:33:16 -03:00
3f93091e8b UI: reduce greying out of icons in radio and toggle buttons.
With the monochrome icons this reduced the contrast too much.
2018-10-09 23:05:43 +02:00
195dd9888a Cleanup: Remove old shader reference 2018-10-09 20:22:40 +02:00
944e22115d Eevee: Lights: Bump the minimum area light size
This is to avoid visible artifacts with default lamps intensity.
2018-10-09 19:08:25 +02:00
65fee32324 Eevee: Volume: Fix incorrect Light intensity compared to cycles 2018-10-09 19:08:25 +02:00
bb83bd773c Cleanup: Remove old smoke drawing code 2018-10-09 19:08:25 +02:00
2c0f02dd0a GP: Add Shift+F to change Drawing Brush strength 2018-10-09 19:07:20 +02:00
c630ce3f6d Fix T57097: Crash when adding a Texture Slot in Texture Paint mode
Was caused by the use of a batch that was using a discarded index buffer.
2018-10-09 17:55:19 +02:00
d2eb7e8dfa GP: Add RNA path function for gp brush settings 2018-10-09 17:45:52 +02:00
a1dbd2bb6c GP: Minor changes to canvas panel 2018-10-09 17:45:51 +02:00
47e1e7212c Eevee: Fix crash with defered compilation and volumetric shaders 2018-10-09 17:34:04 +02:00
e234ce9b22 Eevee: Add support/Fix Object Info node
Caveat: Random output does not yet work with instance (dupli) objects.
2018-10-09 17:34:04 +02:00
6d6e3869ce Fix T57122: Sample color during texture painting not working.
Stupid +1/-1 fiddling of mat indices (between MPolys and object...).

Initial investigation and patch by @dfelinto, thx.
2018-10-09 17:32:10 +02:00
b0b547bd1e Python GPU: Update shader.from_builtin and shader.code_from_builtin description. 2018-10-09 12:18:28 -03:00
8fc8131bc9 GPU Python: Use string literals in shader.from_builtin and shader.code_from_builtin.
Also, the gpu.shader.builtin submodule becomes obsolete, so it has been removed.
2018-10-09 12:07:06 -03:00
90e360c39f GP: Improve center object in viewport when press .
Before when press . (view_select) the object was centered at the dummy, but now it's centered with the strokes bounding box size.

Also fixed some problems in edit mode when the object origin was not in view origin.
2018-10-09 16:55:29 +02:00
Dalai Felinto
5cb633ce3f Cleanup 2018-10-09 13:38:25 +00:00
f81e8903b4 Fix T55202: 3D Cursor Snapping not working correctly in Edit Mode.
Use `mesh_eval_final` in this case.
2018-10-09 10:24:15 -03:00
Dalai Felinto
18be4d942b Fix build error on windows/MSVC 2018-10-09 12:45:00 +00:00
Dalai Felinto
9a670a67d2 Fix for assert when sampling color to non-existent palette 2018-10-09 12:43:11 +00:00
85944a2d7e Image Empties: Usability improvements and fixes
- new "Align to View" option when loading a new image
- automatically align to view when dropping an image into a viewport
- larger default size for image empties
- fix image empty gizmo in orthographic view
- new "Align Objects to View" operator

Reviewer: brecht

Differential: https://developer.blender.org/D3778
2018-10-09 14:36:15 +02:00
3e2422a947 Fix T57115: buttons drawing wrong after recent icon drawing changes. 2018-10-09 14:05:57 +02:00
f1959f0999 Fix Weight Paint display with Subdivision Surface modifier.
The flag used to be set by the now removed old weight paint coloring code.
2018-10-09 14:21:23 +03:00
0749808d51 DRW: Fix volume visibility when object draw type is wire or bbox 2018-10-09 12:12:38 +02:00
9cf01d35be Workbench: Smoke: Add support for Color Mappping for smoke debugging 2018-10-09 12:12:38 +02:00
d4d6cbe0a7 GPUDraw: Smoke: Cleanup/Refactor 2018-10-09 12:12:38 +02:00
2471b9c528 Fix crash in T56064: Blender crashes on selecting text-object.
The root of the issue remains though, see T56172, this is just a quick
bandaid to stop crashing on it, until we find a proper solution.
2018-10-09 11:35:21 +02:00
9560fe60e4 Python API: new GPUShader.format_calc() method
Reviewers: mano-wii, fclem, campbellbarton

Differential Revision: https://developer.blender.org/D3772
2018-10-09 11:17:29 +02:00
1b910082a0 Edit Mesh: replace DerivedMesh w/ Mesh
DerivedMesh is now removed from edit-mesh modifier evaluation.
2018-10-09 17:48:28 +11:00
79ca13a745 Cleanup: naming
Use BKE_mesh_* prefix for mesh module.
2018-10-09 16:09:59 +11:00
72e90c5db3 Cleanup: remove unused EditDerivedBMesh 2018-10-09 15:57:38 +11:00
3c78763482 Edit Mesh: remove derived-mesh from crazy-space calculation 2018-10-09 15:38:06 +11:00
20fbe6bca8 Modifier: move edit-mesh calculation from DerivedMesh to Mesh 2018-10-09 15:11:06 +11:00
75ac83610b Modifier: add non derived mesh modifier wrappers
Rename modifier_deformVerts_ensure_normals &
modifier_applyModifier_ensure_normals with wrappers that match 2.7x
convention.
2018-10-09 13:20:20 +11:00
c8c3bbaade Cleanup: naming
Rename DerivedMesh modifier functions to make room for mesh versions.
2018-10-09 12:23:22 +11:00
e7218e7049 Cleanup: naming
- immAttrib*    -> immAttr*
- immSkipAttrib -> immAttrSkip

Term 'attr' is a convention for GPU module.
2018-10-09 11:01:50 +11:00
9b49a0d971 Cleanup: naming 2018-10-09 10:51:35 +11:00
d43c776a56 Cleanup: warnings 2018-10-09 10:41:36 +11:00
793d5cb7fd Merge branch 'master' into blender2.8 2018-10-09 10:41:13 +11:00
cf03658adb Fix misuse of Py_INCREF in module creation.
Differential Revision: https://developer.blender.org/D3697
2018-10-08 20:01:55 -03:00
76f640c27d Cleanup: spelling 2018-10-09 09:29:14 +11:00
d592eb510e Cleanup: naming 2018-10-09 09:25:33 +11:00
7920ebd157 Cycles: Fix NLM denoising kernels zeroing the wrong buffer on OpenCL
Since my temporary buffer commit (about a month ago), the OpenCL device was zeroing the wrong buffer, leading to
completely wrong filtered feature passes and therefore significantly lower-quality results than CPU and CUDA.
2018-10-09 00:14:29 +02:00
733e6c0b1d Merge branch 'master' into blender2.8 2018-10-09 08:46:00 +11:00
11877e5bec GP: New Canvas offset parameters
Now the canvas can me moved in X/Y axis.
2018-10-08 23:21:44 +02:00
3bc885e5f4 Cleanup: style 2018-10-09 07:58:06 +11:00
da39f10eb7 Fix T57103: Subdivide smooth results in NAN verts 2018-10-09 07:49:54 +11:00
7aaeb06fb6 Cycles: Clean up extra minus in previous commit
Forgot to add that change, sorry for the noise.
2018-10-08 22:22:05 +02:00
0234de7d85 Cycles: Reuse existing buffer in the NLM denoising kernels on CPU 2018-10-08 22:17:06 +02:00
15e9d80375 Cycles: Use existing shared temporary memory in reconstruction step of the denoiser
Previously the code allocated its own temporary memory, but it's possible to just use the existing shared one instead.
2018-10-08 22:13:40 +02:00
e1293da014 Splash: add themes to first time setup in splash screen.
* Add default theme as Blender Dark.
* Rename Flatty Light to Blender Light.
* When setting theme, reset to default first for consistent results.
2018-10-08 19:46:00 +02:00
William Reynish
6a41691a0d UI: layout tweaks for headers.
* Move all copy & paste operators into the menus. There was no real reason
  why these particular operators should be in the header and not in the menus,
  like all other operators
* Move ‘Update Automatically’ toggle from UV/Image Editor header into menu.
* Move the pin toggle next to the ID blocks, because it is related.
* Move OpenGL render from sequence header into View menu.
* Sequence editor display mode and channels are now not expanded.
2018-10-08 19:46:00 +02:00
cf8e71db61 UI: add icon color coding for different data types in the outliner.
For now we have categories collection, object, object data, modifiers &
constraints, and shading. The icons can be categorized by adding e.g.
DEF_ICON_OBJECT() in UI_icons.h.

Light themes will need to be updated to use darker colors to keep icons
visible in the outliner.
2018-10-08 19:46:00 +02:00
2ac65f6153 UI: new icon set by Andrzej Ambroz.
This is a monochrome icon set, with a more modern look and icons for
various features that did not have a proper icon before.
2018-10-08 19:46:00 +02:00
192a99f477 Fix incorrect alpha blending for icon drawing outside buttons.
This was not so noticeable for old icons with black outline, but with
white outline it's problematic.
2018-10-08 19:45:59 +02:00
Dalai Felinto
14d0aa728a Fix tool panel not refreshing when updating color 2018-10-08 17:15:39 +00:00
b8a0434bc5 GP: New automatic adaptative UVs parameter
Now by default the UVs are calculated with a fixed size and this makes easier to add patterns for drawings like Manga. Before, the texture changed depending of the stroke size.
2018-10-08 18:33:26 +02:00
e5c7c21630 Workbench: Smoke: Port back Flame display
The appearance is a bit different than 2.79 where the flame was just added
on top of the smoke without correct blending.

Now it's much more realistic and using volumetric integration. You can see
the smoke actually masking the flame.

The other difference is that the flame color was not using proper color
managed blending. Now with the use of filmic it shows bright yellow.
This could be adjusted and displayed as a user parameter in the future.
2018-10-08 17:20:09 +02:00
8c4a7593f2 EEVEE: Fix unpremultiplied alpha in render result
Fix T57102
2018-10-08 17:20:09 +02:00
eea22dd5ef Workbench: Smoke: Fix display
Includes the following fixes
- Fix smoke texture creation: data was interpreted as Byte instead of Floats.
- Fix Velocity texture not being free after draw: also was causing crashes.
- Fix display_thickness not being copied during COW.
- Fix Blending and general volume rendering algorithm.
- Add Volume Shadowing support.
2018-10-08 17:20:09 +02:00
ba3ef44a6b Implement display of weight isoline contours in the fragment shader.
Add an option to display contour lines tracing through points with the
same interpolated weight value in weight paint mode. This can be useful
for working on gentle gradients over a relatively high resolution mesh,
where the difference in color between adjacent vertices is very small.

The contour grid has 3 levels of detail going down to step 0.001,
which automatically fade in or out based on the weight gradient.

Fade out works by capping both screen space and weight space line
width, and reducing alpha when the screen space width becomes too
small for moire and noise-less rendering.

Reviewers: fclem

Differential Revision: https://developer.blender.org/D3749
2018-10-08 14:15:47 +03:00
d12e781810 Fix T57083: Grease Pencil / Texture Paint Crash in 2.8
The brush of texture paint hadn't gp_icon
2018-10-08 10:32:41 +02:00
7d38654ecd use keyword argument for template_node_socket() 2018-10-08 09:15:31 +02:00
772c4d6313 Edit Mesh: basic show in edit mode support
Note this is just using the derived-mesh data at the moment,
to support this properly we'll need to remove derived-mesh.
2018-10-08 17:31:32 +11:00
215c23590a Edit Mesh: use deformed mesh w/ face-dot & normals 2018-10-08 12:18:45 +11:00
df82d35ceb Cleanup: extract cache calculation from derived-mesh 2018-10-08 12:04:23 +11:00
04064fb186 Cleanup: use DRW_object_is_* for object checks
Also use const qualifier for object's.
2018-10-08 10:43:34 +11:00
d022794cad Cleanup: rename checks for Python struct strings
Using 'format' prefix made this read as if t was for string formatting.

Use 'PyC_StructFmt' prefix instead since these values are compatible
with formatting from Python's 'struct' module.
2018-10-08 08:37:32 +11:00
1fd1735df0 CPython: use format char utilities in idprop_py_api 2018-10-07 12:24:47 -03:00
af7967b010 CPython: py_capi_utils: format char utilities do not need to be inline. 2018-10-07 12:22:17 -03:00
91bfea5b05 CPython: py_capi_utils: use more descriptive names for format string utilities. 2018-10-07 12:21:09 -03:00
ee2e30683c Cleanup: style 2018-10-07 17:49:22 +11:00
9756475ed6 Tests: Support parallel execution of render tests
Previously, parallel tests would overwrite each others temporary outputs.
2018-10-06 22:12:28 +02:00
a0cc7bd961 Cycles: Implement vectorized NLM kernels for faster CPU denoising 2018-10-06 21:49:54 +02:00
db1a04313c Fix crash unregistering parent panel before children.
This caused crashes with addon enabling/disabling and template loading.
2018-10-06 20:56:31 +02:00
7d5fb2e103 Vertex Paint: support switching to secondary color temporarily holding Ctrl
while it is possible to permanently flip the colors using the 'X' button, this makes it consistent with Texture Paint.

fixes T56994

Reviewers: campbellbarton, brecht

Reviewed By: brecht

Subscribers: JulienKaspar

Tags: #sculpting_and_painting

Maniphest Tasks: T56994

Differential Revision: https://developer.blender.org/D3753
2018-10-06 15:11:24 +02:00
495a7128cb Cleanup: use the naming convention in py_capi_utils
And use inline functions instead of preprocessor directives.
2018-10-06 01:15:15 -03:00
0f55334413 Cleanup: use new format string utility 2018-10-06 00:13:54 -03:00
98e62d459a py_capi_utils: add utilities for format string in struct module style syntax. 2018-10-06 00:13:40 -03:00
Dalai Felinto
bb0b4b008e Pseudo-fix for ARMATURE_OT_autoside_names and x-mirror
It now works like 2.7x. That said this operator is kind of incompatible with
x-mirror (the way it is implemented anyways). But if people were happy with
this in 2.7x they will be multi-object happier.

That said, do turn off x-mirror before using this or select all bones, or just
stop using this operator altogether ;)

Jokes aside, the operator can also be fixed. It shouldn't be hard.
2018-10-05 19:50:20 -03:00
Dalai Felinto
d5e72c0e96 Fix for ARMATURE_OT_flip_names and x-mirror
There was a reason this was using CTX_DATA_BEGIN in the first place.
Issue introduced on 47cf8bd928.
2018-10-05 19:29:19 -03:00
Dalai Felinto
c762074b7b Multi-Objects: ARMATURE_OT_parent_clear 2018-10-05 19:08:30 -03:00
Dalai Felinto
219a4987b9 Multi-Objects: ARMATURE_OT_symmetrize 2018-10-05 18:34:16 -03:00
Dalai Felinto
fa8e91f03c Multi-Objects: ARMATURE_OT_separate 2018-10-05 18:13:57 -03:00
Dalai Felinto
74e01d2235 Multi-Objects: ARMATURE_OT_split 2018-10-05 17:55:54 -03:00
Dalai Felinto
7d1bf58760 Silence warning 2018-10-05 17:55:34 -03:00
Dalai Felinto
28d617199d ARMATURE_OT_fill: cleanup
Remove nonsensical insanity check.
Remove FIXME that would never be addressed anyways.
2018-10-05 17:50:09 -03:00
Dalai Felinto
d67972a9e1 Multi-Objects: ARMATURE_OT_merge
Also removed the insane insanity check. This would fail in the
poll function. No point in that level of paranoia.

And return OPERATOR_FINISHED regardless. Since this has a parameter
(though not used) you may get want to tweak REDO (in the future).
2018-10-05 17:50:09 -03:00
9bd65528e3 GPU Python: optionally init the vertexformat in the vertexbuffer itself. 2018-10-05 17:22:03 -03:00
Dalai Felinto
8882b3d7b6 Multi-Objects: ARMATURE_OT_autoside_names 2018-10-05 17:02:37 -03:00
a33a4e132e Add and use a utility for computing B-Bone roll from custom handles.
This also fixes a stability problem with the start handle
due to an incorrect matrix multiplication order.
2018-10-05 21:52:01 +03:00
8044743741 Texture Paint: reorganize texture slots UI panel. 2018-10-05 20:09:59 +02:00
84f8862b06 Texture Paint: automatically set default color when adding texture slot. 2018-10-05 20:09:59 +02:00
975af239ed Fix wrong RNA handling of some internal pchan pointers.
There were two issues here:
* cutsom_shape_transform was not properly tagged as not-owned pointer.
* custom_shape_transform and bbone_start/_end could be set to a pchan from
  another data-block (not from UI, but RNA access code itself allowed it).

Those two issues were specificaly breaking complex rigs in static
override case.

EDIT: since yesterday, bbone_start/_end are mere accessors to edit_bone
data in RNA, so most of fix related to those was ditched (they still needed
to be 'deactivated' from RNA diffing with PROPOVERRIDE_NO_COMPARISON).
2018-10-05 20:07:51 +02:00
Dalai Felinto
0b8e92783e Multi-Objects: ARMATURE_OT_duplicate 2018-10-05 15:05:51 -03:00
550fee8eb6 GPU Python: use _PyArg_ParseTupleAndKeywordsFast. 2018-10-05 14:38:35 -03:00
25bd9feadb Add a new B-Bone Custom Handle type that uses the handle bone direction.
Both original handle types are based on location, and Absolute uses it
in a weird way: the Start handle uses the head, while End uses the tail.

This makes controlling the shape of the B-Bone via control bone rotation
really non-intuitive, especially if trying to add a single control for
the tangent in the middle of a B-Bone chain.

To remedy this, add a new custom handle type that uses the orientation
of the control bone, while completely ignoring location. It is even
possible to control both ends of one B-Bone with the same handle bone,
resulting in an S shape.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3769
2018-10-05 20:19:58 +03:00
Dalai Felinto
6723e173a5 Multi-Objects: ARMATURE_OT_click_extrude
This operator is actually working as expected, but I added some
comments explained that it was already "ported".
2018-10-05 14:01:16 -03:00
Dalai Felinto
1d6817d580 Fixes for ARMATURE_OT_extrude / ARMATURE_OT_extrude_move
* Return OPERATOR_FINISHED only if at least one object succeeded.
* Have a per object fork value, otherwise an object may influence the next.
(which is why we should use `const foo = ...; foo_iter = foo;`)
2018-10-05 13:33:31 -03:00
Dalai Felinto
234d609f94 Multi-Objects: ARMATURE_OT_extrude / ARMATURE_OT_extrude_move
Based on D3384 by Nick Milios.
2018-10-05 13:21:07 -03:00
Dalai Felinto
13dfb91149 Multi-Objects: ARMATURE_OT_calculate_roll
The patch itself was fine (save for sending notifiers for objects instead of ob).
But I couldn't apply it, so I re-did from scratch.

Based on D3394 by @codemanx
2018-10-05 12:56:27 -03:00
Dalai Felinto
def3b8c68c Multi-Objects: ARMATURE_OT_roll_clear 2018-10-05 12:37:07 -03:00
Dalai Felinto
149e912b1f Special enum item when no sound is found
This happens when you build without sound libraries and such.
Without that the console is spammed with tons of RNA messages because
the enum is empty.
2018-10-05 12:37:07 -03:00
eab00bf202 GPU Python: fix crash when calling batch.draw without passing a shader. 2018-10-05 11:55:17 -03:00
35dcc3d4f4 Transform: hide the Dial3d drawing if the operator has not been called by a Gizmo. 2018-10-05 10:43:06 -03:00
44df83a588 Dial3d Gizmo: consider the offset value in the incremental angle drawing.
This prevents misalignment with the Spin tool gizmo for example.
2018-10-05 10:43:06 -03:00
564d37c4b6 Python API: new GPUVertFormat constructor and vbo.fill_attribute method
Reviewer: fclem

Differential Revision: https://developer.blender.org/D3760
2018-10-05 15:10:56 +02:00
William Reynish
1aae42aa88 UI: move set origin operators into own object submenu. 2018-10-05 14:14:49 +02:00
7c443ded1e Vertex Paint: multiply vertex paint overlay
Fixes the first part of T56999.

Reviewer: brecht

Differential Revision: https://developer.blender.org/D3768
2018-10-05 14:05:48 +02:00
23e9b35bf4 GP: Rename Canvas Grid to Canvas 2018-10-05 14:00:47 +02:00
3c0736bc4b Redefine the Relative custom B-Bone handle type to be more reasonable.
Specifically, it should always use the position of the custom handle
bone head, even when affecting the handle at the tail of the main bone,
and shouldn't apply the special handling for joining two B-Bones.

This handle type was unusably broken before a bug fix included in
recent changes, so it should be safe to break backward compatibility.
2018-10-05 13:29:05 +03:00
8ce5f015dc GP: Remove decoration in Viewport Display panels 2018-10-05 10:39:02 +02:00
e8f135c2cf GP: Cleanup grid RNA settings moving to separated struct 2018-10-05 10:23:31 +02:00
f28dd2c944 Cleanup: capitalize runtime in struct name 2018-10-05 17:20:23 +10:00
b69301d4aa Context: add uv_sculpt_object
While this may be temporary, it avoids copy-pasting these
checks in Python code.
2018-10-05 17:10:27 +10:00
8b05d38305 GP: Cleanup names and code 2018-10-05 08:59:33 +02:00
f36f029321 Cleanup: style 2018-10-05 15:01:58 +10:00
402bde39d1 UI: show uv sculpt options in topbar & toolsettings 2018-10-05 14:54:53 +10:00
19d8aa5652 Merge branch 'blender2.8' of git.blender.org:blender into blender2.8 2018-10-04 21:57:00 -06:00
ddfd6b518c Merge remote-tracking branch 'origin/master' into blender2.8 2018-10-04 21:56:20 -06:00
9f7c7cb98e Cleanup: remove gpencil label from common code path 2018-10-05 13:55:08 +10:00
1b7b6d9060 Tool System: prepare for showing non 3D view tools 2018-10-05 13:48:43 +10:00
1b38effd5f RNA: add access to tool mode 2018-10-05 13:29:51 +10:00
143ece7199 Tool System: initial support for UV-sculpt
This currently conflicts with the UV-sculpt toggle being manually set,
ideally this would work more like other paint modes in Blender.
2018-10-05 13:13:30 +10:00
c15439bcdc Cleanup: use PyModule_AddIntConstant 2018-10-04 23:53:57 -03:00
b0c1fe3618 Fix invalid flag passed to mesh batch dirty tag 2018-10-05 11:22:08 +10:00
0b98a679bb UI: rename Border Select -> Box Select
See: T56648
2018-10-05 10:29:31 +10:00
50cb8013eb UI: rename overlay: Ornaments -> Extras
See: T56648
2018-10-05 09:49:09 +10:00
3a1e9b9997 GP: Move grid parameters to GP object data level
The grid now can be configured by object because this helps to identify objects and allows to define diferent grid parameters for each objects.

Also added a color option.
2018-10-04 23:27:34 +02:00
65f77ccea1 Fix T56268: display the correct rest shape for B-Bones in Edit Mode.
The rest shape of B-Bones is actually affected by custom handles or
the default connected parent/child mechanism. Ignoring these effects
thus leads to the edit mode shape being different from the actual
rest pose.

This splits the b_bone_spline_setup function that is used to compute
the correct rest and pose shape from pose channels into two parts,
and applies the data structure independent half to edit mode.

In order to access the custom handle settings in Edit Mode, they are
moved to Bone and EditBone, while the bPoseChannel fields are downgraded
in status to a cache for performance. Also, instead of flags, introduce
an enum to specify the handle operation modes, so that new ones could
be added later.

Reviewers: aligorith, brecht

Differential Revision: https://developer.blender.org/D3588
2018-10-04 19:55:44 +03:00
61a24c799b Move B-Bone custom handle settings to Edit mode.
Custom handle settings actually affect the B-Bone rest shape,
so they should be changed in Edit mode rather than Pose mode.
This is necessary to be able to display the correct rest shape
of the bone in Edit Mode.

Also, instead of flags, introduce an enum to specify the handle
operation modes, so that new ones could be added later.

Differential Revision: https://developer.blender.org/D3588
2018-10-04 19:55:44 +03:00
6932eaa2bc Revert "tmp"
This reverts commit 9d8c05f7ec.
2018-10-04 13:54:57 -03:00
a2d633316b Cleanup: Remove some unneeded code
Reviewers: fclem

Differential Revision: https://developer.blender.org/D3767
2018-10-04 18:54:08 +02:00
33d89e482b Revert "UI: start maximized on X11 if possible, like other platforms."
This reverts commit ac0dfcced3.
2018-10-04 18:52:55 +02:00
ee6c8be183 GPU Python: rename methods "shader_from_builtin" and "shader_code_from_builtin" to "from_builtin" and "code_from_builtin". 2018-10-04 13:51:21 -03:00
b183f57a9e GPU Python: Fix assert in PySequence_Fast_GET_SIZE 2018-10-04 13:49:06 -03:00
9d8c05f7ec tmp 2018-10-04 13:49:05 -03:00
fe47f6e56a Fix channels region showing in timeline editors in startup templates. 2018-10-04 18:12:31 +02:00
4933dd716c Gizmo: Fix artifacts when having large angles
Reviewer: brecht

Differential Revision: https://developer.blender.org/D3765
2018-10-04 17:53:05 +02:00
4388549124 Units: Change '1000 Kilograms' to 'Tonnes'
Reviewers: brecht

Differential Revision: https://developer.blender.org/D3766
2018-10-04 17:52:17 +02:00
7bd5ba5019 Fix T57062: missing preview range drawing in graph editor. 2018-10-04 15:48:12 +02:00
528a8bd788 UI: duplicate X-ray option in popover, makes relation with alpha more clear. 2018-10-04 15:26:38 +02:00
d2f913a37a Fix T57040 Mesh Disappearing after exiting edit mode in sculpt 2018-10-04 14:57:23 +02:00
9869e4ffe5 Fix T56992 caused by typo in previous fix 2018-10-04 14:56:51 +02:00
6e08b01bd9 Fix T57059: "make deps" build error when sndio library is present. 2018-10-04 13:34:08 +02:00
6bd60292da Transform: fix glitch in the rotating gizmo drawing. 2018-10-04 08:23:52 -03:00
cc92d83d39 Fix T57011: Crash pressing Free Light Cache during Indirect Light Cache
Baking

just kill the bake job prior to freeing

Reviewed By: fclem

Differential Revision: https://developer.blender.org/D3764
2018-10-04 11:24:17 +02:00
935b18ec75 UV: support setting the cursor w/ non-cursor tools 2018-10-04 17:07:05 +10:00
b7aeadcaa9 Gizmo: UV transform cage now uses all edit-objects 2018-10-04 16:46:20 +10:00
105f9e577f UV: avoid redundant batch cache w/ UV select pick & all
Only tag UV's as needing an update.
Also correct notifier for region redraw.
2018-10-04 16:19:27 +10:00
d0b47ddd7d Fix UV select tools not refreshing
Add BKE_mesh_batch_cache_dirty_tag option for resetting UV's.
2018-10-04 16:03:51 +10:00
69496bd843 Remove empty file added by accident 2018-10-04 15:29:30 +10:00
51d6d1d8fb WM: fix non-undo operators stealing redo panel
Non-undo actions would move the redo panel into a different space.
2018-10-04 15:26:36 +10:00
165a83345a UV: border/circle select/deselect support 2018-10-04 15:14:00 +10:00
f4e38974b3 UV: use circle select/deselect 2018-10-04 13:21:25 +10:00
4469ca7f3e UV: rename circle select operator
Word order was swapped from all other operators.
2018-10-04 13:21:21 +10:00
d23447d8d5 UI: disable UV operator register
Was showing redo panel for cursor & selection operators.
2018-10-04 13:08:28 +10:00
46eb050c9d Cleanup: remove single backtick quotes
This isn't valid RST.
2018-10-04 13:08:28 +10:00
ffa15f4b4a Python GPU: GPUBatch and GPUShader refactor.
The changes are:
- The shader now is passed as a parameter of the batch `draw` method (batch.draw(shader)). Since the batch always has to set a shader before drawing;
- The batch methods to specify a value to a uniform have been removed. Uniforms are parameters of the program (here called shader). If you change a uniform, it changes in all batchs that use the same program;
- New methods were added to set uniforms by the shader;
- The `batch.program_set_builtin` was removed. It is a duplicate of `program_set` but without a shader object. We need the shader object to configure the uniform;

Differential Revision: https://developer.blender.org/D3752
2018-10-03 23:34:27 -03:00
98a10fd7de Tool System: add UV cursor & transform tools
Instead of showing the transform handles for all selections,
move this functionality into a tool as done for the 3D view.
2018-10-04 12:10:26 +10:00
a4530f59d2 Transform: support for 2D cursor editing 2018-10-04 12:04:23 +10:00
e30f32b5a3 Transform: make gizmo pie section start from where you drag. 2018-10-03 22:31:01 -03:00
b36f17b8c2 Fix missing free w/ UV-lasso 2018-10-04 11:03:53 +10:00
3c8c1841d7 UI: use shared toolbar region callbacks
Image toolbar now starts with a single column width
and snaps to button increments.
2018-10-04 09:37:22 +10:00
55f62b94f8 DRW: minor tweaks to mode checking
Avoid accessing object mode via the view layer active object
when drawing since it's done everywhere we store the active object mode
in the draw-context.
2018-10-04 09:37:18 +10:00
971ab57c7d Cleanup: style 2018-10-04 09:33:49 +10:00
a04155dd52 ED_gizmotypes_dial_3d_draw_util: use a struct to hide most parameters. 2018-10-03 19:59:35 -03:00
851b2ac29f UI: remove toolbar UV panels
These duplicate existing menu items.
2018-10-04 08:32:26 +10:00
ab8a64a5b9 GP: Show 3D cursor in draw mode
The cursor is used as location to draw new stroke
2018-10-03 22:59:52 +02:00
204ad852a6 GP: Hide different UI elements depending of mode
The 3D Cursor, origin and dummy are hidden depending of the mode to get a cleaner drawing space.
2018-10-03 22:56:23 +02:00
c52485c16a Editor Transform: use the dial3d drawing in the rotation operation 2018-10-03 17:45:56 -03:00
dfce96dbf7 Dial3d Gizmo: Add the Incremental Angle option to snap. 2018-10-03 17:45:55 -03:00
222ea72981 GP: Allow canvas grid with different scales in X/Y
Now it's possible create rectangular shapes and disable the subdivisions to get only a rectangle
2018-10-03 22:42:45 +02:00
77def38eab GP: Allow 0 subdivisions for canvas grid 2018-10-03 22:14:56 +02:00
77787310ad Cleanup: tiny improvement in error reporting for makesrna 2018-10-03 21:56:33 +02:00
5a4ff142de GP: Hide the origin when enable origins 2018-10-03 20:30:13 +02:00
5f4d2be735 GP: Hide dummy and cursor in drawing mode 2018-10-03 20:25:14 +02:00
9a674a749b cycles: Support building with cuda 10 on windows. 2018-10-03 10:18:22 -06:00
9c09998530 UI strings: Fix asserts in 'middle-splitting' fitting string code.
The problem is that string width computing is performed in integers
(pixels), which can generate a rather annoying error (a few pixels)...
Simply work around that for now, by trimming an extra middle char when
needed.
2018-10-03 16:24:35 +02:00
fb60fb055d Improvements to internals blf_font's blf_font_width_to_strlen()/to_rstrlen()
`to_strlen` just benefits from using pre-computed kerning table for
ascii chars (gives about 30% speed improvements).

`to_rstrlen` was re-written and heavily simplified, basically using same
logic as `to_strlen`, and `BLI_str_find_prev_char_utf8()` to loop
backward in the string, instead of looping forwards the whole string,
storing each gliph's width in temp array, and looping backward on that
temp array to find final string matching expected width. Gives about 70%
speed improvements!

And both functions can now share their core logic.
2018-10-03 16:24:35 +02:00
89c30ff746 Pose Mode: Add back IK Degrees of freedom display 2018-10-03 15:44:12 +02:00
34a627f345 Fix T56992: OpenGL Render Engine ignores Transparent Background
Correct the outline blending for alpha 0 background.
2018-10-03 15:44:12 +02:00
36d457e887 DRW: Fix assert in texture paint 2018-10-03 15:44:12 +02:00
Dalai Felinto
b6c1443742 Silence warning 2018-10-03 12:06:11 +00:00
a3d9e8edce Merge branch 'master' into blender2.8 2018-10-03 12:56:44 +02:00
44d47526af Fix icon alpha theme option not working for monochrome icons. 2018-10-03 12:56:39 +02:00
d05b9e0a2e Fix build with older CMake versions that we still need to support. 2018-10-03 12:55:43 +02:00
e5387eef18 Merge branch 'master' into blender2.8 2018-10-03 12:12:22 +02:00
d2da3af073 Fix T54287: memory not freed after rendering on Linux.
With new jemalloc versions memory allocated by threads that then become
inactive is not longer automatically freed. Instead we have to enable a
background thread to do it.

Some testing is needed to find out of this is sufficient, because the
background thread only runs periodically.
2018-10-03 12:09:31 +02:00
8d26705b3e GP: Add z-depth offset parameter
This parameter allows to define the percentage of offset of a stroke when uses surface mode.

Before, this was a fixed value, but for some artists' purposes, it's good to have the option to change it.
2018-10-03 10:55:26 +02:00
2d21eb79ad Units: Support for fixed units
Users can select the main unit they want to use now.
Previously the displayed unit always depended on the magnitude of the value.
The old behavior can be restored by switching to the "Adaptive" mode for length, mass and time units.

Meters, kilograms and seconds are the default units for new and old scenes.

The selected unit is also the default unit for user input.
E.g. if cm is selected, whenever the user inputs a unitless number into a field of type length, it will be interpreted as cm.

Reviewer: brecht

Differential: https://developer.blender.org/D3740
2018-10-03 10:20:16 +02:00
1c3411ac89 Keymap: expose tool keymaps in the preferences
Currently some modes share tool keymaps, we might want to disable
this since it's confusing editing one thing in multiple places.

However this should be resolved in the tool definitions.
2018-10-03 15:55:57 +10:00
e44dfbbba5 Transform: enable shrink-wrap even offset by default
Holding Alt now disables.
2018-10-03 13:10:11 +10:00
fb8d268f62 Fix T56975: Transform incorrect w/ constraint 2018-10-03 12:23:55 +10:00
65e577d222 Dial 3d Gizmo refactoring.
Transform the gizmo's drawing function into a generic function for use in other parts of the code.
2018-10-02 23:00:29 -03:00
6a4bed75b2 RNA: Make various .add(count) a required arg 2018-10-03 10:20:55 +10:00
2de21113b9 RNA: curve points add(count) a required arg 2018-10-03 09:08:54 +10:00
2d37901941 RNA: fcurve keyframe add(count) a required arg
This matches mesh add methods, and doesn't force it to be a keyword arg.
2018-10-03 09:04:51 +10:00
9596dfc261 Extrude: add normal flip to mesh.extrude_context
Was giving errors on each access.
2018-10-03 08:34:50 +10:00
2497b2d202 Shrink/Fatten: change default 'even-thickness'
Accessing from the tool and keyboard had different defaults,
disable by default for both.
2018-10-03 08:28:36 +10:00
8ba4dd389b Fix gizmo tooltips ignoring preference 2018-10-03 08:20:07 +10:00
4c22807e69 Cleanup: style 2018-10-03 08:10:48 +10:00
Dalai Felinto
00c0e55227 Multi-Objects: TRANSFORM_OT_vertex_random
This was listed under the armature task yet it is used for meshes too.

Also make sure all the UI names are capitalized (normal > Normal).
2018-10-02 20:11:59 +00:00
Dalai Felinto
1fd8e183d0 Multi-Objects: Select similar armature: SIMEDBONE_LAYER
And final one as well.
2018-10-02 19:54:19 +00:00
Dalai Felinto
ecce4f49bb Multi-Objecs: Select similar armature: SIMEDBONE_PREFIX and SIMEDBONE_SUFFIX 2018-10-02 19:47:10 +00:00
Dalai Felinto
6b3ff1ec75 Multi-Objects: Select similar armature: SIMEDBONE_DIRECTION
Also added epsilon into the mix.
2018-10-02 19:46:16 +00:00
Dalai Felinto
e39d17096f Multi-Objects: Select similar armature: SIMEDBONE_LENGTH
Also added epsilon into the mix.
2018-10-02 19:46:16 +00:00
Dalai Felinto
821379e58d Multi-Objects: Select similar armature initial commit
This includes all the modes that don't need multi-object support:

* SIMEDBONE_CHILDREN
* SIMEDBONE_CHILDREN_IMMEDIATE
* SIMEDBONE_SIBLINGS
* SIMEDBONE_GROUP
* SIMEDBONE_SHAPE

Unlike the mesh select similar operator, in this case we take
only the active bone in consideration, not all the selected ones.

I decided not to change that, and keep this 2.79 behaviour.
We could though if we want to.
2018-10-02 19:45:46 +00:00
Dalai Felinto
dcc623e7e7 Multi-Objects: ARMATURE_OT_select_hierarchy 2018-10-02 17:39:11 +00:00
Dalai Felinto
27f2108e8a Multi-Objects: ARMATURE_OT_select_less and ARMATURE_OT_select_more 2018-10-02 17:39:11 +00:00
Dalai Felinto
2a7ccf6e88 Fix for POSE_OT_select_mirror
It was not taking duplicated objects into consideration, so the operator would
only work if you had an off number of objects with the same armature.
2018-10-02 17:39:11 +00:00
Dalai Felinto
8b2bcce3d2 Multi-Objects: ARMATURE_OT_select_mirror 2018-10-02 17:39:10 +00:00
9c02f6b1ed Fix (unreported) memleak with legacy IKsolver.
Looks like new depsgraph may initialize some IK trees, without ever
executing them (which also frees them with legacy IKSolver code)...
2018-10-02 18:00:42 +02:00
9d104f57b6 Addons: reactivate BVH and PLY format addons
Reviewers: brecht

Differential Revision: https://developer.blender.org/D3758
2018-10-02 17:51:39 +02:00
c71577d195 RNA ID: add accessors to original ID, and a boolean stating whether it is evaluated or original data-block.
Since RNA depagraph API mostly returns evaluated data, it is mandatory
to have access to original datablocks now...
2018-10-02 14:14:50 +02:00
038c7a7f1e Depsgraph/RNA: add warning that all data from object instances iterator are COW data.
It is crucial that scripts do not write, and even more importantly, do
not store any references to those. Otherwise, that’s a rather straight
path to crash.
2018-10-02 14:14:50 +02:00
dcf1f891ea UI: Fix error in shading popover 2018-10-02 12:27:07 +02:00
0ec6ad027e Fix weight drawing in Edit Mode by using the Weight Paint shader.
After rB3da46a8d8df2 the vertex color shader can't draw the raw
weight data produced by DRW_cache_mesh_surface_weights_get.
2018-10-02 12:38:26 +03:00
ee05143078 Keymap: disable alt-comma for origin only transform
This is quite an obscure option only useful in rare cases,
when enabled by accident it's confusing since single objects
can't be transformed.

Also, w/ 2.8x you don't see the option change in the header.
2018-10-02 19:11:50 +10:00
dc689fe407 GP: Redo blur z-depth fix
The problem with previous fix was that only the original pixels were blurred, but the surrounding pixels no.
2018-10-02 11:09:44 +02:00
c03ceb0f61 Gizmo: scale xyz axis to 1.0
The normal and xyz no longer overlap so can be the same size.
2018-10-02 19:05:15 +10:00
9678bc3a29 Correct extrude shortcut and description
To get the toolbar Key binding, the same operator needs to be
referenced from the tool.
2018-10-02 18:51:43 +10:00
03b8d6ce54 GP: Cleanup shader 2018-10-02 10:31:49 +02:00
1a9d1317aa GP: Fix blur FX z-depth error
The z-depth must not be blurred, but use the original value.
2018-10-02 10:22:40 +02:00
d2519c2aa1 Gizmo: option to switch between normal/xyz widgets 2018-10-02 18:17:25 +10:00
6b51e15973 Cleanup: split extrude gizmo into own file 2018-10-02 17:34:27 +10:00
c14949e9ed Gizmo: move spin tool axis option into gizmo-group
Having this setting here wasn't correct (the operator ignores it).
2018-10-02 17:09:53 +10:00
07d4580f64 Gizmo: support for gizmo-group properties
This allows gizmo groups to store properties in the tool.
This makes sense for gizmo options which only control gizmo display and
don't control operator execution.

Unlike similar kinds of properties,
this isn't accessible via the gizmo-group-type instance.

For now the it's only stored in the workspace tool as can be done for
operator properties, so each instance doesn't have different settings
which would be confusing from a user perspective and complicate access
from the top-bar.

Later we could add gizmo-group properties if needed.
2018-10-02 17:03:23 +10:00
dce12293d0 WM: generalize tool property initialization
Prepare for storing different kinds of properties in tools.
2018-10-02 15:39:20 +10:00
0e7a592c3c WM: report error w/ unknown operator name 2018-10-02 15:28:14 +10:00
5db328c063 Correct extrude tool operator references
Caused incorrect tooltips.
2018-10-02 15:17:00 +10:00
1e526de9bd Merge branch 'master' into blender2.8 2018-10-02 11:19:11 +10:00
bf37c93533 Correct tooltip 2018-10-02 11:17:31 +10:00
60d4d58376 Fix T56990: AutoIK fails
Regression from 5d628c519
2018-10-02 10:10:26 +10:00
3aed08377d GPY Python: program_use_begin and program_use_end.
The user has to be encouraged to use the `program_set` or `program_set_builtin` before drawing.
This avoids problem with gl_context.
2018-10-01 13:58:51 -03:00
b77191c035 UI: Fix Xray alpha slider being incorrectly greyed out 2018-10-01 18:56:26 +02:00
8ed17c37c5 DRW: Fix unselectable wire object in solid mode 2018-10-01 18:56:26 +02:00
238d30169f Templates: tweaks to startup templates, add sculpting template. 2018-10-01 17:32:59 +02:00
ac0dfcced3 UI: start maximized on X11 if possible, like other platforms. 2018-10-01 17:29:48 +02:00
f40ff62647 Fix app template __init__.py not running without a userpref.blend. 2018-10-01 17:16:43 +02:00
6afd5292e2 Fix Cycles Python warnings related to annotations. 2018-10-01 17:16:43 +02:00
fd0250f1bc UI: collapse some paint / sculpt panels by default. 2018-10-01 17:16:43 +02:00
057f2a1878 UI: use backdrop circle for navigation icons, make clickable area bigger.
This will look a bit better once the icon outline is gone.
2018-10-01 17:13:08 +02:00
ffcc4be3bb GP: Change Blur default parameters for Rim and Shadow effects. 2018-10-01 16:42:12 +02:00
a3afcae39e GP: Add Blur to Shadow FX
The shadow needed a blur to make soft transitions and get a better effect.
2018-10-01 16:31:04 +02:00
c234c3db1b UI: Update theme colors for pie menu selected items 2018-10-01 15:28:47 +02:00
832f5d36e5 UI: Color the inside of pie menu items when selected
Follows the same as other selected/active items in the UI.
Tested in Default theme, 2.7x, 2.4x, Flatty Light and Amaranth
all seem to work fine.
2018-10-01 15:28:47 +02:00
212ce03aaf Edit UVs: Fix missing wires with multiple windows
All that was needed is a VAO refresh. It's not a performance problem
because it only concerns a handful of batches.
2018-10-01 15:14:46 +02:00
283f0ae9af Edit UVs: Refactor drawing Shadow UV in Image Editor
Currently it's not showing the subdivided mesh (if there is a subdiv mod)
and there is some sync issue if there is multiple uv image space opened.
But thoses will be tackled later on. The purpose of this commit is to fix
the overflow issue of IMM and speed issue.
2018-10-01 15:14:46 +02:00
3a9ee33328 GPU: Fix partial draw of batches with index buffers 2018-10-01 15:14:46 +02:00
781995a09c Edit UVs: Refactor drawing Edit UV in Image Editor
NOTE: This commit only concern edit UVs and not the "shadow" mesh displayed
when texture painting. This will be address in a future commit.

We now cache the uv mesh in the mesh batch cache and only reupload data on
changes.

Update could be more granular (and a bit faster) but it's not our main
concern ATM.

This should fix problem caused by the IMM api used to draw large meshes.
This makes performance skyrocket compared to previous implementation.
There is still a big CPU bottleneck when not in sync selection mode but it
is not related to the drawing function directly.
2018-10-01 15:14:46 +02:00
a5101de6a9 BLI: Add mul_v2_v2v2 function 2018-10-01 15:14:46 +02:00
e38a0b3748 Shrinkwrap Constraint: implement projection features from the modifier.
Allow raycasting in two directions and culling front or back faces.

Also implement a new Invert Cull option in both constraint and
modifier that can be used to aim for faces aligned with the project
axis direction when raycasting both ways.

Reviewers: mont29

Differential Revision: https://developer.blender.org/D3737
2018-10-01 15:47:03 +03:00
be0e58d980 GP: Fix Shadow rotation bug 2018-10-01 11:36:18 +02:00
534009098e Remove obsolete weight paint color computation code.
The new weight paint drawing code converts weight to color
directly in the shader, so the old CD_PREVIEW_MLOOPCOL based
code is not needed anymore.
2018-10-01 11:02:24 +03:00
d64e60340f 3D View: use context mode string for sidebar
When moving panels from the toolbar to the sidebar,
'bl_context' is now used for filtering panels in both places.
2018-10-01 16:58:28 +10:00
c06333d77b Object Join: use 'selected_editable_objects'
Was using 'selected_editable_bases', which used to save a lookup.
This is no longer the case and complicates access from Python
which cant yet easily access Bases.
2018-10-01 16:45:57 +10:00
786870e26f Fix T56909: wrong interface scale on macOS 10.14, when using 10.14 SDK.
This does not affect existing releases as far as I can tell, only new builds
using the new SDK have the problem.
2018-10-01 08:35:32 +02:00
5fca5c8065 Merge branch 'master' into blender2.8 2018-10-01 14:06:24 +10:00
d6ca699d7e BLI_math: add isect_seg_seg_v3 2018-10-01 13:52:00 +10:00
9df476ecaa BLI_math: add isect_seg_seg_v3 function and use in the cloth collision algorith.
In my tests a 4% improvement in performance was achieved by simulating a square cloth over the cube.
2018-10-01 00:16:44 -03:00
1f2c4f8809 Cleanup: use standard prefix for boolean settings
Avoid using 'add' as a prefix, it reads like a method.
2018-10-01 12:00:08 +10:00
12c49d05c6 Fix freed memory use w/ panel unregister 2018-10-01 10:32:48 +10:00
bda7a333a3 Cleanup: use tuple unpacking 2018-10-01 09:20:32 +10:00
0256d8b4e2 Cleanup: pep8, unused import 2018-10-01 09:20:32 +10:00
8ee4fd0bdf Cleanup: style 2018-10-01 09:20:31 +10:00
3cd98d9ef7 Fix T56981: python .scene_raycast returned object is not selectable.
Was returning COW evaluated object, not actual data-block...
2018-09-30 23:54:11 +02:00
3a09ff77a1 Fix T56879: Blender2.8 Crash when Editing Text on Curve.
Moving cursor in 3D text edit mode calls `BKE_vfont_to_curve_ex()`,
which expects to work with evaluated data (curve cache runtime etc.).
2018-09-30 21:37:32 +02:00
bbd3ac73bc Fix T56396: Cycles wrong object motion blur with deformation blur disabled. 2018-09-30 19:34:34 +02:00
0722981e99 Fix T56909: wrong interface scale on macOS 10.14, when using 10.14 SDK.
This does not affect existing releases as far as I can tell, only new builds
using the new SDK have the problem.
2018-09-30 19:33:41 +02:00
40f10fe11a GP: The primitive line must not enable cyclic mode 2018-09-30 18:45:45 +02:00
da032bdf23 GP: Cleanup and remove old debug code 2018-09-30 18:26:50 +02:00
5c184c4fec Fix T56984: GP: Materials: Isolate (lock/visibility) buttons don't work. 2018-09-30 17:36:07 +02:00
0bb9ebd058 io_utils: remove orientation_helper_factory.
Now we only use orientation_helper decorator.
2018-09-30 17:30:29 +02:00
ec06532cef GP: New option to disable lasso while drawing
Now it's possible to disable the lasso effect of the fill color while drawing with a fill color.

This sometimes is required to see the lines and it's the first step to implement a new lasso brush.
2018-09-30 16:21:28 +02:00
60935cb9d8 GP: Ensure falloff curve is always initializated 2018-09-30 15:59:10 +02:00
8c3077ff94 Fix T56970 GP: Sculpt mode : Grap tool doesn't work 2018-09-30 13:54:23 +02:00
419fd80d46 GP: Fix error in mutiedit if curve is not available 2018-09-30 12:54:17 +02:00
4a72408124 GP: Do not use UI pixel scale for strokes
This scale value only must affect the interface, but never the stroke.
2018-09-30 11:49:02 +02:00
f1afa6f6a7 GP: implement Shadow FX (wip)
Initial implementation of effect to create a drop shadow of the strokes
2018-09-30 11:49:02 +02:00
d9f6fdae4b Add Image Operator: minor tweaks
- Use exception message on error.
- Use 3D view cursor location (for local view).
2018-09-30 17:55:39 +10:00
f36efe0e2a Fix mysterious crash when using textureGather on Intel drivers.
The crash occurs in a shader with uniform block of a certain size and misaligned.
2018-09-29 16:56:47 -03:00
7e26991472 GP: Fix Thickness modifier error for strokes with few points 2018-09-29 18:07:54 +02:00
Dalai Felinto
3fe56ee8e7 Fix mixed drawing face and edge checks in draw manager 2018-09-29 12:22:44 -03:00
631ddc5acc GP: New parameters for instance modifier: Material and On Top
Now it's possible to define what material is used in the generated strokes and if the strokes are put in front of the original (default) or keep the original in front.

Before, the generated strokes have been always on top of the original because they were drawn later.
2018-09-29 16:54:16 +02:00
2ca67de960 A new function to move list at the beginning of another list
This is a change of the BLI_movelisttolist but in reverse order.
2018-09-29 16:45:33 +02:00
Dalai Felinto
0f9b7560db Multi-Objects: ARMATURE_OT_switch_direction 2018-09-28 19:11:27 -03:00
Dalai Felinto
3a8b56ce24 Multi-Objects: ARMATURE_OT_armature_layers 2018-09-28 19:06:07 -03:00
Dalai Felinto
1eb26680d4 Expose armature.dissolve to the menu
Following the vertice delete menu logic here, where delete needs no verb
and the special case (dissolve here) gets the full verb + noun)

Note: This operator wasn't even listed in the T54646 task. I suspect other
operators may share the same fate.
2018-09-28 18:53:29 -03:00
Dalai Felinto
bfb0ebc3d1 Multiple-Objects: ARMATURE_OT_dissolve 2018-09-28 18:43:23 -03:00
Dalai Felinto
47cf8bd928 Multiple-Objects: ARMATURE_OT_flip_names 2018-09-28 18:23:32 -03:00
Dalai Felinto
f4fe3f1975 RNA: Cleanup - remove no longer needed get/set functions
Left over from rBbdbf4471a6c4ba2d444eea5e7f0e6984b3aaafc2.
2018-09-28 16:54:17 -03:00
Dalai Felinto
fc96283c1c Fix painting clone ui/rna not working 2018-09-28 16:34:12 -03:00
0c6103557a GP: Fix Fx Wave options panel
The orientation was layout vertical
2018-09-28 18:56:15 +02:00
Dalai Felinto
c87d6048b9 Multi-Objects: Fix edit mesh texts drawing in the wrong place
It was always drawing on the active object localspace.
2018-09-28 13:40:51 -03:00
637d938c0b Fix T56396: Cycles wrong object motion blur with deformation blur disabled. 2018-09-28 18:24:19 +02:00
Dalai Felinto
62aee662ae Fix errors for show_occlude_wire not in view3d.overlay 2018-09-28 12:31:25 -03:00
Dalai Felinto
ffb424c85f Multi-Objects: MESH_OT_sort_elements
Based on D3330 by Falk David
2018-09-28 12:31:25 -03:00
Dalai Felinto
8a06249058 Fix wireframe threshold not active on wireframe mode 2018-09-28 12:31:25 -03:00
0e7742d604 Templates: tweaks to 2D animation template from grease pencil team. 2018-09-28 17:28:23 +02:00
a01afe04b0 GP: Remove Shader FX use_property_split to keep UI consistency
In order to get the same look and feel of modifiers, we need disable this single column option.
2018-09-28 17:25:35 +02:00
3037acf375 GP: Remove show lines from Pixelate effect
The grid lines get a weird result and it's better keep disabled. Maybe in the future we implement a new shader with a full grid.
2018-09-28 17:20:00 +02:00
c78d83bca7 GP: Set pixel shader fx lines to OFF by default 2018-09-28 16:52:20 +02:00
0d2c95a77a GP: Make Layer and Material lists shorter
This reduces UI vertical space.
2018-09-28 15:47:53 +02:00
Dalai Felinto
0f03750f4f Cleanup: Remove bmo_similar.c and small renaming 2018-09-28 10:32:04 -03:00
Dalai Felinto
75b2091d42 Multi-Objects: Select similar vertex: SIMVERT_VGROUP
I'm storing the name of the vertex groups in a gset. This way
we can select vertex groups with the same name across different
objects.

Also this is the last select similar mode that needs porting o/
2018-09-28 10:25:23 -03:00
d2d0b4fcd7 Merge branch 'master' into blender2.8 2018-09-28 15:03:03 +02:00
de3ee3c6e8 Cycles: Fix compilation error of CUDA kernel
Was caused by previous commit.
2018-09-28 15:02:44 +02:00
3341d42ad5 Fix T56947: Copy text from disabled search menu crashed
Reviewers: brecht

Differential Revision: https://developer.blender.org/D3745
2018-09-28 14:12:25 +02:00
6dd047c333 Tests: recurse into directories for finding OpenGL draw test .blends. 2018-09-28 14:09:42 +02:00
9e8c0d061c GP: Remove add/delete buttons from topbar material popover 2018-09-28 14:01:52 +02:00
b880c13c3a Merge branch 'master' into blender2.8 2018-09-28 13:58:30 +02:00
b030277e79 Cycles: Fix crash with BVH8 on certain scenes
The crash was caused by BVH traversal stack being overflowed.

That overflow was caused by lots of false-positive intersections
for rays originating on a non-finite location.

Not sure why those rays will be existing in the first place,
this is to be investigated separately.

This commit moves pre-SSE4.1 check to a higher level function
and enables it for all miroarchitectures.
2018-09-28 13:57:50 +02:00
45271007cf Fix T56905: unsupported channel layout error writing AAC audio.
This uses same mapping as Audaspace to specify channel layout, which was
missing before.
2018-09-28 12:07:05 +02:00
a33034cc3f UI: move messages and running jobs to top bar.
It's too easy to miss at the bottom of the screen, and if the status bar is
collapsed critical messages may not be seen at all. There might be a better
looking solution, but for now this solves the main usability problem.
2018-09-28 11:05:04 +02:00
c3052f9126 Fix merge error, this should have been included from master. 2018-09-28 10:47:11 +02:00
29c8c6cf4f Fix T56940: crash rendering with OpenGL as engine. 2018-09-28 10:39:20 +02:00
89264d8c40 Make struct initialization happy for CLang 2018-09-28 10:13:56 +02:00
c72770d1cb Subdiv: Return enumerator of proper type
Was harmless, that code is never to be reached.
2018-09-28 10:13:18 +02:00
763c78fccb Fix/workaround stupidity of CLang
Seems there is something wrong with ternary operator
and type deduction.

Copying matrix to a variable with cleaner name seems
to be better solution than to force cast to an array.
2018-09-28 10:11:28 +02:00
6398e6608f GPencil: Avoid tautology assignment
This is considered a warning which is usually promoted to
error in developers' environment.

Probably worth adding an assert or so, if possible?
2018-09-28 10:10:25 +02:00
ee1b2cce5f CMake: Default to C11 for Clang and GCC
The option WITH_C11 is gone, and C++ is defaulting to C++11 now,
so guess it's fine to assume we need C11 now.

This is technically what we use anyway, with all the re-definitions
of structs (like when we typedef anonymous struct in a header file
first, and them define it to a proper structure in implementation
file).
2018-09-28 10:09:46 +02:00
fa6b0cdc79 GPencil: Use proper enumerator type
Was using GpencilModifierType in type definition,
but rest of usage was using values from GpencilModifierTypeType.
2018-09-28 10:04:31 +02:00
e26620337a Merge branch 'master' into blender2.8 2018-09-28 09:47:02 +02:00
81f68bbba1 Fix compilation errors and warnings with Clang-6 2018-09-28 09:46:12 +02:00
6f42eb245b Python IO: Initial nodal shader support for import AND export.
That new bpy_extras' node_shader_utils module is remotely based on
existing addons' cycles_shader_compat module. It has some key
differences though:
 - It is based on Principled shader, instead of the noodle combination
   of half a dozen simpler shaders.
 - It does not do any value conversion (like e.g. clamping, which was
   only suited for FBX). Any conversion/adaptation is to be done
   by each IO add-on.
 - It extensively uses accessors to offer:
   - Easy read/write of values, hiding all the hairy noodly nodes
     (principled shader helps a lot here).
   - lazy creation of most nodes on accessing (when generating a
     material), which avoids getting unused nodes in final shader.
 - We only use Principled BSDF so far though, which means some features
   supported by previous system are not yet implemented in new one.

Note that, even though we support 'exporting' side of things, this will
only work for a very specific (and basic) kind of shader. This will have
to be clearly explained in end-user documentation.

Also, that code has had some basic testing, but most certainly needs a
lot more refinement.

As proof-of-concept, OBJ IO script will be updated to use that new
system after that commit.
2018-09-27 23:32:56 +02:00
69c9266d81 GP: Expand properties material list 2018-09-27 22:10:39 +02:00
a914159f62 GP: Expand properties layer list 2018-09-27 22:08:27 +02:00
b3cb4eaa03 GP: Remove separator line in materials submenu 2018-09-27 22:06:47 +02:00
2b6cbc8c43 GP: Remove material submenu icons
The icons made too heavy for the UI
2018-09-27 22:05:32 +02:00
3988c5b93a GP: Expand topbar layers list 2018-09-27 22:03:50 +02:00
1bd81babbd GP: Make materials topbar list longer 2018-09-27 21:11:13 +02:00
bb06598fd6 GP: Reorganize topbar material selector 2018-09-27 20:50:22 +02:00
Sebastian Parborg
a16e5b8efa Cleanup: remove unused DerivedMesh code.
Differential Revision: https://developer.blender.org/D3736
2018-09-27 20:19:28 +02:00
975a40dceb Merge branch 'master' into blender2.8 2018-09-27 20:12:14 +02:00
6baea955bf UI: use new 3D viewport navigation icons and image icon in add menu.
I had to make the viewport navigation icons a bit smaller in the SVG since
the edges were being clipped off, we only support 16x16 icons currently.
They are a bit blurry because of this.
2018-09-27 20:11:10 +02:00
0b4c440baa UI: add first batch of monochrome icons designed by Andrzej Ambroz.
Currently only for simple commands like play, add, zoom, expand, etc.
2018-09-27 18:41:27 +02:00
28324143c4 UI: draw mono icons with button type text color, instead of area text color. 2018-09-27 18:39:50 +02:00
99fa874c85 Fix blender_icons_update.py not working after mono icon changes. 2018-09-27 18:39:50 +02:00
37d88fdb86 GP: Remove old annotation panel from Image editor
This has been replaced with tools.
2018-09-27 18:03:13 +02:00
beb91b5f41 GP: Enable force fill recalc by default 2018-09-27 17:39:16 +02:00
18262bcb1e Fix missing libquery processing of ID pointers in GPencil Modifiers.
...
2018-09-27 16:34:45 +02:00
3da46a8d8d Implement a new dedicated weight painting shader.
Move the weight paint drawing to the fragment shader. The shader
uses a texture that uses the U.coba_weight custom color band, or
an internal color band.

In addition to actual weights, the shader has to display two
alert colors: missing vertex group, and zero weight. The zero
weight alert has to be blended with regular weight colors,
so that a single alert vertex surrounded by weighted ones is
still visible.

Reviewers: campbellbarton, fclem

Differential Revision: https://developer.blender.org/D3675
2018-09-27 17:33:33 +03:00
6791d95b1d Empty Object: new "Load Image as Empty" operator
New entry in the Add Object menu.
Opens a file selector and creates a new empty object from the selected image.
Previously more steps were needed to archieve the same.

Differential: https://developer.blender.org/D3708

Reviewer: brecht
2018-09-27 16:21:51 +02:00
a3fea39724 Fix T56915: Selectability in Solid Xray Mode
This was caused by the object center being selected by the wireframe pass.

The wireframe pass is now only drawn if we search for the nearest surface.
This makes all wire objects (like non-meshes objects) higher priority than
mesh surfaces.
2018-09-27 16:09:27 +02:00
efc4862ee6 Refactor: Copy/Paste values from/to UI
Previously copy and paste was handled within the same function using a mode switch, which is quite ugly in most cases.
This patch separates the function into two and splits up those in even smaller functions to increase maintainability.

Finally one new feature was added: You can copy from disabled fields now. (requested by hjalti)

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3738
2018-09-27 16:06:24 +02:00
bd267b0332 Fix cycles_cubin_cc build error on macOS. 2018-09-27 15:59:14 +02:00
58adc58661 Merge branch 'master' into blender2.8 2018-09-27 15:49:59 +02:00
a247b53084 Spelling fixes in comments and descriptions, patch by luzpaz.
Differential Revision: https://developer.blender.org/D3732
2018-09-27 15:36:35 +02:00
0f6b2504f8 Cleanup: fix harmless compiler warnings. 2018-09-27 15:33:44 +02:00
e8e2f51063 Fix CUDA build with Xcode 10.0, use nvrtc due to incompatible compilers. 2018-09-27 15:20:33 +02:00
4de1e673a4 Merge branch 'master' into blender2.8 2018-09-27 14:51:33 +02:00
8f9a6b1bab Cycles: Cleanup 2018-09-27 14:49:37 +02:00
bee16ec4d8 Cycles: Sync BVH8 unaligned node packing code with BVH4
Similar to dfae3de6bd.
2018-09-27 14:49:12 +02:00
1472550ba1 UI: new clip editor panels and headers layout.
* Panels now use single column layout.
* Footage Info was moved into Footage Settings.
* Display settings are now in a popover in the header.
* Graph view shows tracking controls in the header center.

Differential Revision: https://developer.blender.org/D3643
2018-09-27 14:15:10 +02:00
e9a38c50d9 UI: update camera background images panel layout.
Differential Revision: https://developer.blender.org/D3739
2018-09-27 14:14:05 +02:00
f35cc54c11 GP: Avoid duplicated weight deformation for strokes
If the point had several weights, the result could be wrongly accumulated.
2018-09-27 14:12:37 +02:00
250a377592 Partial revert of recent toolsystem defaults
- Use ctrl for de-select since we may want to use shift for extend.
- Use cursor tool by default,
  it's agreed lasso select isn't accessible from a shortcut by default.
2018-09-27 21:19:45 +10:00
14e7fcfdde Cleanup: warnings 2018-09-27 21:15:55 +10:00
2a63e062b0 Tests: add --no-window-focus to open window without focus.
This is useful to run OpenGL tests while continuing to do other tasks
without windows constantly popping up in the foreground.
2018-09-27 12:21:48 +02:00
c722728b7f Fix T56927: Grease pencil materials issues with lock and hide 2018-09-27 12:07:43 +02:00
358d8c14d8 GP: Fix infinite loop in Dope Sheet 2018-09-27 11:11:33 +02:00
c67305f21b UI: Use "View" category for 3D view panels
Allows add-ons to add other categories.
2018-09-27 16:35:43 +10:00
5f7c671c56 UI: Tabs on right w/ right aligned regions 2018-09-27 16:35:43 +10:00
5afe91c504 Fix missing free 2018-09-27 16:35:43 +10:00
da96336e5f Python GPU module: Wrap GPUIndexBuf
Differential Revision D3714
2018-09-27 00:53:45 -03:00
1e647a570d Python GPU module: replace PyArg_ParseTupleAndKeywords by _PyArg_ParseTupleAndKeywordsFast
part of T47811 ("for faster argument parsing").
2018-09-27 00:22:57 -03:00
d559eaffd4 Cleanup: remove star import 2018-09-27 13:27:53 +10:00
08f9cd3218 Tool System: expose rotate-source for click-extrude 2018-09-27 12:23:01 +10:00
e2b6a59317 Merge branch 'master' into blender2.8 2018-09-27 11:53:08 +10:00
09c7bfe42b Spin Tool: hide options unrelated to duplication 2018-09-27 11:52:21 +10:00
06846efdb0 Keymap: use shift to de-deselect for tools
This allows for Ctrl-LMB
to be used for lasso even with Border-Select active.
2018-09-27 11:31:41 +10:00
ed83075402 Tool System: set a default tool for each mode
Also clear tools for the default startup file
so changes to defaults apply to new files.
2018-09-27 11:20:27 +10:00
6ebe211644 Cleanup: pep8 2018-09-27 09:41:18 +10:00
c5c987cde9 Cleanup: flip option unlock -> lock
Nearly all options are currently to toggle locking.
2018-09-27 08:51:47 +10:00
5732d9e1dc Wireframe/Xray: Make Xray option local to wireframe mode
This commit make the Xray option for the wireframe different from the other
shading mode. This makes it possible to rapidly switch between wireframe +
Xray and Solid mode without Xray.

Xray alpha is also decoupled.

Both variables are duplicated and exposed separately through RNA.
2018-09-26 20:31:20 +02:00
ebd234eee5 UI: switch shortcuts for pivot and orientation pie menus.
Pivot is now period key, orientation is comma key.
2018-09-26 18:40:30 +02:00
William Reynish
ad3fb94ccf UI: keep some buttons fixed size in 3D view header. 2018-09-26 18:24:34 +02:00
cbe82f81e1 UI: allow fractical unit size for layouts. 2018-09-26 18:24:09 +02:00
William Reynish
b2a569dd68 UI: use pie menu for snap, pivot and proportional editing.
* Proportional pie menu at shift+O.
* Snap pie menu at shift+S.
* Pivot pie menu at comma. Previous comma, ctrl+comma, period
  and ctrl+period shortcuts for specific pivot types were removed.

Ref T56881.
2018-09-26 18:24:09 +02:00
c0b9a4a86e Depsgraph: Add missing relation for spline IK
Solver should clearly depend on initializaiton.
2018-09-26 18:16:55 +02:00
0666ece2e2 Cloth: Collision improvements
This commit includes several performance, stability, and reliability
improvements to cloth collisions.

Most notably:
* The implementation of a new self-collisions system.
* Multithreading of collision detection.
* Implementation of single sided collisions and normal overrides.
* Replacement of the `plNearestPoints` function from Bullet with a
dedicated solution.

Further, this also includes several bug fixes, and algorithmic
improvements.

Reviewed By: brecht

Differential Revision: http://developer.blender.org/D3712
2018-09-26 17:49:40 +02:00
a27d97d1b7 Addons: reactivate 'STL format' addon
Reviewers: brecht

Differential Revision: https://developer.blender.org/D3735
2018-09-26 17:32:46 +02:00
586ec7588f Cleanup: Edit Surface & Curve engines unused code 2018-09-26 16:42:57 +02:00
f7a81abe19 Edit Surface: Use edit curve engine to display edit surface
It's so similar in practice that we don't need a separate engine for edit
surface overlays.
2018-09-26 16:42:57 +02:00
1407a11138 Edit Curve: Fix "show handles" option hiding nurbs segments 2018-09-26 16:42:57 +02:00
e16afa5c73 GP: Only check annotation origin for 3D View 2018-09-26 16:25:11 +02:00
1cdf136846 GP: Rename parameter unlock_color and tooltip 2018-09-26 16:17:54 +02:00
9ac5eae433 GP: Fix unreported crash when click+drag in edit mode 2018-09-26 16:07:44 +02:00
150cba73c9 GP: Change menu icons for hide/show 2018-09-26 16:01:01 +02:00
3378782eee Implement additional modes for Shrinkwrap to a surface.
In addition to the original map to surface and Keep Above Surface,
add modes that only affect vertices that are inside or outside
the object. This is inspired by the Limit Distance constraint,
and can be useful for crude collision detection in rigs.

The inside/outside test works based on face normals and may not be
completely reliable near 90 degree or sharper angles in the target.

Reviewers: campbellbarton, mont29

Differential Revision: https://developer.blender.org/D3717
2018-09-26 16:52:58 +03:00
310f1b0579 GP: Fix unreported change material operator error
The first material of the list could not be assigned.
2018-09-26 15:49:46 +02:00
81a7d3cd07 Fix T56926: Highlighted selection doesn't disappear when locking layer 2018-09-26 15:28:11 +02:00
280de3df07 Multires: Use proper subdivision level for reshape
Apparently, part of code got lost last minute prior to push.
2018-09-26 15:08:04 +02:00
e4284d06ad Fix T56899: mesh deform bind does not work. 2018-09-26 14:51:08 +02:00
dc316f72b3 Multires: Promote OSD CCG to be officially supported
Only active when WITH_OPENSUBDIV_MODIFIER is set to ON.

There is still some work to be done to make that one enabled by
default.
2018-09-26 14:42:16 +02:00
6fc798e049 Subsurf: Tweak versioning code
Select minimum of render subdivision levels and 3 for
the initial value of quality. This way we don't force
too much quality for meshes which were not supposed to
be too much quality :)
2018-09-26 14:42:16 +02:00
619961df3a Fix crash opening some old files, after recent changes. 2018-09-26 14:24:26 +02:00
5d3c815c2f Revert "Compositor: Added Weighted Standard Curve evaluation"
This reverts commit b8c9df6f21. The code is not
correct with regards to color management, and its purpose was not documented.
2018-09-26 14:24:13 +02:00
d06d1937ef GP: Check weight data before using it 2018-09-26 13:12:49 +02:00
2e9b86923c Fix T56920: Crash: Renaming bone through outliner 2018-09-26 12:50:24 +02:00
6d3e42ccbd Cleanup: Silence strict compiler warning
Was happening when using OSD for modifiers.
2018-09-26 11:54:19 +02:00
de811518c0 OpenSubdiv: Cleanup, the TODO was actually solved 2018-09-26 11:52:06 +02:00
b125bd7e0e Clip editor: Fix usage of template_marker
Needs an update to the new Python API.

Reported by Sebastian in IRC, thanks!
2018-09-26 11:29:21 +02:00
12c664f7fb GP: Adjust topbar layer selector to new fixed width 2018-09-26 10:49:46 +02:00
3a15834d63 OpenSubdiv: Cleanup 2018-09-26 10:21:34 +02:00
d599368cd4 Fix access past array boundaries
Need to resize `have_functions` arrays when adding more functions.
Not sure there is more reliable way which will prevent accidents
like this.

Was caused by c47be43674.
2018-09-26 10:14:25 +02:00
c67a51db42 Gizmo: initial snap support for move
This allows the gizmo to snap to 3D view elements,
Although currently this isn't usable gizmo's that use operator redo.
2018-09-26 17:38:09 +10:00
4a6ee9c4c2 Gizmo: support for cancelling move3d modal changes 2018-09-26 16:44:45 +10:00
d1bac6f70d Spin Tool: match dial orientation to active gizmo 2018-09-26 16:31:31 +10:00
c47be43674 Gizmo: add invoke_prepare callback
Allows gizmo groups to set values based on the gizmo about to be invoked.
2018-09-26 16:31:31 +10:00
bb8023ff7f Fix misleading field naming.
This is not any kind of length, it is the number of true values.
2018-09-26 09:05:13 +03:00
f5c4cc877e Spin Tool: option (disabled) for gizmos to follow selection
Disable since this causes multiple axis to overlap too often.
It's also glitchy since we don't have a good way to detect
changes to selection.
2018-09-26 14:36:23 +10:00
bd79ea03cb Correct error in last commit
Didn't account for non-identity orientation.
2018-09-26 13:30:15 +10:00
12cfa13470 Spin Tool: correct the initial redo dial rotation 2018-09-26 13:08:02 +10:00
77b381bd35 Merge branch 'master' into blender2.8 2018-09-26 11:42:38 +10:00
63658ae76d Cleanup: redundant include 2018-09-26 10:55:22 +10:00
07747bcd67 Merge branch 'master' into blender2.8 2018-09-26 10:30:34 +10:00
c72380a427 Merge branch 'master' into blender2.8 2018-09-26 10:28:23 +10:00
Dalai Felinto
c29d18c4c8 Multi-Objects: Selects similar face SIMFACE_COPLANAR
Unlike 2.79 I am not using the comparison type to get coplanar planes that are above/below the plane.
That seems arbritary at best, and a bit of a challenge to get it right.

Also, I'm doing some shenanigans to use a single tree to store the face direction and the distance.
Here in my tests it is working fine though.
2018-09-25 21:10:46 -03:00
741ed1029e Cleanup: naming of DRW mesh weight API 2018-09-26 10:16:17 +10:00
e40870c479 Cleanup: warnings, style 2018-09-26 10:01:32 +10:00
34d98cfe61 BMesh: spin option to merge first/last
For 360d revolutions this is almost always whats intended,
enable by default.
2018-09-26 09:55:17 +10:00
Dalai Felinto
c419cb7305 Multi-Objects: Select similar face SIMFACE_FACEMAP
Facemap is per object, so we store them in a gset per object, and only check the object
faces with its own facemaps.
2018-09-25 19:58:03 -03:00
Dalai Felinto
235c51f11a Remove wrongly copy/pasted comment on object_facemap_ops.c 2018-09-25 19:58:03 -03:00
682c64d3e1 Curve Edit: Fix handles glitch when MSAA is enable 2018-09-26 00:49:50 +02:00
5158da9e37 Curve Edit: Cleanup/Improve/Fix handles drawing
Now handles are drawn using index buffer instead of duplicating memory
requirement.

Also make use of shader tricks to draw handles antialiased, and respond to
UI scalling.

Make vertex point match edit mesh vertex size.
2018-09-26 00:49:50 +02:00
Dalai Felinto
c9d0873e90 Multi-Objects: Select similar face SIMFACE_FREESTYLE
Note: 2.7x seem to be checking for edge data instead of face, but I do not see why not to get FreestyleFace.
2018-09-25 19:18:30 -03:00
Dalai Felinto
424bb2ebdc Multi-Objects: Select similar face SIMFACE_SMOOTH 2018-09-25 19:18:30 -03:00
Dalai Felinto
f59b968cef Multi-Objects: Select similar face SIMFACE_NORMAL
We could/can deduplicate the code with SIMVERT_NORMAL.
2018-09-25 19:18:30 -03:00
Dalai Felinto
c32b63f8fd Multi-Objects: Select similar face SIMFACE_AREA and SIMFACE_PERIMETER
Note: Not doing worldspace comparison for now. We would need to create new
BM_face_calc_area and BM_face_calc_perimeter equivalent functions for that.

Not sure if it is worth the trouble.
2018-09-25 19:18:30 -03:00
Dalai Felinto
3618646e71 Multi-Objects: Select similar face SIMFACE_MATERIAL
Note: Unlike 2.79 we are not comparing face->mat_nr, but the material itself.
On top og that, if the material slot is empty we are just ignoring this face.
2018-09-25 19:18:30 -03:00
Dalai Felinto
8990ad1b9c Multi-Objects: Select similar face SIMFACE_SIDES 2018-09-25 19:18:30 -03:00
Dalai Felinto
b75648694c Cleanup comments on select similar edge 2018-09-25 19:18:30 -03:00
Dalai Felinto
ebe955b1c8 Fix memleak on edbm_select_linked_pick_invoke
Issue introduced on 549ac6ddeb.
2018-09-25 19:18:30 -03:00
Dalai Felinto
5a6b46f0ca Remove warnings 2018-09-25 19:18:30 -03:00
311db0e9f0 Edit Curves: Fix warnings due to recent changes 2018-09-25 23:04:41 +02:00
Dalai Felinto
9dbf71adb8 Code style cleanup after recent object drawing > viewport changes 2018-09-25 17:56:14 -03:00
0c21773199 Edit Curve: Fix cannot hide handles 2018-09-25 22:51:54 +02:00
2cff9b4cb6 Curves: Move draw options to overlays
This commit add one regression: it is impossible to currently hide handles
in the viewport. But this should be fixed in another commit.
2018-09-25 22:51:54 +02:00
05d0e5315b Weight Paint: Fix weight paint overlay not displaying correctly
This was because weight paint was using the original obj to show weights.
But the mesh can be deformed by the armature and this is not visible on
the original object.
2018-09-25 22:51:54 +02:00
9f6978a1ba Eevee: Don't render meshes in hidden wire mode 2018-09-25 22:51:54 +02:00
a3bb385ca0 Edit Mesh: Move Edit Mesh display settings to overlay's
This makes the Edit Mesh display settings common to all objects. They can
also be set differently per viewport.

Modifying extra data (seams, sharp edges etc...) will no longer set them
automaticaly visible.

Bumping version because we need to force set all extra draw options for
older files.
2018-09-25 22:51:54 +02:00
7cc9998809 Edit Mesh: Center text when Edge length & Edge Angle is activated
This is more readable as the informations will never overlap and be off the
center of the edge.
2018-09-25 22:51:54 +02:00
Dalai Felinto
75eb947275 Multi-Objects: Select similar edge SIMEDGE_CREASE and SIMEDGE_CREASE
All edge options are done now.
2018-09-25 16:36:02 -03:00
f4f99d1d75 Add fixed width/height parameter for layouts
New parameters to define a fixed size for a layout. This allows to avoid UI changes when the text length changes.

This commit implements D3725
2018-09-25 20:59:04 +02:00
0f7e858f06 GP: New pressure option for sculpt brush radius 2018-09-25 20:43:50 +02:00
9df3467b4e GP: Add const to variable 2018-09-25 20:23:55 +02:00
e3f3a8101a Fix T56917: GP noise modifier vertex group crash 2018-09-25 19:48:57 +02:00
4ad3182eb1 GP: Fix multi viewport onion error
For onion skin, the cache is set as dirty always because can be too many combinations of overlays and windows and makes impossible to control all changes of dirty flag.

This reduces performance, but it's safer and the onion is disabled while play animation, so the fps value is not affected.
2018-09-25 19:30:50 +02:00
fcf3aa90da CMake: Repress deprecation warnings with MSVC. 2018-09-25 11:05:35 -06:00
0f652a1ec0 GP: New deselect by material option
Now the operator to select by color can unselect too.
2018-09-25 19:01:12 +02:00
fd1870b995 GP: Small changes to assign color operator 2018-09-25 18:44:53 +02:00
Alan Troth
d95a8988ea Fix UV edit smart stitch not redoing correctly.
Differential Revision: https://developer.blender.org/D3687
2018-09-25 18:36:14 +02:00
df5cb4d66f GP: Add multiframe support to select by color 2018-09-25 18:17:48 +02:00
89b535690c GP: Fix select strokes by color error 2018-09-25 18:17:48 +02:00
3e86cfa1ff depsgraph: re-Fix 32 bit shift bug in get_visible_components_mask.
1UL << n still results in a 32 bit result, 1ULL << n actually retains all 64 bits.

fixes stupid typo in rBbd51cada8db64e45cabca66cd61438c1ae2bdf25
2018-09-25 10:12:58 -06:00
af998b40a0 Implement correct drawing of advanced Weight display features.
This adds existing behavior from calc_weightpaint_vert_array
that was missing from the new rendering code:

- No selected Vertex Group displays as a solid pink color.
- Zero weight displays as alert color depending on Options.
- Multipaint mode correctly displays collective weight.

In order to properly implement this variety, a data structure
holding all relevant parameters is introduced.

Reviewers: fclem, campbellbarton

Subscribers: jbakker

Differential Revision: https://developer.blender.org/D3722
2018-09-25 18:44:57 +03:00
bd51cada8d depsgraph: Fix 32 bit shift bug in get_visible_components_mask.
1 << n results in a 32 bit result, 1UL << n retains all 64 bits.
2018-09-25 09:23:00 -06:00
2f00f5b98f despgraph: Use regular iterators for erase, fixes build error on centOS
CentOS7 ships with gcc 4.8.2 which does not support the const_iterator for erase.
2018-09-25 08:35:31 -06:00
e61861e393 GP: Add popover for Sculpt and Weight Paint panels 2018-09-25 15:39:15 +02:00
Michel Anders
5960254045 Fix missing metaball capsule properties in properties editor.
Differential Revision: https://developer.blender.org/D3726
2018-09-25 15:06:14 +02:00
Roel Koster
3816592fc6 Fix broken shift + A menu in curve edit mode.
Differential Revision: https://developer.blender.org/D3699
2018-09-25 14:55:26 +02:00
Sebastian Parborg
d191676400 Modifiers: use Mesh instead of DerivedMesh for explode.
Differential Revision: https://developer.blender.org/D3718
2018-09-25 14:01:23 +02:00
456ed41e2c GP: Remove Strokes menu in Sculpt mode 2018-09-25 13:35:14 +02:00
42600ab214 GP: Add select tools in sculpt mode 2018-09-25 13:35:14 +02:00
Dalai Felinto
19bdb84466 Fix build on windows after ccg changes 2018-09-25 11:26:31 +00:00
unknown
1de9ecec14 Merge branch 'blender2.8' of https://git.blender.org/blender into blender2.8 2018-09-25 08:18:15 -03:00
6ed581c107 Multires: Allow changing sculpt level without loosing data
As the comment states, this is not really great solution, but
is good enough for now. Proper solution needs some more work,
and maybe reconsideration of what is stored where.
2018-09-25 12:37:00 +02:00
13915c05dd CustomData: Allow copying content of a single layer 2018-09-25 12:27:43 +02:00
554b26cf88 Fix T56912: bpy.data.masks.new() crashed
I think there are two possible ways to fix that.
1. Make the name a required parameter.
2. Provide a default value.

I choosed option 1 in this fix to be consistent with other .new functions.

Also I think `RNA_def_string` instead of `RNA_def_string_file_path` should be used here. Looks like a copy-paste error.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3728
2018-09-25 12:01:43 +02:00
e60bbcafc5 Cleanup: indentation 2018-09-25 11:38:41 +02:00
53b25e88f4 Multires: Make code more ready for mesh uised by multiple objects
Probably more work is needed, but is good starting point.
2018-09-25 10:44:29 +02:00
15792eb728 Cleanup: Variable name in mesh runtime
Matches type better, avoiding possible confusion.
2018-09-25 10:32:34 +02:00
43c4d0bf23 Multires: Pass total level instead of modifier data
This is the only thing which needs to be done to perform propoer
reshape. Makes it easier to re-use code from other places.
2018-09-25 09:58:40 +02:00
a933293f11 Multires: Pass mesh instead of object
There is nothing we need from object in this case.
2018-09-25 09:38:23 +02:00
518451757e Gizmo: dial support for a click setting a value
Useful for click w/o drag to spin a full revolution.
2018-09-25 15:15:38 +10:00
1040e4008c Gizmo: reset dial value on cancel 2018-09-25 14:37:19 +10:00
ebdeb3eca0 Gizmo: support spin tool normal flipping
Use the 2x spin tool has 2x handles to control normal direction,
dragging either handle backwards now reverses normals.

Previously it was common for the spin result to have normals
flipped the wrong way.
2018-09-25 14:24:19 +10:00
0083c69624 Missing from last commit 2018-09-25 13:44:25 +10:00
a7bf4966e2 Merge branch 'master' into blender2.8 2018-09-25 13:42:51 +10:00
06d4fad313 BMesh: option to flip normals for extrude/spin 2018-09-25 13:31:29 +10:00
d915e6dc8d Merge branch 'master' into blender2.8 2018-09-25 11:50:47 +10:00
10fbea8845 Cleanup: style 2018-09-25 11:41:29 +10:00
c4806bbcb9 GP: Move MIrror modifier to Generate column 2018-09-24 22:26:44 +02:00
ac747c96d9 GP: Move Unlock Color to Adjustments panel
This option is not used all the time and can be moved to additional panel
2018-09-24 22:26:21 +02:00
2b628ba52b GP: Disable AA for material previews
This is not visible and it's using a lot of GPU memory
2018-09-24 22:10:08 +02:00
a6b125b06f Remove unused files 2018-09-24 14:50:20 -03:00
342e73f90f Spelling fixes in comments and descriptions (2.8 changes), patch by luzpaz.
Differential Revision: https://developer.blender.org/D3719
2018-09-24 18:48:29 +02:00
9682e43bf9 BGL: Wrap glBlitFramebuffer 2018-09-24 13:12:50 -03:00
dd01b2882a Merge branch 'master' into blender2.8 2018-09-24 18:11:14 +02:00
50731ff596 Fix T56861: freestyle + BI + full sample AA not working correct. 2018-09-24 18:09:21 +02:00
253dce07d7 Merge branch 'master' into blender2.8 2018-09-24 17:42:52 +02:00
0cff044d84 Spelling fixes in comments and descriptions, patch by luzpaz.
Differential Revision: https://developer.blender.org/D3719
2018-09-24 17:28:40 +02:00
Sebastian Parborg
fe52a05e95 Modifiers: use Mesh instead of DerivedMesh for dynamic paint.
Differential Revision: https://developer.blender.org/D3720
2018-09-24 17:14:01 +02:00
19f46c6ac0 Weight Paint: Multiply overlay on the mesh
Use the multiply blending mode for the weight paint overlay.
To support the opacity slider, we need a new shader. Otherwise this combination of multiplication and mixing does not seem to be supported by glBlendFunc.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3727
2018-09-24 17:10:29 +02:00
809be0099e GP: Some changes in Appearance panel 2018-09-24 16:36:08 +02:00
ea61700a2d Tracking: Use pixel aspect from clip
Don't force square pixel, since on a more real pipeline
expected delivery is same anamorphic as an input footage.
2018-09-24 16:26:27 +02:00
29602bbd62 Depsgraph: Always respect visibility flag when building object
Before it was only doing this for directly linked objects. This was
initially needed to solve fps issues in some of the shots. Now this
fps drop i can no longer reproduce. Was likely needed prior to
modifiers dependencies "inheriting" visibility from the "parent".

This commit makes it so objects which are linked indirectly to the
scene via collections are properly considered visible (or, rather,
evaluatable) by dependency graph.

Solves missing eyelashes and braids issues with 01_035_A.
2018-09-24 15:57:43 +02:00
736f91ad01 Depsgraph: Tweak to visibility flush
Make flush ready for component forced to be affecting visible things
from builder.
2018-09-24 15:55:02 +02:00
65c71fc410 Depsgraph: Provide more information about component 2018-09-24 15:55:02 +02:00
8008cdac2e Depsgraph: Cleanup, spelling in comment 2018-09-24 15:55:02 +02:00
a7c96a7aa6 Cleanup: Spelling 2018-09-24 15:55:02 +02:00
8dfdd248b5 Fix T56895: crash loading template with Load UI unchecked. 2018-09-24 15:48:50 +02:00
8f51308dba Build: allow overriding DEPS_BUILD_DIR and DEPS_INSTALL_DIR for make deps. 2018-09-24 15:48:50 +02:00
920173072e Fix: insert missing break in switch statement (second try) 2018-09-24 15:44:12 +02:00
6fff22b017 Revert "Fix: insert missing break in switch statement"
This reverts commit e904bb64df.
2018-09-24 15:40:01 +02:00
Dalai Felinto
cdb772490a Fix object restrict selection toggle in outliner not working 2018-09-24 11:53:25 +00:00
969cbed49b Add support for a one-dimensional Force Field source shape.
The fields currently support a Point source and a two-dimensional
Plane source, but there is no way to create a field that pulls
toward or from a line in space other than using the Texture field
type. This adds a new simple shape option to do that.

The line is aligned along the Z axis so that it works meaningfully
with the Tube and Cone falloff modes.

Reviewers: brecht, mont29, LucaRood

Differential Revision: https://developer.blender.org/D3721
2018-09-24 13:57:59 +03:00
2721700b7a GP: Make topbar layer popover wider 2018-09-24 12:57:11 +02:00
e904bb64df Fix: insert missing break in switch statement
Reviewers: brecht

Differential Revision: https://developer.blender.org/D3724
2018-09-24 12:43:26 +02:00
24330f679e Fix T56875: Auto Render not working after render pass name refactor
The default compositor node update function sets the need_exec flag on the node
which the Auto Render feature checks, but the custom update function that was
added as part of rB4cf7fc3b3a4d didn't do so.

Therefore, the two custom update functions that were added now also call the
default update function.
2018-09-24 11:40:00 +02:00
3d860f53e8 Gizmo: hide redo gizmo when spin tool not active
Selecting a another tool left the gizmo,
which could overlap other tools gizmos.
2018-09-24 17:13:16 +10:00
6db79dafb3 Gizmo: show partial arc & icons for spin tool 2018-09-24 17:06:55 +10:00
6457aaa420 Gizmo: dial3d option to draw a partial arc 2018-09-24 17:06:04 +10:00
b931e7ab4f Gizmo: option to hide from selection
Allows some gizmo to be used as guides.
2018-09-24 16:40:21 +10:00
9a77f33bad GPU: utility function to draw a partial circle 2018-09-24 16:22:22 +10:00
5fff3d2237 Cleanup: rename gizmo flag 2018-09-24 16:20:08 +10:00
c3d46694e2 Gizmo: add spin-tool rotate on view axis
This also acts to catch stray click events so missing a gizmo
doesn't move the cursor or execute another spin action.
2018-09-24 10:13:39 +10:00
2abbe1d125 Cleanup: skip translation to calculate length 2018-09-24 08:34:05 +10:00
0e65c4839c Cleanup: style 2018-09-24 08:25:51 +10:00
b350b194eb GP: Change direction text depending of sculpt brush 2018-09-22 16:27:04 +02:00
38402e7fdd Remove last traces of game engine and blenderplayer 2018-09-22 15:54:30 +02:00
17c4e5eb8a Depsgraph: Shrinkwrap modifier needs its own object transform.
It depends on the relative position of its own object and target.
2018-09-22 12:00:12 +03:00
fbede83afd GP: Change appearance panel for sculpt brushes 2018-09-21 23:11:30 +02:00
3a61771fdc GP: Move mask button to header 2018-09-21 22:59:24 +02:00
664865680a GP: More changes to sculpt panels and topbar 2018-09-21 22:50:20 +02:00
Dalai Felinto
502dbcf404 Select Similar: Cleanup - WITH_FREESYTLE 2018-09-21 16:32:24 -03:00
Dalai Felinto
09616c3f2f Multi-Objects: Select similar edge SIMEDGE_FREESTYLE
I'm not happy with #ifdef WITH_FREESTYLE everywhere.
But I will remove them in an upcoming commit
2018-09-21 16:28:25 -03:00
Dalai Felinto
eeeb469db2 Select Similar: Cleanup 2018-09-21 15:42:07 -03:00
Dalai Felinto
c2582bfc63 Select Similar: Skip hidden elements 2018-09-21 15:39:36 -03:00
Dalai Felinto
e8ec01dbb5 Multi-Objects: Select similar edge SIMEDGE_SEAM/SIMEDGE_SHARP
I'm not sure why we may want to sample both a sharp and an unsharp edges at the
same time, maybe to see if the selected edges all have the same values?

Either way, implemented as in 2.79. I also believe we may have a faster way to
select all the edges, but let's file this under optimizations to be done later.
2018-09-21 15:33:09 -03:00
d5f94b49bd Fix part of T56865: wrong center with orbit around selection in weight paint. 2018-09-21 20:21:40 +02:00
890b617919 Fix Python errors in weight paint mode. 2018-09-21 20:21:40 +02:00
529e22d6e2 GP: Initial changes in sculpt brush panel
Move some options to subpanels
2018-09-21 20:15:41 +02:00
4323ccfa6b GPU Python API: matrix.load_projection_matrix
If the `push_projection` and `pop_projection` functions already exist, there should naturally be a way to load a projection matrix.
2018-09-21 15:07:41 -03:00
444711e615 Re-enable OBJ add-on. 2018-09-21 20:06:51 +02:00
Dalai Felinto
438e09dbbe MESH_OT_select_similar: Cleanup 2018-09-21 14:46:50 -03:00
Dalai Felinto
e406a9f305 Multi-objects: Select similar edge SIMEDGE_FACE_ANGLE
I'm not sure why the original implementation was only checking for equal
comparison but I'm doing the same here. It is a one line change if we
want to support LT/GT anyways.

Also "technically" we should compare the angles in the worldspace, since
different scales will result in different angles. Added as a TODO but
honestly I think this is overkill.
2018-09-21 14:46:50 -03:00
Dalai Felinto
35f659aeb4 Rename bm_sel_similar_cmp_short > select_similar_compare_LONG 2018-09-21 14:46:50 -03:00
Dalai Felinto
3e46bea46b Multi-objects: Select similar edge SIMEDGE_LENGTH
I'm using kdtree here but there is nothing preventing us from using a simple
float linked list with a sorting and finding "nearest" equivalents.

At least we are benefitting from bisecting as oppose to the original solution.

Also we need epsilon for the float comparisons.
2018-09-21 14:46:50 -03:00
Dalai Felinto
b38be90515 Multi-objects: Select similar edge SIMEDGE_DIR 2018-09-21 14:46:50 -03:00
Dalai Felinto
acc6c50d8a Multi-objects: Select similar edge SIMEDGE_FACE 2018-09-21 14:46:50 -03:00
Dalai Felinto
850fda2358 Select similar edge: Granular error message
This way we can implement them onw by one
2018-09-21 14:46:50 -03:00
0edb2b8de9 Py io_utils: deprecate orientation_helper_factory and add new orientation_helper decorator.
This fixes warning about not using annotations, and a decorator here is
a much cleaner solution anyway.
2018-09-21 19:31:57 +02:00
Dalai Felinto
a3020d5558 Fixup for gpu.types.GPUOffscreen.py example
Addressing the changes introduced on: 43fa51835a
2018-09-21 13:34:53 -03:00
2ece296d4f Wireframe Mode: Fix missing wireframe if overlays are disabled 2018-09-21 18:29:25 +02:00
43fa51835a gpu.types.GPUOffscreen.py example file: Move the shader reference removal code to execute on __main__ 2018-09-21 13:26:23 -03:00
18252e407f Viewport: tweak shading pie layout and naming. 2018-09-21 17:55:25 +02:00
8143f27209 Cleanup: Indentation 2018-09-21 17:40:32 +02:00
fbb403e094 Multires: Remove unused field from reshape context 2018-09-21 17:40:32 +02:00
964bb28e21 gpu.types.GPUOffscreen.py example file: Delete the reference of the previous shader.
Strange that the `bpy.utils.register_class` utility does not remove the reference of the class with same name.
2018-09-21 12:36:38 -03:00
d2a491da5f Viewport: tweak shading pie menu to have X-ray on same side as wireframe. 2018-09-21 17:01:10 +02:00
202baaaa16 Viewport: change Z key to shading pie menu to switch mode, X-ray and overlays.
This lets us do the most common shading switching with one shortcut. We keep
alt+Z and shift+Z for quickly toggling to lookdev and rendered mode and back,
it's debatable which settings deserve a dedicated shortcut like this.

The downside is that switching X-ray is a little slower, and that there is
some risk of accidentally going to lookdev or rendered mode which can be slow
to cancel.
2018-09-21 16:52:34 +02:00
684739c6f9 Fix: missing cache invalidation when the active vertex group changed
Reviewers: brecht

Differential Revision: https://developer.blender.org/D3716
2018-09-21 16:20:32 +02:00
d2dba449fe Edit Mesh Mode: Increase Face dot Z bias 2018-09-21 15:45:03 +02:00
37fea2c0f0 Edit Mode: Merge Xray and "Limit selection to visible" options behaviour
We now treat Xray as being the mode where Limit selection to visible is off.
If Xray is OFF, Limit selection to visible is considered ON.

To allow 'see through wires' with solid shading (not Xray shading) we still
draw solid shading if Xray is ON with Xray Alpha set to 1.0.
2018-09-21 15:45:03 +02:00
3523958de9 DRW: Add back wireframe mode
This is using the existing engine (workbench forward) with 0.0 xray_alpha
and forcing wireframes on all objects.

There is no workflow/shortcut changes in this commit.
2018-09-21 15:45:03 +02:00
6934b246d1 Cleanup: Inetnation 2018-09-21 15:35:34 +02:00
5ee0200d43 Multires: Support masks propagation to higher levels 2018-09-21 15:31:44 +02:00
cec4c77719 Multires: Copy mask from sculpt to multires
Allows to paint mask in sculpt mode, then go out of sculpt
mode, come back and see proper mask.
2018-09-21 15:31:43 +02:00
b32832a7e8 Subdiv: CCG, initialize grid mask from paint mask 2018-09-21 15:31:43 +02:00
da800621ed Subdiv: CCG, cleanup 2018-09-21 15:31:43 +02:00
6a7914b73e Re-enable FBX add-on. 2018-09-21 15:15:08 +02:00
06dc059f48 Depsgraph: update frame in scene on frame change.
Normally the time can be read from DEG_get_ctime(depsgraph), but this is a
bit more forgiving for e.g. addons that don't care too much about the details
of the COW depsgraph.
2018-09-21 14:15:27 +02:00
4494be513a Fix smoke to render in Cycles again.
Viewport caching seems still broken, though baking works.
2018-09-21 14:15:27 +02:00
b7035cb8bd GP: Change canvas titles
These changes are to harmonize names.
2018-09-21 14:10:40 +02:00
cfb7565cd5 Cleanup: convert smoke modifier from DerivedMesh to Mesh. 2018-09-21 13:56:22 +02:00
91a5b665b0 Cycles: keep material settings panel closed by default. 2018-09-21 13:56:22 +02:00
0192f0b1e4 Revert "Fix: setUp of ID Property tests failed"
This reverts commit 52cee1a23c.
2018-09-21 12:54:43 +02:00
52cee1a23c Fix: setUp of ID Property tests failed 2018-09-21 12:51:06 +02:00
9ecce9b4c4 Subdiv: Fix crash subdividing mesh withotu faces 2018-09-21 12:18:50 +02:00
12372e8d8b Multires: Support sculpting on a lover levels
Added propagation of displacement to a higher levels.

Has the same limitation as reshape from object, which makes
grids somewhat choppy due to linear interpolation nature.

This is to be addressed next.
2018-09-21 11:43:42 +02:00
619c55027f Multires: Fix reshaping from object at lower level
This brings basic implementation of displacement propagation
to a higher levels. Currently does linear interpolation between
grid points at which reshape happened. It makes results a bit
choppy, proper solution would be to use some interpolation
weights from the limit patch.
2018-09-21 11:24:33 +02:00
495c7463fc UI: fractional DPI scaling of splash, instead of always 1x or 2x. 2018-09-21 10:46:08 +02:00
87bbf4439d GP: Fix select tools from toolbar error
The operators used were not the right ones.
2018-09-21 10:30:05 +02:00
c71db48b27 Fix minor typo in comment. 2018-09-21 10:08:42 +02:00
cf34c165ea GP: Convert lock axis to popover 2018-09-21 08:51:25 +02:00
391536ef12 Fix missing edge in shape-to-wire utility 2018-09-21 16:09:32 +10:00
7a3474ddfd Gizmo: spin tool XYZ axis toggles
New handle type for initial spin,
gives clear differentiation between do & redo (similar to extrude).

Some tweaks still required to match T56571.
2018-09-21 13:48:22 +10:00
3266ebf9e5 Gizmo: enable spin tool redo gizmos again
- Add x,y rotate and translate controls.
- Remove x-depth adjustment.
2018-09-21 13:34:29 +10:00
7deb38eec6 Gizmo: fix incorrect dial clip scaling
Failed with obvious error when the dials scale wasn't 1.0
2018-09-21 10:30:55 +10:00
Dalai Felinto
fbc837b2f8 Updated gpu.types.GPUOffscreen.py example file
The image I get is a bit too dark, which is the same I get in the viewport
itself when there is no Display Device. So I believe for cases like this
we need to have color management on top of the buffer.

Also, on EEVEE it looks like it needs to clear some extra buffers. You can see
that, by rotating the camera view around.

That said, this is the first step to bring back fun addons
that use external offscreen buffers.

Note: When using gpu offscreen with POST_VIEW (as oppose to POST_PIXEL)
I get a crash with DST having 0xFF..
2018-09-20 22:21:19 +00:00
5340e9ac1b Merge branch 'master' into blender2.8 2018-09-21 08:18:23 +10:00
0a968510bf Cleanup: style, use raw strings 2018-09-21 08:15:46 +10:00
08c7733c13 Cleanup: style 2018-09-21 08:11:50 +10:00
Dalai Felinto
fb88088203 Preserve the actively bound framebuffer after using gpu.offscreen
Otherwise we cannot draw anything after drawing in the offscreen buffer
2018-09-20 21:43:08 +00:00
5e2c032f1a GP: Change lock axis property text 2018-09-20 22:51:56 +02:00
5e5a950dca GP: Rename origin to stroke placement 2018-09-20 22:51:34 +02:00
Dalai Felinto
425cfdd5be GPU Python API: shader.uniform_float
The existing alternative is to use a buffer and call
uniform_vector_float which is overkill for such a simple operation.
2018-09-20 19:51:06 +00:00
Dalai Felinto
e316e41f84 Typo on pydoc for uniform_int 2018-09-20 19:49:08 +00:00
f0149bc070 gpu.batch module: keep shader reference in batch. 2018-09-20 16:38:43 -03:00
9fb9604c19 gpu.shader module: Do not free builtin shaders. 2018-09-20 15:21:59 -03:00
Sebastian Parborg
d0eed5e50a Texture Paint: unify missing data and slots panels, better auto position nodes.
Differential Revision: https://developer.blender.org/D3694
2018-09-20 19:54:33 +02:00
09ea940e7b Fix missing Eevee volume panel in material tab. 2018-09-20 19:28:56 +02:00
1a0181bb6d UI: add support for defining any icon as a mono icon.
Previously it was hardcoded to one row. These icons are colored with the
text color. Changes include some refactoring.
2018-09-20 19:15:41 +02:00
decc323b4e UI: default to single icon column toolbar in new 3D views. 2018-09-20 19:15:01 +02:00
9c2dc808ce gpu.shader.builtin module: Add GPU_SHADER_2D_IMAGE. 2018-09-20 13:55:43 -03:00
4264cee921 GP: Cleanup unused code 2018-09-20 18:52:57 +02:00
963d668a03 GP: Move origin selector to center and convert to popup 2018-09-20 18:50:19 +02:00
ce1b57227d GP: Add new popover with layers panel 2018-09-20 18:50:19 +02:00
b8d55a570e GPUCodegen: Remove unnecessary GLEW_VERSION_3_0 checks 2018-09-20 17:53:47 +02:00
667add5fc5 Eevee: Implement Wireframe Node
This implementation is a bit hacky but match cycles pretty close.

If pixel size is not enabled, it will use the geom shader to
compute distances between vertices. This will have a cost.

Implementation is a bit hacky in gpu_codegen to make the geom shader works
in an optional manner.
2018-09-20 17:53:47 +02:00
5c20161f81 Fix compilation error in the stick bones shader for some Intel gpus. 2018-09-20 12:11:23 -03:00
Dalai Felinto
cffae36381 Fix build for MSVC: Remove trailing double semicolon
Not sure why but MSVC is complaining for some of those.

In particular for the struct in BKE_subdiv_ccg.h. Those were the ones
crashing here..
2018-09-20 14:59:55 +00:00
9a91e67825 Multires: Cleanup, more proper variable name 2018-09-20 16:35:50 +02:00
315929e095 Sculpt: Fix undo not working for multires 2018-09-20 15:39:41 +02:00
00037059e9 Subdiv: CCG, implement averaging along edges and corners
Makes it so smooth brush works properly, without causing grids
to become disconnected from each other.

This need to optimize the code for brush, to only average edges
and vertices which are adjacent to modified faces.
2018-09-20 15:39:41 +02:00
d3aafbddd9 Subdiv: CCG, store vertex adjacency information
Similar to previous commit, but for vertices.
2018-09-20 15:39:41 +02:00
d511c72056 Subdiv: CCG, store edge adjacency information
This information is stored for each non-loose edge.

For each of such edge we store:

- List of CCG faces it is adjacent to.

  This way we can easily check whether it is adjacent to
  any face which is tagged for update or so.

- List of boundary elements from adjacent grids.

  This allows to traverse along the edge and average all
  adjacent grids.
2018-09-20 15:39:41 +02:00
8196b9d7bc OpenSubdiv: Add extra base level queries to topology refiner 2018-09-20 15:39:41 +02:00
069fa8279d Subdiv: CCG, fix memory leak
Forgot to free memory used by grid to face mapping array.
2018-09-20 15:39:41 +02:00
13820ec5c1 Subdiv: CCG, fix crash going from sculpt to edit mode
Was happening for "new" objects, which did not have MDisps
allocated yet.
2018-09-20 15:39:41 +02:00
0a596eda2a Subdiv: CCG, localize Mesh usage even more 2018-09-20 15:39:41 +02:00
6a7e914476 Subdiv: CCG, go away from Mesh
Use topology refiner where possible, which will make code more
portable and less dependent on all the possibly outdated pointers.
2018-09-20 15:39:41 +02:00
a5d985b441 Merge branch 'master' into blender2.8 2018-09-20 15:39:20 +02:00
87ad27ca89 Sculpt: Fix memory leak in undo system
Was not freeing undo nodes themselves.
2018-09-20 15:38:15 +02:00
52f19683f9 GP: Remove Copy & Paste buttons 2018-09-20 13:50:37 +02:00
de994d6b7b GP: Fix problem with mode opening 2D Animation template
The grease pencil does not need a toggle of mode.

This fix also the problem when open grease pencil files that did not keep the mode saved.
2018-09-20 13:47:59 +02:00
5bfcd6f303 GP: Fix falloff curve using 2D animation template 2018-09-20 13:10:56 +02:00
b9b371625d GP: Fix template name typo error 2018-09-20 13:04:56 +02:00
9dad2a0e08 GP: Fix Alt+S problem with multiframe edition
The stroke must not be recalc, because the number of points does not change,so the triangulation of fill is the same.
2018-09-20 12:54:19 +02:00
b5dbe43d3e Cleanup: move DerivedMesh wrappers for modifiers further down the hierarchy
The main goal of this patch is to cleanup the interface of every modifier. More specifically the interface of modifiers should be DerivedMesh-free.
Internally some modifiers still use DerivedMesh. However I think it is better when the wrappers are in the modifiers so that higher level functions can use the simplified interface.

This patch removes the applyModifier_DM and applyModifierEM_DM functions. In a previous patch (rB3614d9d) the other functions that used DerivedMesh have been removed.

Reviewers: brecht
2018-09-20 12:04:17 +02:00
add8e1c018 GP: Add keymap 1 and 2 for select mode 2018-09-20 11:56:59 +02:00
67a6cb665e GP: New select mode
Now it's possible select points or strokes
2018-09-20 11:56:59 +02:00
1278890611 Put the Radius property of Curve points under shape key control.
Since shape keys are stored as raw floating point data, this
unfortunately requires changes to all code that works with it.

An additional complication is that bezier and nurbs control
points have different entry size, and can be mixed in the same
object (and hence shape key buffer).

Shape key entries are changed from:

  bezier: float v1[3], v2[3], v3[3], tilt, pad, pad;
  nurbs:  float vec[3], tilt;

To:

  bezier: float v1[3], v2[3], v3[3], tilt, radius, pad;
  nurbs:  float vec[3], tilt, radius, pad;

The official shape key element size is changed to 3 floats,
with 4 elements for  bezier nodes, and 2 for nurbs. This also
means that the element count is not equal to the vertex count
anymore.

While searching for all curve Shape Key code, I also found that
BKE_curve_transform_ex and BKE_curve_translate were broken. This
can be seen by trying to change the Origin of a Curve with keys.

Reviewers: campbellbarton, sergey

Differential Revision: https://developer.blender.org/D3676
2018-09-20 11:52:42 +03:00
1789c1e90d Gizmo: hide redo gizmo when any operator runs 2018-09-20 15:45:16 +10:00
e4c53d9163 Missing from last commit 2018-09-20 14:57:01 +10:00
e228574417 PyAPI: correct term for class property warning 2018-09-20 14:55:07 +10:00
e8c27b1bba Cleanup: use win_to_3d_on_plane function 2018-09-20 12:53:39 +10:00
9dac8633d6 Merge branch 'master' into blender2.8 2018-09-20 12:51:16 +10:00
1cc9022eb5 Cleanup: use win_to_3d_on_plane for curve drawing 2018-09-20 12:45:07 +10:00
abe36478c6 3D View: add clip argument to win_to_3d_on_plane 2018-09-20 12:42:00 +10:00
6672019484 Gizmo: use simple unclipped win_to_ray function
When projecting the cursor onto a plane, clipping isn't important.
2018-09-20 12:13:11 +10:00
8377febcb7 Merge branch 'master' into blender2.8 2018-09-20 12:06:53 +10:00
1a2e41a0f2 Cleanup: renaming missed from merge 2018-09-20 12:05:10 +10:00
c9df0ea147 3D View: add a simple un-clipped win_to_ray 2018-09-20 12:00:02 +10:00
65fb2ebb3c Merge branch 'master' into blender2.8 2018-09-20 11:51:01 +10:00
de32dc6b27 Cleanup: rename 3D view ray calculation functions
Using near far and optionally clipping planes is
involved and not needed in many cases.

Rename so a simpler version of this function can be added.
2018-09-20 11:47:17 +10:00
ce56088bcd Gizmo: use ED_view3d_win_to_3d_on_plane 2018-09-20 11:38:11 +10:00
6a01f62df4 Merge branch 'master' into blender2.8 2018-09-20 11:26:31 +10:00
470407ec3b 3D View: point-on-plane from screen location utility 2018-09-20 11:24:13 +10:00
2c30922e2c Fix spin/rotate gizmo not updating view orientation
Check for navigation didn't refresh when navigation was completed.
2018-09-20 10:19:59 +10:00
83ac16d241 Merge branch 'master' into blender2.8 2018-09-20 10:11:01 +10:00
0acc1b4c6c Cleanup: style 2018-09-20 10:06:59 +10:00
5ada6e7540 GPUTexture: Fix HDRI being clamped on OSX
Seems like GLEW_ARB_texture_float is not defined in core profile on OSX
even if float textures are part of the 3.3 core spec.

So removing uneeded backup cases.
2018-09-19 23:59:25 +02:00
e620380cc2 GP: Rename eraser brushes 2018-09-19 23:24:52 +02:00
87b628db2a Cleanup: style 2018-09-20 07:15:45 +10:00
Wybren van Keulen
104fb1fb76 Fix T53745: Alembic exported with vertex colors not readable by other software.
Most other software expects to read indexed vertex colors, so write indices
along with the colors as we already do for UVs.

Differential Revision: https://developer.blender.org/D3704
2018-09-19 20:17:04 +02:00
73ac72fa89 DRW: Fix crash when new shader requires 0 customdata layers
It was using last cache->auto_layer_len which led to a buffer overflow.
2018-09-19 20:02:12 +02:00
7ad8272952 DRW: Only trash UV and tangent data when using BKE_MESH_BATCH_DIRTY_SHADING
This improves the problem encountered when animating materials on static
meshes but does not fix the core issue. See T55326.
2018-09-19 20:02:12 +02:00
960ab2ab58 Cleanup: Remove "_new" from GPU_generate_pass_new
Not needed anymore since old one has been deleted.
2018-09-19 20:02:12 +02:00
9cd4788403 Fix T55059: EEVEE UV not available until you go in and out of edit mode
This is a dirty hack that should become irrelevant when depsgraph will
support CD masks.
2018-09-19 20:02:12 +02:00
a53c81c60b Merge branch 'master' into blender2.8 2018-09-19 18:42:17 +02:00
a5101e4da8 Cycles: Cleanup, double semicolon 2018-09-19 18:41:43 +02:00
6b433f4eb3 Merge branch 'master' into blender2.8 2018-09-19 18:20:50 +02:00
a4f2ebc78d Spelling fixes in comments and descriptions, patch by luzpaz.
Differential Revision: https://developer.blender.org/D3700
2018-09-19 18:18:05 +02:00
424839e3c2 make.bat: fix build error when there are spaces in the path to svn/git/cmake 2018-09-19 10:16:46 -06:00
a7d43eb1c6 Depsgraph: Another followup to the previous commit
Apparently, only mesh objects has SHADING component.
2018-09-19 18:03:15 +02:00
e60492b6fb Fix wrong pointer used in modifier stack
Was passing pointer to a pointer of context.
2018-09-19 17:51:14 +02:00
93d4752dbe Depsgraph: Correction for the previous commit 2018-09-19 17:49:38 +02:00
3614d9d2a2 Cleanup: Remove some DerivedMesh wrappers for modifiers
Specifically the deformVerts_DM, deformMatrices_DM, deformVertsEM_DM and deformMatricesEM_DM functions are not used anymore.

Reviewer: brecht
2018-09-19 17:33:03 +02:00
e81f7f25ac GP: Verify weight data is correct before assigning 2018-09-19 17:26:09 +02:00
03bb7cd9ad GP: Fix crash when select vertex group in modifiers 2018-09-19 17:20:55 +02:00
828c0e9813 Depsgraph: Ensure shading update order
Previously it was possible to have geometry component to
tag batch for DIRTY_ALL and shading to tag with SHADING_UPDATE.

Now there is a relation between uber eval and shading, which
solves this issue.
2018-09-19 17:16:03 +02:00
63c636518f GP: Fix copy frame error in dopesheet 2018-09-19 16:47:23 +02:00
09d3c907e7 Depsgraph: Always assume scene camera is visible
Allows to disable camera collection to make objects to go out of
the way, but still be able to animate.
2018-09-19 16:43:59 +02:00
a0402074ed Fix wrong CUDA version warning in cmake.
Fix suggested by Dalai.
2018-09-19 16:24:45 +02:00
d5e29f4140 Fix T56697: missing viewport update after keyframe edits in animation editors.
It was updating during transform, but not a final time after keyframes get
reordered or merged.
2018-09-19 16:19:26 +02:00
edb6f192ee UI: make new icon consistent with other places. 2018-09-19 16:19:26 +02:00
39600d7c96 Fix own mistake in previous commit. 2018-09-19 16:10:33 +02:00
749d5c033c Depsgraph: Make visible update to operate on per-component level 2018-09-19 16:10:12 +02:00
afb4da6650 Despgraph: Keep track of per-component visibility
The idea of those flags is to avoid evaluation of operations
which are not needed to bring visible objects to an up to date
state.

Previously, dependency graph attempted to do combine those
into an ID level flag. In practice it proved to be rather
tricky, since there could be dependency cycles on ID level
which will not exist on component level.
2018-09-19 16:10:12 +02:00
cc061d349b Depsgraph: Connect duplicating geometry to duplicator
This allows to force duplicated object to be fully evaluated for
display/draw.

Previously only transform component of duplicated object was
forced to become evaluated.
2018-09-19 16:10:12 +02:00
1b98fff713 Depsgraph: Make geoemtry to tag function more reusable 2018-09-19 16:10:12 +02:00
34c361db5a Depsgraph: Correct early output in collections
Need to ensure objects from collection which was built but
is became visible in the new "context" are poked for re-built.

This should be rather cheap, since this only will update
their visibility flag.

Can not rely on visibility flush here, since there is no
relations between collection and its objects.
2018-09-19 16:10:12 +02:00
3714c83441 Depsgraph: Handle text datablock in ID builder
Just silence the assert/print, we do not add text data blocks
to dependency graph.
2018-09-19 16:10:12 +02:00
Dalai Felinto
828627a796 Addon Utils: Green light the uv layout addon 2018-09-19 13:58:01 +00:00
33edfefa8e Depsgraph/RNA: Fix broken 'dupliobject' RNA interface.
Previous code would crash on whole lot of accessors in case current item
was not a real dupli instance.

And code was missing access to crucial dupli (world) matrix! Pretty
useless without that.

Also reordered a bit members in here, let's try to keep a bit of logic...
2018-09-19 15:46:49 +02:00
238a270d8f Fix possible misuse of BLI_strncpy.
Same issue as rB39f7c8256d58.
2018-09-19 09:04:55 -03:00
a349527981 GP: Fix stupid mistake 2018-09-19 12:15:53 +02:00
25f25a6f30 GP: Remove unneeded flag 2018-09-19 12:15:05 +02:00
f9f34fb9ab Fix T56756: Pivot Point update issue(minor issue). 2018-09-19 11:41:16 +02:00
d053508916 Merge branch 'master' into blender2.8 2018-09-19 11:12:45 +02:00
340527cd37 Fix unused var in case Alembic is not enabled, in own previous commit.
Sorry for the noise...
2018-09-19 11:11:39 +02:00
71d18f59a3 Mesh Sequence Cash: do not *always* report as depending on time! 2018-09-19 11:09:12 +02:00
2be5621be8 Fix T56838: Quick smoke failing with Python error.
Again the change to @ operator for matrix multiplication...
2018-09-19 10:32:58 +02:00
eab3ca7348 Cleanup: Unused variable in release build 2018-09-19 09:48:32 +02:00
fe467735e5 Subdiv: CCG, remove redundant call 2018-09-19 09:48:07 +02:00
574484006b EditMesh: show the spin arc as a thin ribbon
Closer to the design from T54661
2018-09-19 17:52:13 +10:00
ba38206608 Gizmo: tweaks to dial drawing
- Add Arc-Inner-Factor, to increase the inner arc radius from 0
  (show as a disk).
- When showing an angle value, show the angle-end line thicker
  (since thats whats being adjusted).
- Remove offset used by arc drawing which caused aliasing artifacts.
2018-09-19 17:47:15 +10:00
3b4782dc24 Gizmo: exclude arc from selection
Also disable polygon smooth before drawing arc.
2018-09-19 16:47:07 +10:00
6c7ad56f00 EditMesh: orient spin arc to follow the cursor 2018-09-19 16:41:56 +10:00
40ac38f18d Gizmo: remove matrix rotation for the dial gizmo
This makes it impossible to rotate the gizmo using the matrix Y axis.

Testing without this and I can't find any cases it breaks.
2018-09-19 16:22:01 +10:00
414e5fe068 Correct polygon_smooth being left enabled 2018-09-19 15:32:28 +10:00
2065669716 Cleanup: comments 2018-09-19 13:41:52 +10:00
88cd23914f Gizmo: dial3d option to show the final angle
Was showing modal-delta-angle, which isn't useful for the spin tool.
2018-09-19 13:35:15 +10:00
5739523b3e Merge branch 'master' into blender2.8 2018-09-19 13:33:01 +10:00
39f7c8256d Fix unreported: Undo of texts pasted in the Text Editor misses one character.
Caused by commit rB28c34ae7e2d6
Unlike `strncpy`, `BLI_strncpy` ensures the last character is '\0'.
2018-09-19 13:31:55 +10:00
bb3ec3ebaf BLI_utildefines: rename pointer conversion macros
Terms get/set don't make much sense when casting values.

Name macros so the conversion is obvious,
use common prefix for easier completion.

- GET_INT_FROM_POINTER  -> POINTER_AS_INT
- SET_INT_IN_POINTER    -> POINTER_FROM_INT
- GET_UINT_FROM_POINTER -> POINTER_AS_UINT
- SET_UINT_IN_POINTER   -> POINTER_FROM_UINT
2018-09-19 12:12:21 +10:00
3d3531acb0 Fix unreported: Undo of texts pasted in the Text Editor misses one character.
Caused by commit rB28c34ae7e2d6
Unlike `strncpy`, `BLI_strncpy` ensures the last character is '\0'.
2018-09-18 23:11:59 -03:00
4597589503 Cleanup: replace pointer/int casts with macros 2018-09-19 12:22:48 +10:00
f35e9f047a Merge branch 'master' into blender2.8 2018-09-19 12:14:36 +10:00
0ad183bf02 Merge branch 'master' into blender2.8 2018-09-19 12:05:08 +10:00
4c918efd44 Cleanup: trailing space 2018-09-19 12:04:34 +10:00
0322e854da Cleanup: missed when using doxy groups 2018-09-19 11:56:52 +10:00
Dalai Felinto
c0fb90ff9a Multi-Objects: Initial select similar support
Note: I had to add an epsilon on top of the threshould for SIMVERT_NORMAL.
Otherwise I was getting differences such as 0.000000something when comparing
supposed-to-be-identical normals.

The way I see it, the Threshold option is a user feature, where users can
control more or less what they want selected. While the epsilon is a
non-negotiable requirement for our float comparison here.

This includes support for:
* SIMVERT_NORMAL
* SIMVERT_FACE
* SIMVERT_EDGE

Not included and currently not supported/disabled:
* SIMVERT_VGROUP
* SIMEDGE_*
* SIMFACE_*

While we are working on this, we prevent users from using the non-ported modes.
Note: the bmo_similar.c file is still around, to be removed in the near future.

Everyone: Please fell free to jump in and help tackling the missing modes.

For details on the implementation discussion:
https://developer.blender.org/D3674
2018-09-18 22:42:07 -03:00
Dalai Felinto
a1acff5459 Move select similar to its own file 2018-09-18 22:42:07 -03:00
1ed7c85f54 Cleanup: replace comment headings w/ doxy groups
Also minor changes:

- Remove unused headers.
- rename SimpleExprParseState -> ExprParseState
- rename max_ops -> ops_count_alloc

  Was misleading since maximums are often limits which can't be exceeded.
2018-09-19 11:53:28 +10:00
d44c8ce1cb Cleanup: BLI_expr_pylike argument ordering
- Order array length after the array.
- Put return argument last.
2018-09-19 11:40:40 +10:00
3aea5695bb Cleanup: rename BLI_simple_expr -> BLI_expr_pylike_eval
Simple isn't a good prefix for library names since
lots of unrelated modules could be called 'simple'.

Include 'py' in module name since this is a subset of Python,
one of the main motivations for this is to be Python like/compatible.
2018-09-19 11:08:04 +10:00
345c348262 Cleanup: style 2018-09-19 10:29:57 +10:00
69aac13524 Correct invalid enum default 2018-09-19 10:14:37 +10:00
a30f32891f Cleanup: remove dummy tooltips 2018-09-19 09:52:33 +10:00
900b7127eb UV Snap: minor uv-nearest optimizations
- Pass in the snap distance
  (to avoid comparisons in the multi-object version).
- Loop directly over BMLoop's (without using the iterator).
- Use squared distance instead of manhattan.
2018-09-19 09:54:36 +10:00
e6766287d6 Fix T56827: Crash when enable onion skin in multiwindow
The problem was the cache was not set as dirty if one of the window had the overlay disabled.
2018-09-18 23:18:48 +02:00
ad50671937 GP: Remove vertex transformation when mode is not EDIT mode 2018-09-18 22:36:59 +02:00
a5fedd535d GP: Change Frames title for Onion panel 2018-09-18 22:36:59 +02:00
e9c6f69cb6 GP: change hide icon in materials 2018-09-18 22:36:58 +02:00
93780411e9 LookDev: Use theme background instead of world color
This is much less confusing than relying on an hidden parameter (the world
color) that you can only see if you disable the world node tree.
2018-09-18 22:18:49 +02:00
629c6a8769 Eevee: Rename "Trace Quality" into "Trace Precision"
The thing is that the quality is something a bit subjective regarding this
option value.

A more precise trace will have more noise so quality is also diminished in
a way. I believe that using "Precision" is more correct than "Quality" in
this case.
2018-09-18 21:39:53 +02:00
5aa3e33565 LookDev: Use black background color if world is not present 2018-09-18 21:39:53 +02:00
32e6d5cd6f StudioLight: Fix crash when closing blender
The studiolight was being free after the window manager and was attempting
to stop the job again.
2018-09-18 21:39:53 +02:00
a1a58c8d0a Fix T54685: EditMesh UV's transform snapping only checks active object
Reviewers: dfelinto
https://developer.blender.org/D3653
2018-09-18 16:26:22 -03:00
Dalai Felinto
8fc6609cc0 UV_OT_align: Cleanup (use enum instead of chars for modes enum
Also tested the straighten option and it is working-ish.

That said, I think straighten should take all the meshes vertices to determine
the line you want to use as reference. However we would need a different way to
determine the first and last uvs to use as reference for the line.
2018-09-18 16:03:36 -03:00
William Reynish
6a6bdacd82 UI: hide "Active Tool" panel header. 2018-09-18 19:38:20 +02:00
b49abbec5f Splash: add first time setup and templates to splash screen.
The first time setup screen only has the interaction preset currently, some
more work is needed to be able to set e.g. the language or compute device
here as in the mockups.

The splash screen stayed the same for now, to make room for the templates
most of the links are now in the Help menu. If there are no recent files yet
the links still show.

The splash screen buttons implementation was fully moved to Python, in the
WM_MT_splash menu.
2018-09-18 19:38:20 +02:00
1c815e0826 Workspaces: move 2D Animation, VFX and Video workspaces into own templates.
These can now be acessed from the File > New, Ctrl+N, or the splash screen.
Since these are application templates, users can save a separate startup.blend
for each. User preferences are shared between these templates though.

This also fixes some issues in the default startup.blend (triangulated cube..).

Differential Revision: https://developer.blender.org/D3690
2018-09-18 19:38:20 +02:00
84f21c170d Application Templates: make templates more prominent in the UI.
The goal here is to make app templates usable for default templates
that we can ship with Blender. These only have a custom startup.blend
currently and so are quite limited compared to app templates that fully
customize Blender.

But still it seems like the same kind of concept where we should be
sharing the code and UI. It is useful to be able to save a startup.blend
per template, and I can imagine some scripting being useful in the future
as well.

Changes made:

* File > New and Ctrl+N now list the templates, replacing a separate
  Application Templates menu that was not as easy to discover.
* File menu now shows name of active template above Save Startup File
  and Load Factory Settings to indicate these are saved/loaded per
  template.
* The "Default" template was renamed to "General".
* Workspaces can now be added from any of the template startup.blend
  files when clicking the (+) button in the topbar.

* User preferences are now fully shared between app templates, unless
  the template includes a custom userpref.blend. I think this will be
  useful in general, not all app templates need their own keymaps for
  example.
* Previously Save User Preferences would save the current app template
  and then Blender would start using that template by default. I've
  disabled this, to me it seems it was unintentional, or at least not
  clear at all that saving user preferences also makes the current

Differential Revision: https://developer.blender.org/D3690
2018-09-18 19:38:20 +02:00
b08d9f036e UI: don't show Redo Unsupported, just hide buttons in that case. 2018-09-18 19:38:20 +02:00
77edcf5ff1 GP: Change isolate layer icon 2018-09-18 19:01:16 +02:00
ebcbb50420 Subdiv: CCG, implement stitching of given faces
Will speed up (or rather bring speed back to what it is supposed to be)
for brushes like smooth.
2018-09-18 17:46:00 +02:00
7016f11d92 Subdiv: CCG, make inner face grids averaging more reusable 2018-09-18 17:35:59 +02:00
9bf3e0299b Subdiv: CCG, initial grids stitching implementation
Currently is only working on an "inner" grid boundaries.
Need to implement averaging across face edges.
2018-09-18 17:09:08 +02:00
41c039d6e9 Subdiv: CCG, evaluate final position for multires
This makes it so coordinates and normals for CCG are calculated
with mutires displacement taken into account. This solves issues
with multires displacement being lost when entering sculpt mode.

The missing part is averaging of normals along grid boundaries.
But even then sculpting shows decent results.

The plan to solve that would be to introduce function to stitch
grids, which can also be used by Smooth brush which requires
this.
2018-09-18 14:48:27 +02:00
b6ff37ee67 Merge branch 'master' into blender2.8 2018-09-18 14:31:44 +02:00
06fd94140c Fix T56833: "zoom to cursor" in Clip editor not handling aspect ratio.
Trivial fix, just using same code as in Image editor...
2018-09-18 14:31:05 +02:00
eafec6d4f7 GPUShader: Manually validate sampler count
This happens on NVidia GPUs, using more textures than the maximum allowed
by the gl will NOT trigger a linking issue (maybe because of bindless
texture implementation?).

So in this case we manually count the number of samplers per shader stage
and compare it against the GL limit. We discard the shader if the sampler
count is too high. This shows the user something is wrong with the shader.
2018-09-18 14:22:42 +02:00
bf2a54b058 Support evaluating simple driver expressions without Python interpreter.
Recently @sergey found that hard-coding evaluation of certain very
common driver expressions without calling the Python interpreter
produces a 30-40% performance improvement. Since hard-coding is
obviously not suitable for production, I implemented a proper
parser and interpreter for simple arithmetic expressions in C.

The evaluator supports +, -, *, /, (), ==, !=, <, <=, >, >=,
and, or, not, ternary if; driver variables, frame, pi, True, False,
and a subset of standard math functions that seem most useful.

Booleans are represented as numbers, since within the supported
operation set it seems to be impossible to distinguish True/False
from 1.0/0.0. Boolean operations properly implement lazy evaluation
with jumps, and comparisons support chaining like 'a < b < c...'.

Expressions are parsed into a very simple stack machine program
that can then be safely evaluated in multiple threads.

Reviewers: sergey, campbellbarton

Differential Revision: https://developer.blender.org/D3698
2018-09-18 13:25:28 +03:00
34ee9ab97c CMake: remove PYTHON_NUMPY_INCLUDE_DIRS as a cache variable on macOS/Windows.
It's in a fixed location on those platforms, and having it as a cache variable
just means things break when we upgrade to a new Python version.
2018-09-18 12:11:06 +02:00
f3b7e99c04 UI: use monochrome lock icons next to decorators. 2018-09-18 12:11:06 +02:00
5aa5066c3b Merge branch 'master' into blender2.8 2018-09-18 11:49:08 +02:00
d04eb330e8 Close OpenEXR thread pool on exit
This partially solves ASAN report about unfreed memory. There is still
something in the report, need to have a closer look with debug version
of OpenEXE library.
2018-09-18 11:10:49 +02:00
eadf0f3d70 Fix T56831: Crash - Transfer Weight & changing it's properties.
Usual Undo/Redo case with operators needing evaluated data...
2018-09-18 09:42:52 +02:00
5ae531d813 Cleanup: spelling 2018-09-18 16:35:13 +10:00
d421adb83e Gizmo: de-duplicate poll logic
Checking the active tool or operator was a common way to check
if the gizmo was still in use.
2018-09-18 16:15:06 +10:00
0a3b66cfb5 Gizmo: dial3d option to get angles w/o wrapping
Needed for spinning multiple revolutions.
2018-09-18 14:58:20 +10:00
2b57222ece Gizmo: add snap & tweak to the dial widget
Allows holding Ctrl to snap w/ the spin tool.
2018-09-18 14:38:05 +10:00
f677ff274c Cleanup: group gizmo dial members into structs 2018-09-18 14:13:35 +10:00
add961c209 Correct view orientation update in last commit 2018-09-18 14:04:55 +10:00
e16e17486b Gizmo: use spin widgets by default
- Now the spin tool has a persistent gizmo.
- Uses scene orientation, with additional view orientation.
- Uses the cursor center, ignoring the pivot since the
  selection center is rarely useful.
- Disable most of the redo gizmo's for now since they overlap,
  only allow adjusting the angle.

  Note: mixing new action with adjusting previous is confusing,
  we'll want to have design guidelines regarding this.
2018-09-18 13:44:41 +10:00
67f3f31f00 Cleanup: spin redo naming changes 2018-09-18 13:22:14 +10:00
8b41cd5b96 FIX: linker error with a 'make deps' library set and opencollada enabled.
PCRE_LIBRARIES was not being set if the pcre library was found but not the headers.
2018-09-17 18:06:02 -06:00
2ca7d14814 Cleanup: spin redo naming changes 2018-09-18 09:58:27 +10:00
2f8994f4af Cleanup: spin redo naming changes 2018-09-18 09:55:20 +10:00
03bccd0010 Cleanup: move editmesh spin gizmo into own file
To mix both initial spin and redo ends up being more involved,
move into own file.
2018-09-18 09:51:12 +10:00
5b221f1a6e Gizmo: minor tweak to spin tool
Make main angle adjustment radius larger since it's the most useful.
2018-09-18 09:41:54 +10:00
16b8d223b7 Cycles: Fix usage of AVX2 intrinsics in AVX kernel
While building the AVX kernel, util_avxf.h/avxb.h were using some AVX2 intrinsics,
these were never called, so it wasn't a run-time issue, but the intrinsics headers
on centos excluded the AVX2 prototypes when building the AVX kernel causing build errors.

This commit cleans up the improper usage of the AVX2 intrinsics and provides AVX
fallback implementations for future use.

Differential Revision: https://developer.blender.org/D3696
2018-09-17 16:27:13 -06:00
51ac494f21 build_files: bump python version in FindPythonLibsUnix.cmake to 3.7 now that all platforms have been updated 2018-09-17 13:45:12 -06:00
d2161d6463 build_environment: linux/python, help python find ffi.
we were building ffi, but python wasn't finding it.
2018-09-17 13:13:17 -06:00
683d0f0a7e GP: Remove duplicate clean menu 2018-09-17 20:39:40 +02:00
9e4f44ad30 build_environment: ffi/linux force predictable lib path.
ffi stubbornly wants to put libs in lib64 even when you tell it not to on some linux distributions.
patch based on sed fix the gentoo guys did [1]

[1] https://bugs.gentoo.org/462814
2018-09-17 11:58:13 -06:00
91e87f5cf2 Merge branch 'master' into blender2.8 2018-09-17 19:40:39 +02:00
39c18c5413 Install_deps: workaround building bloody broken OpenEXR release. 2018-09-17 19:40:12 +02:00
284cd1375b Cycles: Cleanup, remove dead code 2018-09-17 18:07:22 +02:00
81f1f9c85e Cycles: Remove unused malformed function
This isn't really possible to do the shuffle which was attempted to do.

While it's possible to achieve expected behavior, the function needs to
be rewritten. Since it's not used anyway, it's simpler to remove it for
now.
2018-09-17 18:05:32 +02:00
82e729d986 Cycles: Use proper mask for vectrorized boolean print 2018-09-17 18:02:01 +02:00
8c97cdd6a8 build_environment: force a consistent libdir across Linux distributions.
on some distributions libs ended up in lib64 confusing the cmake builder.
2018-09-17 08:13:08 -06:00
731d0d8d0f Eevee: Fix shader linking error with volumetric shaders 2018-09-17 15:08:14 +02:00
3da5b03b8a Eevee: Fix crash when using refraction with alpha clip blend mode 2018-09-17 14:46:22 +02:00
a738586810 Fix object selection with eyerdropper not respecting property poll function. 2018-09-17 12:36:31 +02:00
68f139db0d Fix T56800: Reflection Plane in Eevee crashes Blender 2018-09-17 12:20:51 +02:00
ad8b187a53 Fix T56803: Indirect lightning bake crashes Blender 2018-09-17 12:20:51 +02:00
5bf32f3337 Fix T56801: Enabling smoke crashes Blender. 2018-09-17 12:20:51 +02:00
dc1e03b4a2 Depsgraph: Cleanup, indentation 2018-09-17 11:19:42 +02:00
f87fbf9cce Depsgraph: Gnuplot, put heaviest objects at the top 2018-09-17 11:19:42 +02:00
231a384587 Merge branch 'master' into blender2.8 2018-09-17 10:23:55 +02:00
640fcc25a4 Fix T56811: Do not show cancel button for jobs when UI is locked.
Since that button is then totally useless and unusable...
2018-09-17 10:22:00 +02:00
7b11558aa8 UI: show steps for spin tool 2018-09-17 14:52:54 +10:00
2997f11941 Gizmo: start spin gizmo dragging
- Only respond to drag event, so placing the cursor is possible.
- Start off with zero rotation, dragging adjusts.
2018-09-17 14:34:51 +10:00
b8592b656b Gizmo: Functions to re-initialize a group type
Partially re-initializing a gizmo is often more trouble then removing
and re-adding.
2018-09-17 14:30:46 +10:00
f409c1ec93 Gizmo: only respond to mouse-move events
Missed in recent update to event handling.
2018-09-17 14:30:41 +10:00
9759059d58 Cleanup: use SCE_GIZMO_ prefix for gizmo_flag 2018-09-17 12:51:32 +10:00
ae3754838a Cleanup: rename gizmo group data
Abbreviate to 'ggd', replacing manipulator reference.
2018-09-17 12:47:45 +10:00
75980f4af2 Revert "Cleanup: use tuples in python according to feedback"
This reverts commit b1f0e4c2d6.

Sets are typically preferred for __contains__ checks
when order doesn't matter.
2018-09-17 09:01:00 +10:00
a06d803a5a Fix T56817: Assert because of invalid framebuffer 2018-09-16 21:22:55 +02:00
8c87e681a5 Fix driver expression bytecode validation crash if parsing fails.
Another NULL pointer access: nothing to validate if it already failed.
2018-09-16 10:46:28 +03:00
db0c37f2f7 GP: Rename select group color to materials 2018-09-16 09:32:54 +02:00
9901679ce8 Fix a crash when a driver expression evaluates to NaN.
The debug logging statement was accessing a NULL pointer.
Also happens in 2.79.
2018-09-16 09:06:57 +03:00
1079da9deb GP: Initialize new brush factors 2018-09-15 19:26:01 +02:00
b1f0e4c2d6 Cleanup: use tuples in python according to feedback 2018-09-15 17:28:20 +02:00
ca3628ba0c Cleanup: style 2018-09-15 10:35:03 +10:00
83d4328ce7 PyDoc: add gpu.shader
Also some syntax corrections.
2018-09-15 10:35:03 +10:00
3f20b3b585 Cleanup: use r_ prefix for return args 2018-09-15 10:34:59 +10:00
b3a9069170 GPUTexture: Fix problem with glGenerateMipmap
Fix T56789: There was issue with certain driver with glGenerateMipmap and
GPU_DEPTH_COMPONENT24.
In this case we just create a complete texture with mipmaps manually
without downsampling / initializing the data.
2018-09-15 00:11:25 +02:00
6b024c7e1a GP: Improve errase panel and toolbars
Some names were not clear enough and some parameters were missing.
2018-09-14 22:54:19 +02:00
54f1375e29 GP: Add pressure option to eraser size 2018-09-14 22:54:18 +02:00
460731f39e GP: Some changes to eraser panel 2018-09-14 22:54:18 +02:00
424aeda112 Object Mode: Draw object center after the floorgrid 2018-09-14 18:32:04 +02:00
1f1d5e1dd2 Object Mode: Make Flat object selectable in ortho view ...
... when wireframe is enabled
2018-09-14 18:32:04 +02:00
b62d140be9 Object Mode: Make Flat object outline visible in orthographic view 2018-09-14 18:32:04 +02:00
5feb03c3ae Motion Paths: interactively update current frame location while dragging. 2018-09-14 17:42:58 +02:00
fe6a6dee0b Motion Paths: only update once when transforming multiple bones or objects. 2018-09-14 17:42:58 +02:00
a415d521db Fix object motion paths not updating correct after filtering optimization. 2018-09-14 17:42:58 +02:00
66ad9ef2ce Fix OpenColorIO link errors in some Linux builds.
The library can get installed in a lib/static subdirectory, so search there
as well now.
2018-09-14 16:35:10 +02:00
898c780633 Fix OpenColorIO link errors in some Linux builds.
The library can get installed in a lib/static subdirectory, so search there
as well now.
2018-09-14 16:28:39 +02:00
cfaf92c079 GP: Fix T56802 - Add/Delete Vertex Group crashes 2018-09-14 16:09:10 +02:00
c4ef2e2f2e Cloth: Improve UI
This reorganizes the cloth UI, and changes some of the behaviour to be
more reasonable.

Changes included here:
* Reorganized cloth panels
* Improved some tooltips
* Removed `vel_damping` option
* Removed cloth pinning checkbox
* Removed stiffness scaling checkbox
* Separated shrinking from sewing
* Separated self collisions from object collisions

Reviewed By: brecht

Differential Revision: http://developer.blender.org/D3691
2018-09-14 15:52:00 +02:00
1287965089 GPU module: Initial implementation of the gpu.shader submodule.
Differential Revision: https://developer.blender.org/D3688
2018-09-14 09:46:19 -03:00
d15928c234 Depsgraph: Use default visibility of false
Avoids invisible objects from being considered visible when they
are used as driver variables.

If those cases are actually coming from a visible object, then
deg_graph_build_flush_visibility() will ensure visibility is
properly flushed there.
2018-09-14 14:43:56 +02:00
d7fdd505da Depsgraph: Respect parent object visibility in more places
Mainly coverts object->parent and pose constraints.
2018-09-14 14:43:56 +02:00
95f257395e Depsgraph: Make indirectly linked objects inherit visibility from parent
This way objects which are pulled into dependency graph via modifier
stack from an invisible object will be invisible.
2018-09-14 14:43:56 +02:00
06c0febe70 Depsgraph: Use explicit argument values 2018-09-14 14:43:56 +02:00
8e8952b7e3 Multires: Initial work to get sculpting to work with OpenSubdiv
Allows to go to sculpt mode, do brush strokes, get out of sculpt mode
and have deformation preserved.

The issues currently is that the current implementation of CCG
storage is created from the limit surface, without displacement
taken into account. It is trivial to get displaced coordinates,
but it is more tricky to get displaced normals. This is something
to be solved next.

Another limitation is that this only works for sculpting at a maximal
multires level. There is code to be done to support propagation
of displacement onto a higher levels.
2018-09-14 14:43:56 +02:00
744233f207 Subdiv: Cleanup, variable name spelling 2018-09-14 14:43:56 +02:00
9a1ed28365 Sculpting: Fix wrong object was using for PBVH
The function is supposed to be called for original object.
Draw manager abuses this a bit, will solve later by moving
PBVH (re)creation to dependency graph.

At the time being, stop adding object evaluation to draw
manager, this is really where it does not belong to.
2018-09-14 14:43:56 +02:00
f827e3c84b Subdiv: Cache Subdiv in CCG surface
Allows to do re-shaping easier, since we will know for sure
what was the limit surface the CCG is created for.
2018-09-14 14:43:56 +02:00
2271b79114 avoid duplicate deletion of temporary items 2018-09-14 14:37:23 +02:00
e37479ad89 GPUBuffers: Rework support for pbvh grids + fast navigate
Flat shaded grids are now rendered as a long triangle strip with
degenerate triangles.

Smooth shaded grids are not changed.

Also add back fast navigate. The only difference with 2.79 is that fast
navigate + flat shading will show slitly "incorrect" smooth face. But that's too
much effort to fix for what it is.
2018-09-14 12:20:01 +02:00
1d76fbf3df GP: Add thickness and stregth factor to UI
Now it's possible change the factors for soft eraser.
2018-09-14 10:31:47 +02:00
18141863b2 GP: Fix armature deformation weight problem
The armature was using only weight 1 or 0, but not the real value.

Also removed unused parm in UI panel.
2018-09-14 08:57:46 +02:00
ee7236859d GP: Change fill option text 2018-09-13 18:35:45 +02:00
d6f896da22 GP: Add strength factor for eraser brush
This gives more control.
2018-09-13 18:34:34 +02:00
74a3519a15 GP: More tweaks in soft eraser
Follow with the changes to get a good feeling using the eraser.
2018-09-13 17:04:35 +02:00
a273e432cc GP: Add pressure button for eraser brushes 2018-09-13 16:52:27 +02:00
03e8de9dae Merge branch 'master' into blender2.8 2018-09-13 16:09:49 +02:00
5c10c92b23 Fix building deps when OpenCV dev package is present.
Since we are not linking against OpenCV ourselves, that generated
linking errors later on (while building OSL e.g.).
Those 'open' libs link against way too many other libs... :/

Thanks to @intrah for initial report (T56785), and @LazyDodo for
suggested solution.
2018-09-13 16:09:24 +02:00
379225d2bc GP: More changes to improve soft eraser
Small changes to improve "feeling" of the soft eraser.
2018-09-13 16:06:45 +02:00
1e3d6ae09b Gizmo: only use mousemove for generic gizmos
This caused slow performance for spin/bisect for eg.
2018-09-14 00:10:59 +10:00
3e6f37b936 Fix a crash with duplivert, and move to evaluated mesh in object_dupli.c
There are still lots of issues/TODOs here though, like missing 'cage'
for editmesh, etc.
2018-09-13 15:56:46 +02:00
3d2f596d94 GP: Add a separartion for leak size in fill panel 2018-09-13 15:40:48 +02:00
a2325495f9 Merge branch 'master' into blender2.8 2018-09-13 23:38:53 +10:00
1a4aca1b69 WM: move mousemove out of internal undo function
This causes a feedback loop in 2.8x,
where gizmo redo caused fake mousemove that executed gizmo again.

Move the mousemove into the undo/redo operator.
2018-09-13 23:28:02 +10:00
e082fc7c77 Workspaces: reference count screens, otherwise they are never freed.
They are not directly accessible in the UI anymore, it's the workspaces
that we always keep until they are manually deleted now.
2018-09-13 14:44:36 +02:00
80f083f993 Gizmo: avoid redundant value2d updates 2018-09-13 22:25:15 +10:00
00bdd04570 Gizmo: set header text when editing the value 2018-09-13 22:15:44 +10:00
5a90ebc278 GP: Sample points in both sides for soft eraser
Now the soft eraser use the previous point and not only current and next. This makes the transition smoother.
2018-09-13 13:55:33 +02:00
8326fe7aa5 Gizmo: value2d cancel, snap & precise support 2018-09-13 22:04:54 +10:00
3b8251664e GP: Improve soft eraser rounded caps
When draw segments the rounded cap must be only visible in some situations.
2018-09-13 12:39:02 +02:00
09aa446100 Merge branch 'master' into blender2.8 2018-09-13 20:15:18 +10:00
254067106e PyAPI: remove operator methods that leak memory 2018-09-13 20:10:56 +10:00
ff432a410a PyAPI: use brief description for operator repr
Only include description in docstring.

Also avoid using op_get_rna.
2018-09-13 19:59:15 +10:00
2c4f091feb Merge branch 'master' into blender2.8 2018-09-13 11:27:38 +02:00
aacdd28edd PyDoc: add bpy.app.icons to docs 2018-09-13 19:21:08 +10:00
2be1d8bbaf Tentative fix for T56770: Crash after set language to Simplified Chinese.
That bug probably did not affect 2.7x, only 2.8 with COW copying IDs in
threads... But root of the issue is that underlying boost i18n lib does
not support well multi-threaded access. So simply forbid any translation
from non-main thread. This *may* be an annoying limit at some point, but
doubt it will be any issue currently.
2018-09-13 11:20:49 +02:00
e8fa13b01e Fix leak in tool tooltip creation 2018-09-13 18:21:54 +10:00
af1cf00003 Merge branch 'master' into blender2.8 2018-09-13 18:19:24 +10:00
a6fc718029 PyAPI: add API call to get an operators type
Getting the instance leaks memory and was only meant to be used for
generating docs.
2018-09-13 18:16:06 +10:00
d538de90a7 Merge branch 'master' into blender2.8 2018-09-13 17:56:32 +10:00
9900addf11 Cleanup: _bpy.ops utility to lookup an operator 2018-09-13 17:47:56 +10:00
c197c210e4 PyAPI: add bpy.app.icons to sys.modules 2018-09-13 17:20:27 +10:00
76d67b4db4 Merge branch 'master' into blender2.8 2018-09-13 17:08:58 +10:00
44f719b632 Cleanup: use PyImport_GetModuleDict
Replace direct access using PyThreadState_GET
2018-09-13 17:06:07 +10:00
1c2358224f Merge branch 'master' into blender2.8 2018-09-13 16:35:09 +10:00
c062d360ca PyDoc: replace use of deprecated API call 2018-09-13 16:33:34 +10:00
0a23d39b9f Merge branch 'master' into blender2.8 2018-09-13 16:21:56 +10:00
99e06af9c8 Cleanup: move 'make help_features' into own file 2018-09-13 16:20:02 +10:00
a4e4dc1b75 Merge branch 'master' into blender2.8 2018-09-13 15:39:21 +10:00
ffe5b92325 PyDoc: disable ASAN exit code for doc building
Prevented docs from building on any minor issue when ASAN was enabled.
2018-09-13 15:37:30 +10:00
c2fb0bacb8 Gizmo: code comments
Note about limits of new tool-init flag.
2018-09-13 13:35:26 +10:00
f65a703cc8 Cleanup: whitespace 2018-09-13 09:26:42 +10:00
4c2ac2a02f UI: show options for smooth and randomize 2018-09-13 09:23:24 +10:00
9e5259b043 Tool System: make smooth and randomize interactive 2018-09-13 09:19:30 +10:00
1f1802307f Gizmo: value2d utility to adjust operator values
This allows any operator to interactively redo without having to
manually make each operator modal.
2018-09-13 09:10:19 +10:00
26a6e58e9a Cleanup: add editor gizmo doxy group 2018-09-13 08:33:21 +10:00
8d3a39ff56 Cleanup: use float name in property range function 2018-09-13 08:17:16 +10:00
e103618b28 Cleanup: move cycles addon check out of versioning 2018-09-13 08:00:05 +10:00
07ab3eec01 Cleanup: style 2018-09-13 07:51:59 +10:00
2a14807f39 Merge branch 'master' into blender2.8 2018-09-13 07:50:45 +10:00
6873f47ede Cleanup: GCC ignored qualifier warning 2018-09-13 07:42:38 +10:00
df289785b3 GP: Delete invisible points when use soft eraser 2018-09-12 21:26:07 +02:00
32a461adf2 Shader Editor: tweak when the UI for managing the material is enabled
- disable the UI if the currently selected object does not support materials.
- add Metaballs and GPencil as types supporting material.
2018-09-12 20:07:03 +02:00
2ab1063616 Fix T56662: Autocomplete for texture slot Crash (in console).
That pointer can be NULL, RNA default string handling does not support
that. (that whole uv_layer prop is quite nasty actually, since it does
not own that string, always borrows it from some other data :((( ).
2018-09-12 18:31:14 +02:00
2e07af36fd Fix T56763: Removing driver variable crashes Blender.
Rebuilding depsgraph is not enough, with COW we also need to ensure COW
copies get updated accordingly.

Had to tweak the generic update system here, since it was always passed
a NULL pointer for the callback arg, this should not change existing
behavior (besides crash fixing ;) )...
2018-09-12 17:48:02 +02:00
6a20e2653e GP: Reduce factor of thickness for soft eraser 2018-09-12 17:06:37 +02:00
84e9dbe38b GP: Improve SOFT eraser to affect strength and less to thickness 2018-09-12 16:55:27 +02:00
57b50f75f9 Cleanup: Spelling mistakes
Pointed by John Roper and Ray Molenkamp.
2018-09-12 16:32:18 +02:00
61462ab2b4 Multires: Use more clear naming
There are so many reshapes now, and one more is to come.
Better be explicit.
2018-09-12 16:31:04 +02:00
9d0b7babd9 GP: Fix pressure jitter problem
The pressure was not used in jitter factor.
2018-09-12 15:32:22 +02:00
6018a3b4e8 GP: Hide panels for eraser brushes 2018-09-12 15:18:23 +02:00
b172209b4b GP: Remove brush type from panel
The brush type is get from previous brush
2018-09-12 15:18:22 +02:00
0d0e8979ab FIx T56758: Outliner - Select Hierarchy not working.
Reversed logical check on object's visibility...
2018-09-12 15:03:17 +02:00
Dalai Felinto
bf709f9d36 Fix T56759: Status bar not working for multi-objects nor object mode 2018-09-12 09:55:21 -03:00
f04ddd37ea Cleanup, fullstops in comments 2018-09-12 14:39:08 +02:00
39fabaddfd GPU: Remove residue of OpenSubdiv
Was done more like a hack on top of old drawing pipeline.
Should be re-implemented to fit new draw manager closer.
2018-09-12 14:30:28 +02:00
721c691a27 Merge branch 'master' into blender2.8 2018-09-12 12:29:19 +02:00
aa844ad676 Cycles: Don't allocate Extra if BSDF allocation failed
Failed as in did not allocate due to possibly weight cutoff.
Tryign to allocated Extra storage for closure in such situation
will consfuse Cycles and cause crashes later one due to obscure
values in ShaderData.
2018-09-12 12:28:55 +02:00
e9ffe93350 Fix T56766: Bake Action Visual Keying Not Working.
Consequences of new requirement to use named keywords parameters for our
RNA API... Hopefully fixed all other cases in that file as well, but
guess we'll find more of those in comming weeks. :|
2018-09-12 11:52:06 +02:00
52baf87f1f Cleanup: move theme versioning into own function 2018-09-12 19:59:28 +10:00
915c1f3a38 GP: Cleanup unused code 2018-09-12 11:43:44 +02:00
65e155d757 Cleanup: redundant assignment is later overwritten 2018-09-12 19:51:59 +10:00
e56c5dd982 Remove ifdef's default audio device
If we want to select an audio device based on build flags,
it should be done as a final step.
2018-09-12 19:49:25 +10:00
4464a86a6e Merge branch 'master' into blender2.8 2018-09-12 11:30:35 +02:00
8f1027a58b Fix Cycles issue moving versioning to blenloader 2018-09-12 19:32:54 +10:00
f088bbae6a Cleanup: More correct terminology work
Matches threading API.
2018-09-12 11:04:42 +02:00
008ed839f4 GP: Fix problem with brush angle parameter
The angle was related to random settings, but this is wrong.
2018-09-12 10:37:17 +02:00
a3241a8ff7 CMake: Fix compilation with Bullet enabled
Obvious bug in recent CName cleanup commit, while BGE library
was indeed mentioned on that line it was to put Bullet libraries
after all the other libraries.

One day we should really switch to a CMake dependency graph to
take care of library dependencies.
2018-09-12 10:34:53 +02:00
cf376bc451 GP: Change UI panel parameter smooth order 2018-09-12 10:17:18 +02:00
759ad6aa77 Cleanup: move preference versioning into own file
It's more convenient to keep version patching in the same place,
this also splits out some function calls from version patching
and supports updating UserDef structs besides the 'U'l global.
2018-09-12 18:24:08 +10:00
ec72b3e19b Cleanup: remove BGE references 2018-09-12 17:29:13 +10:00
c13644c390 Cleanup: make shapekey functions local
Were only exposed for the BGE.
2018-09-12 17:27:22 +10:00
e6540ec175 Merge branch 'master' into blender2.8 2018-09-12 16:28:50 +10:00
2e36a1809f CMake: add openjpeg 2x search paths
Wasn't finding the include path by on Linux.
2018-09-12 16:26:15 +10:00
265b5238de Merge branch 'master' into blender2.8 2018-09-12 16:21:00 +10:00
2597cd3998 Merge branch 'master' into blender2.8 2018-09-12 15:54:07 +10:00
a8c924423e Cleanup: remove alpha_check variable from DNA
Just pass as an argument.
2018-09-12 15:48:00 +10:00
7eecc94074 Cleanup: use uint/uchar types in GPU 2018-09-12 12:19:46 +10:00
baca8344d9 Cleanup: use _len suffix 2018-09-12 12:07:35 +10:00
ef32be25c1 Fix scale-cage editmode pivot point 2018-09-12 07:27:48 +10:00
c350424014 Fix scale-cage refresh w/ view orientation 2018-09-12 07:27:46 +10:00
18986160a5 Tool System: show bisect tool options 2018-09-12 06:36:26 +10:00
8eedccb3f5 Fix T56752: Tooltip flicker alpha on redraw 2018-09-11 22:11:15 +02:00
6c6c3bad02 Cleanup: style 2018-09-12 05:57:31 +10:00
d495916547 Multires: Fix memory leak on reshape
Was happening when number of vertices didn't match.
2018-09-11 17:37:14 +02:00
57f9e31bf4 DRW: Convert common theme color to linear for viewport render
This is not 100% correct (it should use a transfer function depending
on the display profile) but this is already much better than using srgb.
2018-09-11 17:05:16 +02:00
3fbdcefa17 Subdiv: Initial implementation of CCG
Attempts to substitude CCGDM with an OpenSubdiv based structure
which has less abstraction levels. The missing part in this
substitude is a face pointers which old CCGDM/multires code was
using to stitch faces (averaging boundaries).

Another curial bit missing: "reshaping" of multires CD_MDISPS
to the state of new PBVH grids.

The new code is only available when OpenSubdiv modifier is
enabled (WITH_OPENSUBDIV_MODIFIER=ON) and with debug value of
128. This is so this WIP code is not interfering with current
production machines in the studio.

Reviewers: brecht

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D3685
2018-09-11 16:37:02 +02:00
998a804358 DRW: Don't highjack all debug values (cont) 2018-09-11 16:34:52 +02:00
1a590c7a1c DRW: Don't highjack all debug values 2018-09-11 16:27:55 +02:00
19082763dd Fix workspace order and shortcut keys not matching. 2018-09-11 16:21:00 +02:00
5a7c3d5a08 Eevee: Prepare for fullres tracing 2018-09-11 16:15:43 +02:00
aa5c543a7f Eevee: Fix downsampling shader with textureGather
This was leading to issues with all raytracing and AO algorithm.

Fix T55619
2018-09-11 16:15:43 +02:00
766d9c2937 GPUMaterial: Fix issue with coloramp and constant interpolation
It was not respecting the clamp to edge texture param because we use
texelFetch directly in this case.
2018-09-11 16:15:43 +02:00
9ac72ab69d Cloth: Fix mistake in recent angular bending commit (b6f0f8a5b5)
The angular spring force computation function was being called even in
linear mode, with empty angular springs.
2018-09-11 16:09:45 +02:00
eaf993ad94 Followup for previous PBVH commit
Didn't realize the index buffer is stored once in a BVH
and same pointer is reused. Surprisingly, simple files
were fixed with the previous fix.

Now disabled the optimization all together, and it was
simpler to just completely remove all residue of the
code. It is likely to be a different implementation
anyway, so no need to try to keep code in a semi-broken
state.
2018-09-11 15:34:09 +02:00
cde66d7916 GPUVertBuf.fill: support for objects with buffer interface.
Differential Revision: https://developer.blender.org/D3684
2018-09-11 10:03:53 -03:00
8dde1e13e2 FIx/workaround wrong number of primitives in PBVG grid buffers
Nodes can have different number of grids, so can not so simply
re-use index buffer across nodes. For now allow re-using buffer
if number of grids matches.

The issue is, number of grids is probably almost never matches,
so in order to have this optimization working need more tricks.
Maybe we can "instance" index buffers?
2018-09-11 14:45:13 +02:00
7951adfb9c UI: fix redo panel becoming permanently hidden 2018-09-11 22:39:38 +10:00
a1651ddc98 Build: require OpenJPEG 2.x minimum, remove bundled version.
* WITH_SYSTEM_OPENJPEG is removed and is now always on, this was already
  the case for macOS and Windows.
* This should not break existing Linx builds. If there is no new enough
  OpenJPEG installed, CMake will no find libopenjp2 and WITH_IMAGE_OPENJPEG
  will be disabled.
* install_deps.sh was updated with new package names, since distributions
  put this version in a new package.

Differential Revision: https://developer.blender.org/D3663
2018-09-11 12:45:05 +02:00
e1178266e7 Workspace: support reordering of workspaces from RMB menu.
Drag and drop will follow later, it's a bit complicated to make this work
reliable in the current UI code.
2018-09-11 12:43:28 +02:00
6acf8642e5 Cleanup: remove unused GPU code. 2018-09-11 11:53:56 +02:00
7c64f8537f PBVH: Fix miossing normals for grids 2018-09-11 11:50:22 +02:00
43abc5dabf GP: Use original datablock and not evaluated version
This is required to avoid COW delay while drawing.
2018-09-11 10:33:29 +02:00
65c5abc236 Cleanup: remove dead code 2018-09-11 18:30:55 +10:00
b05f9e35cb Cleanup: unused variables 2018-09-11 18:15:55 +10:00
29fa45b695 Correct merge conflict 2018-09-11 17:47:30 +10:00
01e6f09001 Merge branch 'master' into blender2.8 2018-09-11 17:45:38 +10:00
bf8aac0d49 Cleanup: unused variables 2018-09-11 17:32:21 +10:00
William Reynish
a0581daf75 UI: use property split for motion paths 2018-09-11 16:52:18 +10:00
17e57859e7 Error in last commit 2018-09-11 16:37:56 +10:00
f34a2af4b3 Fix scale cage tool never using object boundbox 2018-09-11 16:22:30 +10:00
45af6b61d9 Merge branch 'master' into blender2.8 2018-09-11 08:03:31 +02:00
0276e0e7de Build: update for new macOS libraries.
Run "make update", or "svn update" in lib/darwin to get the matching
precompiled libraries.
2018-09-11 08:02:41 +02:00
cd5db90726 Build Environment: updates for macOS.
Mainly this is following Linux to build own xml2/lzma/ssl/sqlite and linking
them all statically. This ensures the Python ssl module uses a recent openssl
version rather than a very old one shipped with macOS.
2018-09-11 07:51:17 +02:00
0117a4c351 Cleanup: use UI_ prefix for block flag 2018-09-11 15:08:08 +10:00
bdf215ca82 Merge branch 'master' into blender2.8 2018-09-11 15:01:41 +10:00
6bf003bce0 Correct own error in recent transform orientation changes 2018-09-11 15:00:50 +10:00
c317a21a4c Cleanup: replace magic number 2018-09-11 14:31:19 +10:00
a0fdea271b Workaround T56752: redo panel alpha flicker
The bug applies to tooltips, but isn't as noticeable.
2018-09-11 13:50:30 +10:00
58a8277098 GPU: utility function to unregister presets 2018-09-11 13:21:47 +10:00
0b597bf7b9 UI: use popup draw style for redo panel 2018-09-11 11:22:08 +10:00
15bab56fbc Merge branch 'master' into blender2.8 2018-09-11 11:02:37 +10:00
5bb11cfde2 UI: split theme draw style into separate field
Was using UI_BLOCK_LOOP to control draw style,
this meant we couldn't use popup theme colors for cases
where it the interface has the same purpose as a popup but happens
not to use this flag.
2018-09-11 10:56:08 +10:00
29c2c307f6 UI: workaround for glitch redo panel glitch 2018-09-11 09:20:02 +10:00
406554c4db UI: key binding draw code didn't set line-width 2018-09-11 09:20:02 +10:00
a1dda992c0 UI: disable register for insert text
Hides redo panel.
2018-09-11 09:20:02 +10:00
06ae3d3573 UI: disable register for grease pencil select
Avoid showing in redo panel
2018-09-11 09:20:02 +10:00
Dalai Felinto
207483dbfe Remaining fix for multiple text-boxes
As mentioned in d81aeb60fe the alignment for multiple text boxes should all
respect the same overall padding.

Vertical alignment is fully implemented now.
2018-09-10 18:15:36 -03:00
f176c2fdb3 Revert wrong add-on folder update 2018-09-10 22:04:53 +02:00
3319f80e03 GP: Fix performance problem with big files
During drawing, the depsgrah was tagged to update and this produced a full copy of the datablock. This tag was done in order to get the right data in drawing engine, but this added a great overhead while drawing and the response of the pen was not good.

Now, the depsgraph is not tagged and the drawing engine uses the original copy data of the buffer datablock. This is not a problem because only can draw in one window at time.
2018-09-10 20:24:37 +02:00
Charlie Jolly
89295c7f6b Eeevee: update to match recent voronoi GLSL features for Cycles.
Differential Revision: https://developer.blender.org/D3680
2018-09-10 19:48:14 +02:00
Sebastian Parborg
86aa621f4b Texture paint: properly implement image slots for principled BSDF node.
Now we can create new base color, roughness, metallic, specular, normal,
bump and displacement images, and linked them to the appropriate socket.

Also fixes image nodes inside groups not being visible.

Differential Revision: https://developer.blender.org/D3679
2018-09-10 18:56:54 +02:00
49dee07e9c Cleanup: fix compiler warnings. 2018-09-10 18:56:54 +02:00
76a4042c23 Fix Cycles principled BSDF black with transmission and IOR 1.0. 2018-09-10 18:50:15 +02:00
Dalai Felinto
b94d34915f Textbox removal and creation should update text data 2018-09-10 13:41:56 -03:00
a01fe76ded Eevee: Fix assert when using transparent shadows
Was missing some UBO bindings.
2018-09-10 18:05:11 +02:00
a4b18bd1b9 Fix T56627: Crash because of incomplete LightCache 2018-09-10 18:05:11 +02:00
2a907bea9c Fix assert when toggling Xray mode after going to Solid and lookedev/eevee 2018-09-10 18:05:11 +02:00
5e7a56dc64 Eevee: Cleanup DoF implementation 2018-09-10 18:05:11 +02:00
ec64cad5a8 Eevee: Lookdev: Fix memleak 2018-09-10 18:05:11 +02:00
defbe14077 Fix object_utils.py's matrix multiplication (use new @ syntax). 2018-09-10 18:03:40 +02:00
fc95efec06 Fix image_utils.py's load_image() helper. 2018-09-10 17:35:50 +02:00
Dalai Felinto
c0b61cf64b Silence GP warning 2018-09-10 11:40:27 -03:00
d483dfd03d Fix T56717: crash removing/adding objects.
Object bases hash always needs to be freed on library remapping.
2018-09-10 16:09:52 +02:00
b2865560a8 GP: Cleanup commented lines 2018-09-10 16:08:55 +02:00
5e89d1d96c GP: Remove annotation stroke mode
This option has not been working since a lot of time and it looks is unused. When we confirm is not used, we can remove it completely.
2018-09-10 16:08:55 +02:00
Dalai Felinto
58622eb3a6 Image/UV Editor: Remove show other option
This is no longer useful now that we have multi-object editing support.
2018-09-10 10:43:30 -03:00
0ee212682e GP: Use correct name for new Stroke object
To follow Blender standards, the name of the new primitive stroke must be different of blank object.

Also changed the default orientation of Suzanne 2D to use the same as other objects (not aligned by default)
2018-09-10 15:29:22 +02:00
0284392c48 Cleanup: More variables unused in release 2018-09-10 09:56:14 +02:00
ad713dc457 Cleanup: Warning in release builds 2018-09-10 09:50:50 +02:00
c30e12455b Correct argument type 2018-09-10 17:45:54 +10:00
18dc84dc35 Poly Build: disable use_boundary_tear
Without this, it's more like deleting the vertex than dissolving.
2018-09-10 17:35:03 +10:00
7283179a00 Poly Build: dissolve was using selection, not highlighted
Also no need to clear selection history,
BM_mesh_elem_hflag_disable_all handles this.
2018-09-10 17:29:24 +10:00
5b39b83af4 Poly Build: set newly added elements active 2018-09-10 16:24:38 +10:00
a4d126cac6 Cleanup: use title caps 2018-09-10 16:14:26 +10:00
549ac6ddeb Edit Mesh: pass Base array to picking functions
In some cases we need to use this array afterwards,
so this gives control over which objects are used for picking.

Also use an index argument as return argument
so callers that need to know the index in the array
don't need to calculate it afterwards.
2018-09-10 16:02:12 +10:00
fc06bd7236 Cleanup: use 'mesh' in preselect identifiers
We may have preselection for other types later.
2018-09-10 14:44:15 +10:00
0c2001e5ef Missing from last commit 2018-09-10 14:40:12 +10:00
a331b5dde6 Cleanup: rename edge-ring preselect file
Having all pre-selection in one file isn't so nice,
differentiate edge-ring from element pre-selection.
2018-09-10 14:38:13 +10:00
20634fd433 Tool System: use preselect highlight w/ poly-build
- Poly build now uses a new gizmo for pre-selection
  which has the same behavior as loop-cut.

  This replaces hack where mouse-move set the active element
  which was no longer working properly because of missing
  depsgraph updates.

- Multi-object support for poly-build.

- Support for deformed cage.

- Fix error where changing active object wasn't properly
  refreshing the preselect gizmo (for loopcut too).

Currently holding Alt to select non-boundary element's isn't working.
2018-09-10 14:35:04 +10:00
2b5d4d426a Cleanup: use function to set the active base 2018-09-10 14:21:11 +10:00
bb9b0fcdbe Cleanup: remove unused field args 2018-09-10 14:05:33 +10:00
6b551c0b8c Eevee: Depth of Feild: Fix ringing issue of background objects
There was an issue caused by Antialiasing being done after DoF. Move TAA
after DOF and Motion Blur.

Also certain pixel with lower CoC would be spread all over the background
because the neighbooring pixel have higher CoC. So we need to apply some
bilateral filtering when downsampling. Currently we limit the influence of
neighbor pixels with a CoC inside the range [MaxCoC-2, MaxCoC].
2018-09-09 23:26:14 +02:00
d69d68621f GP: Improve smooth interpolation calc 2018-09-09 16:06:10 +02:00
84d85f963f GP: Fix strange pressure values when drawing
This strange values produced an "explosion" of the stoke and it was very annoying.
2018-09-09 14:08:18 +02:00
d7d4baa50f GP: missing change in previous commit 2018-09-09 11:48:02 +02:00
d5d354b1a2 GP: Fix scale problem when object is parented
The stroke was not scaled as expected in child objects.
2018-09-09 11:41:25 +02:00
f074642b2c Fix T56712: Compositor image loader skips frames.
Bad removal of 'Fields' option for image sequences...
2018-09-08 16:46:44 +02:00
73e9ae608c Merge branch 'master' into blender2.8
Conflicts:
	source/blender/blenkernel/intern/lattice.c
2018-09-08 15:32:44 +02:00
4594cc25ac Fix T56720: Lattice: crash on setting points_u/v/w from python.
One need to check that there is something to free, before trying to free it...
2018-09-08 15:29:39 +02:00
5a1e9e5af8 Fix T56722: Crash - Entering mesh Edit Mode.
Seriously...
2018-09-08 11:19:07 +02:00
31b8dbf8c0 Fix extrude gizmo redo after selection glitch
It was possible to adjust extrusion after selection.
2018-09-08 13:36:47 +10:00
cb909afa12 Correct last commit 2018-09-08 13:22:34 +10:00
9189fd643a Gizmo: fix extrude depth ordering 2018-09-08 13:01:46 +10:00
f7f4c05bbf WM: add temporary field to gizmo's 2018-09-08 12:49:46 +10:00
dc29ae579f UI: make extrude gizmo similar size to transform 2018-09-08 10:50:53 +10:00
b8ac2379eb Cleanup: remove redundant assignment 2018-09-08 07:29:15 +10:00
0ffca8b7b3 Fix gizmo poll function
Missed cast switching to bool return type.
2018-09-08 07:27:29 +10:00
aa6c9ca899 Cleanup: style 2018-09-08 07:03:14 +10:00
5e942f459f UI: Disable popup for object mode delete from menu
Since there are no options to change, delete immediately.
2018-09-08 06:56:48 +10:00
570b328fac Cleanup: Update shortcut in comment 2018-09-08 06:54:03 +10:00
9c441dcd73 Gizmo: update template to use matrix multiply 2018-09-08 06:51:02 +10:00
66d275f8d3 RNA: update gizmo API for changes in Blender
- gpu module renamed.
- make gizmo.new() take type as a required argument.
2018-09-08 06:50:02 +10:00
f23319d095 RNA: Area.header_text_set text is now required 2018-09-08 06:23:25 +10:00
9c7195789d Merge branch 'master' into blender2.8 2018-09-08 06:03:29 +10:00
59eaa90300 Cleanup: move area API into own function 2018-09-08 05:59:28 +10:00
e2fc6615c4 Merge branch 'master' into blender2.8 2018-09-07 20:41:27 +02:00
639a916f12 Install_deps: fix llvm/clang ARCH package names.
Issue raised in T56540, thanks.

Also tried to re-enable using fedora's llvm/clang packages, would hope
and assume old issue here is fixed.
2018-09-07 20:39:42 +02:00
2659f3be13 Merge branch 'master' into blender2.8 2018-09-07 20:32:41 +02:00
98323160d2 Install_deps: Fix wrong URL for ILMBase/OpenEXR source archives.
They also went to github...
2018-09-07 20:31:50 +02:00
b75ebd0877 Merge branch 'master' into blender2.8 2018-09-07 20:22:57 +02:00
1d0e15c911 Install_deps: Fix building python on fedora 28
Looks like libffi is now a dependency of python as well...

Done it for the other distro as well, just in case. ;)
2018-09-07 20:21:57 +02:00
f440fdec84 Fix operators from W menu for the API changes 2018-09-07 16:41:19 +02:00
d9083212d6 GP: Replace hide icon in materials
Now the layers and materials icons are consistent.
2018-09-07 15:53:01 +02:00
2f3311ed30 Depsgraph: Cleanup, naming
If something is a list of data, it is to be called list, and data
is to be called data. No need to call list a data and data a weird
two letter abbreviation.

Clarity is our friend!
2018-09-07 15:10:24 +02:00
bf5609cc8c Annotate Tool: allow drawing dots 2018-09-07 21:16:36 +10:00
Dalai Felinto
d85ff86f7e Codestyle cleanup: uvedit_smart_stitch.c 2018-09-07 07:18:29 -03:00
601fd9683c Multi-Objects: UV_OT_stitch
Reviewers: dfelinto
https://developer.blender.org/D3645
2018-09-07 07:08:12 -03:00
db259e0889 Silence warning in release mode 2018-09-07 11:55:55 +02:00
dfeff72af7 Subdiv: Add ptex offsets to a subdiv structure
This is something what we need to know quite often from various places.
Added it as a cached value in Subdiv itself, so it can be queried easily
from any area.

Shouldn't be a problem from memory usage point of view, it's 4MB per
1M faces coarse mesh. This is very low percentage of mesh itself, and
even lower percentage of highres subdivided mesh.
2018-09-07 11:54:20 +02:00
cbab3e1e90 Cleanup: Unused undef
That symbol is never defined.
2018-09-07 11:04:54 +02:00
9c12f58908 GP: Fix unreported crash when use Alt key in Surface draw 2018-09-07 09:29:33 +02:00
49fa58e330 Gizmo: fix extrude handles
Only use the 2D selection function when 3D selection isn't defined.

Regression from e18a2c4ed7
2018-09-07 16:36:02 +10:00
066afa2198 Fix T56707: Assert changing grease pencil modes 2018-09-07 13:41:31 +10:00
ee6b95f7e0 UI: move toolbar arrow closer to button edge
Could overlap icons.
2018-09-07 12:21:24 +10:00
8115b99ecd UI: add useful information to 'Measure' tooltip 2018-09-07 11:48:03 +10:00
77c0a7e1d5 Fix missing line width for helper line drawing
Also scale by pixel size.
2018-09-07 11:35:33 +10:00
5940ea11ce Merge branch 'master' into blender2.8 2018-09-07 11:27:18 +10:00
7be3378d16 Fix normal transform orientation calculation
When using the 'normal' orientation, the normal would be ignored
if the plane couldn't be calculated.

Now use only the normal if the plane is zero length,
this was already done, just not in all cases.
2018-09-07 11:25:54 +10:00
d49cbe1936 Fix own error in changes to transform logic
Regression in 3c8e4e4180
2018-09-07 11:02:15 +10:00
3733c52985 Merge branch 'master' into blender2.8 2018-09-06 20:11:18 +02:00
a5bb401704 Cleanup: fix compiler warning. 2018-09-06 20:09:13 +02:00
0728c897d7 Fix T56704: black / NaN values in Cycles normal pass. 2018-09-06 20:06:23 +02:00
d1ab109619 Fix T56698: saving render result from compositing as EXR is empty. 2018-09-06 17:46:34 +02:00
90ea5c543a Fix T56643: crash drag & dropping ID onto a text field. 2018-09-06 17:35:16 +02:00
310e396b51 Cleanup: remove unused Blender Internal preview.blend. 2018-09-06 17:16:11 +02:00
Sebastian Parborg
329b4c3363 Fix T54329: brush texture preview not working.
With the removal of blender internal, the texture preview had to be
rewritten. Now we evaluate and write the texture directly to the
preview buffer instead of going through the renderer.

Differential Revision: https://developer.blender.org/D3670
2018-09-06 17:10:54 +02:00
5a134910b1 Fix T56705: Z axis do not displays in side views 2018-09-06 15:00:44 +02:00
b2d82d096a Fix T56706: Lattice crash when enter in edit mode 2018-09-06 15:00:44 +02:00
Dalai Felinto
5ff15a1777 Multi-Objects: orthographic support for UV project
D3375 by @Al

I did a few changes before the commit:
* Initialize flot arrays with {0} instead of memset(foo, 0, sizeof(foo)).
* Use add_v4_v4 instead of for loop.
* Rename uv_map_rotation_matrix_w_offset > uv_map_rotation_matrix_ex.

bjects: orthographic support for UV project
2018-09-06 09:26:53 -03:00
William Reynish
6eeb07b870 UI: add mark/clear seam to UV menu in 3D viewport. 2018-09-06 14:13:43 +02:00
ed7048ee05 GP: Add multiframe support to vertex group operators
Before, the operators only worked in the current frame
2018-09-06 13:37:56 +02:00
e0a4dc6a79 UI / Python: rename X-Ray to In Front, Draw to Display.
See T56648.
2018-09-06 13:26:46 +02:00
1450a37555 CMake: add missing headers 2018-09-06 21:23:25 +10:00
c89791ba78 Multi object support for UV live unwrap
D3658 by @Al
2018-09-06 20:49:31 +10:00
f1c8c25a3e UI: rename Translate/Grab to Move in UI, shortcuts stay the same. 2018-09-06 12:22:09 +02:00
32ef77bf0a UI: change default modifier name from Subsurf to Subdivision. 2018-09-06 11:49:26 +02:00
6a2305191f Cleanup: Remove unused modifier evaluation flag 2018-09-06 11:47:44 +02:00
28c363aa0b Fix bad conflict resolution 2018-09-06 11:35:40 +02:00
79e8805a9e Subdiv: Some ground work for CCG support
Nothing really interesting, just starting laying down API which
seems to be a decent substitute to CCGDM, without requiring too
much work be done in sculpting area.
2018-09-06 11:32:21 +02:00
8a3adaa485 Merge branch 'master' into blender2.8
Conflicts:
	source/blender/editors/space_node/drawnode.c
2018-09-06 11:31:58 +02:00
bb98eef777 Update install_deps.sh to latest libs.
Tested with Debian Testing, might need some adjustements for other
distributions...

Also removed last patches we used here, we shall not need any anymore!
2018-09-06 11:29:21 +02:00
b07d866cf6 Compositor: Always use AA on masks
In a real world it is very weird to disable AA on a mask,
it will give ugly looking result. For some fast preview
passes (like in the node preview) the system can decide
to disable AA without asking user to do anything.

One thing we can consider doing is to remove Feather
option as well. If real compo becomes measurably slower
in cases when mask has no real feather, we can disable
feather internally, without user input. Disabling
feather in the interface is like making things faster
but giving a wrong result, which doesn't sound that
helpful either.

Reviewers: brecht

Reviewed By: brecht

Subscribers: hype, sebastian_k

Differential Revision: https://developer.blender.org/D3677
2018-09-06 11:26:19 +02:00
5f66924066 Fix exception w/ grease pencil brush tooltips 2018-09-06 18:28:33 +10:00
8d3c641270 GP: Disable outdated pie menus
The pie menus were a legacy of old grease pencil and now need a full redesign or maybe a new add-on.

While we decide the way to go, the pie menus are disabled.
2018-09-06 10:17:17 +02:00
9eb1c3f70c gpu module: close quotation marks in descriptions 2018-09-06 04:43:08 -03:00
5ad36c975f gpu module: retouching the description of the types. 2018-09-06 04:39:39 -03:00
5ed9dc6852 Fix ruler not setting line width 2018-09-06 14:45:45 +10:00
1f22ef34bb Merge branch 'master' into blender2.8 2018-09-06 14:43:47 +10:00
f5daa58242 Fix ruler angle arc displaying past endpoints 2018-09-06 14:42:31 +10:00
feb3c74a05 Cycles: Allow cancel during displacement of meshes 2018-09-06 00:25:35 -04:00
31026f8c0e UI: keep showing label tooltip once it's open
This means dragging the cursor over the tools will show all labels
immediately, but only once a single label is displayed.
2018-09-06 14:22:12 +10:00
26c17b0ab1 UI: delay tool label tip display
Displaying the labels tip immediately feels too intrusive,
make this work more like regular tooltips, displaying more quickly.

Tooltips can now uses multiple passes, each pass with it's own delay
for the next pass to show.
2018-09-06 14:19:15 +10:00
59572cbbc4 UI: tweak tool bar tooltips
- Only show label-tips when tools are icon-only.
- Don't show shortcuts in label-tips.
- Position both tool label & full tips around the button bounds.
2018-09-06 11:19:14 +10:00
fa6ed6259c Cleanup: style 2018-09-06 10:47:46 +10:00
539c140b3e Correct build errors 2018-09-06 10:47:46 +10:00
6d04e48539 Join the python modules gpu and _gpu into one.
Maybe it's still early to set the new drawing api for python.
But joining these two modules is an initial step.

```
>>> gpu.
        matrix
        select
        types
```
```
>>> gpu.types.GPU
                 Batch(
                 OffScreen(
                 VertBuf(
                 VertFormat(
```
The creation of a new offscreen object is now done by the `GPUOffscreen.__new__` method.

Reviewers: campbellbarton, dfelinto

Reviewed By: campbellbarton, dfelinto

Tags: #bf_blender_2.8

Differential Revision: https://developer.blender.org/D3667
2018-09-05 21:15:44 -03:00
Dalai Felinto
b060248324 Multi-Objects: UV_OT_follow_active_quads
Starring: the overengineered error report system to make sure only one error
is reported.
2018-09-05 19:27:44 -03:00
85c9765d82 Multi-Objects: UV_OT_remove_doubles
Use kdtree for doubles (old standing TODO for this operator).

Small changes from reviewer (Dalai Felinto):
* Code style ({ is in a new line only if it is a two-line if).
* Skip objetcs loops when we know for sure nothing is selected (or all is)

https://developer.blender.org/D3441
2018-09-05 18:48:42 -03:00
Dalai Felinto
a8fffa4da8 Fix error message from MESH_OT_faces_mirror_uv
Reported/Patch by Alan Troth.
2018-09-05 17:31:04 -03:00
Dalai Felinto
5dbf9e09a8 UV_OT_lightmap_pack: Distinction between edit and object modes
I don't even know why this operator was ever made to work in object mode.
That said, since it does, we should have different options for it
(or rather, always do all faces for it).
2018-09-05 17:24:07 -03:00
Dalai Felinto
2b83b36a30 Multi-Objects: UV_OT_lightmap_pack
I removed the All Objects option. This doesn't make more sense now that
all the selected objects will be in edit mesh mode.
2018-09-05 16:58:56 -03:00
Dalai Felinto
9c1150a295 Cleanup: uvcalc_smart_project.py 2/2 2018-09-05 15:36:31 -03:00
Dalai Felinto
9710056fb5 Cleanup: uvcalc_smart_project.py
Removing old commented out code. It includes progress bar and other bits
that were never implemented for this script since the 2.5 transition.
2018-09-05 15:27:40 -03:00
Dalai Felinto
67682f567b Multi-Objects: UV_OT_smart_project 2018-09-05 15:23:42 -03:00
Dalai Felinto
92f70c45ea Multi-Objects: UV_OT_snap_selected 2018-09-05 15:02:52 -03:00
f2a166b227 Fix T56657: Crash when creating a collection instance containing probes 2018-09-05 19:32:12 +02:00
41997d171b Edit Mesh: Add back the option to not highlight selected faces/edges
Do note that we force showing the face dot if we are in face select mode
but faces and edges overlays are disable to not loose the selected faces
entirely.
2018-09-05 19:00:13 +02:00
58a90dbd97 UI: Change "Show Edge Seams" toggle position 2018-09-05 19:00:13 +02:00
b3aa0cfe75 Cleanup: Remove unnecessary uniform 2018-09-05 19:00:13 +02:00
457df4fa9b Edit Mesh: Add support for draw option parameters
The visuals was already implemented but we could not toggle them off.
2018-09-05 19:00:13 +02:00
c05b9bbcc0 Fix T56692: The edges are not highlighted in Mark Freestyle Edge
This was not ported yet.
2018-09-05 19:00:12 +02:00
Dalai Felinto
e8dc73a0c9 Fix GPU.offscreen to use depsgraph and updated API 2018-09-05 12:50:33 -03:00
Dalai Felinto
994f438af3 Multi-Objects: UV_OT_align and UV_OT_weld 2018-09-05 11:19:46 -03:00
de187c0ba7 Merge branch 'master' into blender2.8 2018-09-05 16:05:43 +02:00
94ec80d21c CCG: Remove number of layers from key
The issue there was that number of layers did not include normals,
while element size counts bytes used by normals. This sounds very
fragile and dangerous to work further. Also, one value can easily
be delivered from another, so it is redundancy going on here.

Possible difference now is that multires subdivision will copy
normals to a higher levels. Shouldn't be big of a problem, since
leaving old normals and updating coordinates is not correct either.
2018-09-05 15:56:50 +02:00
Dalai Felinto
d81aeb60fe Fix for text alignment on multiple text boxes
The original code was already making a distinction between lines in the last
text box and all lines. However I removed that bit since when I tested the
values were the same (I tested with a single text box).

Bringing this distinction back.

Not addressed here: All boxes should respect the alignment. Which at the moment
they don't seem to fully do.
2018-09-05 10:05:34 -03:00
66f8a2d67e UI: remove delete redo panel
Since the option is now hidden from the UI, add to the object menu
(without this the key binding isn't discoverable).
2018-09-05 22:57:45 +10:00
7f95ea6f78 UI: hide mesh mode element redo panel 2018-09-05 22:57:45 +10:00
William Reynish
0894f07737 UI: use grid flow for Cycles object settings. 2018-09-05 13:48:49 +02:00
be00a22c23 Fix T56695: Selecting an occluded object in xray causes crash 2018-09-05 12:53:14 +02:00
0db545554a GP: Set first color as default when create new Stroke or Monkey 2018-09-05 11:37:54 +02:00
d8ee6158e9 keyingsets_builtins: use keyword parameters 2018-09-05 11:01:17 +02:00
2ffe7dbef1 UI: tweak tooltip placement
Only apply offset w/ non overlapping placement.
2018-09-05 17:10:59 +10:00
717f976a0e Correct last commit (keep same location as brushes) 2018-09-05 16:05:00 +10:00
e965af50b3 Tool System: show weight for the gradient tool 2018-09-05 16:01:53 +10:00
8ceff4c9ee Merge branch 'master' into blender2.8 2018-09-05 15:01:58 +10:00
44d4a61ed0 Cleanup: replace doxy @ with backslash
The rest of Blender uses backslashes.
2018-09-05 14:56:29 +10:00
246aed8847 Merge branch 'master' into blender2.8 2018-09-05 14:48:18 +10:00
1be265afc0 Cleanup: style 2018-09-05 14:46:54 +10:00
1e35f4da72 Merge branch 'master' into blender2.8 2018-09-05 14:34:31 +10:00
c13b2a2504 Fix T54152: --env-system-scripts fails on win32 2018-09-05 14:32:19 +10:00
af7d0af153 UI: avoid comma which can be used in shortcuts 2018-09-05 14:03:28 +10:00
6f1f7296f4 UI: show a small label next to the tool
Instead of showing the full tip immediately when hovering over a tool,
show only the (label, shortcut), without suppressing the regular tip.
2018-09-05 13:52:19 +10:00
e1751415dc Merge branch 'master' into blender2.8 2018-09-05 12:14:53 +10:00
bb6a94fa7b Fix VSE cut both-sides option
Was ignoring the option, using the mouse in all cases.

D3671 by @ISS w/ edits.
2018-09-05 12:13:12 +10:00
Dalai Felinto
312af01fb4 3D Text: improvements to vertical alignment
They way Blender handles vertical alignment is very buggy:

- Top-Base: It works perfectly.

- Bottom: It is actually bottom-baseline,
  and it fails when line size is != 1.0 when working with text boxes.

- Top: Poorly implemented, it should use font's ascent
  (recommended distance from baseline),
  so it has room for accents,
  but it's not one line distance far from the origin (as it is now).

- Center: Poorly implemented.
  This is tricky since there is no silver bullet.

To clear this situation I created a new option (Bottom-Baseline),
and addressed the issues above.
I'm getting the ascent and descent from freetype2,
and use this for padding above/below the text.
Also for vertically centering the text.
2018-09-05 11:33:14 +10:00
053669e4ae UI: hide brush select redo panel 2018-09-05 09:34:26 +10:00
54ea26f019 Merge remote-tracking branch 'origin/master' into blender2.8 2018-09-04 17:00:44 -06:00
19c7e499e1 cycles: Fix x86 build error.
WITH_CYCLES_CUDA_BINARIES was set as a regular variable causing it to be overwritten by the release.cmake settings.
2018-09-04 16:58:41 -06:00
e1a4d58ecc Cleanup: style 2018-09-05 08:54:11 +10:00
5ca3407ac4 Correct edge rip tool operator 2018-09-05 08:46:57 +10:00
9db228c05e Multi-Objects: MESH_OT_faces_mirror_uv
Changes from reviewer (Dalai Felinto):
* pep8.
* Skip meshes that come from libraries.
* `Copy Mirrored UV coords > Copy Mirrored UV Coords`.
* Remove mesh(es) from warnings, report mesh or meshes based on number.

https://developer.blender.org/D3529
2018-09-04 17:50:37 -03:00
ecbfc7ade5 Fix T56524: Navigate Gizmo obscured by objects in orthographic view 2018-09-04 22:25:58 +02:00
ba6daadb9d GP: Reorder Viewport Display panel options 2018-09-04 22:11:18 +02:00
Dalai Felinto
e5ee12f535 Multi-Objects: UV_OT_seams_from_islands 2018-09-04 16:27:16 -03:00
4250baa471 Multi-Objects: UV_OT_minimize_stretch
Changes from Reviewer (Dalai Felinto):
* MEM_SAFE_FREE > MEM_freeN.
* Skip loop if sync selection and no face selected.

https://developer.blender.org/D3415
2018-09-04 14:37:08 -03:00
600b6f2069 UI: icon keyword argument to popmenu_begin__internal 2018-09-04 20:32:34 +03:00
e026a3b016 Multi-Objects: UV_OT_average_islands_scale
Changes from reviewer (Dalai Felinto):
* Skip loop if sync selection and no vertex selected.

https://developer.blender.org/D3406
2018-09-04 14:21:34 -03:00
a48513eca8 Multi object editing - UV_OT_mark_seam
Changes from reviewer (Dalai Felinto):
* MEM_SAFE_FREE > MEM_freeN.
* Skip loop if sync selection and no edge selected.

https://developer.blender.org/D3417
2018-09-04 13:56:21 -03:00
Dalai Felinto
577d35ef2c Multi-Objects: UV_OT_select_split 2018-09-04 12:21:01 -03:00
2dff0c99c0 Fix T56686: Crash when copy and paste Annotations
Annotations are not designed to edit, copy or paste, so the operators must be disabled.

By design annotations can only be added or deleted, but not edited.

Still pending clean the pie menus, but this will be done during UI cleanup.
2018-09-04 17:16:36 +02:00
30ae0ce0e1 Xray: Add possibility to select wires in priority before surfaces
If no wires were found, try to select surfaces in a second loop.
2018-09-04 17:15:00 +02:00
950dcaea10 Fix T56682: GP Edit mode, deselected vertices not visible 2018-09-04 17:00:27 +02:00
eead6a6046 Multi object edit: UV_OT_select_less & UV_OT_select_more
https://developer.blender.org/D3387
2018-09-04 11:51:54 -03:00
Dalai Felinto
b55e304815 Multi-Objects: UV_OT_circle_select
Although this was marked as done, it wasn't, I'm glad I caught it.
Based entirely on the uv border select operator.
2018-09-04 11:29:29 -03:00
fc115e1ab2 Cleanup: remove legacy layer and dupli code. 2018-09-04 16:11:27 +02:00
Dalai Felinto
0f50caf556 Multi-Objects: UV_OT_pin
Also introducing a way to skip the object loop when using synced selection.
I plan to use this for the upcoming operators too.
2018-09-04 11:10:50 -03:00
Dalai Felinto
9947011ade Multi-Objects: UV_OT_select_pinned
Inspired by patch from Alan Troth, with minor changes
(codestyle and update to latest source code).
2018-09-04 11:10:50 -03:00
2b1c3f3429 Subdiv: Clarity resolution parameter
Was a bit misleading, since different ptex faces will be
tessellated at different resolution, depending whether they
are coming from quad or not.
2018-09-04 16:06:25 +02:00
a92a1d9986 Correct doxygen file headers 2018-09-04 15:45:48 +02:00
c9707a408f Subdiv: Move mesh creation functionality to own header 2018-09-04 15:34:52 +02:00
916edab639 Subdiv: Move evaluation functionality to own header 2018-09-04 15:34:52 +02:00
f1508cc8d5 Subdiv: Move FOREACH functionality to own header 2018-09-04 15:34:52 +02:00
3f76c54a68 Subsurf: Clarify what Subdiv structure is for 2018-09-04 15:34:52 +02:00
f1de256ea0 Fix T56679: Blender 2.8 crashes with bezier curve snap.
Follow up to rB621b16468ef72fb actually... Seriously... :/
2018-09-04 14:31:21 +02:00
4dfc846fe3 OpenSubdiv: Disable varying elements interpolation
We currently don't use those. Skipping creation of stencils for
them gives about 7% speedup of evaluation creation.
2018-09-04 12:38:54 +02:00
3c04ef63f8 Cleanup: Typo in comment 2018-09-04 12:30:06 +02:00
f87533ba6f UI: keep no-overlap tips open on cursor motion
Was causing flicker.
2018-09-04 19:35:22 +10:00
3140304940 Cleanup: overly polite/rude messages 2018-09-04 18:45:17 +10:00
3cb936295f Fix mistake in previous commit 2018-09-04 10:22:55 +02:00
765d1eadb9 Fix error when no tool is active 2018-09-04 18:31:02 +10:00
9b2e336cdf Cleanup, indentation 2018-09-04 10:21:26 +02:00
7bb856b3c8 Fix assert creating a tools tip 2018-09-04 18:20:51 +10:00
571aead323 UI: support immediate non-overlapping tooltips
Use these for the toolbar, since they're non-overlapping the interface,
showing them quickly isn't a problem.
2018-09-04 18:05:17 +10:00
e913e79fb5 Merge branch 'master' into blender2.8 2018-09-04 17:34:46 +10:00
8cd6e22ec0 Cleanup: use const arg for BLI_rect inside check 2018-09-04 17:33:12 +10:00
621b16468e Fix T56675: Crash when snapping Cursor to selected a Bone in Edit Mode.
Seriously...
2018-09-04 09:13:21 +02:00
531183dfd8 Merge branch 'master' into blender2.8 2018-09-04 15:29:27 +10:00
52f4531eeb UI: cleanup tooltip bounds clamping
Wasn't properly clamping on the window minimum.
2018-09-04 15:26:50 +10:00
113c180902 UI: show tool name in tip w/ icon-only display 2018-09-04 14:37:19 +10:00
25c1c0455a Fix T56660: Use horizontal enums w/ image template 2018-09-04 14:09:45 +10:00
578879253d UI: use horizontal alignment for expanded enums
With the property separate option, the direction of expanded enums
now follows the current layout.
2018-09-04 14:09:37 +10:00
1d04d7721b Cleanup: pep8 2018-09-04 08:50:11 +10:00
f428efc6db Correct toolbar tips for non sculpt modes 2018-09-04 08:13:54 +10:00
William Reynish
549592274a UI: tweak object viewport display panel, use grid flow. 2018-09-03 19:35:25 +02:00
William Reynish
544c8453d5 UI: use grid flow for metadata panel. 2018-09-03 19:35:25 +02:00
fbbadc8775 Fix T56544: Crash on startup with Radeon + Win 7
Testing GLEW_ARB_texture_gather is not sufficient in this case. We need to
test if GL_ARB_texture_gather is defined in the shader, which is always true
on some NVIDIA drivers who does not support it...
So trying to make everything work.
2018-09-03 19:21:23 +02:00
William Reynish
cdd8a430d3 UI: reorganize render output and encoding panels for single columns.
This will look a bit better once horizontal expanded enums work.
2018-09-03 17:51:04 +02:00
f1f99c4991 Fix T56667: missing sockets with Cycles render layer nodes in compositing. 2018-09-03 17:49:52 +02:00
a43ebc63fa Merge branch 'master' into blender2.8
Conflicts:
	source/blender/blenkernel/intern/collision.c
2018-09-03 17:44:36 +02:00
265ec400ab ClosthCollision: fully avoid computing BVHTree when we have no collision objects to test against.
Followup to rBc6bbe6c5aac29, much more elegant solution to the problem. ;)
2018-09-03 17:32:46 +02:00
b46e987a70 Fix T56423: Fully broken drag'n'drop parenting in Outliner.
`BKE_libblock_find_name()` expects ID names *without* ID type 'prefix'...
2018-09-03 17:25:41 +02:00
b0067db852 Cleanup: Split function up
We would need to at least support one more PBVH building
here, trying to squeeze everything into one function will
make it really hard to read and follow.
2018-09-03 17:07:46 +02:00
4da2acae3a Spelling fixes in comments and descriptions, patch by luzpaz.
Differential Revision: https://developer.blender.org/D3668
2018-09-03 16:55:01 +02:00
b812dfd161 Fix T56622: crash and other bugs deleting scenes.
Simplify library remapping code to handle special collection/object links
in postprocess. Previously base contained the actual object link which
needed special handling in preprocess, now objects are linked through
collection and the base cache can be updated in postprocess.
2018-09-03 16:29:59 +02:00
Dalai Felinto
27c954386b Weightpaint mode: Removing barbarian batch tagging on engine init
This was introduced in the original implementation of weightpaint
in 2.8 (20f95de6ba). But this is very shortsighted, we can't assume only one
object will be edited at once, nor should we tag things during drawing.

There is a chance this introduces "bugs". If it does, we then tackle them in the
proper way (usually tagging DEG after operators changing the weight paint data).
2018-09-03 11:17:53 -03:00
70382fe7b3 Topbar: Remove unused variable 2018-09-03 16:13:27 +02:00
f922881620 Fix T56666: Crash typing "w" in the search function.
One shall check object is a GPencil one, before trying to use ob->data...
2018-09-03 16:06:56 +02:00
101b2ce7b6 Depsgraph: Cleanup, put symbols to a proper namespace 2018-09-03 16:05:41 +02:00
Dalai Felinto
eb2226dde2 Multi-Object Editing: MESH_OT_bridge_edge_loops by Philippe Bachour
I (Dalai) did a few changes before committing:
* Code style (mostly tabs instead of space).
* Skip loop when no vert selected.
* Keeping comment on why always return FINISHED.

Maniphest Tasks: T54643
https://developer.blender.org/D3338
2018-09-03 10:52:50 -03:00
2580399498 Fix T56593: Crash when enabling collection with curves
Was missing update of ID blocks which are becoming visible.
2018-09-03 15:36:20 +02:00
30a2ad8efe Merge branch 'master' into blender2.8 2018-09-03 15:33:07 +02:00
Dalai Felinto
3dee8b4a12 Multi-Objects: OBJECT_OT_vertex_group_smooth
In this case we call the operation multiple times.
2018-09-03 10:30:59 -03:00
c6bbe6c5aa Fix (unreported) potentially giant memory leak in Cloth collision solver.
Not freeing its BVHTree in case there were no collision objects,
could quickly lead to hundreds of MB of memleak!
2018-09-03 15:30:33 +02:00
d57cb8fa22 Depsgraph: Use more meaningful name for flags storage 2018-09-03 15:20:06 +02:00
e152483a32 Tool System: add paint brush shortcut 2018-09-03 23:19:27 +10:00
0a26c122ed Eevee: Fix missing meshes on Win + Intel HD 530/540
This is only a workaround. The real issue should be adressed by the
driver team upstream.
2018-09-03 14:38:06 +02:00
c6037b39a1 Fix slow .blend file load due to recent accidentally committed debug code. 2018-09-03 14:20:34 +02:00
cd693955ad Set active base to NULL if its object is gone 2018-09-03 13:42:47 +02:00
3451cb56db Depsgraph: Cleanup, make it more obvious what ID references 2018-09-03 12:57:04 +02:00
6690816fe5 Depsgraph: Cleanup, make it more clear what function does 2018-09-03 12:55:26 +02:00
6ba5dc9147 Depsgraph: Generalize storage for already existing ID nodes
Currently no functional changes, just allows to store mo information.
2018-09-03 12:39:56 +02:00
296a1afc0c Cleanup: Remove unused lay_updated
Is no longer used, having it around was more of a confusion than
anything else.
2018-09-03 12:17:55 +02:00
73a474dd8b Depsgraph: Cleanup, indentation level 2018-09-03 12:11:11 +02:00
Alex Fuller
107f1c0a2b Fix Cycles half float pragma for strict OpenCL compilers (like ROCm).
Differential Revision: https://developer.blender.org/D3669
2018-09-03 12:03:56 +02:00
cc03218962 Fix T56659: Flow UI: Checkboxes report wrong width, making layouts jump to multi-columns too soon.
Wrong handling of ideal width when splitting buttons and labels appart
for checkboxes...
2018-09-03 11:07:29 +02:00
4bfc236d39 Cleanup: warning 2018-09-03 18:24:45 +10:00
ff59553dc9 GP: Cleanup function parameter
There was a mix of enum parameters and int/bool values.
2018-09-03 10:14:13 +02:00
ad68470d44 Fix exception running toolbar w/o an active space 2018-09-03 14:22:58 +10:00
ba21c27e76 Cleanup: use single quotes for enum's 2018-09-03 14:15:18 +10:00
0be6146d26 UI: remove rotate/reverse UV's from menu
These are quite obscure operations and are already available in the
"Face Data" menu.
2018-09-03 14:03:32 +10:00
660477f4a4 UI: disable key shortcuts for tools
Only show shortcuts in the tooltips since they use different logic.
2018-09-03 13:56:33 +10:00
d015c1db3e Cleanup: replace __import__ w/ import argument 2018-09-03 12:53:42 +10:00
88a893a838 Merge branch 'master' into blender2.8 2018-09-03 12:48:51 +10:00
7ff1750218 PyAPI: add optional imports to expression eval API
Avoids having to use `__import__` to access modules.
2018-09-03 12:43:43 +10:00
0c389862c4 Tool System: Show popup accelerators in tooltip
The tooltips for tools in the toolbar now show how to access.
2018-09-03 11:29:37 +10:00
0e09ee3350 Tool System: map keys bound directly to a tools
If a key is bound to activate a tool in the tool-system,
add this to the popup keymap.
2018-09-03 11:11:56 +10:00
4893b8c693 Fix toolbar popup outside the window region 2018-09-03 10:19:30 +10:00
41f4d21079 Fix part of T56654: Freestyle hiding viewlayer buttons when there is no lineset.
Buttons' context 'path' has to bee handled carefully, especially when
building more than one step in a single call...
2018-09-02 15:30:06 +02:00
32e8f2e982 Keymap: Double tap A-Key to de-select all
Uses double click events for the keyboard, which wasn't used before.

Experimental feature suggested by @venomgfx
2018-09-02 21:41:30 +10:00
8c74462f18 Cleanup: move select all/none/invert into template 2018-09-02 21:25:14 +10:00
4e3457115c UI: correct unintended space in string formatting 2018-09-02 20:05:45 +10:00
3cba77f16b Merge branch 'master' into blender2.8 2018-09-02 19:45:56 +10:00
4bb8dba340 Cleanup: move keymap helpers into own file 2018-09-02 19:37:09 +10:00
127603f70e Merge branch 'master' into blender2.8 2018-09-02 18:56:02 +10:00
0ddf3e110e Cleanup: comment blocks 2018-09-02 18:51:31 +10:00
ae57383648 Cleanup: comment blocks 2018-09-02 18:28:27 +10:00
6abb37babc Cleanup: style 2018-09-02 16:49:45 +10:00
83199b6430 Cleanup: shadow warning 2018-09-02 16:27:44 +10:00
Dalai Felinto
a5f950ed38 Fix MESH_OT_loop_select: Deselect object objects
Before that if you loop select a mesh, it would deselect the previous selected
edges of the selected mesh, leaving the other objects untouched.
2018-08-31 17:43:59 -03:00
Dalai Felinto
f6b902a9ca Follow up to MESH_OT_offset_edge_loops
Committing this as a separate commit since we may want to keep this mode syncing
elsewhere. But for now it makes sense to do it like this.
2018-08-31 17:23:34 -03:00
efd843b51c Multi-Objects: MESH_OT_offset_edge_loops
Changes from reviewer (Dalai Felinto):
* Code style (replace tabs with spaces).
* Return OPERATOR_CANCELLED if no a single object get through.

Maniphest Tasks: T54643
https://developer.blender.org/D3392
2018-08-31 17:14:56 -03:00
Dalai Felinto
41759e74de Fixup for MESH_OT_vertices_smooth_laplacian
Failing to repeat should return, but continue the object loop.
Should test for selected vertex, not face.
2018-08-31 17:02:37 -03:00
Dalai Felinto
3065dc435c Fixup for multi-objects snap functions
Sanitizing the use of TransVertStore, making sure it is always freed.
Skip meshes with no vertex selected.
2018-08-31 16:46:16 -03:00
Dalai Felinto
0610c09f8c Fix memleak on snap_curs_to_sel_ex 2018-08-31 16:25:37 -03:00
Dalai Felinto
b0c146a9eb MESH_OT_symmetrize: Cleanup, get op->ptr props outside objects loop 2018-08-31 15:53:07 -03:00
n-kall
7f9768cb80 Multi-Objects: MESH_OT_symmetry_snap
Reviewers: dfelinto
Differential Revision: https://developer.blender.org/D3374
2018-08-31 15:52:16 -03:00
Dalai Felinto
53ae9b1034 MESH_OT_blend_from_shape: Add error when no selected vertex
This is just something simple I caught while testing the patch for multi-object.
2018-08-31 15:23:02 -03:00
6ae09dfcad Multi-Object-Mode: MESH_OT_blend_from_shape
"Blend from Shape" lists keys from active object and applies to all selected
objects that have keys with a matching name.

Changes from reviewer (Dalai Felinto):
* Code Style.
* Move Object **objects after sanity check to prevent leak when
  returning OPERATOR_CANCELLED.
* Skip objects that have no selected vertex.
* Fixed existent comments code-style: Since we are changing the indentation of
  these lines, may as well correct this as well.

Differential Revision: https://developer.blender.org/D3656
2018-08-31 15:20:21 -03:00
Dalai Felinto
f3a1ca1872 MESH_OT_shape_propagate_to_all: Add error when no selected vertex
This is just something simple I caught while testing the patch for multi-object.
2018-08-31 14:21:35 -03:00
3a43528274 Multi-Objects: MESH_OT_shape_propagate_to_all
Pressing "Propagate to Shapes" now propagates the current shapes to the selected
object's respective keys, if at least one selected object has shape keys.

Discussion here:
https://devtalk.blender.org/t/behaviour-of-shape-keys-in-multi-object-mode/1956/4

Changes from reviewer (Dalai Felinto):
* Code style
* Error message
* Remove dead code

Reviewers: dfelinto
Differential Revision: https://developer.blender.org/D3651
2018-08-31 14:20:56 -03:00
7f36fb458c Merge branch 'master' into blender2.8 2018-08-31 17:08:29 +02:00
8a3b548cb2 Buildbot: Usable PIE
Makes it impossible to run from GUI on certain platforms, see T56628.
2018-08-31 17:07:30 +02:00
Dalai Felinto
fede95aa68 Cleanup: edbm_do_smooth_laplacian_vertex_exec 2018-08-31 11:45:53 -03:00
1f30232aa7 Multi-Object-Editing: MESH_OT_vertices_smooth_laplacian
Since D3284 was inactive for a long time, I figured I could finish this.

This revision also gives warning when there are no selected faces or when
selected faces are invalid.

Changes from reviewer (Dalai Felinto) :
* Code style
* Fix checking for ngons (BM_ITER_MESH is a for loop, you need to break from it
before continuing the object iteration loop).

Differential Revision: https://developer.blender.org/D3659
2018-08-31 11:45:53 -03:00
b6f0f8a5b5 Cloth: Implement angular bending springs
This implements angular bending springs for cloth simulation. This also
adds shearing springs for n-gons.

This angular spring implementation does not include Jacobian matrices,
as the springs can exist between polygons of different vertex counts,
rendering their relationships asymmetrical, and thus impossible to solve
with the current implementation. This means that the bending component
is solved explicitly. However, this is usually not a big problem, as
bending springs contribute less to instability than structural springs.

The the old linear bending model can still be used, and is the default for
existing files, to keep compatibility. However, the new angular bending
model is the default for any new simulation.

This commit makes small breaking changes, in that shearing springs are
now created on n-gons (also in linear bending mode), while n-gons were
previously ignored.

Reviewed By: brecht

Differential Revision: http://developer.blender.org/D3662
2018-08-31 16:39:43 +02:00
e3d31b8dfb Cloth: Componentize forces
This separates cloth stiffness and damping forces into tension,
compression, and shearing components, allowing more control over the
cloth behaviour.

This also adds a bending model selector (although the new bending model
itself is not implemented in this commit). This is because some of the
features implemented here only make sense within the new bending model,
while the old model is kept for compatibility.

This commit makes non-breaking changes, and thus maintains full
compatibility with existing simulations.

Reviewed By: brecht

Differential Revision: http://developer.blender.org/D3655
2018-08-31 16:33:59 +02:00
Dalai Felinto
ec3357e03a Multi-Objects: VIEW3D_OT_snap_selected_to_cursor by Habib Gahbiche
Objects in edit mode now behave as if they were joined.

Changes from reviewer (Dalai Felinto): code style (tabs, spaces, ...), missing MEM_freeN(objects);

https://developer.blender.org/D3648
2018-08-31 11:06:28 -03:00
d9b9a46aa3 Python: Enable MASS unit in FloatProperty
MASS unit was already implemented for the C api. Only making sure it is
accessible in the python api. Also added 'CAMERA' to the documentation as a valid option.
2018-08-31 15:00:38 +02:00
Dalai Felinto
6c87958dac Fix Text Boxes not drawing
I'm using a different shading group for the active text box and the others.
This way I can assign different colors to them.

The alternative would be to create a new `shgroup_dynlines_dashed_flat_color`,
but I find this overkill for such a simple use case.
2018-08-31 09:53:44 -03:00
df62deb0a7 Remove CCGDM from PBVH
The statement that PBVH needs to keep track of CCGDM is wrong, PBVH itself
does not care about CCGDM at all, and it's weird for it to carry on this
beast so others can access.

Even more, nobody will actually caring about CCGDM itself, all the usages
were checking whether there is CCGDM or not. This is as good as simply
checking PBVH type.

Tested with an original report T53551 and everything is still stable.
2018-08-31 14:06:26 +02:00
d7c58cd8f7 Fix broken decorate buttong dragging after recent changes. 2018-08-31 13:35:07 +02:00
3f2090f401 Merge branch 'master' into blender2.8 2018-08-31 13:00:19 +02:00
671c54f692 Fix T56618: crash in release builds when GHOST asserts.
WITH_ASSERT_ABORT was not disabled for release builds. In most cases asserts
are disabled in release builds, but not always.

This also changes the buildbot to use blender_release.cmake instead of
blender_full.cmake, the only effective difference should be WITH_ASSERT_ABORT.
2018-08-31 12:43:39 +02:00
9492522db5 Fix T56618: crash when typing certain characters on Linux. 2018-08-31 12:43:39 +02:00
f18de82cd4 Merge branch 'master' into blender2.8 2018-08-31 12:30:19 +02:00
e51f51d55d Cycles: Cleanup, use explicit comparison with NULL 2018-08-31 12:28:12 +02:00
8ee76535da Fix T56626: Cycles ambient occlusion only local : crash
Was caused by missing NULL pointer check in BVH8.
2018-08-31 12:14:36 +02:00
ca73883e19 Cleanup: Remove unused field 2018-08-31 09:54:35 +02:00
ac9e1e692c Merge branch 'master' into blender2.8 2018-08-31 14:53:34 +10:00
976f14fbcf PyAPI: replace checks for invalid input w/ assert
Was returning -1 as a bool argument,
in this case the caller needs to ensure non-null args.
2018-08-31 14:51:59 +10:00
b1ccb6ad25 Tool System: support tool description for tips
When the description isn't set, the operators is used instead.
2018-08-31 14:37:10 +10:00
39ee0f01e3 Merge branch 'master' into blender2.8 2018-08-31 14:25:42 +10:00
98800aa4e0 C/Python API: Add PyC_RunString_AsIntPtr
Utility to get an int or pointer from a Python expression.
2018-08-31 14:21:32 +10:00
7c6136b35c Merge branch 'master' into blender2.8 2018-08-31 13:40:10 +10:00
18d135d05c Cleanup: rename WM_keymap_find -> WM_keymap_ensure 2018-08-31 13:36:46 +10:00
e3c110e72e Fix T56619: Transform crash w/ curve deform 2018-08-31 11:15:09 +10:00
Dalai Felinto
f436e0acab Cleanup: GPU_BATCH_DISCARD_ARRAY_SAFE (deduplicate existing code) 2018-08-30 17:49:05 -03:00
Dalai Felinto
7527f2317a Fix Font object: text selection and cursor not updating 2018-08-30 17:49:05 -03:00
Dalai Felinto
7874f5e5a1 Silence Grease Pencil warning 2018-08-30 17:49:05 -03:00
ebed5323e0 GP: Change icon identfier for shaderFx
This commit complements commit d2ad256326
2018-08-30 19:22:24 +02:00
bb531da566 UI: remove context path from tool settings tab in properties editor. 2018-08-30 17:56:54 +02:00
d2ad256326 UI: add dedicated icon IDs for decorators, tool settings, shaderfx, overlays.
The preset and decorator icons were updated to be monochrome and draw in the
same color as text. Other icons are unchanged, having them as separate icon IDs
prepares for an artist to make them.
2018-08-30 17:56:54 +02:00
af21053087 Merge branch 'master' into blender2.8 2018-08-30 17:40:06 +02:00
94ea566b5a Cycles: Cleanup, whitespace after keyword 2018-08-30 17:34:11 +02:00
b491577cb7 Cleanup: Improve comments 2018-08-30 16:44:52 +02:00
a9664fa666 GP: Fix unreported surface missing strokes
When drawing in surface mode if the stroke z-depth was not valid, the stroke was created, but it was not visible because location was something illogical.

Now, if the z-depth cannot be calculated, the stroke is calculated as it was done in other modes.
2018-08-30 16:42:52 +02:00
9f78f471d7 Workspaces: switch object mode when switching workspaces.
In the workspace properties a mode can now be configured that is
automatically enabled when switching to the workspace.

This is a test to validate how well it works. The weak point is
that if you don't have an appropriate object already select it will
not switch modes.

See T56475.
2018-08-30 16:10:03 +02:00
df8a7ec3a8 Fix fox strict flags: Avoid sign cast of strlen() result 2018-08-30 14:14:18 +02:00
cdcd648547 Merge branch 'master' into blender2.8 2018-08-30 14:09:58 +02:00
caa12b17e2 Buildbot: Correction to previous commit 2018-08-30 14:09:14 +02:00
9dbef08621 Buildbot: Attempt to fix glibc-2.19 compilation
It is likely to be retired, but for until then lets ensure it works.
2018-08-30 14:07:48 +02:00
caa7f749ed Merge branch 'master' into blender2.8 2018-08-30 13:59:34 +02:00
9b937c8404 Outliner: support dragging multiple collections, same as objects. 2018-08-30 13:59:17 +02:00
961881495f GP: Undo previous Subdivide edit operator and reformat code
The previous commit reusing the subdivide modifier code was not taking in account the selected points, so the subdivide was wrong.
2018-08-30 13:45:12 +02:00
8c3d2e549c Cycles: Fix detection of CPU brand string on 32 bit platforms
The assembler template was backing up and restoring ebx, which is
fair enough. However, this did not prevent compiler for putting
result variables to ebx. This was causing data corruption.

In order to prevent this easiest solution is to list ebx in clobbers
for the assembly.
2018-08-30 12:52:27 +02:00
41d1af9a11 UI: check prop-separate before adding black decorator
This caused the blank icon to be added to menus (ndof menu for eg).
2018-08-30 20:50:06 +10:00
5e66791b86 Cleanup: warnings 2018-08-30 20:48:00 +10:00
49041e5611 Fix T56612: crash in Cycles viewport render update, after recent changes.
BVH8 refitting code had a bug.
2018-08-30 12:46:46 +02:00
9a646b6a20 GP: New Armature modifier and tools to handle weights
This commit adds a new armature modifier for grease pencil. The deformations are done reusing the mesh deform routines.

There is also a new operator in weight paint mode to help the artist to generate weights base on armatures. This operator is required because 2D animation workflow is not equal to meshes when parent an object to armatures.

In the drawing engine has been added the option to handle the Fade object parameter used in armatures to see the strokes while move the bones.

When rename bones, all related data of grease pencil is renamed too. This not only affect new armature code, but also layers parented and hook modifiers.

Thanks @aligorith for his review and help.
2018-08-30 12:23:08 +02:00
22dc248f14 Fix T56610: crash saving images with python API. 2018-08-30 12:19:27 +02:00
a1b38a635e Cleanup: license header formatting. 2018-08-30 12:09:47 +02:00
9d00b0f796 Cleanup: Remove line introduced by error in previous commit 2018-08-30 11:18:04 +02:00
f2d8241b23 GP: Add weights while drawing strokes
Now it's possible to add the weight of the current selected vertex group to any new stroke created.

This is very handy when add drawings after the weight paint was done and it will be required with Armatures.
2018-08-30 11:11:47 +02:00
0845b1c8c8 GP: Improve Subdivide and Simplify
Now the weights are managed in the operators.

The subdivide operator and modifier code have been replaced with a shared function.

Some cleanup also.
2018-08-30 11:11:47 +02:00
4939769cd6 Build environment: Tweak to harvasting script
The idea is to make find_package() to succeed without any
extra tips given. For this, we need header files to be
harvasted.
2018-08-30 11:03:25 +02:00
3071d67c3a UI: fix glitch redrawing after redo panel collapse 2018-08-30 19:00:37 +10:00
edef141d0b GP: Add small offset to stroke over surface.
This small offset helps to keep the stroke over the surface and avoid the stoke is "inside" the face of the surface.

We could add this as a parameter in the UI, but after doing a lot of test, the valid values are very limited and don't worth the change, so a hardcoded value works fine.
2018-08-30 10:17:48 +02:00
5c0fb95d04 Buildbot: Get rid of OpenJPEG 2 hack
Also clarified some options and decisions.
2018-08-30 10:00:23 +02:00
1fdde7892d CMake: Automatically detect OpenJPEG 2 libraries
There is chance that on a system with both versions installed this
*might* cause some issues. Such system will be pain to support out
of the box anyway.

This change allows to use precompiled libraries without extra
modifications in the config.
2018-08-30 09:55:40 +02:00
e74d7d6f81 3D View: option to always show center in face mode
This matches 2.7x behavior
2018-08-30 16:21:03 +10:00
7dd24ba6e8 3D View: use thicker edges when in edge-mode
Without this there is no visual differentiation between face/edge mode.
2018-08-30 15:54:23 +10:00
84cc111e8b 3D View: scale edit-mesh drawing by pixel size 2018-08-30 14:28:50 +10:00
2093b79ee7 Cleanup: inline icon conditional 2018-08-30 13:47:27 +10:00
e9c2477a84 UI: show workspace panel last & use a parent panel 2018-08-30 13:30:16 +10:00
8ace389fc4 UI: move workspace panels to tool settings
While this isn't the most logical place, there are very few workspace
options and they don't need to be in such a prominent location.
2018-08-30 13:06:03 +10:00
a4a9f4b3d1 Transform: fix redundant gizmo constraint axis
Setting the constraint caused the redo to show
redundant XYZ constraints UI.
2018-08-30 09:17:12 +10:00
9a66905b08 UI: use property split for mesh options 2018-08-30 09:05:48 +10:00
add923f98a UI: add active tool panel to tool settings 2018-08-30 09:00:39 +10:00
6fa7fa6671 MSVC: Set the warning C4189 from level 4 to level 3
This is a useful warning and there is an equivalent used in `GNUC` and `clang` compilers.

Reviewed on IRC by @brecht and @LazyDodo
2018-08-29 13:59:04 -03:00
3a87641aa8 Fix Freestyle build error after recent merge. 2018-08-29 18:54:04 +02:00
75b781fe8d Correction to previous commit
Should not include ABI.
2018-08-29 18:37:49 +02:00
fd352cf8f6 Buildbot: Tweak configuration to actually ve successful in chroot 2018-08-29 18:32:27 +02:00
7a6911a10c Buildbot: Make configuration to pass config state
- Foe some reason CMake's platform and processor are not intialized there.

- Need to set variables in cache, otherwise they are not visible in the
  actual CMake files.
2018-08-29 17:57:30 +02:00
89186595de Cleanup: add file doxy comments 2018-08-30 01:56:08 +10:00
0efecba957 Merge branch 'master' into blender2.8 2018-08-30 01:38:16 +10:00
39eb051616 Cleanup: indentation 2018-08-30 01:31:20 +10:00
21105e1b1f Cleanup: use simple early exit for common case
Caused MSVC warning, may as well do simple check.
2018-08-30 01:19:44 +10:00
cc5d55fad4 Merge branch 'master' into blender2.8 2018-08-30 01:05:46 +10:00
76a9752be2 Cleanup: trailing space 2018-08-30 01:05:13 +10:00
927cf918fa Cleanup: trailing space 2018-08-30 01:02:44 +10:00
2c0f22f49c Cleanup: correct header guard 2018-08-30 01:02:26 +10:00
fd2615fd9b Merge branch 'master' into blender2.8 2018-08-29 16:42:32 +02:00
ddf8c49736 Fix Cycles CUDA build after recent changes. 2018-08-29 16:35:21 +02:00
8864dde5bb Cleanup: remove unused build environment patches. 2018-08-29 16:32:07 +02:00
a7f5418caa Cleanup: consistent includes. 2018-08-29 16:32:07 +02:00
c3a6b18537 Buildbot: Some inital work to support newer chroot environment 2018-08-29 16:29:25 +02:00
0d085790d1 Python / Cleanup: rename INFO_MT to TOPBAR_MT/VIEW3D_MT to reflect actual location. 2018-08-29 16:25:50 +02:00
42f7767dab Cleanup: rename files from group to collection to match contents. 2018-08-29 16:25:50 +02:00
2385fda448 CMake: Allow specifying custom LIBDIR on Unix
Works similar to how maxOS deals with this.
2018-08-29 16:15:54 +02:00
31278eb4bc Merge branch 'master' into blender2.8 2018-08-29 16:09:59 +02:00
e81c352746 Tool System: hide paint options for non brush tools 2018-08-29 23:58:44 +10:00
b2c707747d CMake: Comply with include path reported by FindOpenGL.cmake
The script clearly states:

  This makes the presumption that you are include al.h like
  #include "al.h"
  and not
  #include <AL/al.h>
  The reason for this is that the latter is not entirely portable.
  Windows/Creative Labs does not by default put their headers in AL/ and
  OS X uses the convention <OpenAL/al.h>.

This commit makes default precompiled OpenAL to be properly detected
and also removes hack on MacOS which was finding the OpenAL package but
then was overwriting include directory.

Note, that new audaspace in 2.8 is using expected #include <al.h>.
2018-08-29 15:08:28 +02:00
987b3abeb4 CMake: Make sure zlib folder comes first for precompiled Linux libraries
Without this find_package(ZLIB) will find ZLib from OpenCollada folder,
which has older ABI and is not what was used to link PNG against.
2018-08-29 15:05:03 +02:00
73f2056052 Cycles: Add BVH8 and packeted triangle intersection
This is an initial implementation of BVH8 optimization structure
and packated triangle intersection. The aim is to get faster ray
to scene intersection checks.

    Scene                BVH4      BVH8
barbershop_interior    10:24.94   10:10.74
bmw27                  02:41.25   02:38.83
classroom              08:16.49   07:56.15
fishy_cat              04:24.56   04:17.29
koro                   06:03.06   06:01.45
pavillon_barcelona     09:21.26   09:02.98
victor                 23:39.65   22:53.71

As memory goes, peak usage raises by about 4.7% in a complex
scenes.

Note that BVH8 is disabled when using OSL, this is because OSL
kernel does not get per-microarchitecture optimizations and
hence always considers BVH3 is used.

Original BVH8 patch from Anton Gavrikov.
Batched triangles intersection from Victoria Zhislina.
Extra work and tests and fixes from Maxym Dmytrychenko.
2018-08-29 15:03:09 +02:00
5269a3c1af Tool System: tool to extrude along normals 2018-08-29 23:00:57 +10:00
66f8a4c07e Build environment: Fix compilation of boost on Linux 32bit 2018-08-29 14:11:32 +02:00
efab903107 Missed last commit 2018-08-29 18:43:32 +10:00
1858689afb Cleanup: rename manipulator -> gizmo 2018-08-29 18:40:32 +10:00
William Reynish
1bc9f60e5b Icons: update to r62135
- Added icon for To Sphere
- Added icon for Shear
- Added icons for adding mesh objects
- Added icon for Curve Draw
- Add Curve Extrude to Cursor icon
- Tweak Curve Draw icon
- Simplified Hair Cut icon. Was hard to read
- Tweaks to Hair Puff and Smooth icons
- Added icon for Extrude Along Normals
- Updated Extrude Individual icon to become clearer and more consistent
  with "Extrude Along Normals". Now it's easy to see the difference.
- Rip Edge and Rip Region icon tweaks

Note, many icons are regenerated in this commit which
weren't intended to be changed, in some cases this looks to be caused
by material color. Generating again doesn't modify so it
shouldn't be changing every time in future.
2018-08-29 18:35:39 +10:00
54a13da1b1 Tool System: only show select tool w/ paint mask 2018-08-29 16:26:50 +10:00
a81290ddeb UI: disable brush popover in particle mode
This currently duplicates the same settings.
2018-08-29 15:51:02 +10:00
b72e81bfd0 UI: refactor particle panel/topbar logic
Similar logic for panel & topbar, use same checks.
2018-08-29 15:46:36 +10:00
bd5df281e5 UI: use icons for sculpt mode toolbar
Re-order some enums so plus is always first.
2018-08-29 15:28:56 +10:00
f21d6c3187 Tool System: add curve extrude 2018-08-29 15:14:41 +10:00
6778eb89ea Tool System: show radius for circle select 2018-08-29 15:04:05 +10:00
0493635085 Fix T56517: 2D gizmo hotspot fails
Regression from 80c9cd13da
2018-08-29 14:49:42 +10:00
46fc3f39c5 Weight Paint: use black for unselected vertices
Contrast for selected vertices mode wasn't very strong.
2018-08-29 12:22:33 +10:00
12562f1c76 UI: disable decorators when not used 2018-08-29 11:42:07 +10:00
c489c8481f Keymap: check modal keymap item poll function
Fixes T56591: Vertex/Edge slide C-Key fails
2018-08-29 11:31:49 +10:00
ab2b6134c9 Tool System: make armature extrude use drag event
Extrude tool was calling click-extrude.
2018-08-29 11:11:11 +10:00
871b7ba892 Merge branch 'master' into blender2.8 2018-08-28 19:15:08 +02:00
9fd0060c0f Build environment: Ensure Python is using static ffi
Surely, need to compile ffi first :)

Good news are: Python seems static enough now!
2018-08-28 18:55:00 +02:00
c70eb30240 Build environment: Make sure Python is linkign against static Zlib
There is system-wide libz development package installed by default,
needed for some other dependencies. This patch ensures Python will
use our own self-compiled Zlib.
2018-08-28 18:29:13 +02:00
Roel Koster
55263c8a4c Fix some UI script errors after recent keyword changes.
Differential Revision: https://developer.blender.org/D3654
2018-08-28 18:09:22 +02:00
5155c51844 Fix T56529: Viewport ColorChage with Overlay "Fade 3D Objects" 2018-08-28 16:21:35 +02:00
Dalai Felinto
2e9a0e1254 Fix space text script - keyboard for labels
I guess multi-line ui elements were not covered in the cleanup scripts.
2018-08-28 10:17:58 -03:00
44df1ced6d RNA: make mesh add methods use required arg 'count' 2018-08-28 22:35:09 +10:00
590a6b5269 Cleanup: pep8 2018-08-28 21:01:22 +10:00
e20ed59037 Fix T56530, T56523: collection visiblity toggling wrong after recent changes. 2018-08-28 12:49:36 +02:00
0023060893 Cleanup: compiler warnings. 2018-08-28 12:49:36 +02:00
12622ce2f7 Cleanup: remove debug code. 2018-08-28 12:49:36 +02:00
William Reynish
c1503cd447 Tool System: use release_confirm for gpencil
Also rename some grease pencil tools.
2018-08-28 20:43:34 +10:00
William Reynish
95cbb70cf7 Tool System: add shear and to-sphere tools 2018-08-28 20:41:48 +10:00
19c65cd6e2 Build environment: Enable bzip2, lzma and sqlite for Python on Linux 2018-08-28 12:17:52 +02:00
f0c4d92533 3D View: split object/pose box & lasso select
Also fix error in lasso select with multiple pose objects.
2018-08-28 19:53:36 +10:00
91bfb168fe 3D View: split object/pose border select
No functional change, duplicate function for easy diffing.

Changes coming next.
2018-08-28 19:36:04 +10:00
71007dc1d6 GP: Use custom api to get material 2018-08-28 08:18:09 +02:00
9a9b1e9884 GP: Revert replace custom function by standard API
Using custom api breaks material at object level
2018-08-28 08:18:09 +02:00
039b11f349 PyRNA: all optional args now must be keyword args
In some cases the RNA API should be updated to make arguments use the
'required' flag, instead of adjusting Python scripts.

See T47811
2018-08-28 13:55:11 +10:00
5bf42ce022 RNA: use required args for internal popup end API 2018-08-28 13:50:11 +10:00
a6cc53876f RNA: make template_list list_id a required arg
Prepare for keyword only args.
2018-08-28 13:42:30 +10:00
e1ec93ce75 UI: use keyword arguments
Prepare for keyword only args.
2018-08-28 13:41:47 +10:00
268cdb503f Cycles: use fields for property definitions 2018-08-28 13:16:04 +10:00
d3a72033f6 RNA: UILayout.split(..) 'percentage' to 'factor'
Misleading name since it's between 0..1.

Use as a keyword argument to prepare for keyword only args.

Also document that leaving unset has special behavior.
2018-08-28 12:50:11 +10:00
e9fb2feb2e UI: text keyword argument to label
Prepare for keyword only args
2018-08-28 12:34:51 +10:00
5e8a030a08 cmake: adjustments required for lib-upgrade on windows. 2018-08-27 19:38:31 -06:00
6dd394bf02 build_environment: llvm only copy lib files for the debug build. 2018-08-27 19:38:31 -06:00
60b24f2415 Cleanup: indentation 2018-08-28 11:01:29 +10:00
b14360507e Cleanup: warnings 2018-08-28 10:53:35 +10:00
9195b5b3b1 GP: Replace custom function by standard API
Replace BKE_gpencil_get_material_index by BKE_object_material_slot_find_index
2018-08-27 23:16:02 +02:00
35c1baef27 Fix T56577: Crash when using Grease Pencil Fill Brush
If the brush had assigned a color not present in the object material slots, the fill crashed.

Now, the material is added to the object slot before using it.
2018-08-27 23:04:58 +02:00
0bdabaa3f6 transform_snap_object: Add a small offset to the clip plane
This prioritizes the vertex and edge snap over raycast.
2018-08-27 16:00:20 -03:00
5e5f2ead43 Fix T56557: wrong hash in Windows buildbot builds. 2018-08-27 19:58:10 +02:00
53457351b5 Build Environment: fix Windows Alembic build.
Ideally we should remove this difference between platforms, but for now
just do the simple fix.
2018-08-27 19:07:14 +02:00
072540688a Build environment: Enable SSL for Python on Linux
This involved getting SSL compiled from sources first, ensuring
it is a static library placement independent code. Configuration
is based on what Debian is using. CFlags required to have own
configuration file, which i didn't find a better place that next
to the corresponding CMake file.

It is OpenSSL btw.

It is set to Python via --with-openssl= configuration argument.
This works fine in a clean chroot, but having libssl-dev installed
might make Python to prefer system wide library, This was worked
around by using libssl_pic.a name for the library and modifying
setup.py. Would be cool to ensure system wide libraries are not
a problem, but official release builder is safe against this,
since it will catch possible non-static dependencies.

There is also a new map file which shadows bunch of Python
symbols. Without this Python's shared libraries might bring
conflicting symbols to Blender namespace at runtime.

Hopefully this doesn't break other platforms.
2018-08-27 18:14:42 +02:00
4b89bf88c7 Revert "DRW: Remove unecessary GL calls"
This reverts commit f8c857ad72.
2018-08-27 18:02:48 +02:00
5238456adc DNA: Deprecate gridview 2018-08-27 12:16:34 -03:00
44f04b5f53 Draw Manager: Remove unused function
Signed-off-by: fclem
2018-08-27 12:10:31 -03:00
ffbe5985c6 Fix T56547: Single column properties not aligned 2018-08-28 01:06:26 +10:00
c7a96651df Fix unreported: the gridview is no longer computed, so the snapping functions have to use the actual grid scale. 2018-08-27 11:40:48 -03:00
9de320d882 GP: New operator to copy layers between objects
The operator allows to copy a complete layer with all frames or only active frame to a new object.

Can be found in edit specials menu (W key) or in Layers specials menu (last button near layer list).
2018-08-27 16:31:03 +02:00
1e6a5eb087 Implement BMesh Operator string enumerators and docs generation.
Partial implementation of T56496 for review.

Reviewers: campbellbarton

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D3635
2018-08-27 16:15:54 +02:00
f693e2c644 Build environment: Fix for C placement independent code
Need to pass -fPIC to C code as well.
Without this blosc is not being properly placement independent.
2018-08-27 15:48:39 +02:00
04075ed744 Build Environment: fix alembic, openvdb, ffmpeg, osl build on Linux. 2018-08-27 14:15:03 +02:00
09e1e2b8ce Fix assert displaying UV's of faceless meshes 2018-08-27 17:33:06 +10:00
4498fbeb2e Handle multi-hidden-layers when converting groups to collections.
That is kind of mandatory with complex rigged-character groups, with
hundreds of helper objects, and a few useful ones being hidden on
specific layers (like e.g. the main rig...).

It is especially critical point with static override, which won't allow
to move objects between collections and such (that would be a nightmare
to implement and handle).

Note that this is rather basic implementation, we could go further and
move all objects in all layers they are 'active', but that would
probably be overkill.

Reviewers: brecht

Subscribers: brecht

Differential Revision: https://developer.blender.org/D3649
2018-08-27 09:20:06 +02:00
8b009e258c BMesh: improvements/fixes to select side of active
- Add orientation option (defaults to local, as 2.7x does)
  can optionally use global, cursor, view... etc.
- Fix typo which caused select flush to fail.
- Fix for instanced objects (was only checking one instance).
- Only tag for changes if a change is made.
- Skip meshes with all vertices selected.
2018-08-27 17:09:15 +10:00
34c97a1b00 Cleanup: rename 'vindex' to 'def_nr'
Name hinted 'vertex index', where it's the index of the vertex group.
2018-08-27 16:05:57 +10:00
21c75bc7c5 GP: replace custom API w/ BKE_deform API 2018-08-27 14:20:40 +10:00
21589dcbe0 Fix grease pencil weight invert
Was always using first group.
2018-08-27 14:19:08 +10:00
William Reynish
b61ab69025 Icons: update to rBL62101
- Updated icons for Annotation
- Updated Sculpt Mode icons once again, with a flat base.
  Makes them more readable
- Updated Hair tools icons
- Updated Armature Edit mode icons
- Updated Grease Pencil icons
2018-08-27 11:56:36 +10:00
d06e340d3d Cleanup: warning, use const args 2018-08-27 11:46:28 +10:00
f8c857ad72 DRW: Remove unecessary GL calls 2018-08-26 23:54:47 +02:00
Colby Klein
31c99c0c4e Fix pen tablet stuck on Windows for some non-Wacom tablets.
Differential Revision: https://developer.blender.org/D3573
2018-08-26 23:19:31 +02:00
6ee5e6a333 Cleanup: remove double ; 2018-08-26 17:25:17 +02:00
1948681440 GP: Reduce weight paint data memory footprint
Before, the weight data array was created always, but now only is added when a weight value is assigned.

This change was suggested by algorithm, and both agreed it was good idea.
2018-08-26 16:40:06 +02:00
85aafba04c Static override: add constraint targets as overrideable! 2018-08-26 15:49:03 +02:00
daebdcace0 Fix conversion from 2.7x groups to new 2.8 collections - hidden layers.
You cannot immediately add parent's library to newly generated hidden
child collection, since it would allow to get several of those hidden
collections with same name/library. That is strictly forbidden!

So rather loop again on collections after all hidden ones have been
generated, and assign children's library from parent one then.
2018-08-26 15:49:03 +02:00
a7b853a037 Cycles: change default emission color to 1 1 1. 2018-08-26 13:48:24 +02:00
3ee0ce27fa Cleanup: style 2018-08-26 20:34:33 +10:00
03fd1da3ee Cleanup: trailing space 2018-08-26 20:20:35 +10:00
56ec606413 Cleanup: style 2018-08-26 19:57:19 +10:00
82f771b169 DNA: don't deprecate gridview, it's still used 2018-08-26 19:47:47 +10:00
920dff35dc build_environment: fix building openvdb on win32 2018-08-25 19:40:44 -06:00
182da56cd9 build_environment: fix build-flags on windows.
build all object files with /bigobj since multiple of the dependencies go over the limit on x86
2018-08-25 19:40:07 -06:00
0339964ea8 build_environment: cleanup harvest on windows 2018-08-25 19:38:47 -06:00
3311e29b72 build_environment: ffmpeg support x86 builds on windows. 2018-08-25 19:37:30 -06:00
b6edf860fe build_environment: mingw32 fix repeated unpack of gcc tarball 2018-08-25 19:37:11 -06:00
3f1606cb7c build_environment: osl work around shutdown issues.
there is an issue with objects destructing in a non deterministic way during process shutdown, temporary work around this until osl has a fix in place.
2018-08-25 19:35:45 -06:00
b30d103cf6 Cloth: Fix mistake in big matrix multiplication
Only the upper triangle of the block matrix is stored, thus when
executing operations on the lower triangle, each block must be
transposed. This transposition was not ocurring in the matrix-vector
multiplication function, which is fixed by this commit.

Reviewed By: brecht

Differential Revision: http://developer.blender.org/D3619
2018-08-25 22:13:19 +02:00
94efc651d4 Cycles Denoiser: Allocate a single temporary buffer for the entire denoising process
With small tiles, the repeated allocations on GPUs can actually slow down the denoising quite a lot.
Allocating the buffer just once reduces rendertime for the default cube with 16x16 tiles and denoising on a mobile 1050 from 22.7sec to 14.0sec.
2018-08-25 12:23:52 -07:00
60a5ba265c Cycles: Add Denoising Clean to the debugging denoising passes 2018-08-25 09:32:29 -07:00
1a7837596c GP: Select color in Brush or in Properties
After some artist feedback the material selection was not clear.

Now, the material can be selected in the top bar or in the properties panel.

1) If the material is selected in properties panel, all Brushes except pinned will be assigned to this material.

2) If the material is selected in the brush, the properties panel is updated to set the active material.

Added a new Pin icon to keep locked the material to one brush
2018-08-25 00:04:40 +02:00
6901712734 Transform: Use grid_scale to configure the incremental snapping.
`gridview` is no longer being set and also does not match the new grid's drawing.
2018-08-24 18:04:36 -03:00
7815276b93 Cleanup: Remove debug printf 2018-08-24 18:00:10 +02:00
Dalai Felinto
21661d1681 Fix MESH_OT_shortest_path_pick
It was working only for REDO.

The reason was that we were not tagging our beloved
new multi-threaded depedency graph.
2018-08-24 12:16:37 -03:00
3b2438192b GP: Fix unreported error drawing polygons
As the polygon drawing is handled using a buffer that is converted to stroke inmediately, the drawing engine was not drawing the buffer stroke because it was empty, and the stoke was not visible becaus eit was in fast drawing mode.

Now there is a special flag to indicate the polygon mode is enabled and force the drawing engine to draw strokes and disable fast drawing.
2018-08-24 17:05:01 +02:00
d162be6246 Multires: Fix wrong apply deform results when multires has sculpt already 2018-08-24 17:00:32 +02:00
0ba3a1a686 Sculpt: Optimize Mask Overlay drawing
* Remove support for diffuse color in the pbvh buffers.
* Upload raw data to GPU.
* Only draw nodes that have mask data when drawing the overlay.

This should fix T56466
2018-08-24 16:46:59 +02:00
Dalai Felinto
c899f21800 Multi-Objects: MESH_OT_select_axis
Now that this operator is working properly (in world space axis), it can
be ported for multi object support.

The issue of only running on redo is still present though, to be investigated
later.
2018-08-24 11:45:43 -03:00
Dalai Felinto
ce34f9348f MESH_OT_select_axis: Make it work with world axis, not local ones
Not, I tried using `dist_signed_squared_to_plane_v3` but profiling showed that
it is 50% slower than using regular `mul_v3_m4v3` for the verts.

I managed to get this number closer when manually inlining all the functions
called by `dist_signed_squared_to_plane_v3`. But still `mul_v3_m4v3` was better
and it makes the code simpler to understand.

Also I'm changing the default mode to positive, no idea why it was negative as
default in the first place.

Last but not least, the operator only works well on redo. This was a problem
before, not introduced by this patch.
2018-08-24 11:33:59 -03:00
Dalai Felinto
00ab0b0399 MESH_OT_select_axis: cleanup (use enum instead of hardcoded values) 2018-08-24 11:17:00 -03:00
edbe334ae9 GP: Add arrange strokes to edit specials menu 2018-08-24 15:47:25 +02:00
658a9c6cf5 Cycles: Cleanup, style
I wouldn't mind changing style to have space after keyword, but there was
no official code style change proposed.
2018-08-24 14:36:18 +02:00
e92e90c30e Cycles: Fix wrong looking voronoi of second 2nd closest
Was only happening for release builds made with GCC-8. Probably some
optimization strtegy was confused by uninitialized variable.
2018-08-24 12:29:13 +02:00
9b41ad288a Remove annotations lock to axis function
The lock to axis is only used by grease pencil object and can produce weird results in annotations.

This lock to axis function was kept by error when the annotation code was splitted from general grease pencil code.
2018-08-24 11:28:15 +02:00
c75e74b456 Depsgraph: Fix wrong detection of invisible objects
Was happenign for following cases:

- Deep hierarchy of non-restircted collections, which has grand-grand
  parent restricted.

- Collections which are constructed from invisible object.
2018-08-24 10:59:54 +02:00
6e3569d9f4 Depsgraph: Escape underscore in time stats chart 2018-08-24 10:59:54 +02:00
b8c9df6f21 Compositor: Added Weighted Standard Curve evaluation
Available in RGB Curve node in the compositor and as modifier in the
sequencer. I reshuffled the values of the enum. But a the first commit
is just 1 day old I think that the order is more important than the file
compatibility.
2018-08-24 10:04:33 +02:00
f029aefe3e Merge branch 'master' into blender2.8 2018-08-24 12:39:36 +10:00
9abc2dfa49 Fix T56491: Undo crash while preview jobs run
While the crash is in 2.8, it's possible undo operates on data
which isn't only owned by the current scene (any object for eg).

Thanks to @mont29 for suggesting the fix.
2018-08-24 12:38:11 +10:00
6a5bc88abf Merge branch 'master' into blender2.8 2018-08-24 12:17:33 +10:00
b2d32d7fa4 UI: always align item w/ label 2018-08-24 12:16:38 +10:00
7fa42b3e51 Fix T56511: UILayout.prop_search misaligned
Add padding when used with property decorations.
2018-08-24 12:11:24 +10:00
bae8ab3188 UI: remove hack to align search properties 2018-08-24 11:55:49 +10:00
5bd731b673 Merge branch 'master' into blender2.8 2018-08-24 11:54:12 +10:00
7ec1a56a41 RNA: avoid redundant property lookups in UI API 2018-08-24 11:44:28 +10:00
0cf12dfc14 Cleanup: indentation, style 2018-08-24 10:32:57 +10:00
1c63a3a100 UI: re-arrange some items in context menu
* Move Add to Quick Favorites before Assign Shortcut, as it is more often
that we add items to favorites, than changing shortcuts.

* Move Header menu last. In some cases the Online Manual for that item
would appear after the header menu.

* No icon for "Remove from Quick Favorites", matches Remove Shortcut
2018-08-24 01:38:08 +02:00
cf64a83edc UI: Fix area border thickness over top and bottom bar with glScissors 2018-08-23 23:02:45 +02:00
19fe267823 Hide Grease Pencil ornaments if overlay setting is disabled 2018-08-23 22:48:05 +02:00
bd7e14f48c Cleanup: remove unused code 2018-08-23 22:34:25 +02:00
34b3d6e2f8 UI: Optimize the area border drawing
It is was not really a bottleneck but it was triggering my OCD when 1/3rd
of the drawcalls in a normal scene were basically only caused by this.
2018-08-23 22:29:45 +02:00
fb7fc3be19 Wireframe: Add support for sculpt mode
Now wireframe does update in sculpt mode using the sculpt mesh VBOs.

The only thing that does not work is simplified wireframe (the wireframe
slider) when the mesh is shaded flat. In this case all edges are shown.
2018-08-23 22:29:45 +02:00
13ac92d057 Fix T55507: Crash due to GPencil brush icon management, when there is no active object. 2018-08-23 21:56:11 +02:00
4cde92303f Fix T56455: [2.8] Crash when projecting skinwrap curve/path.
Shrinkwrap is not only a Mesh modifier...
2018-08-23 21:49:14 +02:00
a6b65c75cd Fix T56360: metaball viewport checkbox crash.
Do same as for other geometry types to compute bbox, instead of blindly
returning NULL `ob->bb`...
2018-08-23 21:40:43 +02:00
8ec74106f8 Fix single column UI: grey out B-Bone properties when not a B-Bone.
There was a mistake when the UI was converted to the new layout style.
2018-08-23 22:37:30 +03:00
34ebf6f82c Workspaces: move delete to right click menu, instead of X on tab.
These are not intended to be closed as often as e.g. browser tabs, they are
intended to be more persistent and accidental closing should be avoided.
2018-08-23 20:02:08 +02:00
1de3ae7e42 UI: rename Grease Pencil panels in toolbar to Annotation.
To match the panels in the N key sidebar.
2018-08-23 19:05:42 +02:00
Dalai Felinto
7fa77cd31d Multi-Objects: MESH_OT_loop_select 2018-08-23 12:52:10 -03:00
William Reynish
4d28cfc707 UI: Subpanels to Cycles Samples for Branched Path Tracing 2018-08-23 17:29:05 +02:00
William Reynish
c11997ccfc UI: Physics panel minor adjustments
Flow panel had a wrong name when the checkmark was used in the header, fixed alignment in softbody panel & fixed wrong active state for Cloth Pin.
2018-08-23 17:21:55 +02:00
23c03bf0cc UI: Dark XYZ characters in the navigation gizmo
Much easier to read against the usually brighter axes colors.
2018-08-23 17:15:51 +02:00
f97d61c4bd Depsgraph: Bring back visibility checks based on collection restrict flags
The title says it all actually, the idea is to speedup the following case:

- Visible duplicator of a restricted collection (reported as T56512),

One of the questionable change is that none of the view layer bases is
ignored now. This ensures corresponding objects will have copy-on-write
component evaluated, making it possible to access those pointers. The
evaluation of those objects is skipped.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3641
2018-08-23 16:40:35 +02:00
a9ecfc9653 Fix T56347: Driven values not supported in node groups.
Need to rebuild dependency graph when we add or remove nodes from a tree...
2018-08-23 15:20:41 +02:00
Dalai Felinto
613523d5f5 Rename: *_batch_cache_dirty > *_batch_cache_dirty_tag 2018-08-23 10:20:16 -03:00
Dalai Felinto
25c918196c Fix T56500: Origin to geometry crashes on armature
Reviewers: sergey

https://developer.blender.org/D3639
2018-08-23 10:20:16 -03:00
William Reynish
2dafc39d56 Icons: new icons for sculpt border hide/mask 2018-08-23 23:06:24 +10:00
09895cae48 Merge branch 'master' into blender2.8 2018-08-23 14:56:42 +02:00
c5206e5d2f Fix T56506: Different behaviour of Bounds Clamp with positive and negative axis.
Small typo on minus sign position... ;)
2018-08-23 14:55:40 +02:00
f894db794f 3D Grid: Fix grid not showing in camera view 2018-08-23 13:56:39 +02:00
745123024d 3D Grid: Fix axes color blending 2018-08-23 13:56:39 +02:00
55f122264c 3D Grid: Fix grid passing through objects too much
For this we need to add a bias depending on the viewing angle.
But increasing the hardness of the test make float precision issues in
the mesh transformation more prominent (actual geometry is far below the
surface). So to solve this issue we use a more subdivided grid mesh
8x8 quads instead of 1 triangle.
2018-08-23 13:56:39 +02:00
0cbbcac23e Icons: clamp material color from 0..1
Warn about out of range colors too.
2018-08-23 21:40:30 +10:00
7f8014f918 Revert "Icons: avoid error with colors out of 0-255 range"
This reverts commit 6e7da7616b.
2018-08-23 21:36:51 +10:00
73f90b2505 Fix annotate tool in the 3D view
We can't share tools between space-types since they contain keymaps
that store the space type.
2018-08-23 20:25:25 +10:00
32f3ecf701 Cleanup: use staticmethod when class isn't used 2018-08-23 20:16:50 +10:00
48f7fe4829 UI: rename "Ruler" to "Measure" 2018-08-23 19:50:05 +10:00
a619ad3f30 Add Torus: default generate UV's to true 2018-08-23 19:50:05 +10:00
4de7c0c310 Compositor: Film-like curve
Film-like curves for the RGB Curve node (Compositor) and Curve Modifier
(Sequencer)

Film-like curves originated from Adobe.
"It’s an RGB curve where the tone curve is applied on the largest and smallest value, and then the middle value is adapted to keep a constant hue as defined by RGB-HSL/HSV. In terms of look and saturation increase it’s very similar to a pure RGB curve, more so than a HSL-L curve or HSV-V curve, but some color shift problems are avoided."

Other tools like Natron, Krita and RawTherapee have implemented this curve tone.

Reviewers: brecht, campbellbarton

Reviewed By: brecht

Tags: #compositing, #video_sequencer

Differential Revision: https://developer.blender.org/D3638
2018-08-23 11:39:11 +02:00
01973290a9 Fix T56498: Segment fault when change parameter of one operator after undo.
You cannot store ID (or any other data) pointers accross undo’s/redo’s, those
are reading .blend file and hence invalidating all pointers!

Not that happy with this fix, code is rather convoluted and not elegant
at all, but cannot think of a better solution, so will do for now.

Also found and fixed another 'str ghash used for int keys' case...
2018-08-23 08:46:07 +02:00
faafe6e6bc Add helper to BKE_library to generate unique string key for an ID.
Basically just concatenates ID's name (including its IDtype code) and
that library's name, if any. This must give unique string in a given
Main database, suitable for GHash keys e.g.
2018-08-23 08:46:07 +02:00
922ca68e17 Cleanup: trailing space 2018-08-23 16:22:32 +10:00
b35b10e1af Tool System: Popup toolbar keymap improvements
- Add support for key_modifiers, so grease pencil gets "D".

- Assign number keys for unmapped items

  This means all tools get keyboard access,
  use number/numpad to avoid confusion with other keymap items
  which directly activate the tool.
2018-08-23 16:18:09 +10:00
4e6a82d847 Cleanup: use static functions 2018-08-23 16:18:09 +10:00
36148f20ec Fix: Silence compiler warnings about size_t's in printf 2018-08-23 17:07:39 +12:00
0e09bfa059 Depsgraph: Added note that the filtering function should NOT be called on a filtered graph 2018-08-23 17:07:39 +12:00
3fa4e52657 Motion Path Calcs: Use filtered depsgraph by default
Use debug_value = -1 to disable the use of the filtered depsgraph.
It's still useful to have this for benchmarking + until we're
confident the filtering works safely.
2018-08-23 17:07:39 +12:00
4cbb75935b Code Cleanup 2018-08-23 17:07:38 +12:00
8ee06f50c0 Motion Path Calcs: Minor optimisation tweaks
* Don't print on every frame evaluated. This was only needed
  earlier to track the progress (and why things were taking so
  long - answer, it was the Scene COW issue). Saves 50-100 ms

* Remove the extra calculation of the scene after evaluating
  motion paths. This shouldn't be needed now with COW.
  Saves about 20-30 ms
2018-08-23 17:07:38 +12:00
dcefce5eae Fix memory leak - the temporary depsgraph instance was not getting freed after use 2018-08-23 17:07:38 +12:00
18c7dfa8dc Cleanup: Remove the conditional ID node removal stuff, copied from clear_id_nodes()
This was just randomly leaving all the Particle datablocks in the
filtered graph (and causing and extra/excess pass over the ID's
to get run). Unless we actually need those specially kept for
some reason later, it's better to leave those out for now.
2018-08-23 17:07:38 +12:00
bd801e7a68 Faster Motion Path calculations using Depsgraph Filtering
This commit makes the motion path calculations use the
new Depsgraph Filtering API to obtain a more streamlined
copy of the full scene dependency graph, allowing for
faster calculations (as less data needs to be evaluated
for each frame being baked).

For example, in 01_020_A.anim.blend from the Spring production
files, the time needed to calculate paths on several bones
on Autumn went from  39.84 seconds (!) down to 9.90 seconds!

Currently, this works by just replacing the depsgraph instance
passed to the motion path calculation function. This filtered
instance contains just the ID's needed to evaluate the graph
to evaluate a specified target (i.e. the Object owning the pose).

Notes:
* By default, the filtering is not performed unless debug mode 555
  is activated. Having a debug switch here allows comparing
  performance and disabling it should thing it start crashing.

* It is necessary to pass in the original Scene instance (not the
  COW one owned by the filtered depsgraph), otherwise changing the
  current frame had no effect, due to the COW flushing from original
  Scene to the new Scene overwriting the CFRA changes we make.

* The code here still needs cleaning up to debugging instrumentation, etc.
  and also to optimise further (e.g. caching the filtered depsgraph
  for faster updates when animating on existing paths, or fine-tuning
  the exact set of nodes needed).  I'm just committing this first,
  since this was the quickly hacked-together test code I've been using
  to check that this is all working.

* Further improvements could also be made to the time needed to
  build the full graph instance (about 3.3 sec), by allowing partial
  builds (e.g. by making a filtering proxy/wrapper around existing builders)
2018-08-23 17:07:38 +12:00
0e44cf5d78 Cleanup: Disable some of the extra debug prints that were slowing things down 2018-08-23 17:07:38 +12:00
e01a9c5eee Motion Path Calculations: Don't pass scene into motionpaths_calc_bake_targets()
It's not needed, and actually precludes us from considering parallel
evaluation in future.
2018-08-23 17:07:38 +12:00
2f2ab13b5f Depsgraph Filtering: Fix ID node filtering problems
* COW data hasn't been expanded yet when we try to filter the graph
  (you need to have tagged + evaluated it for this data to exist),
  so all the offending nodes would just get left in

* Added more debug prints to verify whether the id_nodes vector is
  getting cleared correctly
2018-08-23 17:07:38 +12:00
e5e42b7782 Depsgraph Filtering: WIP more debugging prints 2018-08-23 17:07:38 +12:00
6bbf6712bb Depsgraph Filtering: Remove opnodes from entry tags too 2018-08-23 17:07:38 +12:00
6ec933886c Depsgraph: Fix filtering-related crashes
* Simplified operation-relation deletion. Now we collect the relations
  to delete into a vector, then iterate through that, thus solving issues
  with iterator invalidation (+ aborts arising from that)

* DEG_foreach_ancestor_ID() was assuming that all dependencies were
  OperationDepsNodes, when in fact, some could be TimeSource nodes
2018-08-23 17:07:38 +12:00
9a0ef0933d Depsgraph: Print simple stats after filtering graph, to quickly verify if anything happened 2018-08-23 17:07:37 +12:00
be77eeae46 Depsgraph: First draft of graph filtering API implementation
When this works correctly, we should be able to feed in an existing
depsgraph instance, and get out a "filtered" copy of it that contains
only the subset of nodes needed to evaluate what we're interested in.

The current implementation only filters on ID blocks/nodes,
and starts by building a full new depsgraph instance first.
I'd originally intended to do it per operation instead, copying
over individual nodes as appropriate to have the smallest and least
memory intensive graph possible. However, I ended up running into
into problems with function binding + COW arguments, hence the
current slow solution.
2018-08-23 17:07:37 +12:00
9e47709089 Typo fixes 2018-08-23 17:07:37 +12:00
3fc755e938 Tool System: Sculpt border hide/mask tools 2018-08-23 12:56:02 +10:00
b3ac3d13a2 Cycles: Add option for building CUDA kernels sequentially
Building the CUDA kernels takes quite a bit of memory, and when building all of
them the combined usage can be too much on some systems (especially VMs).

Therefore, this patch adds an option to force the build system to build them
sequentially by making each build step depend on the previous kernel.

Reviewers: brecht, sergey

Differential Revision: https://developer.blender.org/D3623
2018-08-22 19:54:59 -07:00
99e6c41373 Tool System: support non paint tools in paint mode
This is needed so non-paint-brush tools can be used in paint modes.
2018-08-23 12:47:32 +10:00
5203ebbaad Tool System: remove cursor tool from paint modes 2018-08-23 12:12:11 +10:00
890623f886 Object Mode: Add back spot cone display 2018-08-22 19:49:32 +02:00
477b4559ec Paint Overlay: Fix blending of the brush overlay 2018-08-22 19:49:32 +02:00
07d0f2eb01 UI: Minor label tweaks to operators context menu
* Add Shortcut -> Assign Shortcut

* Add to Favorites Menu -> Add to Quick Favorites
To match the menu name and be more general for when the Quick Favorites
are accessible in places other than just menus (like panels).

Add blank icon to Remove Shortcut so it aligns with Change Shortcut
which is usually the item on top of it in the menu.
2018-08-22 18:54:13 +02:00
e17164aca3 Cleanup, unused variable 2018-08-22 17:45:56 +02:00
686480269b MSVS 2017 Bug - Subdiv Mesh
Apparently, struct initialization can not be empty,

Reviewers: sergey

Reviewed By: sergey

Tags: #bf_blender_2.8

Differential Revision: https://developer.blender.org/D3636
2018-08-22 17:02:41 +02:00
cdaf5a1083 Multires: Bring back operator to reshape from object
Limited to mesh type of source, not sure it ever worked for non-meshes.
While it's possible to support reshape from any object, the actual brain
of operation would need to be recoded to go away from requirement of
vertex indices matching in source and destination.
2018-08-22 16:59:00 +02:00
564a378bd1 Multires: Remove another unused argument from reshape function 2018-08-22 16:59:00 +02:00
b28a74746b UI: Show development entries in context menu when Dev. Extras is enabled 2018-08-22 16:29:49 +02:00
6a681981e4 Multires: Fix reshape when active level is lower than the total one 2018-08-22 16:07:57 +02:00
9dd279cbdf Multires: Remove unused function argument 2018-08-22 16:07:57 +02:00
dade2b7548 Python: Cleanup Noise Module
Implements the changes detailed in T56281

Reviewers: campbellbarton

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D3590
2018-08-22 15:34:10 +02:00
644fe7c90c DRW: Fix wrong framebuffer bound after background pass 2018-08-22 15:23:03 +02:00
f4f97d1c7f Overlay: Fix wrong framebuffer bound. 2018-08-22 15:23:03 +02:00
fae127cd26 Multires: Fix reshape of corner vertices
Was only reshaping corner vertex of a single ptex face.
2018-08-22 15:21:19 +02:00
Dalai Felinto
dc00c330c5 Improvement to MESH_OT_shortest_path_pick behaviour
Select a vertex/edge/face if there was nothing previously selected
(if the click hit something, of course).
2018-08-22 09:59:56 -03:00
Dalai Felinto
c32cc3e43e Multi-Objects: MESH_OT_shortest_path_pick
This fully works as "expected", however it seems strange when
there is no selected vertex in the non-active object.

In 2.7x if you join two monkeys, select a vertex in one of them and
try to use this operator in the other it will select the lonely newly
selected vertex.

If you split both monkeys and do this in 2.8 while multi-editing them
you won't get nothing when trying to ctrl+RMB any vertex in the monkey
object that has nothing selected yet.

I propose to have this addressed in an upcoming patch where we always
select a vertex if no vertex was previously selected.
2018-08-22 09:59:56 -03:00
4abb060edf Icons: missing from last commit 2018-08-22 22:30:31 +10:00
Dalai Felinto
491e1ad225 Fix building without OPENSUBDIV
Although we have a stub system there, we were not linking the library.
2018-08-22 09:10:32 -03:00
William Reynish
8e15eaa699 Icons: updated icons
Use simplified design.
2018-08-22 22:10:31 +10:00
ddc09790d8 DRW: Fix T56418 and T56474 in a more robust way 2018-08-22 13:51:03 +02:00
d67c86d42a Revert "Fix T56418: Changing to Solid View crashes Blender"
This reverts commit 1e26345a89.
2018-08-22 13:51:03 +02:00
fdce78c936 Armature: Fix outline jitter in orthographic mode 2018-08-22 13:51:03 +02:00
9d65be6b42 GPU: Fix issue with multiple Geometry node. 2018-08-22 13:51:02 +02:00
4d09129ffb Fix T56470: unfreed shader in edit mode 2018-08-22 13:51:02 +02:00
6489243332 DRW: Fix background image display
This make the workbench draw everything in the background routine just like
eevee. This is because the workbench uses floating point buffers too and
rendering background to this buffer makes it incorrect without proper
color management.

This could be improved because in xray the background is not blended but
dithered as it's drawn after the main pass.
2018-08-22 13:51:02 +02:00
bb639ccc47 GPUMaterial: Geometry Node: Add support for parametric output
This supports meshes and hairs too. Matches cycles output.

This adds barycentric coords to the GPUBuiltin enum which will also be used
for the wireframe node.
2018-08-22 13:51:02 +02:00
118251a2a8 GP: Add OPTYPE_USE_EVAL_DATA flag in paste to avoid undo crash 2018-08-22 13:44:17 +02:00
f64ec4ac84 UI: Move UV menu to the header.
UV Unwrapping is too important to keep it under a sub-menu.
2018-08-22 13:32:22 +02:00
9f6cde53cf Fix bevel crash T56287, when face strength goes to 1. 2018-08-22 07:08:42 -04:00
9e11b8e249 Multires: implement reshape operation
The one which is used by applying deformation modifiers on the multires.
2018-08-22 10:21:45 +02:00
6b6c27694e Subsurf: Implement foreach traversal for subdivsion topology
This makes it more generic process to perform actions which
depend on ptex face + (u, v) and on subdivided vertex index.

Currently it is still just a subdivision calculation process,
but same foreach callbacks can easily be used to propagate
displacement from known vertex locations back to displacement
grids.
2018-08-22 10:21:45 +02:00
7f9381d99d Tool System: expose correct UV for vert/edge slide 2018-08-22 17:53:03 +10:00
17eade61ef Tool System: bevel now confirms on release 2018-08-22 17:43:49 +10:00
d31932b6d7 Tool System: options for bevel tool 2018-08-22 17:38:45 +10:00
9f72a450a2 Cleanup: free keymap status when not used 2018-08-22 17:09:41 +10:00
Dalai Felinto
f9eb2f29fe Multi-Object-Editing: bisect support 2018-08-22 16:35:00 +10:00
583fb8c140 Cleanup: RNA naming 2018-08-22 15:43:28 +10:00
cb410429cc Merge branch 'master' into blender2.8 2018-08-22 15:27:03 +10:00
53527ac10f Cleanup: use EDBM prefix 2018-08-22 15:23:28 +10:00
d9de8c469b BMesh: loop-cut, display deformed coordinates
Previously this used derived mesh, now use evaluated data.
2018-08-22 15:15:21 +10:00
f047224458 UI: move brush appearance inside overlay panel 2018-08-22 14:37:05 +10:00
cf038bcb15 Tool System: loop cut, confirm on release
When accessed as a tool it felt awkward to click twice to execute.
2018-08-22 14:22:57 +10:00
f6778ea63a Tool System: add cuts & correct UV's options 2018-08-22 14:04:37 +10:00
7eaf00bfb0 Cleanup: style 2018-08-22 10:10:12 +10:00
e8e89c135f Transform: factor out matrix multiply w/ snapping 2018-08-22 09:45:11 +10:00
a63e5d2058 UI: use display popover for image space
Also menu corrections and move scopes to sidebar.

D3625 by @lijenstina w/ minor edits
2018-08-22 09:21:33 +10:00
95aa672e2f GP: Reduce list of modifiers affected by recalc 2018-08-21 22:05:54 +02:00
7fda7fb750 GP: Force Fill triangulation data recalc
Add a general parameter to force the recalc of the triangulation data because some modifiers could change the geometry and the filling triangles would not be right.

Now, the parameter is visible in UI panel because this option reduces FPS, but maybe in the future we can keep always ON and remove the parameter.
2018-08-21 19:46:29 +02:00
596c3368f4 Merge branch 'master' into blender2.8 2018-08-21 19:08:23 +02:00
34029fc71a UI: disable new text hinting from D3201 by default for now.
This changes the text hinting setting to be an enum with options
Auto / None / Slight / Full. The default is Auto which currently disables
hinting.

The hinting was tested with a new FreeType version, but this is not what
is used on the buildbots an official release environment, and the fonts
look quite bad because of that. Once FreeType has been upgraded we can
change the default.

Even then the results are not ideal, perhaps due to missing subpixel
positioning and linear color blending support in BLF.
2018-08-21 19:07:04 +02:00
794836c8f1 GP: Recalc fill triangulation in sculpt mode
In some extreme modifications the fill triangulation cannot be right, so need a refresh.

This is done only for sculpt brushes that can change the geometry.
2018-08-21 18:50:03 +02:00
abc4beb245 build_environment: cleanup for osl harvesting on windows. 2018-08-21 10:49:41 -06:00
df6cd591f8 Fix a few unintended changes with new default startup.blend. 2018-08-21 18:39:44 +02:00
f1f3360696 Fix T56472: maximizing editors does not preserve top/status bar hiding. 2018-08-21 17:53:47 +02:00
Dalai Felinto
5200f6a2d7 Fix crash in edbm_shortest_path_pick_ex 2018-08-21 12:13:53 -03:00
Dalai Felinto
e9182a0f5d Fixup for Setup Tracking Scene
Issues introduced on: 17c245e294
(own error for the records).
2018-08-21 11:54:54 -03:00
Dalai Felinto
17c245e294 Fix T56413: Setup Tracking Scene not working in 2.8
Patch by Sebastian Koenig and me, with review and suggestions by Sergey Sharybin.

https://developer.blender.org/D3626
2018-08-21 11:31:59 -03:00
Dalai Felinto
91ff41bbda Motion Tracking: Script cleanup 2018-08-21 11:31:59 -03:00
da30b2d9f0 GP: Set default active layer when create stroke object 2018-08-21 15:57:17 +02:00
Dalai Felinto
68a719f1ea Multi-Objects: MESH_OT_dupli_extrude_cursor
Supporting the ctrl+click operator for multiple objects.
When no vertex is selected we only add a new vertex for the active object.

I'm using all the selected vertices to calculate the center of transformation
regardless of the object they come from. This way we have the same effect if the
meshes are joined together or kept as individual objects.

Thanks Campbell Barton for reviewing the patch.
2018-08-21 10:21:32 -03:00
6e7da7616b Icons: avoid error with colors out of 0-255 range 2018-08-21 22:44:58 +10:00
dbcc96334a Fix wrong default properties editor tabs in default workspaces.
Remove most of the defaults versioning code now that there is a
startup.blend with those changes included.
2018-08-21 14:00:33 +02:00
Kenneth Perry
5dd64b3c88 Python API: expose missing LAYER_MEMBER property type registration.
Differential Revision: https://developer.blender.org/D3628
2018-08-21 13:03:25 +02:00
21f09060f8 Cleanup: comment naming which will be changed 2018-08-21 20:52:41 +10:00
8926aa6f67 Merge branch 'master' into blender2.8 2018-08-21 20:28:28 +10:00
45721499b3 Correct recent makefile OSX check 2018-08-21 20:27:36 +10:00
15acbbdc1e Merge branch 'master' into blender2.8 2018-08-21 19:25:49 +10:00
122ef17ab2 GNUmakefile: correct blender binary for macOS 2018-08-21 19:20:01 +10:00
acc4507f1b Workbench: Support XRay rendering in OpenGL
OpenGL rendering only implemented the deferred renderer. This commit
will add the forward renderer. The forward renderer is used when XRay
mode is enabled
2018-08-21 11:00:46 +02:00
79ecfc99fd Tool System: loopcut preview & activate on click
The loop cut tool now works as expected for the tool-system,
where hovering previews the loop and clicking activates.

This uses a new gizmo type to pre-select the edge.
2018-08-21 19:05:07 +10:00
f7162d214e BMesh: split out edgering preview into own API
Needed for alternate tool system access.
2018-08-21 18:59:29 +10:00
7170ff429f Cleanup: trailing space 2018-08-21 17:18:42 +10:00
797274d256 Merge branch 'master' into blender2.8 2018-08-21 17:05:40 +10:00
0734541bc4 Cleanup: trailing space 2018-08-21 17:01:56 +10:00
f189ad1f4b Cleanup: rename gizmo access functions
Add float in API names since we may want access to other types.
2018-08-21 17:01:14 +10:00
4f06c7c838 Fix T56457: Crash when selecting Grease Pencil objects
Thanks to Charlie Jolly (@charlie) for the backtrace
2018-08-21 17:05:27 +12:00
2a5f319465 Depsgraph: Add query methods to identify all the ID's that a given datablock depends on
This commit adds a new method, DEG_foreach_ancestor_ID()
to accompany the existing DEG_foreach_descendent_ID().

It can be used to help print/collect all the ID's that
a given ID block depends on (i.e. all the datablocks that
need to be evaluated before the datablock of interest can
be evaluated)
2018-08-21 16:52:10 +12:00
351d13194d Cleanup: Fix variable shadowing 2018-08-21 16:52:10 +12:00
a7dcad2f8f Cleanup: Fix typos 2018-08-21 16:52:10 +12:00
Dalai Felinto
b4d23818c8 Remove MESH_OT_drop_named_image
This was never ported to work with Cycles, so it is basically useless in 2.8.
It can always be brought back in the future.
2018-08-20 20:58:20 -03:00
Dalai Felinto
753be0a2a5 Multi-Objects: MESH_OT_colors_reverse 2018-08-20 20:58:20 -03:00
3c5365556a Fix missing color management in Cycles viewport on macOS.
The half float extension is not supported on macOS, rather it's simply
part of OpenGL core so we don't need to check.
2018-08-21 00:38:54 +02:00
Dalai Felinto
53dfb4895c Fix relationship lines selectable 2018-08-20 14:20:25 -03:00
Dalai Felinto
bfdaa9a979 Object constraint lines viewport drawing
The core logic of this implementation comes from the drawobject.c from 2.7x.
I'm using `ts.colorGridAxisZ` for its color because of the legacy code:

```
UI_GetThemeColor3ubv(TH_GRID, col1);
UI_make_axis_color(col1, col2, 'Z');
glColor3ubv(col2);
```

There is nothing stopping us from adding this to the theme though, as it should
have been the case to start with.
2018-08-20 14:07:40 -03:00
6cd3a67e36 Workspaces: remove separate workspaces.blend config file.
This is quite confusing in the current UI, with both startup.blend and
workspaces.blend containing a list of workspaces. In practice you'd usually
want to save workspaces to both files.

The downside of having a single file may be that you then can't disable
certain workspaces by default, but we could add a setting for that.
2018-08-20 16:23:22 +02:00
444934632a Workspaces: add new default workspaces in startup.blend. 2018-08-20 16:23:22 +02:00
c9abb0fe26 Workspaces: replace bundled workspace.blend with embedded startup.blend.
We want these to have the same workspaces in both, so there is no reason
to have two files that are identical.
2018-08-20 16:23:22 +02:00
f1ab36d154 Fix outliner crash loading some .blend files without treestore. 2018-08-20 16:23:22 +02:00
e243f366c6 Fix system workspaces.blend not being found on some systems. 2018-08-20 16:23:22 +02:00
9600b23eaa Viewport: add default set of HDRI images.
These are taken from HDRI Haven (https://hdrihaven.com). Many thanks to
Greg Zaal for creating and releasing them under a CC0 license!

The HDRIs are intended to be used in the Lookdev display mode. With
1K resolution and compression they are not intended for final renders,
but it keeps the file size small and the difference is not noticeable
for lighting.

Command used for compression:
oiiotool %s --ch R,G,B -d float --compression dwab:300 -o output/%s
2018-08-20 16:23:22 +02:00
1c7119a336 Wrokbench: Add support for maximum drawtype OB_TEXTURE 2018-08-20 16:21:44 +02:00
7ffcce8607 Fix Cycles AO pass not working for shadow catcher objects. 2018-08-20 16:09:17 +02:00
47d43c5a00 Bone Display: fix flickering issue with BBones in ortho view 2018-08-20 15:47:22 +02:00
939a5cb6ee Image Editor: Add active tool button for Annotations (WIP - Event handling not working)
This reuses the tool defines for the 3D view. However, for some reason,
the events don't seem to be getting fired off here, like the tool system
is getting ignored here completely.

FIXME: Resolve the event handling issues
2018-08-21 01:22:02 +12:00
31a1c2b7d2 Object Mode: Add back support for the object "Maximum draw type" option 2018-08-20 13:19:17 +02:00
William Reynish
70e10d6207 UI: Small adjustments to Smoke properties layout 2018-08-20 11:16:48 +02:00
52d75d5127 Overlay: Add support for per object wirefram options
This patch has a known bug on AMD + mesa because of the drivers. I will
send a bug report to mesa.
2018-08-20 10:46:11 +02:00
d2e70455cf Merge branch 'master' into blender2.8 2018-08-20 17:53:53 +10:00
3ef1aeb15e Fix: Theme colors for datablock channels were missing for the NLA in the new default theme 2018-08-20 18:26:46 +12:00
6f2735b2bf Motion Paths UI: "Update from Scene Range" operator
Make it easier to update the frame range for motion paths from
the Scene's current frame range (render or preview range)
2018-08-20 16:12:37 +12:00
f52e31a46d Fix BMesh edge_bisect, edge_percent being ignored
Also fix float/int/bool access methods
2018-08-20 13:38:10 +10:00
76ea32d192 Cleanup: unused warning 2018-08-20 11:29:23 +10:00
143511b961 Merge branch 'master' into blender2.8 2018-08-20 11:27:49 +10:00
98efcdb1a0 Cleanup: trailing space 2018-08-20 11:24:14 +10:00
537bf6af0c RNA: Spline.calc_length() utility function
D1810 by @Matpi w/ edits
2018-08-20 11:23:40 +10:00
2349273ade build_environment: fix build issues with alembic
-read all headers from openexr not ilmbase
-add missing iexmath lib
-turn binaries back on, the blender unit tests require them.
2018-08-19 17:47:16 -06:00
b831accc01 Workbench: hide background option for OpenGL render
When OpenGL renderer is selected the option for background colors are
displayed, but ignored. For now we hide this option as it makes no sense
to have a viewport color option without viewport or render a 'final'
with a theme color.
2018-08-19 20:25:36 +02:00
b6b6eab6ae build_environment: windows harvest cleanup.
remove the commands that have already moved to the individual cmake files.
2018-08-19 11:44:46 -06:00
31b1d2ce73 build_environment: opencolorio buildfixes for windows.
copy the debug libs to the right place.
2018-08-19 11:44:46 -06:00
66dd954cab build_environment: openexr windows buildfix.
with the namespaces disabled the postfix also changed.
2018-08-19 11:44:46 -06:00
ae84db1d5d build_environment: buildfixes for boost
Disable hardcoded 64 bit build.
2018-08-19 11:44:46 -06:00
3c3e6d756c build_environment: build fixes for openimageio.
disable testtex due to parameter alignment issues
2018-08-19 11:44:46 -06:00
78f526087b build_environment: windows environment
get 32 bit and 64 bit compilers on the same gcc version.
2018-08-19 11:44:46 -06:00
897351fa52 build_environment: python windows build fixes
fix hardcoded ssl dll names.
2018-08-19 11:44:46 -06:00
0a08ad8636 build_environment: opensubdiv windows build fixes.
only build cuda on 64 bit, since 32 bit is no longer supported by nvcc
2018-08-19 11:44:46 -06:00
f4c9bdb022 build_environment: opennvdb windows build fixes.
disable openexr namespaces on windows due to linker errors with it.
link pthreads due to dependency though blosc
2018-08-19 11:44:46 -06:00
8309f8ee34 build_environment: openexr disable namespaces on windows.
Things do not end up in the right namespaces quite yet, and cause linker errors with other projects using the library.
2018-08-19 11:44:46 -06:00
8f4d772bf9 build_environment: blosc build fixes.
blosc embedded a copy of zlib/pthreads causing duplicate symbol linker errors. pthreads was windows specific, but zlib may apply to other platforms as well.
2018-08-19 11:44:46 -06:00
c2c4420f89 Fix T56450: Crash with bevel modifier.
POinters shall always be explicitely handled in modifier copying code,
as well as reading code! Runtime ones shall just be NULL-ed.
2018-08-19 16:57:53 +02:00
b1cb79d312 UI: rename 'Apron' to 'Click Anywhere' 2018-08-19 15:20:21 +10:00
20b30b6bee GP: Reduce updates of material previews
If there is a update in progress, don't update again.
2018-08-18 16:24:18 +02:00
353e691ff9 DRW: Fix crash in defered compilation 2018-08-18 12:58:15 +02:00
9f25b2f278 Merge branch 'master' into blender2.8 2018-08-18 19:18:55 +10:00
4d71579d3b Arrrg, fix for previous commit :/ 2018-08-18 10:25:00 +02:00
27ccba0270 Fix T56439: Crash removing Rigid Body World.
Need to rebuild the graph when we add or remove rigidbody world!
2018-08-18 10:21:33 +02:00
f86a60bc62 Static Override: make hidden & co flags of object overridable. 2018-08-18 10:21:33 +02:00
37acf4722d Static Override: link newly overridden collection to scene.
This avoids getting all overridden objects from said collection
instantiated in master collection, totally untidy!

Note that there is still an issue when 'active' object (i.e. the
armature usually) is in hidden sub-collection, since you have to make
that whole hidden collection visible again to see it.

We'll need to support moving objects into overridden collections am
afraid, arg. :(
2018-08-18 10:21:33 +02:00
4c22343271 Warn when app-template isn't found 2018-08-18 14:10:07 +10:00
506d8448cc WM: app-template command line override
Without this, there was no simple way to have
launchers for different app-templates.

Also allows force-disabling the app-template stored in the preferences.
2018-08-18 14:10:07 +10:00
db8ca0f17a cmake: fix typo in else() 2018-08-17 14:14:26 -06:00
a069d3dc8c UI: save statusbar/topbar collapsed state per screen.
This can now also be set from the Window menu in addition to dragging.
2018-08-17 20:16:19 +02:00
7f9a1d2f3b Fix GPU_viewport size asserts in some cases.
Now always tag for redraw when region size is changed instead of relying on
a redraw tag having been done elsewhere.
2018-08-17 20:16:07 +02:00
0a5f706136 cmake/ctest: output test binaries to debug/release folders on windows.
debug/release builds were writing the binaries to the same folder
2018-08-17 10:04:55 -06:00
2a00bea7b4 build_environment: Various tweaks needed for windows debug libs. 2018-08-17 09:20:40 -06:00
6cad7984c6 Fix missing shader compilation progress bar. 2018-08-17 15:55:21 +02:00
aff7609aa5 build_environment: fix mistaken commit in openexr. 2018-08-17 06:30:27 -06:00
fa70826167 Fix more image editor Python errors after switching workspaces. 2018-08-17 14:17:06 +02:00
ba60e5d41b GP: Increase stats file size
For big files, the size of the field for number of points  was not enough
2018-08-17 13:49:59 +02:00
8b79a150f8 Workbench: Fix buggy shadow
Was caused by shadow bbox not being updated.
2018-08-17 13:04:26 +02:00
f031e8d3ac Object Mode: Add back the extra object axes drawing option 2018-08-17 13:04:26 +02:00
435f308eed Object Mode: Use same empty (arrow) drawing as the bone axes display 2018-08-17 13:04:26 +02:00
7d720cc655 Merge branch 'master' into blender2.8 2018-08-17 13:00:52 +02:00
9f0f8aabe2 Fix error with image editor toolsystem when switching to some workspaces. 2018-08-17 13:00:31 +02:00
c9d5d311ec Cleanup: fix harmless compiler warnings. 2018-08-17 13:00:31 +02:00
d33456e5ec Build Environment: fixes for Linux after recent updates. 2018-08-17 12:42:13 +02:00
894a216252 Fix engine.camera_model_matrix() not working in the Python API. 2018-08-17 12:28:27 +02:00
Vuk Gardašević
502aabb9d0 Physics Rigid Body: Use Single Column and Grid Flow layout
(and Rigid Body Constraint)

See D3613
2018-08-17 12:05:35 +02:00
Vuk Gardašević
b19b708728 Physics Soft Body: Use Single Column and Grid Flow layout
See D3612
2018-08-17 12:04:35 +02:00
Vuk Gardašević
2a3758f305 Physics Dynamic Paint: Use Grid Flow, sub-panels layout
See D3611
2018-08-17 12:03:54 +02:00
Vuk Gardašević
eccc047f70 Physics Force Field and Collision: Use Single Column and Grid Flow layout
See D3609
2018-08-17 12:02:52 +02:00
Vuk Gardašević
3b4d520cd7 Physics Common: Use Single Column and Grid Flow layout
See D3605
2018-08-17 12:01:26 +02:00
Vuk Gardašević
62b2675147 Physics Smoke: Use Single Column and Grid Flow layout
See D3567
2018-08-17 11:59:33 +02:00
Vuk Gardašević
00bb15512f Physics Fluid: Use Single Column and Grid Flow layout 2018-08-17 11:57:24 +02:00
a452e5e5e3 GP: Fix fast drawing error
During the modifications of the drawing engine, this was changed by error.
2018-08-17 11:09:08 +02:00
a9b82d5d79 Multires: Fix wrong creation of multires mesh
Should use evaluated object to query deformed mesh from.
2018-08-17 10:55:51 +02:00
4b0b91aee0 build_environment: small fix for building ocio on windows. 2018-08-16 17:42:37 -06:00
1aed77caca build_environment: osl 1.9.9
does no longer seem to bundle pugixml, so that's a new dependency.
2018-08-16 17:42:37 -06:00
7fed3f1b19 build environment: fix opencollada build on macOS 2018-08-17 01:24:05 +03:00
77e1942e0e Armature: Add ghosting support (old x-ray) 2018-08-16 23:58:29 +02:00
4711e0ee26 Non-Meshes: Add ghosting support (old x-ray) 2018-08-16 23:58:29 +02:00
1e26345a89 Fix T56418: Changing to Solid View crashes Blender
Everything seems to behave like it should when drawdata is alloced
on instances.
2018-08-16 23:58:29 +02:00
7d29c9a16b Overlay: Fix crash when ghosting is enabled without wireframe 2018-08-16 23:58:29 +02:00
a01dec2d9c Cleanup: Remove unused uniform and UBO. 2018-08-16 23:58:24 +02:00
d96715fe5c Fix T55722 : Blender 2.8 crashes on startup on old Nvidia cards 2018-08-16 23:57:59 +02:00
c761153f64 Overlays: Support for wireframes and edit mode overlay on xray objects 2018-08-16 23:57:59 +02:00
32e57fe4e7 GPUFramebuffer: Fix wrong stencil clearing 2018-08-16 23:57:59 +02:00
11c845e334 build_environment: openimageio 1.8.13 2018-08-16 13:43:46 -06:00
7772ba766d build_environment_windows: fix missing x64 ssl libs and debug build. 2018-08-16 09:07:32 -06:00
88011ddba9 build_environment: python packages update.
idna 2.7
chardet 3.0.4
urllib3 1.23
certifi 2018.8.13
requests 2.19.1
2018-08-16 09:07:32 -06:00
42b7fb0fd3 Build Environment: fix OpenVDB 5.1 build on Linux. 2018-08-16 16:21:26 +02:00
231d54e79b Build Environment: fix for IlmBase lib names without version on Linux. 2018-08-16 16:21:26 +02:00
d63c181887 Correct error in docstring 2018-08-17 00:07:00 +10:00
f689c821f0 Documentation: fixes for building w/ 2.8
Note, bpy.app.icons needs to be supported eventually.
2018-08-17 00:02:36 +10:00
5236793d35 Build Environment: cleanup OpenColorIO duplicated and unused flags. 2018-08-16 15:51:08 +02:00
d1be651c9e Merge branch 'master' into blender2.8 2018-08-16 15:49:33 +02:00
7a7c579dd9 Fix T56404: Shape keys of the curves with multiple splines go haywire in edit mode.
Very dummy mistake (someone forgot to increment one of the variables in
one of the loops in that spaghetti nightmare that is nurbs shapekey
code), took half an age to spot it... :/
2018-08-16 15:49:00 +02:00
da25dfa870 Merge branch 'master' into blender2.8 2018-08-16 15:22:34 +02:00
1e70655169 build_environment: Fix compilation of FFmpeg and OpenColorIO on Linux 2018-08-16 15:18:02 +02:00
e19439a169 Cleanup: Use dedicated function to copy mesh during evaluation process
It is rather fully annoying to have same sets of obscure flags all over.
2018-08-16 14:42:06 +02:00
50cb9b52bb Multires: Implement function to get mesh at multires position of stack 2018-08-16 14:42:06 +02:00
642c6d2fc9 Multires: Cleanup, naming and bool type 2018-08-16 14:42:06 +02:00
c58de2f632 UI: add redo panel to clip editor 2018-08-16 20:23:32 +10:00
59670e999a GP: Add new presets for materials
This allow create prests without import materials and include a requested predefined settings for Stroke only, Fill only and Stroke and Fill.
2018-08-16 11:24:45 +02:00
02e9dba07b Static Override: fix part of the issues with new Collections.
Still a lot to work here, those are much more complicated to handle than
old Groups. :(
2018-08-16 11:06:21 +02:00
3c8e4e4180 Cursor Tool: add transform orientation type
Support using the current transform orientation when placing the cursor.

See: T55036
2018-08-16 16:15:16 +10:00
8d1a7f3773 build_environment: openvdb 5.1.0 2018-08-15 20:48:19 -06:00
70bcb0c01c 3D View: tweaks to navigation gizmo
- Only show axis backdrop when hovering.
- Move closer to the screen corner.
2018-08-16 12:47:24 +10:00
9a72342c6e UI: move region toggle closer to the screen edge
Reduces 3d view navigation widget overlap.
2018-08-16 12:43:30 +10:00
4e41a44400 UI: show +/- icons for fill/deep 2018-08-16 12:15:04 +10:00
8efd7be41c UI: hide redo panel for move up/down operators 2018-08-16 08:42:36 +10:00
Dalai Felinto
a495df6b3b Camera Background: don't show "Not Set" when using Camera Clip 2018-08-15 19:26:05 -03:00
Dalai Felinto
d3160f350d Camera Reconstruction: Fix sorted scripts
* 3D Markers to Mesh
* Link Empty to Track
* Set as Background

Note, the "Setup Tracking Scene" was not addressed. Pending for this script is:
* Update world for EEVEE settings
* Adjust the layer code to use collections
* Remove broken world API
2018-08-15 19:26:05 -03:00
Dalai Felinto
461b3c817e Camera Reconstruction: Camera Path
The only difference from 2.7x is that we were using glLineWidth(2.0) before,
which is not supported reliably in the latest OpenGL.

Big thanks to Clément Foucault for helping with this, on the design as well as
debugging the implementation.

For the records, I'm creating and destroying batches for the path geometry at
every draw. The pipeline is as follows:

 1. Create GPUBatch with all the points
 2. Create new shgroup with simple shader
 3. Add call with the gpubatch
 4. Save it in a linked list in stl->g_data
 5. Free it after all drawing is done
2018-08-15 19:26:05 -03:00
Dalai Felinto
248c049b70 Camera Reconstruction: Draw solid spheres
If in SOLID "mode", and x-ray, draw the empty spheres still.
2018-08-15 19:25:53 -03:00
c4022da617 Merge branch 'master' into blender2.8 2018-08-16 08:18:52 +10:00
8e927ee938 Cleanup: unused arg 2018-08-16 08:18:25 +10:00
d5c5a1518d Correct flag use in recent object select change
Confusingly it worked, but was wrong.
2018-08-16 08:17:26 +10:00
eebc292b42 Cleanup: rename transform UI values
See: T54858
2018-08-16 08:02:36 +10:00
8661563156 Cleanup: Silent compiler warnings 2018-08-15 22:53:57 +02:00
08f5986d21 GP: Revert previous commit for fixing compiler error
The function must be static. The error was the definition in header file must be removed. This error was not detected by Microsoft compiler but Linux compiler fails.
2018-08-15 22:11:44 +02:00
Dalai Felinto
ea43e4a060 Fix build after GreasePencil commit 2018-08-15 16:11:18 -03:00
f634d4a8a6 build_environment: opencolorio 1.1.0
-Moved from dynamic link to static on windows
-gained lcms/tinyxml/yamlcpp deps, since we need a little more control over the build flags than the build-in options will provide.
2018-08-15 12:32:34 -06:00
814df6e4d3 GP: Add multiframe support to clean loose operator 2018-08-15 20:27:59 +02:00
d7fcb68d11 GP: New clean loose points operator
This operator clean any stroke below a defined number of points. This is used because sometimes when use eraser some points keep missing.

Also some changes in the UI menu.
2018-08-15 20:27:59 +02:00
8e8d93eb86 GP: Redesign logic of drawing engine for object instance support
The initial design assumed that there was only one object for each unique name, but that was not the case when instances were created.

Now, instances are supported and speed has been greatly improved when repetitions are used.

As a result of this change, the option to create objects has been removed in the Instances modifier. This option was strange and was also against Blender's design rules, since a modifier should never create objects. The old functionality of the modifier can be achieved with instances.

Also, several memory leakage problems that were not previously detected have been eliminated, and especially in the grid and in the drawing process

Onion Skin is not supported in multi-user datablocks.  Support this, makes incompatible with instances. We need find a solution in the long term, but now it's better keep disabled and make instances work. Anyway, the new instances makes unnecessary to use muli-user datablocks.
2018-08-15 20:27:59 +02:00
bb84f7ff5f Fix image editor not vertically centering images with region overlap. 2018-08-15 19:24:00 +02:00
82e59d4c18 Cleanup: remove unused R_ORTHO / R_PANORAMA flags. 2018-08-15 18:40:56 +02:00
0b5b543b7c Fix pose mode border deselect not working after recent changes. 2018-08-15 17:44:50 +02:00
38e08ec66b Fix T56012: brush stencil overlay draws in the wrong location. 2018-08-15 17:16:21 +02:00
9bac3ffd3f Cleanup: stop using DerivedMesh in mesh cache modifier. 2018-08-15 16:21:43 +02:00
b262fba5e3 Fix T55587: bugs with popovers in collapsed menus, like the timeline header. 2018-08-15 16:00:40 +02:00
1d067868c0 UI: tweak drawing of header status text for transparent headers. 2018-08-15 16:00:40 +02:00
913b8396d9 Multires: Initial groundwork to hook up displacement to new Subdiv object
Adds a displacement support for OpenSubdiov based subsurf object implemented
as a callback which gives vector displacement in object space. Currently is
implemented to calculate displacement based on myltires displacement grids,
but we can support things in the future if needed.

Submitting to review to see if there is something obviously wrong in the
direction (old multires code was sharing same displacement code to both
calculate final displaced mesh and reshape an existing one, which is rather
confusing and probably can be done more cleanly?).

Reviewers: brecht

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D3604
2018-08-15 15:40:08 +02:00
Dalai Felinto
5a89dfe06b Clip Reconstruction: Cleanup - use const for selection synchronize
In order to avoid the discard qualifier warning I had to change a few extra
things.
2018-08-15 10:06:11 -03:00
Dalai Felinto
ad7cb02404 Skip bundle names when drawing selection pass 2018-08-15 10:06:11 -03:00
6fb06d0cd8 Fix border select operations in object mode 2018-08-15 22:56:53 +10:00
09b3566b5e UI: correct selection operation names 2018-08-15 22:56:53 +10:00
Dalai Felinto
5d15e68743 Fix viewport selection of markers not updating in all editors
This includes selections both in the clip editor as the viewport.
The selection is implemented as a synchronization function called from the eval
selection update node in depsgraph.
2018-08-15 09:46:33 -03:00
Dalai Felinto
7907dfc400 Motion Tracking Reconstruction Viewport Drawing (T51544)
* Draw bundle names.
* Draw bundle shapes (but spheres).
* Draw custom colors for bundles.
* Support selecting bundles.
* Object bundles also fully tested.

Missing from this commit:
* Camera path.
* Spheres are not drawn as solid.
* Blue dashed line from camera to tracker objects.
2018-08-15 09:45:25 -03:00
41ca20e031 Subdiv: Cleanup, dead code 2018-08-15 11:38:13 +02:00
4e1f310b8d Subdiv: Fix memory leak interpolating CD_MDISP
Can not copy data without freeing the previous storage.
2018-08-15 11:28:00 +02:00
3c9c6507ac UI: adjust names for select operations 2018-08-15 16:12:39 +10:00
f7c1716b6c Merge branch 'master' into blender2.8
Fixes enum-flags having no text w/ property-split
2018-08-15 15:56:20 +10:00
c3e3ccd42c Cleanup: set expand variable for all enum-flags
No functional change, needed for fix in 2.8x
2018-08-15 15:54:27 +10:00
054af691c0 Icons: regenerate from 'icons_geom.blend'
Regenerating all to remove zero area triangles.

Previously icons included files not committed to lib/.
This is the output of 'make icons_geom' for svn rev: 62081.
2018-08-15 13:27:21 +10:00
4f1c1bbe7a Icons: geometry now checks quantized area
Previously back-facing normal was checked which isn't ideal
because a triangle that starts out zero-area may become
visible once it's coordinates are quantized.
2018-08-15 13:18:47 +10:00
Stefan Werner
a9700e7ad2 Fix T56359: Unitialized variable in Cycles OpenCL could cause crashes. 2018-08-14 22:51:53 +02:00
4a3348cfe0 GPUShader: Remove some of the unused shaders
keeping GPU_SHADER_SMOKE until other occurences are removed.
2018-08-14 21:46:13 +02:00
4fcca6a0ab GHOST: Make win32 errors more readable on some drivers 2018-08-14 21:38:13 +02:00
cb65542d2c DRW: Fix incorrect default stencil value 2018-08-14 21:38:13 +02:00
485b8d41be Workbench: Add support for the xray object option
Xray object can be see through other objects. They cast shadows as well
but cannot receive then.
2018-08-14 21:38:13 +02:00
a5d72bac8e Fix (unreported): misuse of GL Context when creating new window and/or rendering. 2018-08-14 16:10:35 -03:00
Dalai Felinto
b2966b70fe EEVEE: Volumes - get current frame from depsgraph
The value from scene is not up to date at all times.
2018-08-14 16:07:52 -03:00
Dalai Felinto
37f6a26e74 Fix viewport background video/clip not updating on playback
CFRA should be avoided, it is not the depsgraph current frame, it is only
updated on cow flush.
2018-08-14 16:07:52 -03:00
Dalai Felinto
6ca48a523a Fix gpu building after cleanup
Broken since: a3c9f4de70
2018-08-14 16:07:19 -03:00
e6af1e4478 Cleanup: remove unused theme color functions using legacy GL. 2018-08-14 20:03:08 +02:00
a3c9f4de70 Cleanup: remove unused basic shader, we use many specialized shaders now. 2018-08-14 19:57:58 +02:00
26812a185f Fix masks not drawing with draw type set to dashed. 2018-08-14 19:57:58 +02:00
1024161f80 Fix uneven column widths in user preferences interface and editing. 2018-08-14 19:28:20 +02:00
fdb4062294 Cleanup: unused variables 2018-08-15 01:52:39 +10:00
e88e80a6a0 3D View boarder/lasso select tool options
Add tool options to control how select operates (add/sub/set/and/xor).

Note: edit mode armature select still needs to support all options,
this is complicated by how it handles partial end-point selection.
2018-08-15 01:48:55 +10:00
d92d310b15 Fix T55719: crash with sculpt dyntopo and constant detail resolution sampling. 2018-08-14 16:37:57 +02:00
e61599b638 Merge remote-tracking branch 'origin/master' into blender2.8 2018-08-14 08:00:49 -06:00
5d034351de make.bat: fix ninja support.
only worked with a fresh build folder.
2018-08-14 07:59:08 -06:00
f19d99c10d Merge branch 'master' into blender2.8 2018-08-14 15:41:11 +02:00
cab013bc5d Fix use of uninitialized variable in some cases, in recent bugfix. 2018-08-14 15:27:49 +02:00
Dalai Felinto
cc9255f8a8 Sync rna_access rna property update cow check with depsgraph
This is a manual synchronization. If we need to re-use the same util in both
areas it would be welcomed as well. For now this at least get things back to a
working state.
2018-08-14 10:15:23 -03:00
d648501e28 BMesh: define suptype for bevel normals.out
Not doing this broke doc building.
2018-08-14 22:26:19 +10:00
3730839958 Correct error in py doc generation 2018-08-14 22:18:46 +10:00
1b53838548 Merge branch 'master' into blender2.8 2018-08-14 14:10:47 +02:00
6eb5b418ee Fix T56363: Blender crash when deleting a curve object.
Conversion code could leave object with inconsistent material data
compared to its new obdata.

Ideally, various conversion code would handle that properly, conserving
materials when possible, but for now at least ensure we get valid
result!
2018-08-14 14:06:42 +02:00
932251caea Fix object copying not ensuring validity of material arrays.
Related to T56363, this is not fixing the root of the bug, but ID
copying should always be a good occasion to ensure sanity of our data
(and error checking is always better than a crash!).
2018-08-14 14:06:42 +02:00
1f78e86070 Fix modifier operators not working from Python API as before.
The poll function required the modifier to be in the context, but these
operators also accept a "modifier" string property as well.
2018-08-14 13:25:08 +02:00
5e696fdcd6 Multires: Begin hooking it up to the new subdiv code
Currently behaves same as subsurf, support of displacement is the
next task in the line to tackle!
2018-08-14 12:17:47 +02:00
d7ae76fa35 More helpful tooltip when trying to apply constructive modifiers on curves
Suggested by user aa311
2018-08-14 12:06:13 +02:00
02dbe3b0c7 Multires: Synchronize settings with Subsurf modifier
Currently no functional changes, just exposes all settings which we need
for OpenSubdiv, similar to what Subsurf modifier is doing already.

Reviewers: brecht

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D3602
2018-08-14 12:02:21 +02:00
e25fdb6a79 Splash: sorting and cleanup
* http -> https
* Release Logs -> Release Notes
* Match number of items on both sides by adding a separator
* Remove Python API Reference link since it's already under Help
when Developer Extras is enabled.
2018-08-14 11:59:48 +02:00
ccc8d2ab42 Merge branch 'master' into blender2.8 2018-08-14 17:41:19 +10:00
644e2b3ffd Cleanup: missed const change in recent merge 2018-08-14 17:41:01 +10:00
73234a9122 Cleanup: vpaint face select de-selected twice 2018-08-14 17:37:59 +10:00
7ed6de3951 Merge branch 'master' into blender2.8 2018-08-14 17:12:41 +10:00
2044ee00c2 Correct vpaint vertex circle select
Would run validate when not needed.
2018-08-14 17:02:57 +10:00
8203e70709 build_environment: opencollada 1.6.63 2018-08-13 20:45:38 -06:00
12acf1e4f8 Cleanup: Update some links to new wiki 2018-08-13 21:55:30 -04:00
0e7dd01944 PyDoc: remove old undocumented message 2018-08-13 21:43:51 -04:00
1f3eb3088f build_environment: sdl 2.0.8 2018-08-13 19:19:42 -06:00
fee32abee9 build_environment: opensubdiv 3.3.3 with PR975 + TBB 2018_U5 2018-08-13 19:08:28 -06:00
e040cfe15a PyDoc: Remove "API" from version 2018-08-13 20:53:45 -04:00
44871e0e0f Pydoc: Switch theme to sphinx_rtd_theme 2018-08-13 20:51:36 -04:00
0a93685dcc PyDoc: Add missing application icons link 2018-08-13 20:51:36 -04:00
721321bf9e Cleanup: copy paste error in tooltip 2018-08-13 20:51:35 -04:00
34c09bc21e PyDoc: Various fixes to generation process 2018-08-13 20:51:34 -04:00
a3cc1fcaf3 PyAPI Docs: Fix syntax error 2018-08-13 20:51:34 -04:00
57e6359920 PyDoc: Remove hack to rename main doc from 'contents' to 'index' 2018-08-13 20:51:33 -04:00
7d8477e019 PyAPI: Docs: Remove old Blender.org theme
This also makes the generator script only allow one theme.
Having this be an argument does not make sense, just over complicating 
things.
2018-08-13 20:51:32 -04:00
d062c86ed0 PyDoc: Use captions for section headers 2018-08-13 20:51:31 -04:00
d0acfba937 PyAPI Docs: Move change log link to top with info docs 2018-08-13 20:51:31 -04:00
27be340616 PyAPI Docs: Remove large note about changing modules
These are stable now. We may want another note about
new 2.8 modules
2018-08-13 20:51:30 -04:00
bee348a388 PyAPI Docs: Remove BGE related documenation 2018-08-13 20:51:30 -04:00
6218cd3261 PyAPI Docs: Fix Space in URL Name 2018-08-13 20:51:29 -04:00
1bbddc8a1e Merge branch 'master' into blender2.8 2018-08-14 10:45:00 +10:00
b993e8a17a Cleanup: use boolean argument 2018-08-14 10:42:04 +10:00
3036a9a46c Merge branch 'master' into blender2.8 2018-08-14 10:17:35 +10:00
c29c426925 Cleanup: use braces w/ particle loop macros 2018-08-14 10:14:05 +10:00
5e8dbafb5b Merge branch 'master' into blender2.8 2018-08-14 10:08:34 +10:00
efdc0959b1 Merge branch 'master' into blender2.8 2018-08-14 10:02:05 +10:00
98f4a8eedf Cleanup: style 2018-08-14 10:00:37 +10:00
04067a54c0 GPUShader: Fix previous "old Nvidia" fix commit
Note to myself, next time, better check the fix before pushing it.

GL_ARB_texture_gather is defined if there is support for the extension
not only when the extension is enabled. Do this check ourself with
GPU_ARB_texture_gather define.

Original fix 822de6e9e1
2018-08-13 23:09:48 +02:00
53ed270523 Fix T56298: Rendering glitch when bones are in stick mode in ortho view 2018-08-13 23:01:18 +02:00
efd44f8480 Cleanup: GPU codegen: remove most of legacy code
A lot of code in codegen was used by previous GLSL system.
Now most of it is not used due to all the things being written from scratch
in 2.8 and we can clean most of it.

As a side not this make the system a bit less flexible (no support for
cubemaps, preview image, etc...) but can be extended again.
2018-08-13 23:01:18 +02:00
77b39bbaa0 Cleanup: Rename GPU_* functions to make more sense
* Remove GPU_link_changed which is unused.
* Remove all GPU link function that are not used anymore.
* GPU_uniform_buffer is now GPU_uniform.
* GPU_texture_ramp is now GPU_color_band.
* GPU_uniform is now GPU_constant.
2018-08-13 23:01:18 +02:00
822de6e9e1 Fix T55802 shader compile bug with texture gather on old Nvidia card
The extension GL_ARB_texture_gather is reported to be supported and does
not trigger an error when enabled but the textureGater functions are not
defined.

Workaround is to disable the use of this extension on such systems.
2018-08-13 23:01:18 +02:00
e24cd10245 build_environment: Remove lapack 2018-08-13 14:56:49 -06:00
518ce887ad build_environment: iconv 1.15 2018-08-13 14:45:27 -06:00
4e03f9cbc2 build_environment: fftw 3.3.8 2018-08-13 13:21:36 -06:00
4a10ba2174 build_environment: openexr support debug build. 2018-08-13 12:37:12 -06:00
2aa26de378 Use full transformation of B-Bone segments in Copy Transforms.
Currently constraints can only read the location along the
spline. This obviously limits opportunities for complex bone
interactions in rigs.

This patch exposes access to rotation and scale as well in
Copy Transforms. However, due to the way how things work,
this data cannot be smoothly interpolated, and abruptly
changes when switching to the next segment.

Reviewers: aligorith

Differential Revision: https://developer.blender.org/D3545
2018-08-13 20:37:53 +03:00
f749c3cbb9 build_environment: alembic 1.7.8 2018-08-13 11:36:23 -06:00
47af343b61 Implement multiplicative Copy Scale and make it the new default.
Scale is a multiplicative quantity, so adding it doesn't make sense.
However, for backward compatibility reasons, and in case somebody
actually desires the old additive behavior, the old way remains as
an option.

Without this change the only way to properly combine scale is via
parenting or the complicated Transformation constraint.

The new mode is turned on by a flag for file compatibility, but the
RNA option is reversed so that the new behavior feels more default.

Reviewers: aligorith

Differential Revision: https://developer.blender.org/D3558
2018-08-13 19:57:15 +03:00
a5aeca4a64 Fix dependency graph for constraints depending on B-Bone shape.
Some constraints have an option to take the final bezier shape of
the target B-Bone into account. This shape usually depends on two
other bones in addition to the target itself, so the graph should
include the relevant dependencies.

Reviewers: sergey

Differential Revision: https://developer.blender.org/D3591
2018-08-13 19:02:49 +03:00
ff6bd57873 Merge branch 'master' into blender2.8 2018-08-13 17:49:19 +02:00
bc675d90d0 Fix T55745: Pick Shortest Path tool, inconsistent selection.
To get consistent, user-expected results here, we need to 'fake'
starting immediately after a 'skip' block (such that we start with a
full block of selected elements).

Same issue affected vertices and edges selection of course, did not
check the other usages of WM_operator_properties_checker_interval_test()
though.
2018-08-13 17:48:36 +02:00
887d6cb1ee build_environment: fix windows ilmbase/openexr support.
seems like the openexr 2.3.0 release tarball has broken cmake support, latest from git works
we'll have to revisit this once they get a new release out.
2018-08-13 09:27:57 -06:00
0e8bd6ba8a Version update to 2.80 Alpha 2, new splash from Hero open movie. 2018-08-13 16:53:16 +02:00
5c61be777f Subsurf: Introduce quality option
For users it defines how accurate vertex positions are in terms
of limit surface (as in, how close the vertices locations to the
condition when they are calculated for an infinitely subdivided
mesh).

This affects things like:

- Irregular vertices (joint of 3 or more edges)
- Crease

Keep quality value low for performance.

NOTE: Going higher does not necessarily mean real improvement
in quality, ideal case might be reached well before maximum
quality of 10. Quality of 3 is a good starting point.

Internally quality is translated directly to adaptive subdivision
level.

Reviewers: brecht

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D3599
2018-08-13 16:04:06 +02:00
4fc2a43e52 build_environment: ffmpeg 4.0.2
with
lame 3.100
ogg 1.3.3
vorbis 1.3.6
flac 1.3.2
vpx 1.7.0
x264 20180811
xvidcore 1.3.5
faad 2.8.8
2018-08-13 07:57:29 -06:00
aac5458fa5 Fix bevel problem for vertex-only cube corners.
Was introduced by code from gsoc branch that does better job
on cube corners, but shouldn't have applied to vertex-only case.
2018-08-13 09:25:16 -04:00
349d67be28 build_environment: update ilmbase and openexr to 2.3.0 2018-08-13 16:12:30 +03:00
Dalai Felinto
cead9abe07 Depsgraph: Build node and relations for movieclip ID for its nodes
Otherwise we get asserts when opening files with the Move Distortion node.
2018-08-13 10:11:27 -03:00
b7784c0cd2 Merge branch 'master' into blender2.8 2018-08-13 13:49:48 +02:00
798a83e35f Cleanup: avoid too close namings, prone to typo mistakes! 2018-08-13 13:47:06 +02:00
0aefef7f8f Fix T56224: Blender2.8 will force a quit when trying to open a scene containing clip track created by blender 2.79.
Beautiful example of typo going unoticed and firing back up in totally
unexpected place years later. Guess nobody actually duplicated a Clip
data-block before! :P

Most likely own fault, during refactor of ID copying code.
2018-08-13 13:43:35 +02:00
8656081561 Depsgraph: Remove obscure code which was only needed for old OSD implementation 2018-08-13 13:10:10 +02:00
3ee6b940df Subsurf: Remove OpenSubdiv options from modifier
There are following reasons to do so:

- The plan is to replace it with some sort of object or viewport option,
  so we can apply OpenSubdiv subdivisions on top of modifier stack and
  keep modifier stack purely CPU side.

  This will solve issues when adding some relation in scene will force
  modifier to be evaluated on CPU.

- With new upcoming OpenSubdiv based CPU modifier implementation we can
  cache topology similar to what GPU side was doing, which will already
  be reasonably faster.

- OpenSubdiv GPU does not work since the OpenGL version bump, and is
  to be rewritten with all the adaptive refine options kept in mind.

Since OpenSubdiv GPU was already broken and was only causing object
to become invisible, there is no reason to keep having that option in
the modifier.

Reviewers: brecht

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D3598
2018-08-13 13:10:00 +02:00
e6827ad9a6 Fix T56290: Segfault when loading file - OpenSubdiv
Filled missing callbacks to converter.
2018-08-13 12:51:34 +02:00
517f58be3c Subsurf: Make uv boundaries easily extendible
This replaces old single toggle option to subdivide UVs with
an enum which can have more options. The usecase for this is
to be compatible with other software. But we also might choose
different subdivision type as default in the future.

DNA and underlying code supports all possible options, but
only the ones which are compatible with old subdivision code
are currently exposes.

Reviewers: brecht

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D3575
2018-08-13 12:37:46 +02:00
f8a499b596 OpenSubdiv: Add stub implementation of C-API
C-API is way smaller than the rest of the code which uses it.
So better to conditionally compile stub implementation than
to keep adding ifdef everywhere.
2018-08-13 12:37:18 +02:00
33fbc4fbea OpenSubdiv: Fix typo in crease comparison 2018-08-13 12:37:00 +02:00
d3250593d0 Merge branch 'master' into blender2.8 2018-08-13 11:58:24 +02:00
844b40b0c1 Fix T56344: Crash when used Twist for Emitter type of Particles System.
That effect is NOP with emitter particles anyway...
2018-08-13 11:57:18 +02:00
4710af81a4 Cleanup: Description should not end with a fullstop 2018-08-13 11:45:55 +02:00
4b6fa4d897 PyAPI: update scripts for matrix multiply operator
Operators:
- add torus
- align objects
- bake physics
- make dupli faces
- smart project

Templates:
- 3D view ray cast

Other:
- Methods for bones/edit-bones
2018-08-12 15:22:58 +10:00
444a0202d4 Gizmo: add blank gizmo definition
Missed from 98c304e865 by accident.
2018-08-12 13:17:10 +10:00
9d59851ca3 build_environment: blosc 1.14.4 2018-08-11 15:34:11 -06:00
9267d29bfb build_environment: zlib move harvesting to zlib.cmake 2018-08-11 15:13:39 -06:00
a4c3a87635 build_environment:openal 1.18.2 2018-08-11 14:44:50 -06:00
0596af141e build_environment: zlib 1.2.11 2018-08-11 14:44:50 -06:00
b4b8d3ab0e Cleanup: Fix wrong formatting
For unknown reasons, visual studio unformat a section of the code.
2018-08-11 20:54:13 +02:00
bece863ecb Merge branch 'master' into blender2.8 2018-08-11 15:39:47 +02:00
91acff1320 Fix T56293: Particle Instance Modifier Axis Buttons UX.
Those axis buttons indeed affect instances orientation even when Create
Along Path is not defined...
2018-08-11 15:35:22 +02:00
1f33075ef0 deplibs: disable functions that can be found on 10.13 sdk but aren't available on 10.9 target 2018-08-11 13:59:13 +03:00
f22d8ee94c Cleanup: Remove debug print 2018-08-11 10:03:06 +02:00
92b12d914f Cleanup GP instance: Remove element 0 because is duplicated 2018-08-11 09:59:44 +02:00
544bd49e63 deplibs: python use pkg-config from homebrew for ssl + xz 2018-08-11 01:45:46 +03:00
eae4539bdd deplibs: get freetype tar.gz rather than zip to get unix line endings 2018-08-10 23:31:27 +03:00
92f3671fe0 deplibs: let cmake do normal install on webp 2018-08-10 21:17:45 +03:00
7daf62950b build_environment: python 3.7.0 + numpy 1.15.0 2018-08-10 10:37:15 -06:00
d7b5e2fa72 Outliner: use generic WM drag and drop system for collections.
* Drag and drop between multiple outliners now works.
* Dragging the icon and text now give the same results.
* Fixes various crashes.
2018-08-10 17:54:00 +02:00
4375e7ff0b WM: internal changes to support dragging multiple IDs.
To be used by the outliner.
2018-08-10 17:53:00 +02:00
86c363a027 WM: pass on wmDrag to drop operators, so they can get the data directly.
Currently drop operators work mostly by specifying the name of the datablock.
However there can be datablocks with the same name in different libraries, so
this gives wrong results in some cases.

Currently only outliner drop operators have been updated to use this mechanism.
2018-08-10 17:53:00 +02:00
74016d73db WM: drag and drop poll functions can now specify a custom tooltip. 2018-08-10 17:53:00 +02:00
9e83283f73 Cleanup: decouple outliner tree element icon retrieving from drawing. 2018-08-10 17:53:00 +02:00
367ada71a0 Cleanup: move most outliner drag & drop code into one file. 2018-08-10 17:53:00 +02:00
92217a81b5 update image libraries, D3005 with few mods 2018-08-10 18:50:15 +03:00
d0e083a60d build_environment: remove unneeded boost patch on windows. 2018-08-10 09:13:48 -06:00
71bd30d8c0 Submodule commit generated by git tool
This commit des not change nothing only is required by visual studio git tool
2018-08-10 17:00:48 +02:00
d9fc59c37c Cleanup: Remove unused param 2018-08-10 17:00:48 +02:00
7673867360 GPUMaterial: Fix color ramp node with constant interpolation
Color ramp with constant interpolation must bypass texture filtering and
use nearest neighboor sampling in order to appear correctly sharp.

This patch use a GLSL hack to use nearest sampling on thoses particular
color band.
2018-08-10 16:16:35 +02:00
2cbffc8e40 Eevee: Fix assert with object volume rendering 2018-08-10 16:16:35 +02:00
bf6a22ed6f GPUMaterial: Group all colorband texture together
This lower the use of texture samplers slots and let users use more real
textures in their shaders.

This patch also make the ramp texture 16 bit floating point. Meaning you
can now use value greater than one in your color ramps.

With the limit of 128 colorband per shader (a color band being either a
color ramp, a wavelength node or a curve node (and maybe wavelength node in
the future)).

Only drawback with the current implementation is that it does not remove
colorband from pruned GPUNodes but it shouldn't really matter in practice.

This should fix T56010
2018-08-10 16:16:35 +02:00
c9bd61b372 UI: Fix nodelink not touching inputs when noodle_curving is 0 2018-08-10 16:16:35 +02:00
c70350c68f GP: Set instance maximum value to something more logic 2018-08-10 15:57:45 +02:00
e2f006949f build_environment: update freetype to 2.9.1 2018-08-10 07:48:27 -06:00
aa5a96430e Python: Add support for @ infix operator matrix multiplication
This differential revision implements the code for T56276

Reviewers: campbellbarton

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D3587
2018-08-10 15:18:00 +02:00
693ecdf7d3 Fix build error due to missing file from commit 98c304e865.
Proper contents still needs to be added, this just makes things build.
2018-08-10 14:39:01 +02:00
69d710187d Fix unreported assert error when change instance modifier
Doing very fast change in the number of instances soemtimes get an error of duplicate ghash entry.
2018-08-10 13:14:13 +02:00
98c304e865 Gizmo: add option to catch all mouse clicks
This was previously default behavior, now it's default.
2018-08-10 21:04:06 +10:00
e18a2c4ed7 Gizmo: support for 2D selection checks for 3D gizmos
This means 3D manipulators can use their own logic
for checking if the cursor intersects.
2018-08-10 17:32:40 +10:00
c19ddcc975 libs: boost 1.68 2018-08-10 03:08:18 +03:00
3daf5cc1ce Gizmo: 2d select now takes region coords
Was taking an event, when only the region coords are needed.
2018-08-10 08:14:22 +10:00
eb7b450c0c Cleanup: style 2018-08-10 08:14:22 +10:00
569e3640ef build_environment: move llvm/clang to ninja on windows. 2018-08-09 12:53:39 -06:00
1ee93dc670 Quiet warnings in bmesh_bevel.c. 2018-08-09 14:43:52 -04:00
da42fa8c97 Merge branch 'master' into blender2.8 2018-08-09 18:11:13 +02:00
1282be0f82 update llvm + clang to 6.0.1 and add openmp for macOS 2018-08-09 17:57:12 +03:00
5b6dde2293 Eevee: Fix assert with subsurface bsdf 2018-08-09 16:46:03 +02:00
ddc2796e4d Eevee: Principled BSDF: Add support for the sheen parameter
This is a rough (but fast) approximation that still match cycles reference
in common case.

In practice, it's just adding more of the diffuse light computed for the
diffuse contribution.
2018-08-09 16:46:03 +02:00
2b41b208c7 Merge branch 'soc-2018-bevel' into blender2.8 2018-08-09 19:52:07 +05:30
85cac2221c Fix T56279: Grease Pencil transformations show a help line with wrong origin
As grease pencil use multiedit frames instead of multiobject edit, this fix solves the issue.

In the future maybe will need modifications if we add multiobject support, but we need a solution now.
2018-08-09 16:14:29 +02:00
b70f85f2aa Merge branch 'master' into blender2.8 2018-08-09 16:03:09 +02:00
e20a0798dc Cycles: Append compute units for RX Vega card names
Makes it more clear whether compute device is Vega 56 or Vega 64.
2018-08-09 15:51:23 +02:00
01feb5d6cc Cycles: Report more details about OpenCL devices 2018-08-09 15:51:23 +02:00
a241286859 Cycles: Util, add to_string() with some helper
Currently unused, but will allow to convert unknown
argument type to a string for reporting and such.
2018-08-09 15:51:23 +02:00
fea5f26ea5 Fix trivial error in call 2018-08-09 18:56:46 +05:30
42c2066d08 Fixed custom shading not updating in Edit Mode 2018-08-09 18:38:07 +05:30
2e10c658f4 GP: Add option to select color affected in modifiers
Now it's possible to define if the Tint, Hue and OPacity modifier affect the stroke color, fill color or both.
2018-08-09 13:43:21 +02:00
f284821bf7 GP: Undo incorrect modification in previous commit 2018-08-09 13:39:35 +02:00
0de50a98e3 Fix T56239: creating material crashes with OpenGL render engine selected. 2018-08-09 12:04:00 +02:00
bf2d0782bc Merge branch 'master' into blender2.8 2018-08-09 08:20:06 +10:00
3aee3bbac7 Math Lib: varied size vector multiply
Needed for Python mathutils elementwise multiply.
2018-08-09 08:14:38 +10:00
c009b09f12 Eevee: Fix Clearcoat intensity 2018-08-08 21:27:33 +02:00
b8fc6317c7 Eevee: Remove per material SSS toggle
This is because we can now optimize the use of SSS on shaders based on
socket input values.
2018-08-08 21:27:33 +02:00
cac43e1765 Eevee: Use "constant folding" for the principle shader
This is more like a static optimisation when some parameters are set to 1.0
or 0.0. In theses case we use a more optimized version of the node.

This also revisit the transmission parameter behaviour to make it closer to
cycles.
2018-08-08 21:27:26 +02:00
26d46d00cf GPUMaterial: Fix Material appear broken when using sliders to tweak props
This was likely caused by some sort of race condition where the drawing
thread would request the state of the shader before the shader has been
compiled.
2018-08-08 21:26:49 +02:00
82352565b7 Eevee: Remove some of the non-necessary uniforms
The remaining ones are from the attributes linear/srgb switches and from
nodes that should be pruned before running their _gpu function.
2018-08-08 21:26:49 +02:00
05c0992c9b GP: Fix modifiers Tint, Opacity and Hue and create materials to Opacity
Thanks to Charlie Jolly (mistajolly@gmail.com) for his patch D3586 that added create materials to opacity modifier.

I had to do some more changes to get all running.
2018-08-08 20:40:11 +02:00
a2726e80d1 Merge branch 'master' into blender2.8 2018-08-08 20:31:08 +02:00
440ef4235f OpenJPEG: support building against both 1.5 and 2.3.
Patch porting to OpenJPEG 2.3 is by Campbell.

Once all platforms are upgraded we can remove the code for 1.5, and upgrade
or remove the openjpeg version from extern/. This intermediate step makes it
possible for platform maintainers to upgrade to 2.3 without breaking other
platforms.
2018-08-08 20:27:16 +02:00
0bfb215bbc Build: fix ffmpeg using system crystalhd library. 2018-08-08 20:27:16 +02:00
aaac963dfa UI: move grease pencil entry in add menu.
The first group of object types is renderable geometry which this belongs
to more than the second group, which are unrenderable utility objects.
2018-08-08 20:22:40 +02:00
74f4eb419c Cleanup: remove leftover game player code. 2018-08-08 20:18:54 +02:00
e2e854d751 WeightVG modifiers: cleanup. 2018-08-08 20:13:17 +02:00
c2d363b118 Fix T55818: Dynamically modified influence vertex group not working in modifier stack.
Now that we are using meshes, we need to assign back potential new
vgroup cdlayer to mesh->dvert pointer...
2018-08-08 20:08:36 +02:00
211ad6bf9a GP: Fix memory leak in draw engine for buffer strokes
This memory leak was undetected during a long time, but with new memory checking is visible.

The problem was the stroke buffer batch was realocating new batches without free the memory.
2018-08-08 19:48:57 +02:00
5c4fd52612 Fix T56220: Adding Grease Object crashes if link Material is set to Object 2018-08-08 16:56:56 +02:00
78a6fa1a72 Cleanup: Move some duplicate code to new function 2018-08-08 13:37:56 +02:00
aa41c86636 Cleanup: trailing space 2018-08-08 20:45:43 +10:00
08e49c034b GP: Fix unreported segment fault with some old files
In some corner situations for old files, the weights array could not be initialized properly.
2018-08-08 12:19:20 +02:00
6a07818e8f Cleanup unused arg warning. 2018-08-08 11:57:35 +02:00
7a6d7d056b Fix T56273: User count assert on re-saving a particular file.
new background image/clip of Camera ID was totally wrong, down the old,
broken 'way it used to be' instead of using new, more generic system.

Those ID pointers were not even added to library_query.c file, shame! xD
2018-08-08 11:56:41 +02:00
3e0bf69bfd GP: Change to make the temp name unique
The previous commit could fail if some corner situations. This new temp name must be unique always.
2018-08-08 11:48:18 +02:00
bc63d6f39a Fix T55095: Undo crash w/ linked library data 2018-08-08 19:16:43 +10:00
106e73da82 Fix T56270: Crash when save a grease pencil file with instance modifier.
The error was related to duplicate names in the internal hash used to order instances in z-depth.
2018-08-08 11:11:18 +02:00
65b31a4c9c GP: Check render status before use it. 2018-08-08 11:11:18 +02:00
b74612e034 Fix T56251: Outliner crash on selecting nested.
We need a valid tree here, undo step will make it invalid...
2018-08-08 10:57:40 +02:00
e4b68befa2 Merge branch 'master' into blender2.8 2018-08-08 17:56:56 +10:00
697d4b227e Ghost/X11: correct function signature 2018-08-08 17:54:41 +10:00
451203c58d Merge branch 'master' into blender2.8 2018-08-08 17:13:43 +10:00
b496bf022b Fix T54584: Crash w/ image undo
Using accumulation undo type (eg painting)
as the first undo step, broke code which adds an initial memfile undo.
2018-08-08 17:12:44 +10:00
bbaedad632 Minor tweak to last commit 2018-08-08 16:02:45 +10:00
ff74292138 3D View: hide object centers in paint modes
Match 2.7x behavior
2018-08-08 15:53:02 +10:00
e8e812fb1d UI: only show vertex select w/ weight paint mode
Was being used for vertex paint where it's not supported.
2018-08-08 15:33:11 +10:00
b6dba5caac Vertex Paint: use original mesh data
This is already done in weight paint mode,
avoids a mesh refresh on selection changes.
2018-08-08 15:17:30 +10:00
cb15854bf9 Fix missing uniform for vert/weight/texture paint
Entering any of these modes would assert immediately.
2018-08-08 15:08:50 +10:00
0cd2eb11ee UV: stitch multi-object support
D3561 by @Al
2018-08-08 14:07:49 +10:00
c252a7c37a UI: don't show pie menu w/ no active object
Addresses T56272
2018-08-08 13:30:27 +10:00
81e99bdc75 Merge branch 'master' into blender2.8 2018-08-08 13:14:07 +10:00
bb8497fd5d Cleanup: correct header guard
Header guard was duplicated before renaming.
2018-08-08 13:11:57 +10:00
e71470e316 Merge branch 'master' into blender2.8 2018-08-08 11:53:22 +10:00
f86c965d7f Cleanup: use conforming header guard 2018-08-08 11:49:51 +10:00
441177b1c7 Merge branch 'master' into blender2.8 2018-08-08 11:33:42 +10:00
d07d3e0987 Cleanup: indentation 2018-08-08 11:31:28 +10:00
6fbd210b91 Merge branch 'master' into blender2.8 2018-08-08 11:05:08 +10:00
931a279f44 Cleanup: use static variables 2018-08-08 11:00:57 +10:00
cb58658f41 Cleanup: style 2018-08-08 10:59:50 +10:00
5f71093bb6 Cleanup: Fix stupid duplication 2018-08-07 22:26:54 +02:00
d2f709b179 Fix memory leak in previous commit 2018-08-07 22:22:03 +02:00
3884b86927 Fix T56266: Second try to fix material problems 2018-08-07 22:13:23 +02:00
95e490889d macOS GHOST: use non-deprecated functions for coordinates 2018-08-07 21:53:02 +03:00
8a035612ee Fix T56266: Grease Pencil Tint and Color modifier error when apply
The material created was not right when apply the modifiers.

These errors were related to the material modification from old palette system before the merge and for any reason this code was not changed in the right way.

Also changed the "Create Colors" to "Create Materials" to keep UI names aligned.
2018-08-07 20:10:20 +02:00
035d827b5b Cleanup: Tag only objects of the scene collections
In previous commit the bmain loop updated all GP objects, but must tag only scene collection objects.
2018-08-07 16:42:20 +02:00
030297209f Fix T54799: NDOF events not dispatched on windows.
Caused by commit rB785e8a636a29
2018-08-07 11:41:55 -03:00
4c712fd17e Fix T56263: Crash when sculpting a GP object with animation
This is a limitation of the current operator design.

I have added a test to be sure the operator is not initializated while play animations to avoid segment fault.

In the future, we can enable this option again, but it will need a operator redesign.
2018-08-07 14:15:41 +02:00
d04e8f41ae Cleanup GP: Change playing field to boolean 2018-08-07 13:56:30 +02:00
b274a01e58 Fix T56261: Grease Pencil simplify options get segment fault
The depsgraph was not updated as expected with the function used and the cache was not set as dirty.
2018-08-07 13:36:47 +02:00
ac2cdb21e6 Fix T56252: Selectable Bases includes hidden objects 2018-08-07 13:22:07 +10:00
f707984743 Fix T56258: Solidify assert w/ empty mesh 2018-08-07 12:58:08 +10:00
3d083f376b Fix T56255: Crash w/ collection access from Python 2018-08-07 12:45:01 +10:00
faf43ff9ad macOS Deps: use xcode 10.13 sdk 2018-08-06 22:55:25 +03:00
563e17091d GP: Add Simplify Shader FX option
This option was missing when old VFX modifers were backported as Shader FX.
2018-08-06 17:01:47 +02:00
d07a408a40 GP: Fix Front z-depth display precision
The zdepth 0 was clipped and need 0.000001
2018-08-06 16:11:53 +02:00
4c4aa65adb PyAPI: Make skin modifier roots settable
This make the root flag writable using the Python API, using the
generic skin vertex flag setter function.

Reviewed By: Campbell Barton

Differential Revision: http://developer.blender.org/D3583
2018-08-06 12:11:35 +02:00
d890ad37a8 Fix horrible invalid mesh freeing in weightvg modifiers.
Comes from rB7661f8a65b. Found while checking on T55818, but not solving
that issue of course.
2018-08-06 11:49:42 +02:00
e680a9d80d Cleanup LIB_ID_COPY_ flags a bit, add missing comment. 2018-08-06 11:49:42 +02:00
c085d9b1be Merge branch 'master' into blender2.8 2018-08-06 17:13:27 +10:00
907413ca65 Fix T55012: Corruption editing screen keymap 2018-08-06 17:08:39 +10:00
f7b1fec463 Cleanup: unused vars 2018-08-06 12:53:31 +10:00
14d9aeacce Cleanup: line length 2018-08-06 12:53:05 +10:00
53c56b2b5f Fix T54915: Usercount of active action increases when editing things with COW enabled.
Just pass along the 'no user refcount' flag to animdata copy function.
2018-08-05 18:50:01 +02:00
75e34b9002 GP: Add python api to create brush settings for grease pencil 2018-08-05 16:19:24 +02:00
2333717bb8 Merge branch 'master' into blender2.8 2018-08-05 12:15:13 +02:00
5261cd233c Fix Cycles crash rendering mix of instanced and non-instanced volumes. 2018-08-05 12:05:10 +02:00
6d0835eca7 GP: Fix NULL pointer when preview is not ready
The preview cannot be ready when create a material with python
2018-08-05 11:07:47 +02:00
9a8541d029 Minor fix unused var compiler warning. 2018-08-05 09:19:15 +02:00
c41ce58fde Fix indentation, spacing and added comments 2018-08-05 08:39:20 +05:30
710d2def65 Initialized normal data in BevMod 2018-08-04 23:38:12 +05:30
435d731c6f Added some comments to bevel_harden_normals for bev tool 2018-08-04 23:36:00 +05:30
e5e9578881 Added comments to functionality in main bevel code 2018-08-04 23:20:53 +05:30
cc30793a76 Added comments to seam and sharp len, removed unused var 2018-08-04 22:38:54 +05:30
7db1db72bb Fixed hnmode not being passed with bevel tool 2018-08-04 22:32:28 +05:30
997b35f57a Added comments on hn_mode, BMOps on bevel 2018-08-04 22:31:53 +05:30
e8748e5ae7 Fixed comment formatting in editmesh.c 2018-08-04 22:11:57 +05:30
86f6c15809 Removed redundant comment in BMesh 2018-08-04 22:11:11 +05:30
ccf794dfc4 GP: Fix stupid mistake in mirror modifier
The object can be NULL. This was a line used in debug that it was not removed.

Also removed an old function not used.

Thanks to Charlie Jolly for catching this error.
2018-08-04 15:59:57 +02:00
4edae3cc2d Merge branch 'master' into blender2.8 2018-08-04 13:43:10 +02:00
a56ec3dfe3 Fix T56222: Bevel Modifier bug (uninitialized value). 2018-08-04 13:40:38 +02:00
27ffd37c15 Fix GP mirror modifier axis 2018-08-04 09:49:15 +02:00
1ae77fe9c1 Grease Pencil: Set Lock Axis default to Y axis 2018-08-03 21:06:49 +02:00
30dc14875f cleanup: fixed indentation and white space issues 2018-08-03 18:27:55 +02:00
5470565527 Cleanup: Fix comment 2018-08-03 17:41:20 +02:00
f2a8e55fc5 New grease pencil primitive STROKE
This creates a simple stroke with several colors to have a basic structure to start drawing.
2018-08-03 17:37:21 +02:00
7288d4d8c4 Replace wrong aasign material flag to BKE_MAT_ASSIGN_USERPREF 2018-08-03 16:37:07 +02:00
fe8dcffd79 GPUShader: Fix warning in release build. 2018-08-03 14:34:05 +02:00
5d4b981bc2 Add missing single user management for grease pencil materials 2018-08-03 13:41:56 +02:00
e1a6861987 Bugfix: audaspace cmake variables need to be cached. 2018-08-03 10:59:10 +02:00
5fd3d1fda4 Fix T56217: Segment Fault when using the Fill Brush on Blank GP Object
The error was in any GP object without layers.

Also added a check to avoid paint in a locked layer.
2018-08-03 10:28:39 +02:00
6c8cc91f81 Fix T56180: Grease Pencil edit mode select menu crash.
Note that there are most certainly many other operators that’d need that
same flag... Don’t have time to hunt them down currently, will just fix
as issues are found, for now.
2018-08-03 10:25:06 +02:00
56fd63e1ad Fix T55791: blender 2.8 crash on redoing 'snap to cursor' with Offset option ON.
Many snap_to operators need a fully evaluated depsgraph to run
properly...
2018-08-03 10:17:00 +02:00
cd5ee24656 Operators: add a new flag stating that operator needs access to evaluated data.
For now, that flag is only used in redo code, since after undo step
depsgraph is totally empty... We *may* want to add at least an assert in
op calling code too, though?
2018-08-03 10:15:34 +02:00
b5a1e3d471 Depsgraph: add helper to ensure a given scene/view_layer graph is up-to-date.
Since that call make the graph active, it should only be used in active
editing context aware code (i.e. essentially, operators).
2018-08-03 10:13:33 +02:00
f55863acd4 DRW: Augment Debug messages 2018-08-03 09:49:31 +02:00
fa0f938b11 Eevee: Fix assert with hair drawing
This remove unused clip_block when not needed and the useless ubo bind that
were put there for the sake of not crashing.
2018-08-03 09:49:31 +02:00
3eab49dd36 Icons: add particle brush icons 2018-08-03 11:43:50 +10:00
2a8413a0dd Eevee: Don't show probe display when not using scene lighting
The display is broken otherwise.
2018-08-02 21:12:08 +02:00
9887b32e73 Eevee: Fix missing UBO bind. 2018-08-02 20:52:07 +02:00
836db3aee8 Add Assign Material option to Special menu (W key)
Also some renames and cleanups.
2018-08-02 19:35:29 +02:00
45751065c0 Add list of color to Assign color operator
It's more clear for user to see the name of the color
2018-08-02 19:21:23 +02:00
5b845ea104 Refactor Collada: Make BCAnimation class more self contained
Follwing funtionality was previously located in
BCAnimationSampler, but makes not much sense there:

* Moved the creation of the reference object into the Class constructor
* Moved the destruction of the reference to the Destructor

Furthermore:

* added get_reference() to better shield the rerference object from
  unintentional access
* BCAnimationObjectMap now contains Pointers to BCAnimation objects
  instead of containing full object instances. This avoids unnecessary
  copying of the Animation datastructures when adding BCAnimation objects
  to the BCAnimationObjectMap. Note: This forces us to delete the BCAnimation
  objects in the BCAnimationSampler destructor.
2018-08-02 19:16:28 +02:00
d79c5ec2e2 Refactor Collada: Removed obsolete BCKeyPoint class
Also simplified the way how the AnimationSampler
stores its sampled data.

After some experimenting i decided to use FCurves as
intermediate storage for exported animation curves.
This looks a lot cleaner to me now because now i no
longer have duplicate storage locations.
Also the handling of curve handles is now pretty much straight
forward and no longer needs any extra calculations.
2018-08-02 19:12:12 +02:00
a0350c0cb1 Feature Collada: Add support for Continuous Acceleration (Fcurve handles)
This allows us to create smoother FCurves during importing Collada
Animation curves. Possibly this should become an option ionstead of
a fixed import feature.
2018-08-02 19:09:36 +02:00
8daa543a2a Refactor Collada: use BCKeyPoint to construct the exported FCurves
Before the handles where taken from the FCurves. But this caused
odd behavior when exporting Object hierarhcies with parent_inverse
matrices. Then the handles where calculated wrong. Now there wil be no
handles for those cases. (we might still consider to optionally
generate handles here (to be decided)
2018-08-02 19:07:40 +02:00
d0a9b0c9dd Refactor Collada: Moved check for animated curve one level up
This avoid to call the curve exporter for every curve,
regardless i it is actually exported or not.
2018-08-02 18:59:19 +02:00
aca6f9e0c4 Refactopr Collada: Changed BCValueMap to contain Values+curve handles
This makes it easiuer to later construct the export curves.
This may later be removed again in favor of storing the data
within the FCurves themself. (I am still somewhat undecided here)
2018-08-02 18:59:18 +02:00
3927aef22e Refactor Collada: Changed BCAnimationCurve methods to const methods 2018-08-02 18:44:48 +02:00
5b9d70a85a Refactor Collada: Added new Class BCKeyPoint 2018-08-02 18:44:48 +02:00
756ef553d8 Refactor Collada: Removed unused parameter from method
BCAnimationCurve::add_value(const float val, const int frame_index)
2018-08-02 18:44:48 +02:00
0698c194d2 Fix Collada: Keep existing FCurves available in Sampler
The FCurves are needed when we export Keyframes. In that case
we want to preserve the tangent data. Hence we want to keep
the original FCurves available while exporting.
2018-08-02 18:44:47 +02:00
eac73e504c Collada refactor: Added meaningful Constructor for BCAnimationSampler
The processing was unnecessarily split into creating the Sampler
and initialising it later. This can safely be done in one go
within a Sampler constructor

Also removed the not needed reference to the Sampler inside
the AnimationExporter instance. The Sampler is now a simple
local variable in AnimationExporter::exportAnimations()
2018-08-02 18:44:44 +02:00
ce3942a5b0 Cleanup Collada: Removed unneeded Constructor 2018-08-02 18:40:48 +02:00
1e8dca814b Refactor Collada: Renamed Enumerations to avoid confusion
The Curve animation type enumeration looked almost identical
to the enumeration that describes if the exporter shall
export sample frames or keyframes.

Details

old names:
 BC_ANIMATION_TYPE_SAMPLE,
 BC_ANIMATION_TYPE_KEYS

replaced by the more descriptive names:
 BC_ANIMATION_EXPORT_SAMPLES,
 BC_ANIMATION_EXPORT_KEYS
2018-08-02 18:35:46 +02:00
281df836b0 Refactor Collada: moved Object sampling code into its own private method 2018-08-02 18:35:45 +02:00
ae3e320438 Refactor: Moved unrelated class methods to collada_utils 2018-08-02 18:35:45 +02:00
4d554543c2 Refactor: Renamed classes, updated comments for better reading 2018-08-02 18:35:37 +02:00
acdb136dce DRW: Add UBO binding checking routine. 2018-08-02 18:33:49 +02:00
e7adf1dfb0 Cleanup: Fix compilation warnings. 2018-08-02 18:33:49 +02:00
bd7ab6b989 DRW: Cleanup: Fix header naming. 2018-08-02 18:33:49 +02:00
8f6ff3adfa GPUShader: Add name for debugging & identifying shaders. 2018-08-02 18:33:49 +02:00
3578212e46 Eevee: Fix missing UBO binds.
Some of them are unecessary and should be removed from the shader instead.

But for now we need a quick fix for the crashes happening on some platforms.

See T55475.
2018-08-02 18:33:49 +02:00
5b63d4c1f6 Cleanup collada: improved class description comment 2018-08-02 18:33:20 +02:00
b156b8b022 Refactor Collada: Moved static class functions to collada_utils
Reason: The functions had nothing to do with the class
2018-08-02 18:33:20 +02:00
7793d5daec Cleanup Collada: moved typedefs to more intuitive locations 2018-08-02 18:33:14 +02:00
3c68ed62aa cleanup: indentation and class method declarations 2018-08-02 18:31:13 +02:00
82e143cdb2 Refactor Collada: Major rewrite of the AnimationExporter
* Mostly reorganized the classes and made them more readable.
* The animation sampler now can be used for any animation curve.
  Before the sampler only looked at curves which are supported by
  Standard Collada 1.4. However the Collada exporter currently
  ignores all animation curves which are not covered by the 1.4.1
  Collada Standards. There is still some room for improvements
  here (work in progres)
* Removed some unnecessary dependencies and cleaned up many
  functions which have become unnecessary and no longer used.
* moved functions between classes to better match the class
  responsibilities.
* took care that the functions are kept small and understandable
* removed intermediate structures which are no longer needed
* cleanly separated the Animation sample part from the
  Collada part so that they can be treated independently from each
  other

Known issues:

* Some exports do currently not work reliably, among those
  are the camera animations, material animations and light animations
  those animations will be added back next (work in progres)

* Exporting animation curves with keyframes (and tangents)
  sometimes results in odd curves (when parent inverse matrix is involved)
  This needs to be checked in more depth.

* Export of "all animations in scene" is disabled because the
  Collada Importer can not handle this reliably at the
  moment (work in progres).
2018-08-02 18:31:09 +02:00
ca20df51dc Fix Collada: replaced nullptr by NULL at various places
To remain compatible with the c++ version used in master
2018-08-02 18:19:10 +02:00
bfc34b2248 Cleanup Collada: Renamed Enum entries for consistency
Minor change: indentation of BC_ANIMATION_TYPE_FROM_NAME was wrong
2018-08-02 18:19:09 +02:00
a906c74f73 Cleanup Collada: Removed no longer needed method 2018-08-02 18:19:08 +02:00
86c205ef00 Fix Collada: Import of animations for objects with multiple materials
When importing multiple materials for one object,
the imported material animation curves have all been
assigned to the first material in the object.

This fix also improves the console logging whenever the importer
finds a consistency problem with the imported animation data.
2018-08-02 18:19:05 +02:00
ce551ada92 Fix missing type for material arry
This function was called by RNA Api and had grease pencil object type missing.
2018-08-02 18:03:01 +02:00
d5455e4232 Fix Collada: Export of sampled animations exports nothing
When exporting animations as matrix data, the exporter did not
create anything. This was because i forgot to copy the sampled
object matrix to the BCSample while decomposing the matrix.
The fix makes sampled animation export work again
2018-08-02 17:58:53 +02:00
22d6cb36b4 Refactor Collada: Renamed files to better match class names:
* Renamed files:
  old names: BCAnimationCurveContainer.*
  new names: BCAnimationSampler.*

* Adjusted the include files to the new names
2018-08-02 17:58:52 +02:00
ee67f50f25 Refactor Collada: simplified API
replaced methods from BCAnimationCurveContainer:

BCSample &add(Object *ob, Matrix &mat);
BCSample &add(Object *ob, Bone *bone, Matrix &mat);
BCSample &add(Object *ob, Matrix &mat, int frame_index);
BCSample &add(Object *ob, Bone *bone, Matrix &mat, int frame_index);

by much simpler methods:

BCSample &add(Object *ob);
BCSample &add(Object *ob, int frame_index);
2018-08-02 17:58:44 +02:00
fb8ea90a46 Refactor Collada: BCMatrix is now decomposed on init
Previously the BCMatrix object was decomposed when needed the first time.
But since the decomposition is done always for every single Matrix,
we can do it right upon construction with the additional benefit that
we can handle euler rotations nicer, see

    void BCMatrix::set_transform(Object *ob)

There we now can use quat_to_compatible_eul() to avoid axis flipping
during exporting of object transforms. (todo: apply this also for
bone animations)
2018-08-02 17:58:43 +02:00
b32de8880e Fix Collada: added missing private: to CBSample declaration 2018-08-02 17:58:41 +02:00
327f79cfb4 Refactor: Added useful typedefs to BCSample.h 2018-08-02 17:58:40 +02:00
cfbebe7aaa Cleanup Collada: Change variable name from sample to matrix
this was a leftover from a previous cleanup where i separated
the old BCSample into 2 classes BCSample and BCMatrix
2018-08-02 17:58:38 +02:00
51103eeebe Refactor Collada: reorganized the BC classes for easier use
* Made many changes to make the usage of the BCAnimationSampler
  much easier.

* Reorganized the header files
* renamed methods for better reading
* Added Matrix typedef to replace float mat[4][4]
* simplifdied the construction of BCSampleData entries
* Added BCCamera BCLamp and BCMaterial classes
* Added support for Camera xfov export
* Added supprot for easier FCurve modifications
  through the BCAnimationCurve API
* Added comments
* Removed unnecessary code
* Simplified code wherever possible
2018-08-02 17:58:37 +02:00
16141f43bc cleanup Collada: renamed method, removed not needed method
* renamed get_matrices() to get_samples()
  Because the returned list no longer contains a set of matrices

* removed is_flat() test method on BCSamples becasue it actually makes
  no sense here.
2018-08-02 17:49:44 +02:00
3d6c191191 Cleanup: Collada: Changed comment on BCSample 2018-08-02 17:49:43 +02:00
ceb4a44d0b Cleanup: Collada: Removed no longer needed methods 2018-08-02 17:49:43 +02:00
f0d2dc61d9 Refactor: Collada: Moved matrix functions from BCSample to BCMatrix
The affected methods:

rotaiton()
location()
scale()
quad()
decompose()

These methods really did not belong to the BCSample itself. That
was just a left over from previous changes to the BCSample class.
Moved to BCMatrix where they belong to.
2018-08-02 17:49:43 +02:00
9bd7d7027d Refactor: Collada: Added classes for Lamp and Camera
After i needed to add extra structure for Material and Armature
it is now time to have also Camera and Lamp objects. those objects
are pretty muchg just data at the moment. However this makes the
code more readable without loosing anything.
2018-08-02 17:49:42 +02:00
635eff37de Refator: Collada: replaced BCSampleKey by Object*
After doing some simplifications BCSampleKey has
degraded to alwasy be ob->id.name So i replaced the key
by the object pointer itself.
2018-08-02 17:49:42 +02:00
3df470fc62 Refactor: Collada: Moved collada related function out of the BCAnimationCurve class
I want to make BCAnimationCurve more general so it potentially can later
also be used from other exporters as well.
2018-08-02 17:49:42 +02:00
3c0a7cca00 Cleanup: Collada added a clarifying comment 2018-08-02 17:49:41 +02:00
74e94a7ed4 Refactor: Now only one Sample per frame and per object
Previously the Bone aniumations where stored in separate BCSample
instances. Now the BCSample class has one more entry for the animated
bones (a matrix map)

I am now ready for final cleaning up and testing.
2018-08-02 17:49:41 +02:00
7ca84b6418 Cleanup: Collada removed unneeded methods from Animation Exporter 2018-08-02 17:49:40 +02:00
4573540929 Fix: Collada: Added back the handling of Armature animation export.
The previous commit removed also the Export of bone animations.
This is now fixed.
2018-08-02 17:49:39 +02:00
e77a3c2f27 Cleanup: Collada removed special handling of Object->Data animations
The export of Object->Data curves is no longer a
Special case but now included in the normal
operation of the Animation exporter.
2018-08-02 17:49:39 +02:00
51a76657de Feature: Collada Object->data FCurves can now also be sampled 2018-08-02 17:49:38 +02:00
909556aa26 Fix wrong RNA Api parameter definition 2018-08-02 17:45:32 +02:00
fda3a09f11 Refactor: Collada: Renamed BCMatrix to BCSample
Since the BCSample Objects will contain either
Matrix data for Object animation or other
data for Lamp, Material, and Camera animation.
2018-08-02 17:40:06 +02:00
5d4c1f0242 Cleanup: Collada reordered and commented BC_animation_transform_type 2018-08-02 17:37:35 +02:00
e04a73c993 Refactor: Use more general appraoch to get data from BCMatrix
Added virtual function get_value_for() that can pick the correct data
from a Matrix (and later also for a vector or a float array) (wip)

this is in preparation for adding Sample data for Materials, light and camera
Those animations do not need matrix values, but either simple float arrays
or float vector arrays. I still want to handle those animation samples
in the same way as the Matrix samples. So i try to use a class hierarchy here
with the base class BCSample and derived classes where BCMatrix is the only
implemented subclass so far. (wip)
2018-08-02 17:37:35 +02:00
b773c5ce52 Cleanup: Fixed '#ifndef xxx' brakets in hjeader files
Due to renaming classes and files the initial #ifndef brakets
have got possibly misleading values for xxx
2018-08-02 17:37:34 +02:00
d0055996a7 Removed the "See Also" line from the license comments 2018-08-02 17:37:34 +02:00
30127c406a Renamed the file BCMatrix.* to BCSampleData.*
BCMatrix is still used, but i intend to setup a class hierarchy
wher BCSampleData is the parent of all sampled data in the
BCAnimationCurveContainer (wip)
2018-08-02 17:37:34 +02:00
237da1869a Fixed File Copyright blocks in file headers 2018-08-02 17:37:33 +02:00
ec1ed2a9f9 Added separate functions to get curve data for sampling and keyframes
For Materials, Camera, Lamp actions it turned out that the sampler
can not sample the data at the moment. So for those curves i need
to get the data from the original curves for now. I Added a getter
that would retreive the data from the FCurve instead from the sampled
data if no sampled data is available. This will change (wip)

Known limitation: the Material,Lamp,Camera actions are always
exported with linear interpolation (wip)
2018-08-02 17:37:33 +02:00
3ce6ff90b7 First stable version of new Collada Animation Exporter.
This still needs cleanup and fixing (wip)
2018-08-02 17:37:32 +02:00
9914c05bd7 Depsgraph: fix some DEG queries crashing with new, empty graph.
Calling code is responsible to check on NULL pointers here, or ensure
is does have a fully built and evaluated depsgraph, but this should
never crash in DEG queries themselves.
2018-08-02 17:17:04 +02:00
771973869d Fix assert in UI string trimming code when we have 'protected' right part. 2018-08-02 16:39:15 +02:00
777e1b9654 UI: Move thickness before frame lock in Annotation Panel
The thickness is more important and must be below list of annotation layers.
2018-08-02 16:22:53 +02:00
4c3a6fb3f9 Feature: Collada added new User interface options
keep_keyframes:
When sampling the distance between 2 keyframes is defined by
the sampling rate. Furthermore the keyframes defined in the
FCurves are not exported. However when this option is enabled
then also the defined keyframes will be added to the exported fcurves

keep_smooth_curves:
When sampling we do not use FCurves. So we also have no Curve handles
for smooth exporting. However when this option is enabled, Blender
does its best to recreate the handles for export. This is a very
experimental feature and it is know to break when:

- the exported animated objects have parent inverse matrices different
  from the unit matrix
- The exported objects have negative scaling

There may be many other situations when this feature breaks.
This needs to be further tested. It may be removed later or replaced
by something less wonky.
2018-08-02 15:04:32 +02:00
d299f9d423 refactor: Collada: removed trivial function
The function get_joint_id(Object *ob, Bone *bone) was so simple
I replaced the function by a one line statement. Now you can see
directly what happens and no longer need to lookup what
the function does.
2018-08-02 15:04:32 +02:00
279e517770 Feature Collada: Export also not selected intermediate objects
Problem: When we export an Object Hierarchy, then we must export
all elements of the hierarchy to maintain the transforms. This
is especially important when exporting animated objects, because the
animation curves are exported as relative curves based on the
parent-child hierarchy. If an intermediate animated object is missing
then the exported animation breaks.

Solution: If the "Selected" Optioon is enabled, then take care
to also export all objects which are not selected and hidden,
but which are parents of selected objects.
2018-08-02 15:04:31 +02:00
bcbcc292f3 Cleanup: Collada added indentation, changed variable names
Just for better reading, no functional change here.
2018-08-02 14:50:35 +02:00
26f6e3a977 Feature: Collada: Added new classes for The Animation exporter
Actually the new classes are not depending on Collada itself.
They coul dbe reused for other purposes as well, for example
as a general helper tool for Animation export.
2018-08-02 14:34:53 +02:00
02f0b09329 Refactor Collada: Moved Classes into separate files
Renamed AnimationCurveCache to BCAnimationCurveContainer
because this is really not a cache but just a set of Data that
prepares the export of FCurves. This container only lives during
export and is otherwiose not used for anything else.

The BCAnimationCurveContainer is not depending on Collada in any way.
Theoretically it could be used also from Python, but this is another story.

Additions in more detail:

Classes:

* BCAnimationCurve
  a wrapper for handling FCurves tied to an object within the
  Animation Exporter

* BCAnimationCurveContainer
  A container to keep all FCurves in one place. It also maintains
  creation and deletion of temporary FCurves needed to export data
  without interfering with the User's production data in Blender.

* BCMatrix
  Handy class for making float mat[4][4] a primetime resident in
  the code. Not necessary but nice.

Support functions:

* bc_get_children(std::vector<Object *> &child_set, Object *ob, Scene *scene)
  returns the immediate children of an object into a set

* bc_string_after(const std::string& s, const char c)
  returns the string after the last occurance of char

* bc_startswith(std::string const & value, std::string const & starting)
  returns true if the string starts with the starting sequence

* bc_endswith(std::string const & value, std::string const & ending)
  returns true if the string ends with the ending sequence
2018-08-02 14:34:53 +02:00
9e4929b72d fix: Collada: changed scene update for sampling animation data
According to a comment in physics_fluid.c it sounds like the
function BKE_scene_update_for_newframe() does not work in all
cases. According to the comment it seems better to use
ED_update_for_newframe() instead.

This change only affects the export of Animation Data.
I make this change as a precaution. I am not aware that
there was anything wrong here before.
2018-08-02 14:31:55 +02:00
75d0830dc0 Cleanup: use dictionary for icon lookup 2018-08-02 22:28:48 +10:00
9dab15d3a1 Feature Collada: Added AnimationCurveCache for exporting sampled animations
Details:
When exporting sampled Animations to Collada we need to create sample
data for every Animation curve. However it turns out to be extremely
slow when we repeatedly step over the entire animation for each curve.

The solution is to only step over the animation once but cache all needed
animation data in a cache. Once the animation has been processed,
all export information is located in the cache and can be easily
read from there.

The AnimationCurveCache is the first try to proof the concept.
This is work in progres and may still change a lot.
2018-08-02 14:25:45 +02:00
b6ecf66894 Feature Collada: Added new class files to CMakeLists.txt
AnimationClipExporter.cpp and AnimationClipExporter.h both need
to be added to CMakeLists.txt so they are actually built into
Blender
2018-08-02 14:25:44 +02:00
f9bca158bb Feature Collada: Added new Enum and Mappings
* BC_animation_transform_type

  Enum that Contains all animation types which can be exported

* BC_ANIMATION_NAME_FROM_TYPE

  Map from transform_type to the name that is used in the exported data

* BC_ANIMATION_TYPE_FROM_NAME

  Maps to get the animation transformtype from RNA Pathes
  and from collada names (also needed for the Importer later)

These maps and Enums will later replace hard coded integer numbers
which are currently used all over the place and make it really hard
to understand what exactly is going on.
2018-08-02 14:25:44 +02:00
2183879216 Cleanup Collada: Added #ifdef to avoid duplicate include
This avoids that the include file AnimationExporter.h
gets included more than once.
2018-08-02 14:25:44 +02:00
839702080e Feature Collada: Added new class for exporting Animation Clips.
This class is work in progres and not yet used. It is
also not yet largely tested and needs some improvements
regarding which actions will be exported for which objects.
2018-08-02 14:25:43 +02:00
12e28b4930 Cleanup Collada: renamed parameters for better reading
I tested and commited each of the documented changes
separately and amended all changes into one single commit:

None of the changes makes a functional change. All changes are
in AnimationExporter.h and AnimationExporter.cpp

* Renamed from transformName to channel_type
* in create_sampled_animation():
  renamed label to channel_type
* in export_sampled_transrotloc_animation()
  in export_sampled_matrix_animation()
  in export_sampled_animation_set()
  in create_sampled_animation():
  Renamed variable from times to frames
* Fixed Indentation in AnimationExporter.h
* break up function definition into multiple lines.
2018-08-02 14:25:42 +02:00
9a2771c1fa Feature Collada: Support for Animation Clip export
1.) Added one extra level to the exported animations
    such that now all scene animations are enclosed:

    <Animation name="id_name(ob)_Action">
	  <Animation>...</Animation>
	  ...
	</Animation>

2.) Added support functions for this extra level:

    open_animation_container(bool has_container, Object *ob);
    close_animation_container(bool has_container);

3.) Added Function for organizing unassigned exported animations

	openAnimationWithClip() (not uesed yet)

4.) Added support function to check if a sampled matrix animation
    is actually animating

	bool is_flat_line() (not used yet)
2018-08-02 14:22:08 +02:00
8cbfe8785e Cleanup: Fixed indentation and added white space lines
Very minor change just for better reading
2018-08-02 14:20:26 +02:00
c2e1bfa3af Feature Collada: Prepare for exporting all actions of a scene
bc_getSceneActions(Object *ob, bool all_actions)

This function is supposed to return the list of actions
to be exported for the given object. However the function
is not yet used. Also it needs an improvement such that only
actions which match the active object will be exported.
This is still work in progress.
2018-08-02 14:16:44 +02:00
90349bec6a Cleanup Collada: changed import stage names for better reading.
The Collada Importer processes the imported files twice. It is still
not clear to me why it needs to do that. However i renamed the
Import stages for now to clarify a bit what really happens:

General -> Fetching_Scene_data
Controller -> Fetching_Controller_data

This change makes it more clear that when the controller data is
fetched these methods are not needed. Before it was much harder
to understand what this is all about.
2018-08-02 14:13:13 +02:00
1bf404dbd3 Fix: Collada Exporter/Import break Object hierarchy
Exporter:
Children of Armatures where not exported as children but as sibblings.

Importer:
When an object is linked to an armature then the Importer
unconditionally makes the child a direct child of Armature.
Actually, if the child is already a child of the armature, then
there is no need to reparent it.
2018-08-02 14:11:54 +02:00
2e8391ee09 cleanup: Collada remove unused function
This was a function introduced earlier,
but it is no longer needed.
2018-08-02 14:11:53 +02:00
7ed18dc511 Cleanup: Added comment to clarify
The exporter does not export invisible and hidden objects!
This may cause issues. I added the comment to make this clear in
the code. This behavior may later be improved.
2018-08-02 14:11:53 +02:00
4dd14b7f38 Cleanup Collada: Added new low level functions for later usage
bc_get_action_id() : To create unique Collada conform identifiers

The following new functions handle conversions of matrices
to various forms:

bc_copy_darray_m4d() : Copy matrix to an array of floats
bc_copy_v44_m4d() : Copy matrix to a vector of vectors of floats
bc_copy_m4d_v44() : opposite of previous function

Note: The vector<vector<double>> matrix  is needed so that i later can
easily store matrix data in another vector (containing matrix curves)
2018-08-02 14:11:53 +02:00
f36855f0fd UI: show all particle brush settings in topbar
Also show particle brush in tool-properties panel.
2018-08-02 22:10:38 +10:00
6cae345de8 Collada: Added Option "All actions" for exporting animation libs
This is work in progress. The follow up changes in
the exporter will eventually make use of the new options.
Currently the new option does nothing.
2018-08-02 14:09:11 +02:00
18bab65abb Cleanup: renamed transformName to channel_type
This makes it more clear what the parameter is about.
Especially it is not just a name but the paramter also
controls what type of data is exactly created by the exporter.
2018-08-02 14:06:55 +02:00
7bdde043a8 Cleanup: Added back explicit object type checks in Animation Exporter
For exporting Lamp Animation or Camera Animation i added utility functions
to fetch the related actions. And only if a matching action was found, the
export was processed for the object. However it turned out that the code
became less clear by this change. So i reverted it back to first check
the object type and only fetch the related action if the object type matches.
2018-08-02 14:06:54 +02:00
0fa59db066 Cleanup: prepended bc_ to utility functions (satisfy name convention)
All utility functions from collada should contain the prependix bc_
Some of the new added functions did not comply to the convention.
2018-08-02 14:05:26 +02:00
83c3359100 Cleanup: calculating sample frames get scene action instead of object
Previously the functions for calculating the sample frames have used
the animated object from where they derived the active action. This was
not necessary. I changed the api so that the scene action is now
directly specified for better reading.
2018-08-02 13:51:49 +02:00
2e82cdf318 Cleanup: Added Helper functions to get Scene actions
This is mostly for cleaning up the AnimationExporter for
supporting the upcoming feature "export all animations".
I also added a few extra checks for existing animations,
which potentially avoid crashes when the calling functions
do not check for existing animations.
2018-08-02 13:50:54 +02:00
ffd1893ba9 Removed const qualifier from EvaluationContext parameter and adjusted the class methods to reduce future merge conflicts in Blender2.8 2018-08-02 13:49:30 +02:00
35a5fccf77 UI: show particle radius & strength in topbar 2018-08-02 21:28:07 +10:00
200212079d Subsurf: Better crease which represents sharp edges
Enabled infinite sharp patches for topology refiner and evaluator,
which allows to have sharp edge at first subdivision level.

Also tweaked crease export from Blender to OpenSubdiv to have more
artistic control over the whole 0..1 range.
2018-08-02 12:24:55 +02:00
3a93314753 Tool System: initial particle system support 2018-08-02 19:27:26 +10:00
d79df6c0bc Tool System: sync changes from changes to brushes
Changing a brush now updates the tool.
2018-08-02 18:18:53 +10:00
d3c387d605 Merge branch 'master' into blender2.8 2018-08-02 17:52:22 +10:00
cb6d7cb0b2 RNA: make particle enum public 2018-08-02 17:49:03 +10:00
503866c681 Fix T56199: Crash on Annotation in (VSE) Image Preview
In some cases (e.g. using old userpref settings/keymaps)
it was possible to trigger a crash when the wrong GP/Annotation
operators were triggered in the wrong contexts (e.g. using
the old GPENCIL_OT_paint in annotation-only contexts like
all the 2D editors).

This commit resolves several issues that were caused by sloppy
code-churn + features that had been hacked on.
2018-08-02 16:35:43 +12:00
0fdd058991 Dev Tooling: Instrument motion path calculation operator (for bones) to collect timing data
This will be useful for checking on the progress of our optimisation
efforts, and to generate some nice stats for later.
2018-08-02 15:04:58 +12:00
8a0760eba2 Armature Panel Tweaks - Motion Paths/Ghosting
Since most animators find Motion Paths more useful than Armature Ghosting:
* Move Motion Paths before Ghosting settings (less scrolling)
* Collapse Ghosting panel by default
* Open Motion Paths panel by default instead
2018-08-02 15:04:47 +12:00
ab49b7d739 UI: Slightly larger action zone for corner resizing
Pretty minor, from 0.6 to 0.8, but the improvement is noticeable
especially when using a stylus, without overlapping too much with
the buttons and dropdowns in headers.
2018-08-02 01:26:58 +02:00
a4623bdfed UI: Group similar Grease Pencil brush settings 2018-08-02 00:52:54 +02:00
872c5d2763 UI: Remove OpenGL Render operators from Render menu
Rendering OpenGL/Preview is accessible from each editor.
Render settings are accessible from the Film menu when in OpenGL/Preview engine.
It wasn't always predictable especially with Workspaces without or with many viewports.

Also reordering of items, renaming and removal of superfluous icons.
2018-08-02 00:52:54 +02:00
918288138d Cleanup: warnings, trailing space 2018-08-02 08:26:57 +10:00
504454ee5e GPUMaterial: Normal Map Node: Make default inputs interactives 2018-08-01 22:08:36 +02:00
48e661e05d GPUMaterial: Fix assert when shader failed to compile. 2018-08-01 22:08:36 +02:00
e8dd5e5cc6 GPUMaterial: Make Mapping node use UBO storage
This means tweaking parameter is now interactive and does not need to
recompile the shaders.
2018-08-01 22:08:36 +02:00
ad64cb6344 GPUMaterial: Make Localize tree live longer
This is in order to reference the localized node->storage when populating
the UBO data.
2018-08-01 22:08:36 +02:00
4510f30026 GPUMaterial: Fix nearest sampling
texelFetch return vec4(0.0) if the target pixel is outside the texture
rect. So we mimic the default repeate mode that we have for linear
interpolation.

Fix T56156 Mapping-Node doesn't work
2018-08-01 22:08:36 +02:00
c6f55fb0db GPUUniformBuffer: Fix bad memcpy error catched by asan
We need to copy the size of the gputype not the padded type.
2018-08-01 22:08:36 +02:00
e50a3dd4c4 Fix T56197: Cycles OpenCL build error after recent changes. 2018-08-01 19:44:32 +02:00
86270b60db Subsurf: Evaluate all UV layers
Before that it was only first UV layer which was properly evaluated,
the rest were ignored. Now all layers are being properly handled.
2018-08-01 18:43:03 +02:00
5b3b0ed54f Subsurf: Add API to provide vertex sharpness
Currently unused, added for the future and API completeness.
2018-08-01 18:42:59 +02:00
4fe14d6a26 Subsurf: Support subdivision of mesh with just loose elements 2018-08-01 18:42:59 +02:00
63058490a3 Subsurf: Cleanup, remove unused mappings and topology queries 2018-08-01 18:42:59 +02:00
ec4ba68730 Subsurf: Fix/workaround crashes and failures with non-manifold geometry
The idea is simple: do not provide full topology to OpenSubdiv, leave
edges creation to OpenSubdiv itself. This solves issues with non-manifold
meshes which were known to fail, including the ones from T52059.

On a positive side we can simplify our side of converter, keeping code
shorter.

it is still possible that we'll need to ensure all loops has same
winding, but that is less things to worry about.
2018-08-01 18:42:59 +02:00
ebbeddd2f4 Subsurf: Use edge sharpness directly from converter
Seems it's behaving correct now, surely more tests needed, but
this is required for now to move forward.
2018-08-01 18:42:59 +02:00
08e6bccdf4 Subsurf: Support subdivision of loose elements
Applies to vertices and edges. Biggest annoyance here is that OpenSubdiv's
topology converter expects that there is no loose geometry, otherwise it
is getting confused.

For now solution is to create some sort of mapping from real Mesh vertex
and edge index to a non-loose-index. Now the annoying part is that this
is an extra step to calculate before we can compare topology, meaning FPS
will not be as great as if we knew for sure that topology didn't change.

Loose edges subdivision is different from what it used to be with old
subdivision code, but probably nice feature now is that endpoints of loose
edges are stay at the coarse vertex locations. This allows to have things
like plane with hair strands, without need to duplicate edge vertices at
endpoints.

All this required some re-work of topology refiner creation, which is now
only passing edges and vertices which are adjacent to face. This is how
topology refiner is supposed to be used, and this is how its validator
also works. Vertices which are adjacent to loose edges are marked as
infinite sharp. This seems to be good-enough approximation for now. In the
future we might tweaks things a bit and push such vertices in average
direction of loose edges, to match old subdivision code closer.
2018-08-01 18:42:59 +02:00
9e2f678ba2 Fix mistake in atomic bitmap
Internally values are stored as 32bit integers, no idea why i thought
they were 8 bit.
2018-08-01 18:42:59 +02:00
63dc52c66e Subsurf: Cleanup, remove dead code 2018-08-01 18:42:59 +02:00
110abebe1d Fix missing poll function for flip_matcap operator (see T56183). 2018-08-01 17:28:30 +02:00
be5ccb9ce8 Merge branch 'master' into blender2.8 2018-08-01 16:13:13 +02:00
9336aef4eb Fix T56195: Typo in BLI_array_utils.h. 2018-08-01 16:12:36 +02:00
c48eb52164 Fix Cycles headless render failing, after grease pencil merge.
Now it should at least succeed when there are no grease pencil objects.
2018-08-01 14:47:02 +02:00
cc004fd13c Some more minor typo fixes in comments. 2018-08-01 14:37:24 +02:00
9a43ebdd5b Fix more merge stupid leftover, and some build warnings. 2018-08-01 14:29:36 +02:00
ef8ab3b4c2 Fix issues after last 2.8 merge. 2018-08-01 14:21:45 +02:00
936d1cef6e Merge branch 'blender2.8' into soc-2018-bevel
Conflicts:
	release/scripts/addons
	release/scripts/startup/bl_ui/space_view3d_toolbar.py
	source/blender/editors/space_outliner/outliner_draw.c
2018-08-01 14:16:41 +02:00
ddd62f1b10 Cleanup: Remove ToDo comment 2018-08-01 11:21:37 +02:00
20e5fc4d32 Fix context problem when render in background mode
Bug reported by Sergey.
2018-08-01 10:58:10 +02:00
af79ac944d Cleanup: Replace "Move Color" to "Assign Material" 2018-08-01 10:39:16 +02:00
c06bed25c7 Fix T56187: Crash using cursor tool in Edit/Sculpt and Weight Paint mode
The transform tried to calculate the multiframe falloff, but there was not any stroke to do that.
2018-08-01 10:17:05 +02:00
3f5d3aa057 Merge branch 'master' into blender2.8 2018-08-01 16:39:34 +10:00
583b2f9a3d Cleanup: remove unused array member 2018-08-01 16:38:57 +10:00
d6d29f9854 UI: add 3D view check for grease pencil tool 2018-08-01 16:04:21 +10:00
5f55bbf3d0 RNA: add space_type to tool 2018-08-01 16:02:20 +10:00
e665e012e9 UI: correct grease pencil placement text 2018-08-01 12:24:32 +10:00
f4a06b390b Keymap: use Q key for quick menu in gpencil mode
Note, the keys for changing line display are now more obscure
(Shift-Q, Shift-Alt-Q), and might be changed.
2018-08-01 12:19:46 +10:00
0f449541d2 Merge branch 'master' into blender2.8 2018-08-01 09:01:29 +10:00
6a39d72558 Cleanup: declare vars or make static 2018-08-01 08:57:31 +10:00
29937dce8f Merge branch 'master' into blender2.8
Move 'View3D.flag3' options into 'gp_flag'.
2018-08-01 08:42:00 +10:00
e8d58080df DNA: remove View3D.flag3
Having 'flag, flag2, flag3' is getting out of hand especially
when we support increasing the size of types.

Make flag2 into an int.

Note, this looses the 'show world' option,
but it's not such an important setting.
2018-08-01 08:08:59 +10:00
7b72be0134 Fix T56181: Annotations hide proportionnal editing UI buttons 2018-07-31 22:27:24 +02:00
3667a5402e KnifeTool: Use GPUBatch API instead of IMM to fix buffer overflow issue
This also include a small optimisation (remove of a double loop and half of
the memory allocation for hit points)

This should fix T55946 Crash using knife tool on mesh with large number of
vertices.

Tried with a 500K vert suzanne and it seems fine.
2018-07-31 20:10:14 +02:00
d5724bfaa7 Revert "Gitignore: Ignore diffs in all subdirs"
This is an issue for some file in the extern dir

This reverts commit d940a081a9.
2018-07-31 13:03:48 -04:00
d940a081a9 Gitignore: Ignore diffs in all subdirs 2018-07-31 12:53:37 -04:00
6ba70d5996 Fix crash when rendering viewport within another area
This also Fix T55574 Crash on sequencer preview
2018-07-31 18:21:23 +02:00
7e0eb0d071 GPUFrameBuffer: Put active framebuffer in GPUContext
instead of being ThreadLocal and leading to incorrect usage.

We still enforce no framebuffer when changing context. We can lift this
restriction later.
2018-07-31 18:21:23 +02:00
3ecba657bb GPU: Replace malloc/calloc/realloc/free with MEM_* counterpart 2018-07-31 18:21:23 +02:00
9b817bc168 Fix set_pixel overflow in fill brush
The value of the index was above the size of image
2018-07-31 17:03:12 +02:00
4684375bd4 Fix: Motion Paths were still visible after clearing them
After clearing motion paths from objects, those objects needed to be
tagged for copy on write so that the copied data (i.e. viewport)
recieve the changes (i.e. removed paths)

Reported by Hjalti
2018-08-01 02:18:54 +12:00
d803b4e43b UI: Grease Pencil Simplify tweaks
Single-column layout and tweaks to tooltips.
2018-07-31 16:14:13 +02:00
d41f448b3b Change Brush smooth factor to 0.1 by default
The old values were too high.
2018-07-31 16:04:57 +02:00
ff1ca80f01 Set overlay default values 2018-07-31 15:57:11 +02:00
a3893ed03e Enable ghost onion skin by default
This option was changed by error when implement annotations.
2018-07-31 15:39:49 +02:00
ebca6f5f20 Fix grease pencil line toggle
Replace with generic context toggle operator.
2018-07-31 23:39:01 +10:00
475e9003c0 Fix T55718: Blender 2.8 crashes when converting to Curve from Mesh.
We only want to care about runtime.mesh_orig if… data is indeed a Mesh! ;)
2018-07-31 15:33:47 +02:00
ddd44315b8 UI: Grease Pencil Onion Skin minor tweaks
Avoid double label for same properties in single-column.
Onion Skinning: Group custom colors together, and frame before/after together.

Small changes to tooltips.
2018-07-31 15:13:13 +02:00
1b0c1c551a UI: remove grease pencil settings from topbar
Top bar is only for settings that apply to the next action
not a way to change existing data.

If each stroke could have a different color this would work as expected,
however it was adjusting the current layer color.
2018-07-31 23:02:18 +10:00
2dbb1e9f0e Fix cmake external library build for blosc/freetype on some systems. 2018-07-31 14:39:42 +02:00
e5a1bf0b10 UI: Metadata panel tweaks
Rename "Seq. Strip" to Strip Name, "Sequence Strip" to Use Strip Metadata.
Plus re-arrange of properties and separators for sections.

Thanks @fsiddi for the feedback.
2018-07-31 14:31:40 +02:00
29f13476f0 Fix (unreported) wrong logic in gpencil UI code. 2018-07-31 13:42:03 +02:00
c1185f3d0d Cleanup: pep8, windows line endings 2018-07-31 21:31:04 +10:00
c7e1d067a5 Merge branch 'master' into blender2.8 2018-07-31 21:27:51 +10:00
bb7b1cc884 Fix T56170: Fake dependency cycle in new depsgraph + interleaved armature update + proxy
Make proxy copy result more atomic operation.
2018-07-31 13:24:57 +02:00
7a91ae1103 Fix memory leak in DRW_cache_gpencil_axes_get
The Batch was created using old function without  GPU_BATCH_OWNS_VBO and the batch was not removed from memory
2018-07-31 13:22:41 +02:00
8dcddbc091 UI: Annotations tool color setting in toolbar 2018-07-31 13:08:30 +02:00
a3085190f8 Fix building w/ FreeBSD
fileno could be a macro which can't take a void pointer.
2018-07-31 20:52:36 +10:00
d58dd3de3d UI: Annotations panel tweak
"New Note" and "New" datablock do the same, only show one.
Minor code comments cleanup.
2018-07-31 12:46:58 +02:00
31fcd40efd Cleanup: use static variables 2018-07-31 20:45:43 +10:00
f945303877 Cleanup: Fix weird comparisons 2018-07-31 12:44:01 +02:00
0b85bb847c Cleanup: Remove overflow array element 2018-07-31 12:38:44 +02:00
20d525eb8b Fix assert when load file with shading enabled
Credits for this fix goes to Clément Foucault.
2018-07-31 12:37:58 +02:00
bf72d510d4 UI: Collapse Annotations panel by default 2018-07-31 12:26:15 +02:00
f06884b18a Cleanup: style, duplicate includes 2018-07-31 20:11:55 +10:00
b2193e020b Fix crash opening .blend files with palettes.
Palettes were incorrectly set as having animation data.
2018-07-31 11:48:03 +02:00
d273f3ff71 Cleanup: fix compiler warnings. 2018-07-31 11:48:03 +02:00
1fd27c2332 Respect ID user count when creating pose on object copy
This solves wrong user counter of custom shape when duplicating bone
few times and then undoing all the duplications.
2018-07-31 11:39:22 +02:00
75f1fb6d86 Depsgraph: Fix crash on undo of new bone added
Pose is not brought up to date for until exit of edit mode,
so can not use.
2018-07-31 11:39:22 +02:00
ad5b611953 Cleanup: style 2018-07-31 19:21:04 +10:00
a823f58dfd Subsurf: Disable oprtion for now
Committed by accident, is too early for this yet.
2018-07-31 11:17:51 +02:00
f6300030e0 Cleanup: trailing space 2018-07-31 19:07:56 +10:00
66da2f537a New Grease Pencil object for 2D animation
This commit merge the full development done in greasepencil-object branch and include mainly the following features.

- New grease pencil object.
- New drawing engine.
- New grease pencil modes Draw/Sculpt/Edit and Weight Paint.
- New brushes for grease pencil.
- New modifiers for grease pencil.
- New shaders FX.
- New material system (replace old palettes and colors).
- Split of annotations (old grease pencil) and new grease pencil object.
- UI adapted to blender 2.8.

You can get more info here:

https://code.blender.org/2017/12/drawing-2d-animation-in-blender-2-8/
https://code.blender.org/2018/07/grease-pencil-status-update/

This is the result of nearly two years of development and I want thanks firstly the other members of the grease pencil team: Daniel M. Lara, Matias Mendiola and Joshua Leung for their support, ideas and to keep working in the project all the time, without them this project had been impossible.

Also, I want thanks other Blender developers for their help, advices and to be there always to help me, and specially to Clément Foucault, Dalai Felinto, Pablo Vázquez and Campbell Barton.
2018-07-31 10:50:43 +02:00
27496cc46b Merge branch 'master' into blender2.8 2018-07-31 18:43:37 +10:00
36389444b0 Fix Shape Key retime starting at frame 10
D3571 by @alm
2018-07-31 18:42:22 +10:00
fe6e751e69 Workbench: Correct ifndef after recent changes
Usage of matcap image uniform had different ifdef than definition
of that uniform. Assuming the usage was correct, and the definition
needed an update.

Prevents shader from compilation failure and from aborts in debug
builds.
2018-07-31 10:25:54 +02:00
51c38b5d49 Subsurf: Rework in a way that patches boundaries are merged together
The idea is to create vertices along the coarse edges once, without
splitting coarse edges on separate ptex faces. This requires some
indexing magic, vertices within a patch are no longer sequential.

Not sure how to make it nicer without such a black magic looking
calculations (which are basically boiling down to mimicking order
of verts/edges creation).

In the current offsets calculation loose verts and edges are not
properly taken into account, but those are causing topology refiner
to fail anyway, so it needs a bit deeper change.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3570
2018-07-31 09:24:30 +02:00
5300ba0ba5 Merge branch 'master' into blender2.8 2018-07-31 17:03:28 +10:00
21f61cbe73 BLF: replace global aa pref w/ monochrome flag
Now disabling anti-aliasing doesn't impact sequencer, render stamp etc.
2018-07-31 16:57:05 +10:00
b51dcb6f07 Fix crash w/ missing matcaps
Building w/o EXR caused this.
2018-07-31 16:44:35 +10:00
65344a6d19 Merge branch 'master' into blender2.8 2018-07-31 16:24:12 +10:00
18888b7b0c UI: use text hinting (now user preference)
D3201 by @ambient w/ edits not to impact fonts used for rendering
(only change display for UI text).
2018-07-31 16:19:00 +10:00
52c23021c4 UI: consistent names for edit-mode overlay 2018-07-31 12:59:48 +10:00
0c955ed6ea Fix T56155: Header shows in popover context menu 2018-07-31 10:45:35 +10:00
56754226de Merge branch 'master' into blender2.8 2018-07-31 10:42:19 +10:00
1195a4a040 UI: add check for any kind of popup
Fixes T56155 when merging into 2.8
2018-07-31 10:38:01 +10:00
06e9d1683b Fix build error in new build after recent merge. 2018-07-30 23:01:20 +02:00
c86b5fa820 Viewport: use Filmic without scene exposure/gamma/curves for workbench.
This ignores the scene color managment view settings for solid mode and
lookdev when not using scene lights and world. The scene settings are
intended for tweaking renders and should not affect studio lighting and
matcaps.

There may be cases where a simple sRGB transform is better than Filmic
and we could add configuration for this. Not sure if it really matters
and it may be better if we just assume matcaps and studiolights are all
created for one view transform.

Differential Revision: https://developer.blender.org/D3569
2018-07-30 18:51:15 +02:00
2e2e7aff7c Merge branch 'master' into blender2.8 2018-07-30 18:44:18 +02:00
cc397b918f UI: make horizontal wheel scroll in 2D view match vertical scroll speed. 2018-07-30 18:35:50 +02:00
f08f6c1ade Clean Keyframes operator tweaks
By popular demand, the CLean Keyframes operator will now
leave handles and other interpolation settings untouched.

Previously, it would recreate the keyframes from scratch,
keeping only the frame + value, under the assumption that
the handle information was "bad" (i.e. the source of bumps
and roughness, due to bad hand tweaking). However, since
most animators use this on hand-keyed animation instead of
motion-capture data, this assumption didn't hold, and was
actually overly destructive - wiping out lots of hand-adjusted
curve data.
2018-07-31 03:48:57 +12:00
dee31f2cb0 Minor cleanup. 2018-07-30 17:42:54 +02:00
885cc4cf9a Build: require C11/C++11 for all operating systems in master.
This is in preparation of upgrading our library dependencies, some of which
need C++11. We already use C++11 in blender2.8 and for Windows and macOS, so
this just affects Linux.

On many distributions this will not require any changes, on some
install_deps.sh will need to be run again to rebuild libraries.

Differential Revision: https://developer.blender.org/D3568
2018-07-30 17:12:24 +02:00
d28248595b Silencing a bunch of compiler warnings
Most of these were mismatched const qualifiers
2018-07-31 03:04:32 +12:00
a3b6ae9fb9 Cleanup/Refactor: Move CurveCache runtime data into Object.runtime struct.
Also, fix missing cleanup of Object.runtime when copying Object
datablocks!
2018-07-30 16:58:44 +02:00
6d6deeb700 Workbench: Use FXAA instead of TAA when viewport is animated.
Fix T55996 "Playback in "Active Editor Only" doesn't work"
2018-07-30 16:48:51 +02:00
Stefan Werner
b59d85b5a5 Cycles: Fixed OpenCL build. sqr(float4) is available on CUDA and CPU, but not on OpenCL. 2018-07-30 15:42:00 +02:00
27567a6c76 Fix T56020: Crash while opening .blend file made with older version.
We need a NULL workspace check here, in some cases we get a SRTemp
screen even though it's not tagged as temp...
2018-07-30 15:01:48 +02:00
4473427d81 UI: Hide labels from MatCaps
They were added as placeholder to show something until they lazy-load.
But since the load is fast and it's hard to fit the text, and their name
is displayed already in the tooltip, we can do without for now.

In the future when we have insta-tooltips we should make them use this.
2018-07-30 14:50:44 +02:00
bfaf41663a Motion Path: Don't blit MSAA buffer if there is no motion paths 2018-07-30 14:18:55 +02:00
6c6ecdd230 Armature: Fix bone always transparent when enabling MSAA 2018-07-30 14:18:55 +02:00
5a05683da1 Motion Path: Fix motion path when MSAA is enabled 2018-07-30 14:18:55 +02:00
0f97718c10 DRW: Add option to only resolve framebuffer colors without depth test 2018-07-30 14:18:55 +02:00
d65df10216 DRW: Add DRW_shgroup_is_empty and DRW_pass_is_empty 2018-07-30 14:18:55 +02:00
6a493e4430 Viewport: add new default set of matcaps.
These were made by the community and curated by Pablo and William.
Thanks to everyone who contributed!
https://devtalk.blender.org/t/call-for-content-matcaps/737

Command used for compression:
oiiotool %s --ch R,G,B -d half --compression dwab -o output/%s
2018-07-30 13:54:46 +02:00
d01319df76 Shape keys: change default interpolation for absolute shape keys to linear. 2018-07-30 13:54:32 +02:00
bd49a76568 Fix T56121 and maybe others: DST.gpu_context was being created in the wrong DST.gl_context.
In addition to the crash in the selection of bones, this was responsible for other problems such as wrong hair and disappearing objects.
2018-07-30 08:49:27 -03:00
914e4d1212 Fix T56152: Rotate crash w/ individual origins 2018-07-30 20:53:34 +10:00
1d596e29df Merge branch 'master' into blender2.8 2018-07-30 16:51:39 +10:00
c8b6e3d777 Sequencer: move text & color into own category
Add 'Generate' menu, these aren't effects from a user perspective.

D3546 by @rudolf.ortner
2018-07-30 16:46:55 +10:00
f77f819854 Merge branch 'master' into blender2.8 2018-07-30 16:41:28 +10:00
ff6c6f18c1 Cleanup: id-property creation
D3473 by @JacquesLucke
2018-07-30 16:36:07 +10:00
dd38a71277 Merge branch 'master' into blender2.8 2018-07-30 16:26:29 +10:00
f4379f8b91 Use Ctrl Snap to seconds w/ play-head drag
D3056 by @alourenco
2018-07-30 16:16:44 +10:00
f8f4feefb8 Cleanup: trailing space 2018-07-30 15:40:09 +10:00
5f693d7442 Merge branch 'master' into blender2.8 2018-07-30 15:39:12 +10:00
9c960557a7 Cleanup: trailing space 2018-07-30 15:38:39 +10:00
6f1514d22d CMake: omit superfluous Up-to-date messages
Causes a lot of noise when building the install target.
2018-07-30 15:22:09 +10:00
40ad0de002 UI: Custom FPS not showing properly if editor is narrow 2018-07-29 22:56:33 +02:00
5672d92311 Merge remote-tracking branch 'origin/master' into blender2.8 2018-07-29 11:27:01 -06:00
83227de828 make.bat : fix msvc 2017 detection.
when 2017 was not found, it did not properly bail out of the rest of the detection process unless verbose mode was used.
2018-07-29 11:24:49 -06:00
66a00b64c5 Merge branch 'master' into blender2.8 2018-07-29 12:12:36 +10:00
018c9af446 Fix T56120: bad property access (from 2.8)
Thanks to @brita_ for the fix.
2018-07-29 12:09:00 +10:00
8f01623ef3 UI: correct RNA property 2018-07-29 11:54:41 +10:00
f50fa4c5d6 Fix T56120: Crash on "Install Matcap, World or Camera HDRI"
Code was trying to hide properties by name that may not exist.
Check if it was actually found and add 'files' to the filter,
since it is what WM_OT_studio_lights_install uses.
2018-07-28 22:58:33 +02:00
Stefan Werner
b747524144 Cycles: speed up mesh volume bounds construction.
Patch by Stefan, with minor tweaks by Brecht.
2018-07-28 19:23:35 +02:00
decd924116 Fix outliner icon row with counters not correct for nested collections. 2018-07-28 17:48:06 +02:00
bcefb202a2 Cycles: Save a few instructions in area light sampling
Just basic algebra - because all vectors have the same z coordinate, a lot of terms end up cancelling out.

Not exactly a massive improvement, but it's measurable with Branched PT and a high sample count on the lamp.

Reviewers: brecht, sergey

Reviewed By: brecht

Subscribers: swerner

Differential Revision: https://developer.blender.org/D3540
2018-07-27 23:42:50 +02:00
4875958083 Cleanup: Remove occurances of GPULamp 2018-07-27 18:12:02 +02:00
bdbc6fafc0 GPUTexture: Fix wrong texture size check 2018-07-27 17:51:26 +02:00
5c9754c3aa Eevee: Fix assert when baking lightprobes.
The GPU context was freed before all framebuffer attached to it were
deleted.

Fix T56117
2018-07-27 17:35:21 +02:00
31657fef40 Merge branch 'master' into blender2.8 2018-07-27 17:21:43 +02:00
af2a801731 Subsurf: Correction to origindex
Only enforce origindex to NONE for a generated geometry. For the rest
of geometry rely on CustomData_copy() to set it to the proper value.

This will ensure origindex is set correct for cases when there is an
array modifier prior to subsurf.
2018-07-27 17:21:31 +02:00
84d47e3685 Cycles: Initial implementation of detailed statistics
Gathers information about object geometry and textures. Very basic at
this moment, but need to start somewhere.

Things which needs to be included still:

- "Runtime" information, like BVH. While it is not directly controllable
  by artists, it's still important to know.

- Device array sizes. Again, not under artists control, but is added to
  the overall size.

- Memory peak at different synchronization stages.

At this point it simply prints info to the stdout after F12 is done,
need better control over that too.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3566
2018-07-27 17:19:54 +02:00
709b36e43b Cycles: Add utility function to query graph node size in bytes 2018-07-27 17:19:54 +02:00
60499ff25d GHOST: Fix SDL backend.
We use a hidden window for each offscreen context we need.

On X11 (linux) it does not show any other windows in the OS task bar
but it might be the case on other operating systems (untested).
2018-07-27 16:28:44 +02:00
70966af513 Workbench: option to change background
Replaced the draw world option with a shading.background_type enum.
Where the user can select Theme, World or a Custom color.

World and theme colors do not always work in workbench. We needed to
have an option what the user could control locally (per viewport).
Especially when using linked data.

I removed the world background drawing from the draw_manager. It was never used as EEVEE and Workbench both override the logic.

Not 100% sure about the naming of Theme, World, Viewport.
In other parts of blender's codebase World is sometimes called Scene.
Will stick to the names that describes its location best.

{F3990139}

Reviewers: fclem, campbellbarton

Reviewed By: fclem

Subscribers: venomgfx

Tags: #bf_blender_2.8

Differential Revision: https://developer.blender.org/D3551
2018-07-27 15:28:15 +02:00
d6ff778780 Fix crash enabling disabled collection containing curves.
Fixes T55948, T56016, T55926, T55947.

Differential Revision: https://developer.blender.org/D3564
2018-07-27 14:17:37 +02:00
0d20207771 Fix GPU build error after recent commit. 2018-07-27 14:17:37 +02:00
6a05c14a8a DRW: Fix Race condition in defered compilation 2018-07-27 13:57:46 +02:00
141e94f87f Fix T55888: Eevee: crash when shadow cube size is > 512px
Note that this was only reported to happen on AMD GPU + windows.
2018-07-27 13:56:07 +02:00
bd6d0b94bc Fix T55744: Assertion failure using the Knife angle constraint option 2018-07-27 12:16:05 +02:00
c6a4b469e3 RNA: Set default for Camera properties
Change the default clipend value to match the viewport (1000.0f)
2018-07-27 12:16:05 +02:00
5f5fd4c143 UI: Fix error in camera property panel 2018-07-27 12:16:05 +02:00
9a080d2ea6 Fix T56092: command line arguments after -- beginning with -h don't work. 2018-07-27 11:35:38 +02:00
67e690f5fc Cycles: Cleanup, indentation 2018-07-27 11:19:29 +02:00
75c47542d7 Cycles: Cleanup, indentation 2018-07-27 11:09:10 +02:00
b517b31085 Cycles: Cleanup, spelling 2018-07-27 10:30:10 +02:00
fcea94489c Cycles: Cleanup, indentation 2018-07-27 10:28:28 +02:00
46b85d195c Cycles: Cleanup, line length 2018-07-27 10:28:06 +02:00
ca359461a8 Cycles: Cleanup, move functions outside of class methods
There is no reason or justification to have helper functions as
class methods: they do not depend on anything in the class itself.

There are probably more cases like that.
2018-07-27 10:24:03 +02:00
de80b928a3 Cycles: Cleanup, remove unused function 2018-07-27 10:22:45 +02:00
e977fe985f Cycles: Cleanup in image manager, switch statement instead of if-else
Allows to catch enumerator values which are missing from being handled.

Also use `const char*`, no need to construct string just to throw it away.
2018-07-27 10:18:13 +02:00
0093212be9 Merge branch 'master' into blender2.8 2018-07-27 17:41:58 +10:00
fe8d8aa27e Fix Vector.project crash w/ >4 length vectors 2018-07-27 17:41:20 +10:00
2032e4ec9e Merge branch 'master' into blender2.8 2018-07-27 17:09:38 +10:00
3e2dfc6db8 Fix T55991: Python ignores scene switch argument 2018-07-27 16:49:41 +10:00
98c8094e3a Correct arguments for callback 2018-07-27 16:41:18 +10:00
b8ab2a84d3 Merge branch 'master' into blender2.8 2018-07-27 11:01:01 +10:00
71564debf9 Fix T56074: Remove doubles creates holes
Own regression when moving remove-doubles to kd-tree
(seems to happen only in rare cases).
2018-07-27 10:55:30 +10:00
cf080657a1 UI: Tooltip tweaks for Display Mode
Keep UI -> Keep User Interface, and don't use the word UI again in the tooltip.
2018-07-27 02:13:52 +02:00
7d768fc855 UI: Help menu minor tweaks
Show "Operators Cheatsheet" and Python API link only when developers extra is enabled.
Fix URL for User Communities, Developer Community and Release Notes (which 404s
now just like the wiki anyway since the page for 2.80 is being made).
2018-07-27 02:02:11 +02:00
cb42850ef2 Fix assert in snapEditMesh. 2018-07-26 13:48:26 -03:00
d6e769d32e Cycles: Add reflection fix to Bump and Normal Map nodes
While changing the shading normal is a great way to add additional detail to a model, there are some problems with it.
One of them is that at grazing angles and/or strong changes to the normal, the reflected ray can end up pointing into the actual geometry, which results in a black spot.

This patch helps avoid this by automatically reducing the strength of the bump/normal map if the reflected direction would end up too shallow or inside the geometry.

Differential Revision: https://developer.blender.org/D2574
2018-07-26 17:00:31 +02:00
1c41dbb079 Fix compiling after ui cleanups 2018-07-26 14:21:15 +02:00
Vuk Gardašević
bc6e6a758f UI: Use Single Column and Grid Flow layout for Physics Cloth
See D3559
2018-07-26 12:33:31 +02:00
4d83759f6a Cleanup: unused args 2018-07-26 19:52:12 +10:00
William Reynish
2499ee64a1 UI: Single column layout and sub-panels for Rigid Body Physics panels 2018-07-26 11:39:29 +02:00
1f809f34c1 Merge branch 'master' into blender2.8 2018-07-26 18:39:57 +10:00
ab67c6e46b WM: replace UI draw callbacks w/ property poll
Custom drawing functions were used just to control property display.
Move to poll function.
2018-07-26 17:35:33 +10:00
e91bdb10e9 Merge branch 'master' into blender2.8 2018-07-26 15:51:29 +10:00
44370a307c UI: hide transform constraints when not used 2018-07-26 15:44:27 +10:00
0dd3b200b0 Cleanup: remove redundant flag
Caller can pass this flag if necessary.
2018-07-26 14:58:36 +10:00
9257357c3f Merge branch 'master' into blender2.8 2018-07-26 14:49:52 +10:00
629403fb51 WM: remove duplicate ui-list functions
Missed when moving into own file.

Caused issues on MSVC, not GCC.
2018-07-26 14:47:48 +10:00
2e12114f3b Merge branch 'master' into blender2.8 2018-07-26 14:45:14 +10:00
e6c5490323 UI: hide proportional transform options
Adds property poll function to transform.
2018-07-26 11:53:58 +10:00
dbd79c097c WM: Add operator property poll callback
This allows operators to filter out properties from the
auto-generated draw functions.

Some custom draw functions can move to using this.
2018-07-26 11:53:53 +10:00
2df27fa6cf Cleanup: Use const argument 2018-07-26 11:20:03 +10:00
1882dfc47c UI: More opaque type icons in the Outliner
Also always draw the counter of elements-per-type with a dark background
regardless of the active status. It being white when active affects
readability since the icon background itself is already highlighted.

Thanks devtalk forum for feedback.
2018-07-26 02:42:20 +02:00
9c0dea213e Merge branch 'master' into blender2.8
Conflicts:
	source/blender/blenkernel/intern/rigidbody.c
2018-07-25 21:12:04 +02:00
29d1db9ed6 Fix T55964: Direction not normalized in isect_ray_aabb_v3_simple()?
RNA API Object.ray_cast would not normalize direction vector before
doing first quick bbox intersection test, while using its returned
distance value. This could lead to wrong exclusion of object.
Thanks to @codemanx for finding that issue.
2018-07-25 21:05:44 +02:00
5ba4d059c0 Fix (unreported) potential div-by-zero in ray/bbox intersection BLI code.
Also added note that direction parameter should be normalized vector
in case one intend to use returned distance values.
2018-07-25 21:04:28 +02:00
8c9e6c5986 Fix crash Cycles rendering with --debug-value 256. 2018-07-25 19:15:48 +02:00
9a40690242 Fix for holdout / indirect only with collection instances. 2018-07-25 18:30:26 +02:00
bd326d0d1f UI: Sort panels in mesh context
Also collapse by default the less frequented Face Maps and Normals
2018-07-25 16:48:10 +02:00
885cda65c9 Cycles: add per layer collection indirectly on setting.
In the outliner, right click > view layer > set indirect only. This is
like clearing camera ray visibility on objects in the collection, and is
temporary until we have more general dynamic overrides.
2018-07-25 16:45:46 +02:00
William Reynish
e6e8ee2922 UI: Single column and subpanels for Particles Physics Fluids and Boids 2018-07-25 16:12:04 +02:00
b0077992d2 Cycles: add per layer collection mask/holdout support.
In the outliner, right click > view layer > set holdout. This is
temporary until we have more general dynamic overrides, but helps
Spring production for now.
2018-07-25 15:59:54 +02:00
41130ecf16 Cleanup: mark missing Cycles view layer override features with TODO. 2018-07-25 15:59:54 +02:00
William Reynish
5d0a3d3c9c UI: Dynamic Paint single column and sub panels 2018-07-25 15:57:30 +02:00
421017d24a UI: Node Editor Properties single column
Color and Properties panels as sub-panels of Node. Collapse Node properties
by default, since they are already in the node itself and in material properties.
2018-07-25 15:04:28 +02:00
5f1ead6395 Fix T55895: VSE crash while moving a strip
Glitch from multi-edit project. ;)
2018-07-25 14:53:11 +02:00
Vuk Gardašević
4183e62d1b UI: Texture Properties Layout and Cleanup
Initial work on single column layout, flow and organization of
the texture properties. More work needs to be done in the C templates
for image textures.

See D3557
2018-07-25 14:01:22 +02:00
f3524fe759 UI: Minor tweaks to nodes
Match roundness with widget defaults and collapse triangle size with panel's.
Interaction is the same, just an aesthetic tweak.
2018-07-25 12:53:15 +02:00
ee9d375045 UI: Add "New" and "Open..." to the File Context Menu
Puts both operators at easy reach with the left hand since the
shortcuts for these are somewhat cumbersome (Ctrl+O/Ctrl+N)
2018-07-25 11:57:25 +02:00
509d87230a Fix missing particle use count object names with disabled particles. 2018-07-25 11:51:49 +02:00
2e112f5914 Keymap: Use 1..4 to change UV select modes
Support for sync selection switching which keys apply.
2018-07-25 11:02:12 +10:00
d8514482fe WM: keymap utility to set enum from a key range 2018-07-25 11:00:03 +10:00
bd608d9aff Fix mistake in fix for T55798 2018-07-25 09:23:07 +10:00
fdd4b03f33 Correction on the last commit. 2018-07-24 19:45:03 -03:00
4f85982c6f Fix base->flag and base->flag_legacy: The flags of the Transform operator are being added to the bases of the not evaluated view_layer.
But I'm not sure if the flags `BA_WAS_SEL`,` BASE_SELECTED` and `BA_SNAP_FIX_DEPS_FIASCO`(lol XD) should be added to the bases of the not evaluated `view_layer`. This needs to be discussed.
2018-07-24 19:34:49 -03:00
decb724572 Fix T55798: Crash when snapping objects with data recalculated by modifiers.
Although the default behavior is for these objects to be ignored during the snap operation, this should not crash.
2018-07-24 19:13:28 -03:00
a76198cb23 RNA: Remove Unused dof.is_hq_supported and dof.use_high_quality
It's not necessary anymore since we assume it's always high quality.
2018-07-24 18:05:30 +02:00
cfaea24117 Fix T55754: DOF with new Camera is not working
Was due to non initialized gpu_dof.ratio
2018-07-24 18:05:30 +02:00
45addee39e Fix presets not working after Python refactoring. 2018-07-24 17:31:36 +02:00
c924f6f53f Workbench: Fix missing geometry on Iris 640/630 GPUs
For some reason 32c5972653 broke display of
solid meshes in workbench.

After some investigation, it seems that the vertex coordinate output is
degenerated even if the input is correct and the matrix too.

Removing dead code seems to fix the problem. So maybe the GLSL preprocessor
is not doing what it should?
2018-07-24 16:51:01 +02:00
7f7e51161f Fix T56079: crash with startup.blend saved in sculpt/paint modes.
This reverts commit 81a93df6d2, it is not safe
to handle initialization for startup.blend differently. Instead fix the root
issue of the preview icon data structures not being initialized in time.
2018-07-24 12:43:21 +02:00
293c15ec0c Fix T56081: crash with make static override and linked collection. 2018-07-24 12:02:24 +02:00
882ccd924b Fix T55721: crashes with collections panel in object properties. 2018-07-24 11:38:12 +02:00
c4803759a2 Fix T55245: undo with multiple windows and view layers not working correct. 2018-07-24 11:27:05 +02:00
31c49493d1 Fix incorrect active object setting in scripts. 2018-07-24 11:27:05 +02:00
9284c051d6 Fix incorrect object visibility test in baking. 2018-07-24 11:27:05 +02:00
1b415e4456 Motion paths: default to bone head instead of tail location.
This puts the motion path in the same location as the transform gizmo,
which is less confusing especially if you have a custom bone shape where
the tail is not visible.
2018-07-24 11:27:05 +02:00
ec640510a8 Fix T55958: allow the user to select between spring and spring2.
The old springs with damping 1.0 operate in a special way that
is more similar to plastic deformation than a spring. Some users
rely on that, so let the user choose which implementation to use.
This also restores full backward compatibility with 2.79.

Reviewers: sergof

Differential Revision: https://developer.blender.org/D3544
2018-07-24 10:10:48 +03:00
77fd0499e4 Merge branch 'master' into blender2.8 2018-07-24 15:35:01 +10:00
4d978cc2e4 Cleanup: changes from 2.8 2018-07-24 13:59:35 +10:00
b466c09c30 Subsurf: Fix wrong vertices index in vertex data interpolation 2018-07-23 19:14:36 +02:00
f6eccd367c Subsurf: Subdivide polygons to the same resolution
Previously it was ptex faces which were subdividing to the same
resolution. This was looking like more details for non-quad faces,
but was also causing discontinuity in the edge where quad touches
non-quad polygon.

Now ptex faces which are coming from non-quad faces are subdivided
at a half of resolution, matching old behavior and solving
discontinuity problem.
2018-07-23 19:14:36 +02:00
a50e23ba79 Fix compilation issue after merge. 2018-07-23 18:56:24 +02:00
c28a37b5d1 UI: Fix flicker in File Browser header
Move running jobs to the beginning of the row.

Thanks @sergey for reporting
2018-07-23 18:41:20 +02:00
7d6776ba2d Fix missing header include in previous master merge. 2018-07-23 18:37:29 +02:00
adbccae4b4 Merge branch 'master' into blender2.8
Note: Moved doversion of VSE strips uniquename to 2.8 versionning area,
and raised accordingly current file subversion, since that bug also
affected previous 2.8 .blend files...

Conflicts:
	source/blender/blenkernel/BKE_blender_version.h
2018-07-23 17:52:52 +02:00
8876e3aae2 Fix assert when loading file with multiple windows opened
... or when loading a file when having more windows opened than the file
itself.
2018-07-23 17:44:34 +02:00
87090abb95 Eevee: Remove Colored volumetric option.
This option is not necessary as it uses as much memory as the mono-chromatic
transmistance.
2018-07-23 17:44:34 +02:00
bb98e83b99 Fix T55668: Volume Keyframe on Cut-ted Metastrip.
We actually still had cases of Meta strip duplication resulting in
non-unique strip names. Quiet surprising this went unoticed for so long. :(

Fixed that bug, and think it was last one (at least, no other case of
SEQ_DUPE_UNIQUE_NAME usage should be broken, I think...), and raised
subversion and updated doversion to run uniquename check on strips on
all previous fileversions.

Note: will have to do that again when merging in 2.8...
2018-07-23 17:42:55 +02:00
17c3110ae5 Fix large font drawing blurriness in a better way.
GPU_LINEAR is there for shadow font blurring, the real issue was lack of
rounding for the batch offset.
2018-07-23 16:16:39 +02:00
59286ddcf8 transform_snap_object: Better bvhtree creation management for editing multiple objects.
- Use the object referenced in `BMEditMesh` as the `ghash` key to save the bvhtrees in cache;
- Create a boundbox around edit_mesh to test the snap before creating bvhtree;
- Save the `edit_mesh`s bvhtree in the mesh bvh_cache;

This is a part of the D3504.
2018-07-23 11:04:58 -03:00
1333ceca04 Merge branch 'master' into blender2.8 2018-07-23 14:23:21 +02:00
Milan Jaros
01f5601fe5 Fix build for Intel compiler with C++11. 2018-07-23 14:21:43 +02:00
5a05aff73a UI: more descriptive tooltip 2018-07-23 13:16:04 +02:00
66fde2d0b5 Fix T55634: Particle Viewport Display affects render visibilty
Changed code to follow master behavior closer: ignore draw-as checks
when particles are evaluating for rendering.
2018-07-23 12:53:46 +02:00
d7b472c198 Fix wrong view layer rendered from command line
The issue was caused by Render Single Layer option enabled, which is
very handy for artists work, so they can hit F12 and see view layer
they are currently working in a final rendered state. This saves a lot
of time since all the "non-interesting" objects are ignored for such
iterations.

However, for the render farm we need to render view layers which are
explicitly set for render, and ignore active view layer.

Reasonable solution seems to be to ignore the Render Single Layer
option when rendering from the command line. It is really something
more like UI behavior option.
2018-07-23 11:54:41 +02:00
f0dd7dd4c0 Mark view layer renderability and scene single layer render as non-animatable
We can not support animation of those flags reliably in the pipeline, so just
mark them as non-animatable.
2018-07-23 11:54:41 +02:00
96abec41cc Cleanup: comments and UI descriptions for cursor snapping 2018-07-23 11:37:03 +02:00
d432a239ad Outliner Keymap: E key to Exclude collections from View Layer
Alt+E to include.
2018-07-23 11:20:31 +02:00
cdce3b71df Merge remote-tracking branch 'origin/master' into blender2.8 2018-07-22 16:03:46 -06:00
7232b0cbe5 make.bat : fix typo
pointed out by anchpop on irc.
2018-07-22 16:02:28 -06:00
f07140940c Eevee: Principled: Fix Subsurface input behaviour
Match Cycles behaviour of scalling the SSS radius and don't interpolate
between diffuse and SSS result.
2018-07-21 18:15:31 +02:00
4e6bcd10e5 Merge branch 'blender2.8' into soc-2018-bevel 2018-07-21 19:29:15 +05:30
e361e9e99c Render Preview: Fix ID freeing in wrong function 2018-07-21 14:16:29 +02:00
a1689fb091 Eevee: Fix wrong SSR reprojection when switching orthographic view
We just reset the temporal sampling and avoid using the previous frame
for SSR at all.
2018-07-20 22:43:30 +02:00
3005c2e2be Eevee: LightProbes: Fix RNA defaults and remove unused data_draw_size 2018-07-20 22:22:30 +02:00
eae9228a4d Eevee: Lamps: Fix RNA defaults and change defaults for contact shadows 2018-07-20 22:21:44 +02:00
33c4ffdf46 Render Preview: Fix memory leak 2018-07-20 21:31:36 +02:00
a987daa18d Render Preview: Fix problem with multi size icon preview
The id was free after each size.
We now only free after the job has finished.
2018-07-20 20:36:14 +02:00
4609205a3f GPUMaterial: Cleanup unused headers 2018-07-20 20:06:39 +02:00
28fa79219d GPUMaterial: Texture Node: Add support for Cubic filtering
Like in cycles it's a bit more slower than linear but it's smoother.

Works for all projection type.
2018-07-20 19:17:15 +02:00
26b6b5871e GPUMaterial: Texture Node: support for nearest (closest) filtering method
Add placeholder for cubic and smart filtering for now.
2018-07-20 19:16:48 +02:00
e7d8908f14 GPUMaterial: Optimize and fix blending in box mapping
Blending was done in srgb space and was not matching cycles.

Optimized by using less branches and more vector operations.
2018-07-20 19:16:48 +02:00
a6f750dd41 Fix T54455, T56053, T55564: Cycles OpenCL build error after recent changes. 2018-07-20 19:10:45 +02:00
9ad5eafe46 Fix incorrect magnification filter for text texture.
Barely any visible difference, except when drawing big custom text
with the Python API.
2018-07-20 17:40:46 +02:00
b3b4b9fb8c Fix WITH_HEADLESS build. 2018-07-20 15:25:47 +02:00
72cbf966fb Depsgraph: Fix missing relation from proxy_form's ID properties
Hopefully this will fix issue with camera rig where camera properties
(like, near/far clip) are driven by custom properties from bones, and
those bones are actually belong to proxied armature.
2018-07-20 15:15:12 +02:00
4a79b46b9c Fix build error with release + debug info build. 2018-07-20 13:35:08 +02:00
244b825ccd Fix assert for Image & Brush icon preview 2018-07-20 12:54:57 +02:00
a185bf3b85 Workbench: Add backface culling support 2018-07-20 12:41:54 +02:00
61c00802d0 Basic Draw Engine: Cleanup unused code.
This engine is only used for selection and draw depth so no need for
anything else.

Also add backface culling support to selection.
2018-07-20 12:41:54 +02:00
ecfb74833d Merge branch 'master' into blender2.8 2018-07-20 12:13:58 +02:00
710a059549 Cleanup: Move 'WAVEFORM_LOADING' of sounds from flags to tags.
This is purely runtime data, so move it to new tags. ;)
2018-07-20 12:11:34 +02:00
f48e81e720 Fix T55414: waveforms are reprocessed when undoing
Add new tag to bSound (runtime flags), and make read code to set a 'no
reload waveform' new tag, since it uses a mapping to get existing
waveform in undo case...
2018-07-20 12:01:38 +02:00
2de283615f Make draw_armature() abort in case pose is not up-to-date.
Previously it was calling `BKE_pose_rebuild()`, such thing shall never
be called from drawing code! Hopefully this now works as expected and
that horrible hack is not needed anymore.
2018-07-20 10:22:06 +02:00
c205de0203 Fix T55973: [2.8] Crash when 'apply pose as rest pose' when bone scale is 0,0,0.
`BKE_pose_rebuild()` should (ideally) always trigger a rebuild of the
depsgraph, since it can add or remove posechannels.

This function now takes a Main parameter to ensure that related
depsgraphes are tagged as dirty (kept it optional, for some corner cases).

We should also probably double-check calls to that function, think in
theory it should only be called from depsgraph itself? But for now...
2018-07-20 10:22:06 +02:00
8a42b3909f Subsurf: Add basic statistics to help benchmarking 2018-07-20 09:28:02 +02:00
94722121e5 Fix MSVC compilation error in a less hacky way 2018-07-19 17:20:48 +02:00
44c7a7cf8b Fix compilation error with MSVC 2018-07-19 17:18:19 +02:00
0bf8096501 Resolve the opposite vector ambiguity in Damped Track constraint.
Damped Track by specification attempts to arrive at the desired
direction via the shortest rotation. However with opposite vectors
there are infinitely many valid 180 degree rotations. Currently
it gives up and does nothing.

I think that it would be more reasonable to resolve the ambiguity
arbitrarily, so that Damped Track won't have a weird dead zone.
To make it more predictable I use a local axis.

In addition, the singularity area vicinity has some floating
point precision problems that result in significant jitter.
This applies workarounds for two causes of instability.

Differential Revision: https://developer.blender.org/D3530
2018-07-19 17:58:27 +03:00
ca0ecf4c08 Fix crash with previews of non-IDs, like pose library thumbnails. 2018-07-19 16:31:15 +02:00
5037dd8abd GPU: Add GC to FBOs and UBOs and centralize all GCs
GPUFrameBuffers were being free when no context was attached or in the
wrong gl context. This make sure this does not happen again.

You can now safely free any gl resource from any thread (well as long as
it's not used anymore!).
2018-07-19 16:13:15 +02:00
b6b185691f Code cleanup and fixes 2018-07-19 19:27:45 +05:30
3882d0943b Subsurf: Fix wrong edge original index 2018-07-19 11:23:59 +02:00
64bbfaf421 Subsurf: Set original index for high-poly vertices 2018-07-19 11:23:59 +02:00
9df1e54079 Cleanup: style 2018-07-19 16:06:37 +10:00
34a45c54e0 Merge remote-tracking branch 'origin/master' into blender2.8 2018-07-18 20:02:16 -06:00
51f14cfa43 make.bat : restore msvc2015 support.
broke when i removed the 2013 support.
2018-07-18 20:00:34 -06:00
20191980f4 Cycles: increase volume stack to support 32 overlapping volumes.
This increases stack memory usage some, and ideally we'd support a dynamic
size. But this is quite difficult on the GPU and hopefully 32 is enough even
for very complex cases.
2018-07-18 22:58:52 +02:00
e81dc0b7bc Fix E key in Python console not working after recent changes. 2018-07-18 22:23:29 +02:00
c05a8460a6 Icon/Render Preview: Fix Race condition with BKE_*_localize
When editing a Material the depsgraph can throw away the evaluated ID
before the preview job localized the said ID.

To fix this we localize the ID from the main thread.

Also fix WM_OT_previews_ensure crashing because of no depsgraph.
2018-07-18 19:30:34 +02:00
057b4a6acf Fix/workaround T56019: memory leak with preview renders.
I would not expect the order of registration to matter, and ideally we want
to order the engines in the UI menu differently, but this helps for now.
2018-07-18 18:46:40 +02:00
9d514a4e6f Cleanup: remove debug comment. 2018-07-18 18:11:59 +02:00
2604f281b7 Cycles: Fix missing nested particle systems when instanced multiple times
Was only visible when doing command line, since it was happening due to
cache-free policy which was aimed to bring memory usage down.

The issue is that if object with particle system is used as a nested
duplicator multiple times, it will only generate children first time,
and after that its caches are freed. After that duplication system
can not generate any instances, since the path cache is lost.

Now we delay caches free to after all objects are synchronized, which
ensures all instances are generated.

This will increase a memory peak a bit during object synchronization
time, but overall it shouldn't be that bad, since memory footprint
after synchronization will stay the same as before this change.

The ultimate thing to do here would be to drop the whole dependency
graph away, but this will require:

- API on engine side, to inform it to drop the dependency graph.
- Changes in Cycles report system to NOT use evaluated scene to get
  scene name (evaluated scene will be gone with dependency graph).
2018-07-18 16:09:19 +02:00
5fd677c83c Subsurf: Add subdivision code which uses new module
The code is ifdef-ed for now, since there is more work needed
to be done before we can officially switch to it.

Uses new subdiv module.
2018-07-18 15:42:49 +02:00
433bb9bbcb Subsurf: Begin new subdivision surface module
The idea is to use this as a replacement of old CCG, now it is
based on OpenSubdiv. The goal is to reduce any possible overhead
which was happening with OpenSubdiv used by CCG.

Currently implemented/supported:

- Creation from mesh, including topology on OpenSubdiv side,
  its refinement.

- Evaluation of limit point, first order derivatives, normal,
  and face-varying data for individual coarse position.

- Evaluation of whole patches.

  Currently not optimized, uses evaluation of individual coarse
  positions.

- Creation of Mesh from subdiv, with all geometry being real:
  all mvert, medge, mloop, and mpoly.

  This includes custom data interpolation, but all faces currently
  are getting separated (they are converted to ptex patches, which
  we need to weld back together).

Still need to support lighter weights grids and such, but this
is already a required part to have subsurf working in the middle
of modifier stack.

Annoying part is ifdef all over the place, to keep it compilable
when OpenSubdiv is disabled. More cleaner approach would be to
have stub API for OpenSubdiv, so everything gets ifdef-ed in a
much fewer places.
2018-07-18 15:42:49 +02:00
c64262a05a OpenSubdiv: Add API to evaluate face-varying data
There are move changes along the line to keep everything
working from from C.
2018-07-18 15:42:49 +02:00
428743a9b0 Cleanup: style for GPU module 2018-07-18 23:10:31 +10:00
f882df9e0f GPU: Fix build error on Mac and Windows. 2018-07-18 14:58:56 +02:00
3d67819a17 Merge branch 'master' into blender2.8 2018-07-18 14:13:16 +02:00
257d072317 3D View: show 3D axis-letter when pointing away
While only the positive axis is shown,
account for an exception when axis aligned.
2018-07-18 22:08:10 +10:00
L. E. Segovia
5078b9d2d0 Cycles: add Principled Hair BSDF.
This is a physically-based, easy-to-use shader for rendering hair and fur,
with controls for melanin, roughness and randomization.

Based on the paper "A Practical and Controllable Hair and Fur Model for
Production Path Tracing".

Implemented by Leonardo E. Segovia and Lukas Stockner, part of Google
Summer of Code 2018.
2018-07-18 13:59:06 +02:00
566b319335 Cleanup: Cryptomatte node style tweaks. 2018-07-18 13:59:06 +02:00
Stefan Werner
bdda0964e0 Compositor: Cryptomatte compositing node.
This patch adds a new matte node that implements the Cryptomatte specification.
It also incluces a custom eye dropper that works outside of a color picker.
Cryptomatte export for the Cycles render engine will be in a separate patch.

Reviewers: brecht

Reviewed By: brecht

Subscribers: brecht

Tags: #compositing

Differential Revision: https://developer.blender.org/D3531
2018-07-18 13:03:34 +02:00
8cd7828792 GWN: Port to GPU module: Replace GWN prefix by GPU 2018-07-18 11:49:15 +02:00
247ad2034d GWN: Port to GPU module: Move files to GPU
This does not include all the struct and type renaming. Only files were
renamed.

gwn_batch.c/h was fusioned with GPU_batch.c/h
gwn_immediate.c/h was fusioned with GPU_immediate.c/h
gwn_imm_util.c/h was fusioned with GPU_immediate_util.c/h
2018-07-18 00:17:57 +02:00
6329629bb9 GWN: Port to GPU module: codestyle & licence 2018-07-18 00:17:57 +02:00
a28fd8fee2 Merge remote-tracking branch 'origin/master' into blender2.8 2018-07-17 14:46:22 -06:00
41045478ab make.bat: remove msvc2013 support. 2018-07-17 14:44:47 -06:00
644fadf2f0 Render: add "OpenGL" render engine.
This is intended for quick renders for previsualization, animation previews
or sequencer previews. It provides the same settings as found in the 3D view
Shading popover in solid display mode, but in the scene render properties.

The "Workbench" engine was removed, and this name no longer appears in the
user interface, it's purely an internal name. We might come up with a better
name for this OpenGL engine still, but it's good to be consistent with the
OpenGL Render operator name since this has a similar purpose.
2018-07-17 16:46:09 +02:00
43ac0f38d7 Fix weld incoherent normals with weld operation 2018-07-17 18:57:22 +05:30
7b3a18f0aa Cleanup: moving shading type into View3DShading.
So all shading settings are in this struct and can be reused in the OpenGL
render engine.
2018-07-17 14:59:07 +02:00
f8e2dba7fe UI: move specular light settings to Lights tab in user preferences. 2018-07-17 14:59:07 +02:00
117a5c0ac7 Fix Python error removing studio lights in user preferences. 2018-07-17 14:59:07 +02:00
6d8e36b723 Fix inconsistent shade smooth naming in object and edit mode. 2018-07-17 14:59:07 +02:00
7c8e6048b3 Merge branch 'master' into blender2.8 2018-07-17 13:58:26 +02:00
efe94793c0 Fix T56003: Opening image files as movies in VSE crashes.
metadata loading code was assuming all videos in Blender were from
FFMPEG... added empty place-holders for other types too, we probably
could load some metadata from pictures or AVI files too!
2018-07-17 13:55:43 +02:00
8d53b72b81 World: Added 'Viewport Display' panel
The Properties->World tab had no Viewport Display panel. The world color
itself was hidden when the 'use_node_tree' was enabled.

Also renamed the World.horizon_color to World.color as it has nothing to
do with the color of the horizon (old BI feature)
2018-07-17 12:39:03 +02:00
Vuk Gardašević
84d4037363 UI: Single-column and flow layout for Scene properties
See D3532
2018-07-17 12:17:42 +02:00
Vuk Gardašević
273482749e UI: Minor fixes to separators on menus
Closes D3547
2018-07-17 11:59:24 +02:00
7dcc7bd5ee Object Mode: Add back object bound display 2018-07-17 11:36:21 +02:00
dc3b3d9453 UI: Lamp -> Light for the object type visibility operators
Spotted in a live stream by Emilton Mendoza, thanks!
2018-07-17 00:45:56 +02:00
b85be88655 Fix (IRC-reported) wrong usercount handling of deprecated IPO datablocks.
versionning code would unref those twice... Reported by @ßergey on IRC, thanks!
2018-07-16 22:29:26 +02:00
d5f048f883 Eevee: Add debug visual for Cascaded Shadow Maps 2018-07-16 20:08:09 +02:00
db374d6658 DRWDebug: Add new debug functions for spheres and matrices. 2018-07-16 20:08:09 +02:00
1f69ffd35b Eevee: Fix Cascaded Shadow Maps glitches
There was an issue that caused the cascaded shadow map to appear glitchy
when the lamp was not at the origin.
2018-07-16 20:08:09 +02:00
44a9c39229 Workbench: Fix use of uninitialized memory. 2018-07-16 20:08:09 +02:00
eef6e1cca1 StudioLight: Fix codestyle 2018-07-16 20:08:09 +02:00
7a693626d6 Smoke: Port display to Workbench + object mode
This does not fix the smokesim. It only port the drawing method.

The Object mode engine is in charge of rendering the velocity debugging.

Things left to do:
- Flame rendering.
- Color Ramp coloring of volume data.
- View facing slicing (for now it's only doing sampling starting from the
  volume bounds which gives a squarish look)
- Add option to enable dithering (currently on by default.
2018-07-16 20:08:09 +02:00
43593e846b Matcap: Fix missing pixel on preview icons 2018-07-16 20:08:09 +02:00
5852420023 Merge branch 'master' into blender2.8 2018-07-16 17:34:10 +02:00
e6af8758c8 Ghost: Fix memory leak happening with keyboard mapping access
So far only noticed system de-initialization doesn't perform full
object free. So rather harmless but yet stupid.
2018-07-16 17:32:57 +02:00
dc123ac9e5 Merge branch 'master' into blender2.8 2018-07-16 16:18:43 +02:00
1e1c858cf1 Cleanup: Remove obscure flag which was only used for read in subsurf code
Some sort of rudiment from many years ago, is never set by 2.5x code.
2018-07-16 16:15:57 +02:00
3465013bb7 Merge branch 'master' into blender2.8 2018-07-16 15:58:39 +02:00
72d1fb9934 Cleanup: Use const qualifier for UV vertex map 2018-07-16 15:58:12 +02:00
88c2193d16 Merge branch 'master' into blender2.8 2018-07-16 15:48:13 +02:00
20f3cbfb78 Cleanup: More clear naming in UV vertex/element mappings
Also use unsigned short for loop index within a polygon for UV vertex
mapping, which matches UV element mapping.
2018-07-16 15:44:43 +02:00
77d70c7f1d Merge branch 'master' into blender2.8 2018-07-16 15:16:00 +02:00
43f0af734e Fix T55944: fbx export error with smoothing face
ddee0931b8 added PROP_RAW_BOOLEAN case for foreach_set, but missed
foreach_get

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D3534
2018-07-16 15:03:21 +02:00
96b4e43e8d Fix T55527: creating a Quaternion without args should result in identity
quaternion

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D3487
2018-07-16 15:03:21 +02:00
de2f1c64fe Merge branch 'master' into blender2.8 2018-07-16 14:36:59 +02:00
80795ff897 Buildbot: update for new VS2017 buildbot worker name. 2018-07-16 14:34:24 +02:00
e142339162 Fix compilation with older OpenSubdiv libraries
Only fixes compilation error, the functionality will be limited.

Currently we don't care that much, since all the work is done in
the branch anyway.

Later on when we'll know which fixes we need to apply on top of
latest OpenSubdiv library we will call a library upgrade.
2018-07-16 12:55:39 +02:00
775c4eb903 OpenSubdiv: Remove one more unused file 2018-07-16 12:34:19 +02:00
d3674587b2 OpenSubdiv: Remove unused file 2018-07-16 12:33:32 +02:00
010e24a95c OpenSubdiv: Remove UV coordinates from converter
Converter only defines topology, not coordinates or (face)varying data.
2018-07-16 11:12:02 +02:00
d920382046 OpenSubdiv: Re-work C-API integration
Main goal is to make API simpler to follow (at least ion terms what
is defined/declared where, as opposite of handful big headers which
includes all the declarations), and also avoid a big set of long and
obscure functions.

Now C-API files are split into smaller ones, following OpenSubdiv
behavior more closely, and also function pointers in structures
used a lot more, which shortens functions names,

UV integration part in GL Mesh is mainly stripped away, it needs
to be done differently. On a related topic, UV coordinates API in
converter needs to be removed as well, we do not need coordinates,
only island connectivity information there.

Additional changes:

- Varying interpolation in evaluator API are temporarily disabled,
  need to extend API somewhere (probably, evaluator's API) to inform
  layout information of vertex data (whether it contains varying
  data, width, stride and such).

- Evaluator now can interpolate face-varying data.
  Only works for adaptive refiner, since some issues in OpenSubdiv
  itself.

Planned changes:

- Remove uv coordinates from TopologyConverter.
- Support evaluation of patches (as opposite to individual coordinates
  as it happens currently).
- Support more flexible layout of varying and face-varying data.
  It is stupid to assume varying is 3 floats and face-varying 2 floats.
- Support of second order derivatives.
- Everything else what i'm missing in this list.
2018-07-16 09:52:37 +02:00
ab9bd557ad Cleanup: doxy comments 2018-07-15 20:34:24 +02:00
b29b73a67e Gizmo: update Python templates 2018-07-15 19:51:11 +02:00
edbb2d2279 Fix Cycles incorrect resize and CMYK conversion of uint16/half images. 2018-07-15 18:38:09 +02:00
57ab7daa2a GPU_matrix: use Blender's naming conventions
Thanks to @sergey for review
2018-07-15 15:34:13 +02:00
b457cae397 Cleanup: use variable names based on term gizmo 2018-07-15 14:35:33 +02:00
b5451a642f 3D View: New view gizmo design
Simplify the default navigation gizmo.

See: T54723
2018-07-15 11:32:34 +02:00
e00f0686f7 Cleanup: style, doxy file 2018-07-15 10:53:34 +02:00
09431033e9 Cleanup: split GPU_batch
Split out presets and utilities for creating batches.
These functions are quite specialized and not related to typical usage.
2018-07-15 10:51:49 +02:00
52ebbeedc9 UI: Default theme minor tweaks
Darker color for group nodes and minor adjustments
2018-07-15 04:44:45 +02:00
f8537a5d0d UI: Camera Display panel rename to Viewport Display
Matches all other panels with Viewport properties
2018-07-15 02:35:33 +02:00
d2b28a8bf1 UI: Use icon for Material Link
Communicates the same by giving more room to the Material datablock name
2018-07-15 01:22:33 +02:00
b6a97baa0e UI: Use full width for ID blocks in World, Light, Camera, Texture
Also close Preview panel for lights by default and move World custom props last
2018-07-15 01:22:33 +02:00
680994643c Merge branch 'master' into blender2.8 2018-07-15 00:54:12 +02:00
83a4e1aaf9 Cycles: add voronoi features and distance settings from Blender.
Features to get the 2nd, 3rd, 4th closest point instead of the closest, and
various distance metrics. No viewport/Eevee support yet.

Patch by Michel Anders, Charlie Jolly and Brecht Van Lommel.

Differential Revision: https://developer.blender.org/D3503
2018-07-15 00:45:42 +02:00
92a6b0ad6f UI: Hide Preview panel by default on Material properties
And move Custom Properties panel last
2018-07-15 00:13:35 +02:00
4697604331 Cleanup: use float3 SSE instead of ssef for voronoi texture. 2018-07-14 23:58:20 +02:00
fdcd9103cc WM: rename manipulator to gizmo in the toolbar 2018-07-14 23:58:07 +02:00
89299f6620 WM: rename manipulator to gizmo in Python API 2018-07-14 23:55:54 +02:00
5ebebcfbff WM: rename manipulator to gizmo internally 2018-07-14 23:49:00 +02:00
cd16004132 WM: rename files, manipulator -> gizmo
Edit doxy files and header guards only.
2018-07-14 23:16:34 +02:00
fc7c934cfc UI: rename manipulator to gizmo
This is a common, short, distinctive term often used for this purpose.

Changes to internal API's still needed.
2018-07-14 22:29:35 +02:00
5a716701e8 GPU_batch: fix error w/ interior line removal
Caused glitch w/ navigation icons showing inner lines.
2018-07-14 15:59:47 +02:00
bb2c47a329 Keymap: reduce right shift in 2.7x keymap 2018-07-14 11:46:18 +02:00
f9aab3b091 Keymap: reduce right shift in generated keymaps 2018-07-14 11:46:16 +02:00
9dbee5ccc2 Merge branch 'master' into blender2.8 2018-07-14 10:27:07 +02:00
ceba8e28b7 Rename operator property from last commit
Restore operator had same option named differently.
2018-07-14 10:20:27 +02:00
50e3cd0bb3 Keymap: option to export all keymaps
Useful to store a snapshot of the current keymap state
so changes to the default keymap are ignored.

Also useful for testing keymap export works properly.
2018-07-14 10:15:46 +02:00
0f340a1fa2 Cleanup: f-string use 2018-07-14 09:32:52 +02:00
9d1ad27fdc Merge branch 'master' into blender2.8 2018-07-14 09:31:52 +02:00
43973410f3 Cleanup: use f-string for addon_utils 2018-07-14 09:30:59 +02:00
7d73ba904e Cleanup: minor change for f-string use 2018-07-14 09:30:50 +02:00
9ca8f40790 Keymap: remove double space in tool-keymap 2018-07-14 09:02:36 +02:00
19a55b5a00 UI: More descriptive tooltip 2018-07-14 01:37:01 +02:00
5d6d565792 VSE: Add image strips with alpha over as blend type 2018-07-14 00:12:28 +02:00
cb22dd6f5d UI: Capital letters for property 2018-07-14 00:12:28 +02:00
d9e79b0756 Add include missing in release builds 2018-07-13 20:22:20 +02:00
bc12c6f542 UI: Align Lighting sub-panel of the Shading popover
This better aligns the matcap/hdri browser, rotation/background sliders and
preferences/flip matcap button.

The remaining sub-panels are not perfeclty aligned yet, once the sub-panels
separation is more prominent (and they can be collapsed) we can align those.

Thanks devtalk forum for feedback!
2018-07-13 20:12:06 +02:00
cca87ccc75 UI: remove space/region from popover args
Instead use global panel-type list.
2018-07-13 19:16:35 +02:00
af0fc66049 WM: register global list of panel types
Allows simple lookups for popovers.
2018-07-13 19:15:13 +02:00
6845306c68 Correct recent menu split
Somehow duplicate API didn't error when linking.
2018-07-13 18:56:59 +02:00
4ca2983096 Fix missing panels in texture properties with image texture. 2018-07-13 18:21:58 +02:00
cfe2c3213f Fix T55965: shrinkwrap modifier apply not working. 2018-07-13 18:21:58 +02:00
23ca12ec47 Viewport: don't show look dev shader balls by default.
We will show these in the shading workspace by default, but for most new
3D viewports that you open these are not needed.
2018-07-13 18:21:58 +02:00
dc00d66c89 UI: only show API defined custom properties when Developer Extras is on.
These are intended to behave just like any other builting property, so
no to always show them in the Custom Properties panels for regular users.
2018-07-13 18:21:58 +02:00
5e2804a40b Merge branch 'master' into blender2.8 2018-07-13 18:20:10 +02:00
87535dd73d Makefile: add note about environment vars 2018-07-13 18:16:05 +02:00
135b7f5c6a Merge branch 'master' into blender2.8 2018-07-13 18:04:41 +02:00
a6ec402f5a Remove invalid assert 2018-07-13 17:59:26 +02:00
7774ad7dd3 UI: Wider Dyntopo popover to fit all settings
Suggested by kostex_mb on IRC
2018-07-13 17:58:31 +02:00
5eaa8bf02d Fix bad assert on redo 2018-07-13 17:37:00 +02:00
4705682151 Merge branch 'master' into blender2.8 2018-07-13 12:52:10 +02:00
f6367ecfb6 Cleanup: operator type API, header 2018-07-13 12:47:04 +02:00
2ead3f0765 Merge branch 'master' into blender2.8 2018-07-13 12:38:46 +02:00
c7c7bfae75 Merge branch 'master' into blender2.8 2018-07-13 12:22:21 +02:00
8ff3f7f601 Cleanup: move WM type registration into own files
Type registration is mostly boiler plate logic,
which can be separated from other API's.
2018-07-13 12:20:42 +02:00
30bffb5a3a Nodes: add sqrt, ceil, floor and fract to math nodes.
This works for Cycles, Eevee, texture nodes and compositing. It helps to
reduce the number of math nodes required in various node setups.

Differential Revision: https://developer.blender.org/D3537
2018-07-13 11:00:10 +02:00
399cbd3b6b UI: show popover shortcuts in tooltip 2018-07-13 10:57:25 +02:00
ef423d9876 Merge branch 'master' into blender2.8 2018-07-13 10:52:40 +02:00
f4213c1408 Cleanup: id-property API use
Also clarify comments.
2018-07-13 10:51:49 +02:00
80a983ae5e Merge branch 'master' into blender2.8 2018-07-13 10:31:30 +02:00
252ebf6bfd Cleanup: split keymap lookups into own functions
More will be added in 2.8, keep this manageable.
2018-07-13 10:30:18 +02:00
f27449d117 Fix T55920: viewport "navigate" shows on transform 2018-07-13 10:00:36 +02:00
b2d8f83444 Keymap: run search by its key in tools popup
The button & key are displayed here, so its best if the shortcut works.
2018-07-13 09:18:46 +02:00
06b9f000e5 Merge branch 'master' into blender2.8 2018-07-13 09:05:55 +02:00
8c957468bc Keymap: dope-sheet hotkey to change falloff 2018-07-13 09:05:41 +02:00
8f884c22f1 Keymap: dope-sheet hotkey to change falloff 2018-07-13 08:59:19 +02:00
8a429b03e1 Cleanup: style 2018-07-13 08:42:34 +02:00
a855a763c2 Merge branch 'master' into blender2.8 2018-07-13 08:40:17 +02:00
fb5597540d Cleanup: right shift arguments 2018-07-13 08:36:10 +02:00
a81d0108fc Cleanup: rename snap enum 2018-07-13 08:18:18 +02:00
6d3ff55e1c Correct error mixing fraction/screen snap
Thanks @mano-wii for pointing out
2018-07-13 08:14:16 +02:00
6f8a141fad Merge branch 'master' into blender2.8 2018-07-12 21:43:51 +02:00
e77d2b4e3f Cleanup: remove legacy mesh save support
This was used for saving files for Blender 2.6x.
2018-07-12 21:35:57 +02:00
10c1f3fbfe Fixed shading errors with normals and added proper weighting
to harden normals to make it consistent with wn modifier
2018-07-12 23:30:29 +05:30
0c41d61008 WM: snap to fractions when resizing areas
Snap to fractions in 1/(2,3,4,8),

Nice for less arbitrary layouts.
2018-07-12 16:55:16 +02:00
5aff20dfd5 UI: add toggle fullscreen to window context menu 2018-07-12 15:25:05 +02:00
415018778c PyAPI: show line, not call-stack for field warning
Was too noisy and hard to tell warnings from exceptions.
2018-07-12 15:22:55 +02:00
69b7ae8397 Merge branch 'master' into blender2.8 2018-07-12 14:46:48 +02:00
753a600e35 PyAPI: add undo redo handlers
Useful so Python can clean up before/after undo steps.
2018-07-12 14:43:35 +02:00
c21488df5a Fix T55945: Outliner crash
crashed when using filtering and no item was found ('Blender File' mode)

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D3535
2018-07-12 13:37:29 +02:00
9a5fb0209e Fix T55949: increase color management exposure hard range. 2018-07-12 11:47:19 +02:00
98c215f4db Keymap: add 3D view snap popup
The key was available for other spaces,
removed because it conflicted with changes
which have since been reverted.
2018-07-12 11:46:16 +02:00
5cdfb74dd8 Keymap: add utility function for panel popups 2018-07-12 11:43:37 +02:00
f4d4047d80 Merge branch 'master' into blender2.8 2018-07-12 11:20:48 +02:00
d75b8e5f01 Cleanup: header guards 2018-07-12 11:19:22 +02:00
e387a4e768 Cleanup: style, duplicate header 2018-07-12 11:16:22 +02:00
a2929edf28 Merge branch 'master' into blender2.8 2018-07-12 11:10:25 +02:00
0108ce1fe5 Cleanup: pep8, cycles 2018-07-12 11:03:13 +02:00
75d69eab69 Minor cleanup to last commit
No need to make attr-lists with the current layout logic.
2018-07-12 10:54:53 +02:00
77928c2a09 UI: Group geometry in object visibility popover
Makes it easy to quickly hide all non-geometry.
2018-07-12 10:51:00 +02:00
864a4cf64b Keymap: Modifiers to control mesh elem switching
Shift/Ctrl control extend/expand when number keys are used
to switch modes.
2018-07-12 10:37:20 +02:00
21b6983b9d UI: minor edits to overlay popover
- Rename "Viewport Info" to "Text Info".
  Name was too vague, nearly everything is information,
  this currently only controls overlay text.

- Swap text-info & 3D-cursor, making 3D-cursor less prominent.
2018-07-12 10:14:19 +02:00
963da9ff6e UI: 4-state icon for view visibility popover
This is a quick way to see if some of the object types in the
scene are hidden or unselected.

Icon design may change.
2018-07-12 09:39:41 +02:00
66087fe127 Merge branch 'master' into blender2.8 2018-07-12 09:15:06 +02:00
b328a59373 Icons: support setting blender, inkscape commands 2018-07-12 09:14:13 +02:00
55354d734e Merge branch 'master' into blender2.8 2018-07-12 08:31:19 +02:00
1db47a2ccd Fix PyRNA class registration w/ Python 3.7
In Python3.7 this now raises an error.
2018-07-12 08:30:39 +02:00
d28d202fd1 PyAPI: remove bpy.utils.register_module
Remove bpy.utils.register_module() & logic tracked RNA classes.
2018-07-11 23:13:37 +02:00
09aa799e53 PyAPI: Use annotations for RNA definitions
- Logical use of fields since they define type information.
- Avoids using ordered-dict metaclass.

Properties using regular assignments will print a warning and load,
however the order is undefined.
2018-07-11 22:18:09 +02:00
b843753ad5 Buildbot: initial configuration for Visual Studio 2017. 2018-07-11 21:38:00 +02:00
e3c85aaca7 Manipulator: expose use_select_background via RNA 2018-07-11 20:23:34 +02:00
4880b71d54 UI: Flip Overlays/Shading position
This brings the Object Visibility dropdown closer to overlays which
also controls visibility of elements int he viewport, so it makes more
sense there. Also placing the Overlays settings closer to the viewport.
2018-07-11 20:10:27 +02:00
75149b429f Added support for beveling curves 2018-07-11 22:36:44 +05:30
4b57bb0387 UI: overlay, remove redundant 'object' term 2018-07-11 19:01:10 +02:00
c643f02b07 UI: Fix Seams button drawing differently 2018-07-11 19:01:01 +02:00
4e9d039ef7 3D View: option not to draw center dots
While this is a fairly obscure option,
it means it's possible to disable all overlays except for any
overlays the users wants to see.
2018-07-11 18:55:54 +02:00
9bf1868eae UI: Rename Bone Select to Fade Geometry in Overlay popover
Part of design: T55863
2018-07-11 18:54:42 +02:00
960784e719 UI: Overlay panel fix for display_all 2018-07-11 18:46:08 +02:00
4299f62114 UI: Re-arrange Overlay popover for Mesh Edit Mode
Sub-panels for shading, measurement, normals, freestyle and developer.
Less-used sub-panels will be collapsed by default once their implementation
is complete (fixing spacing between sub-panels, adding the triangle to collapse, etc).

Also added missing check for overlays on/off on existing sub-panels.
2018-07-11 18:41:38 +02:00
ccfc66edec UI: Add missing Viewport Info to Overlay popover 2018-07-11 18:41:38 +02:00
78988e175a Fix T55915 DOF Number of blades wrong logic
Thanks @kostex for the fix.
2018-07-11 18:33:35 +02:00
5db8f6d189 Edit Mesh: Fix missing loose edges if vertex is at local origin 2018-07-11 18:20:25 +02:00
b90646dc0e Transform Manipulator: fix scale handle selection
The scale handles couldn't be accessed when rotation was enabled and
they pointed away from the view.
2018-07-11 18:09:19 +02:00
8bab591758 UI: overlay panel minor tweak
Move face-orientation to less prominent location since its
more of a debugging option.
2018-07-11 17:22:57 +02:00
cbfe522bb3 Fix manipulator hiding cursor
Manipulator highlight, then transform would hide the mouse cursor.
2018-07-11 17:18:44 +02:00
ad03a06d3c Eevee: LightCache: Fix autobake starting when it should not 2018-07-11 16:54:20 +02:00
b1c2f4d468 Numeric Input: preference to default to advanced 2018-07-11 16:32:27 +02:00
7552972de0 UI: Remove duplicate Viewport Display panel from Scene properties
The Shadow and SSAO settings here are accessible from the Shading popover.
2018-07-11 16:07:40 +02:00
0ae440eba5 UI: Overlay popover - Wireframe slider style same as in shading popover
Avoids having to switch between two icons, which was misaligned anyway.
2018-07-11 16:07:40 +02:00
05b6b5d234 UI: Re-arrange Shading popover
* Unify X-Ray/Shadow toggle and factor, using the whole width gives you finer control
* Shadow settings next to intensity slider
* Cavity settings next to Ridge/Valley sliders
* Collapse Cavity settings when not used
* Make MatCap preview and browser dialog smaller. MatCaps are added by the user
so she is already familiar with how they look. No need to preview them that big
while browsing. To see the MatCaps in detail we have the User Preferences/Asset Manager.

Having popovers inside popovers triggers some minor glitches that will be addressed later.
(e.g. they open on mouse over and the popover arrow is not aligned)
2018-07-11 16:07:40 +02:00
4116435e2b Fix T55914: Blender 2.8 Crashes when increasing the repeat count for a track in NLA
Logical mistake in repeated strips drawing code.
2018-07-11 15:51:34 +02:00
ddedf6124e Revert removal of fake editing for numeric input
Revert changes from 785159e6e4
but keep 'ifdef'.

@mont29 maintains this area and prefers to keep existing logic.
Note that there was misunderstanding that '*' was intended only
to be a backup key for '=' for keyboards which require holding a
modifier.
2018-07-11 15:25:02 +02:00
42fa889e46 Merge branch 'master' into blender2.8 2018-07-11 14:56:13 +02:00
08274433e1 Fix T55912: saving Viewer Node image error.
Images from viewer node needs the lock parameter...
2018-07-11 14:32:43 +02:00
59b4c67536 Minor cleanup to logic in BKE's imbuf releasing code. 2018-07-11 14:32:06 +02:00
117fd02477 UI: correct panel default-closed 2018-07-11 14:04:17 +02:00
7f77ee70f1 UI: minor tweaks to overlay panel
Position 'outline selected' more prominently,
gives more useful behavior when dragging over the left column.
2018-07-11 13:58:10 +02:00
55d44a3b6b UI: Move Object Type Visibility next to shading/overlay settings
Group Object Type Visibility with the viewport settings in the header.

The eye icon is a placeholder. A new icon is needed to better communicate
the user at a glance if all (or none) object types are enabled, or why certain types
are not visible/selectable in the viewport.

Part of design: T55863
2018-07-11 13:24:13 +02:00
160959152e UI: 3D Viewport Header - swap position of shading/snapping settings
When tweaking the shading/overlays settings through the popovers,
these get on the way of the content in the viewport. Making it hard to
see the result of our changes.

Unfortunately this breaks consistency with other headers where the snapping
tools are aligned to the right, but the benefits outweigh the costs.
2018-07-11 13:24:13 +02:00
78fc4b592a UI: Re-arrange Overlays popover
Organize content in categories/sub-panels.

The result is a more organized but slightly taller popover.
Once sub-panels are implemented code-wise, the alignment issues
(like panel label) and extra space between the content and panels
headers will be reduced. Together with the ability to have certain
less-used popovers collapsed by default, this will make the
popover more compact.

Part of design: T55863
2018-07-11 13:24:13 +02:00
e3cbff606c Keymap: update 2.7x map 2018-07-11 13:13:07 +02:00
e461d01657 Cleanup: remove redundant operator 2018-07-11 13:07:30 +02:00
1d83fe82bc Cleanup: simplify RNA names 2018-07-11 13:02:22 +02:00
ef30fa3739 Fix crash in combing after changing scene property 2018-07-11 12:55:22 +02:00
c37ca43720 OpenSubdiv: Changes in C-API
- Made OpenSubdiv_GLMesh private
  Previously, it was still accessible via C-API from C++ code.

- Don't implicitly refine evaluator when updating coarse positions,
  now there is an explicit call to do this.

  Allows to first apply all changes to the coarse mesh and then
  refine once.

- Added coarse positions update from a continuous buffer with given
  starts offset and stride.

  Allows to update coarse positions directly from MVert array.

- Refiner is no longer freed when CPU evaluator is created.
  Allows to re-use refiner for multiple purposes.
2018-07-11 12:55:22 +02:00
3eab8156d3 UI: don't change scrollbar size on mouse move, only fade.
It's not necessary to do both, and trying to hit a target that changes
size is annoying.
2018-07-11 12:35:44 +02:00
fdc0f4ad90 Fix Use Nodes not working for Cycles lights. 2018-07-11 12:34:51 +02:00
ff39cbdc86 3D View: any view axis also showing grid
Setting accidentally impacted in ortho view.
2018-07-11 11:59:11 +02:00
11cd9b0541 Merge branch 'master' into blender2.8 2018-07-11 11:44:04 +02:00
2b963ecb81 Cleanup: duplicate versioning block 2018-07-11 11:39:58 +02:00
ccc9f476ca Fix empty-images not using selection color 2018-07-11 11:02:03 +02:00
c17611af95 Manipulator: changes for overlay options
There are now 3 categories in the overlay popover:

- Navigation
- Active (camera, lamp... etc)
- Tool (manipulator)

The user preference for mini axis now controls if the mini axis
displays minimal or a full-interactive widget.

Part of design: T55863
2018-07-11 10:49:18 +02:00
64d40c82c3 Revert "Transform: default constraint to user orientation"
This reverts commit 8121010310.

After user feedback this has the downside of having no predictable
way of transforming in global space.

Since toggling between global/user is reversed when global is
the user axis.
2018-07-11 10:26:49 +02:00
ed66388c87 Merge branch 'master' into blender2.8 2018-07-11 10:23:54 +02:00
0ed54cf9ba Depsgraph: Fix face dependency cycle when bone uses id property from self 2018-07-11 10:19:56 +02:00
17bc056726 UI: Default theme - minor tweaks to console colors closer to text editor's 2018-07-11 01:21:38 +02:00
44ee942440 UI: Default theme roundness consistency for toggles 2018-07-10 20:26:18 +02:00
0953e8af98 UI: Single-column for object type visibility 2018-07-10 20:25:50 +02:00
962f89d487 Changed default strength in harden 2018-07-10 22:21:28 +05:30
8a3366a494 3D View: option to hide object overlays
This hides extra wires and details you may want to disable,
name may be changed.
2018-07-10 18:31:52 +02:00
245d0d6bb7 UI: Textures - Move Colors panel below texture-specific panels 2018-07-10 18:22:22 +02:00
debfbdc279 UI: Single-column and sub-panels for Image Texture properties 2018-07-10 18:22:22 +02:00
a6ea38d345 Cleanup: remove unused interlace code after removal of fields. 2018-07-10 17:58:08 +02:00
7f5e4a819c GHOST/Windows: don't prefer swap copy method.
This is no longer needed with the new offscreen draw method, so use whatever
is default and hopefully fastest. Fixes console warnings in some setups that
don't have swap copy.
2018-07-10 17:48:48 +02:00
77964b2efb Fix Cycles standalone build issue with OpenColorIO. 2018-07-10 17:48:48 +02:00
2574ee3d38 Image: remove fields option for image sequences
Remove support for loading interlaced image sequences because
its less common now to record interlaced video,
the option to de-interlace video on load remains.
2018-07-10 17:31:13 +02:00
c10ece49ba Fix for recent numeric input checks 2018-07-10 17:11:01 +02:00
e6dccb4b01 Fix T55826, fix T55804: crash after copying scene with linked objects. 2018-07-10 16:30:17 +02:00
dd7a727910 Fix accidentally removed particle function in GLSL, still not supported though. 2018-07-10 16:30:17 +02:00
0a04314d06 Fix popovers showing unnecessary titles. 2018-07-10 16:30:17 +02:00
1a43e08187 Eevee: LightCache: Initial Implementation
This separate probe rendering from viewport rendering, making possible to
run the baking in another thread (non blocking and faster).

The baked lighting is saved in the blend file. Nothing needs to be
recomputed on load.

There is a few missing bits / bugs:
- Cache cannot be saved to disk as a separate file, it is saved in the DNA
  for now making file larger and memory usage higher.
- Auto update only cubemaps does update the grids (bug).
- Probes cannot be updated individually (considered as dynamic).
- Light Cache cannot be (re)generated during render.
2018-07-10 15:31:34 +02:00
97f90d48a0 Object Mode: Change Lightprobe display. 2018-07-10 15:31:34 +02:00
c90a0d5dda DRW: Add new features from lightcache branch
- Change gl_context_mutex to a ticket mutex ensuring interactivity even
  when rendering.
- Add DRW_custom_pipeline for using DRW outside of the viewport and render
  pipeline.
- DRW_opengl_render_context_*** and DRW_gawain_render_context_*** to use
  with DRW_custom_pipeline.
- Add possibility to bypass deferred compilation on demand (not User
  demand).
- Add union to access DRWMatrixState members more easily.
2018-07-10 15:31:34 +02:00
873d7f7e14 DrawData: Change drawdata to a generic struct shared accross ID types
This makes tagging much more generic and make the world updates more in
line with the new tagging system (Depsgraph).
2018-07-10 15:31:34 +02:00
dfd192ce41 GPUTexture: Refactor of texture creation & new feature
- Texture creation now requires explicit data type.
- GPU_texture_add_mipmap enable explicit mipmap upload.
- GPU_texture_get_mipmap_size can be used to get the size of a mipmap level
  of an existing GPUTexture
- GPU_texture_read let you read back data from a gpu texture.
2018-07-10 15:31:34 +02:00
785159e6e4 Numeric Input: remove fake-editing option
Numeric input allowed mix of editing and hotkeys which were interpreted
as modifiers instead of using as numeric input.

This meant entering '1.0*3' needed to be typed as '1.0**3'
('*' to activate, and again to multiply).

Pressing '/' gave the reciprocal of the current number
which could be useful.

Test removing this feature, so only full numeric input is supported.
2018-07-10 15:11:48 +02:00
15ef4638b3 Merge branch 'master' into blender2.8 2018-07-10 14:45:08 +02:00
d0920fba16 OpenSubdiv: Fix wrong topology refiner cast 2018-07-10 14:40:51 +02:00
c17cb50ae2 OpenSubdiv: Make more flexible C-API to specify FVar interpolation 2018-07-10 14:40:45 +02:00
b23404d701 3D View: overlay option to show bones
Allows drawing motion paths without the bones.
2018-07-10 14:10:12 +02:00
39b1842335 Fix T55882: crash closing user preferences window in some cases. 2018-07-10 12:33:18 +02:00
e4ce5fd8d2 Modifiers: Use bool for boolean flag in isDisabled 2018-07-10 12:14:33 +02:00
25619443bb Ocean Modifier: prevent crashing on 'Apply Modifier' button
The 'Apply Modifier' button calls the modifier code on the original
object instead of an evaluated copy, which doesn't have an initialised
Ocean *.
2018-07-10 12:00:58 +02:00
0c8452ad99 Ocean Modifier: removed duplicated code
Some code was copied with 'keep in sync with xxx' comments added to it.
2018-07-10 12:00:58 +02:00
de55ae56ae Ocean Modifier: refactored the delayed-refresh approach
The approach of setting 'refresh' flags on the modifier, and performing
the associated actions when the modifier is being evaluated, is a bad
one. Instead, we use the separation of the original and the evaluated
copy to 'refresh' certain things (because they simply aren't set at all
on the original). Other actions are now done directly with BKE_ocean_xxx
functions on the original data, intead of during evaluation.
2018-07-10 12:00:58 +02:00
b9bef10d19 Ported mesh_create_derived_view() to mesh_create_eval_final_view() 2018-07-10 12:00:58 +02:00
6807b4318f Ocean Modifier: ported from DerivedMesh to Mesh 2018-07-10 12:00:58 +02:00
445f1d82a1 Added comment for DEG_TAG_PSYS_xxx and PSYS_RECALC_xxx relation 2018-07-10 12:00:58 +02:00
726e868889 3D View: allow border zoom from camera 2018-07-10 11:50:27 +02:00
97f2f211ed Fix T55772: Crashes opening a file
Bad handling of some weird 'temp' screens in 2.8 doversion.
2018-07-10 11:42:57 +02:00
c236c80de4 Fix T55884: shader node linked menu showing incompatible nodes. 2018-07-10 11:41:03 +02:00
427e5ef342 Merge branch 'master' into blender2.8 2018-07-10 11:27:48 +02:00
80373bc4d2 CMake: Disable OpenAL and JACK when AUDASPACE is disabled
Previously CMake was raising a fatal error, which wasn't too helpful.

There is still some fatal messages about Audaspace and Game Engine,
but the latter one is on it's EOL and is removed in Blender 2.8.
2018-07-10 11:25:47 +02:00
0bfc06b7b7 Merge branch 'master' into blender2.8 2018-07-10 11:23:10 +02:00
cec8ca6619 Missing from last commit 2018-07-10 11:02:07 +02:00
f70fbad166 Keymap: update 2.7x map
Remove Shift-B, operator option is removed.
2018-07-10 11:00:43 +02:00
719629f2aa GHOST: Fix memory leak in X11 DPI query
The X resource database is to be explicitly destroyed. This fixes 46 bytes
leak per every window DPI query (which happens a lot on window move/resize
and even on areas resize).

Unfortunately, this does not fully fix the leak since the known leak:

  https://bugs.freedesktop.org/show_bug.cgi?id=94604
2018-07-10 10:59:06 +02:00
358e1181b5 Keymap: remove Shift-B in camera view
We already have Ctrl-B for setting the border,
no need for two keys to do the same thing.
2018-07-10 10:58:20 +02:00
04570e9120 Fix T55484: Border zoom fails in Edit-Mode 2018-07-10 10:29:24 +02:00
1b55943888 UI: add colon to prefs headings 2018-07-10 09:56:57 +02:00
10b976d2eb Fix 3D cursor update
Changing the values for the 3D cursor wasn't updating.
2018-07-10 09:37:39 +02:00
9536f920e3 Cleanup: style 2018-07-10 09:29:30 +02:00
96bae0f882 Fix T55879: Crash setting render presets
Any RNA using 'rna_SceneCamera_update' crashed when set from Python.
2018-07-10 09:03:00 +02:00
ab14da272d Reverted T55880 fix by accident 2018-07-10 08:34:19 +02:00
3a07b2124b Fix T55877: Crash snapping non-edit-mesh to grid 2018-07-10 08:24:05 +02:00
2386436520 Fix T55880: Crash dragging file into image editor
Caused by b4ccec6742
2018-07-10 08:17:20 +02:00
fc20fa2908 Merge branch 'master' into blender2.8 2018-07-10 07:42:16 +02:00
f9107eae6a Keymap: minor changes for keymap display 2018-07-10 07:41:49 +02:00
521f188af6 Fix workspace not freeing tool properties 2018-07-10 07:10:28 +02:00
8121010310 Transform: default constraint to user orientation
Previously global was always used before the current orientation,
the order is now reversed, which assumes the user wants to first
use the value they set, with the global secondary.
2018-07-10 06:58:43 +02:00
8a816fd3bc Merge branch 'master' into blender2.8 2018-07-10 06:53:12 +02:00
f51c6efbc1 Fix transform plane constraint orientation cycle
Regression since 2.79b release
2018-07-10 06:51:25 +02:00
1112f49a14 UI: Cleanup - Remove Show Panel Header and Background
A toggle for this is no longer required now that both header and background
colors are RGBA (disabling Show Header is the same setting the alpha to 0).

Thanks Brecht for reviewing!
2018-07-10 00:47:08 +02:00
8373544df3 Fix T55776: crash with multiple windows and reload new.
There were a number of cases where immActivate() and immDeactivate() could
get out of sync, causing crashes due to using a freed mutex lock. Refactor
the code now to hopefully avoid this always.
2018-07-09 23:57:19 +02:00
845899d373 UI: tweak image menu layout to match file menu more. 2018-07-09 23:31:44 +02:00
07e368cb5f UI: hide status bar constraints when not used 2018-07-09 18:25:47 +02:00
13741792ab Fixed artifacts in bevel with high profile and segments 2018-07-09 21:55:08 +05:30
881cc17ffa UI: hide status bar items when 2018-07-09 18:14:41 +02:00
113b053d5b WM: add utility function to refresh status bar 2018-07-09 18:14:41 +02:00
12d4ebcaa3 Merge branch 'master' into blender2.8 2018-07-09 17:57:37 +02:00
8c528a4f0a Cleanup: use const transform args 2018-07-09 17:57:05 +02:00
5a56e4997f Depsgraph: Fix non-working drivers after recent relations change 2018-07-09 17:42:36 +02:00
cf9f0b35be UI: add search to popup toolbar
Add for convenience only.
2018-07-09 17:37:15 +02:00
be8855a2ef UI: move visibility panel into the side bar 2018-07-09 17:00:09 +02:00
0e6abf414f Keymap: use Shift-AccentGrave for fly/walk mode 2018-07-09 16:44:26 +02:00
edeb9e5b01 Fix T55868: duplicating collection instances fails sometimes. 2018-07-09 15:37:36 +02:00
e8bc8bf618 UI: Minor tweaks to default theme
Based on feedback from the 'User Feedback' devtalk forum

* More opaque panels for the viewport
* Darker state colors
* Current frame color consistency for MCE
2018-07-09 15:36:37 +02:00
edb78d528b Keymap: Remove AccentGrave for each
Use only F3 for search since this is a common enough key
and it turns out having AccentGrave access on non US layouts is
too unreliable.
2018-07-09 14:55:31 +02:00
d37929c85b Depsgraph: Force modifier stack update when mesh is copied
Modifier stack might reference arrays from mesh, so if any of sub-data
pointer changed, modifier stack is to be re-evaluated.
2018-07-09 14:42:56 +02:00
f84956738b Depsgraph: Forbid flush from copy-on-write operations down the road
Old behavior: tagging ID with DEG_TAG_COPY_ON_WRITE will do copy-on-write
(as requested), but will also flush changes to all operations with depends
on it. This means, for example, tagging object for copy-on-write will force
its modifier stack to be evaluated.

This was needed in the earlier days of copy-on-write when things were not
well defined and when lots of areas were not doing proper tagging.

New behavior: tagging ID with DEG_TAG_COPY_ON_WRITE will only ensure copy
of the dadatblock is up to date, without flushing updates to any dependencies.

This means following things:

- We can update parts of ID without invoking heavy computation of other
  parts of same ID. For example, tagging object for COPY_ON_WRITE update
  on mode change will not force modifiers stack to update.

- If some dependent datablock is dependent on pointers which are invalidated
  by copy-on-write (like, evaluated mesh referencing custom data layers from
  original mesh), this will either require explicit tag or explicit relation
  in the dependency graph.

  Currently can not find a faulty case since tagging of mesh happens with
  either 0 (which means, everything) or with GEOMETRY, which also forces
  all dependent modifier stacks to be re-evaluated.

This fixes missing PBVH when going into sculpt mode (sculpt mode toggle
was tagging object for COPY_ON_WRITE update, which was forcing modifier
stack to be updated, which was freeing PBVH.

Some other operations might also become faster with this change.
2018-07-09 14:42:56 +02:00
bf02c4ba00 Keymap: Add back Shift-R 'repeat last'
This may be used often in a workflow, so keep the key.
2018-07-09 14:08:25 +02:00
53c24bf97c Keymap: macos only operator search key: Cmd-F
Add Cmd-F for apple because it's not easily available on some systems.
2018-07-09 14:06:51 +02:00
a724963640 Fix object mode menu crashing w/o active object 2018-07-09 13:39:12 +02:00
ce885edfee UI: Remove 1 pixel gap between panel header and background 2018-07-09 12:57:51 +02:00
b24232ff34 Keymap: Remove modal keymaps from blender_27x
Hard coded keys have been removed from transform.
Since these keymaps will likely remain unchanged,
remove them to avoid maintenance overhead.
2018-07-09 08:55:06 +02:00
d2923d7d62 UI: hide redundant transform keymap items 2018-07-09 08:41:51 +02:00
32396b3164 WM: support for filtering modal keymap items
Modal keymap display often shows items which aren't used,
add a poll funciton to hide these from the status bar.
2018-07-09 08:39:09 +02:00
ac8aff2b28 Merge branch 'master' into blender2.8 2018-07-09 07:42:46 +02:00
6793aebad2 Cleanup: remove 'Orientation' from keymap item name
It's constraint not an orientation,
in transform context it can be inferred.
2018-07-09 07:39:26 +02:00
4c5541feef Merge branch 'master' into blender2.8 2018-07-09 07:30:58 +02:00
70e2824126 Keymap: remove some hard coded transform events
Also re-order for display purposes
2018-07-09 07:29:12 +02:00
fb81446f56 Merge branch 'master' into blender2.8 2018-07-09 06:41:21 +02:00
9856dd9fec Cleanup: right shift 2018-07-09 06:38:07 +02:00
4ab37b3225 3D View: select exclude w/ ob-center enabled 2018-07-09 06:29:48 +02:00
aed82dafff Icons: support for drawing event icons
Use for drawing modal operator header keys.
2018-07-08 22:17:42 +02:00
907dd3d34a Fix crash in lamp preview render
Missing NULL check in object type filtering.
2018-07-08 21:15:39 +02:00
73d2d75eed Cleanup: rename 'ct' to 'len' for editors 2018-07-08 13:19:10 +02:00
9fb9125184 Cleanup: rename 'ct' to 'len' for gpu 2018-07-08 13:14:49 +02:00
804205babe Cleanup: rename 'ct' to 'len' for gawain 2018-07-08 13:05:41 +02:00
392ed710d6 Cleanup: rename 'ct' to 'len' for size vars 2018-07-08 12:50:00 +02:00
6d72d3c862 Cleanup: abbreviate unsigned types (editors, wm) 2018-07-08 12:49:36 +02:00
9d43ed521c Cleanup: abbreviate unsigned types (draw manager) 2018-07-08 12:49:03 +02:00
b5811bccf8 Correct recent keymap change, writing all keymaps 2018-07-07 20:03:30 +02:00
8467a7a351 Keymap: store 2.7x map as data instead of running code 2018-07-07 19:53:05 +02:00
f7bce99e4d Keymap: support for reading/writing keymaps as data
Instead of running code to create a keymap, store them as data.
This allows for keymaps to share content as well as running
transformations at load time.
2018-07-07 19:53:02 +02:00
5480de3fca Fix scale in Apply Pose As Rest Pose for bendy bones.
Scale is multiplicative, and adding it up causes the bone to bloat.
2018-07-07 15:10:41 +03:00
1f539cd7ef Merge branch 'master' into blender2.8 2018-07-07 11:32:40 +02:00
97cd8bfae1 Cleanup: isinstance can take multiple types 2018-07-07 11:29:57 +02:00
0f1000ce0b Cleanup: pep8, style 2018-07-07 09:02:34 +02:00
80a31d30a4 Merge branch 'master' into blender2.8 2018-07-07 08:53:00 +02:00
4b373ed086 Cleanup: pep8 2018-07-07 08:48:35 +02:00
252207cc7a Cleanup: redundant poll checks 2018-07-07 08:36:17 +02:00
a6340a5068 Viewport: in Lookdev shading, disable scene lights and world by default.
Now we light with just a user defined HDRI by default, which is useful
for material setup and texture painting and lighting without having to
set up any scene lights.

Previously it would use the scene world without lights by default, which
in some files is just black.
2018-07-06 20:22:03 +02:00
aed09d4329 Cleanup: remove unused shader node compatibility flag.
No longer needed after Blender Internal removal and Eevee replacing the
Cycles GLSL shading nodes.
2018-07-06 20:22:03 +02:00
74fd17e9d7 UI/Python: rename Lamps to Lights, to follow more standard terminology.
Internally it's still mostly named lamps, though some modules like Cycles
were already calling them lights.
2018-07-06 20:06:09 +02:00
4ac048f4e4 Merge branch 'master' into blender2.8 2018-07-06 19:34:41 +02:00
Julian Eisel
29b8adec61 UI: Add extra padding to menus to draw sub-menu triangles in
Shortcut strings would be offset to the left to make space for the triangles,
breaking the alignment with other shortcut strings. Now this alignment is kept
by making menus slightly wider if there's a sub-menu triangle visible, making
room for the triangle.
2018-07-06 19:33:13 +02:00
Julian Eisel
2a199f5093 UI: Use flat triangle drawing for indicating submenus
Left the RIGHTARROW_THIN icon in, even though it's not used in C code anymore.
However add-ons may do (e.g. Amaranth does).
2018-07-06 19:33:13 +02:00
b94222b090 PyDrivers: update bytecode check for Python3.6 2018-07-06 19:31:00 +02:00
d360eced65 UI: Single-column for 3D Cursor panel in 3D View 2018-07-06 18:29:57 +02:00
Vuk Gardašević
4674cffe29 UI: 3D View, View panel: single-column, flow and subpanel
See D3525
2018-07-06 18:23:15 +02:00
a48b52d546 3D View: support object type visibility/selection
Trying to have a single option for this is too likely to be
insufficient in some cases.

Instead, support object type visibility & selectability per view-port.
2018-07-06 17:53:40 +02:00
63f3e1ac7c Merge branch 'master' into blender2.8 2018-07-06 17:16:23 +02:00
22150eb409 Animation player: Ensure new frames are displayed while dragging mouse
Thanks Campbell for review!
2018-07-06 17:15:40 +02:00
49af17beb8 Fix T55796: Motion Paths are not being drawn as overlay
Remove depth testing flags from motion path pass drawing,
so that they always appear to draw in "x-ray" style on top
of everything, making it easier for animators to see what
they're doing.
2018-07-07 02:53:34 +12:00
4e4e88f02b UI: Default theme unification
More unification of colors and roundness.

Also use accent color as current_frame indicator.
2018-07-06 16:15:34 +02:00
7ea26cc9c5 Keymap: update 2.7x 2018-07-06 14:50:04 +02:00
15f4aa182f Depsgraph: Relations builder should not tag ID in all depsgraphs 2018-07-06 14:46:35 +02:00
571e773fbe Keymap: outliner now uses A/Alt-A for selection 2018-07-06 14:45:30 +02:00
79dabc537e Merge branch 'master' into blender2.8 2018-07-06 14:41:52 +02:00
3527857cdc Cleanup: use outliner_flag_* name prefix 2018-07-06 14:40:13 +02:00
b0c32818ba UI: small layout fixes for RMB context menus. 2018-07-06 14:32:25 +02:00
9fc79a4033 UI: disable broken horizontal properties editor alignment. 2018-07-06 14:19:11 +02:00
3da1207b48 UI: draw search popups with menu background, instead of box.
Otherwise these are not visible well with the new dark theme.
2018-07-06 14:19:11 +02:00
a364150c14 Fix crash with properties editor pinning. 2018-07-06 14:19:11 +02:00
02f903d099 Fix layout issue with enum property separators. 2018-07-06 14:19:11 +02:00
2aba2de92b Merge branch 'master' into blender2.8
Conflicts:
	source/blender/editors/screen/screen_edit.c
2018-07-06 14:03:51 +02:00
843d5d707d Merge remote-tracking branch 'origin/master' into blender2.8 2018-07-06 13:53:35 +02:00
81a93df6d2 Fix crash when startup file has an image in it
This fixes an issue introduced in d192d72312.
When starting up, the UI hasn't been fully initialised yet, and calling
wm_event_do_depsgraph() can trigger icon updates when the startup file
contains an image, causing a segfault due to a not-yet-initialised ghash
for the icons.
2018-07-06 13:52:35 +02:00
0987c11c76 fix c++ comment style in 3cc2a9b934 2018-07-06 13:15:44 +02:00
12ce0cfb21 Ocean Modifier: removed unused refresh flags
The flags were set and cleared correctly, but nothing was actually reading
them.
2018-07-06 12:50:04 +02:00
7691040166 Ocean Modifier: removed the MOD_OCEAN_REFRESH_ADD flag
The flag was only used in readfile.c, and resulted in a delayed call to
BKE_ocean_add(); this call is now immediately made instead as it's not
very expensive.
2018-07-06 12:46:58 +02:00
ccef83b2fb Merge branch 'master' into blender2.8
Conflicts:
source/blender/editors/screen/screen_edit.c
2018-07-06 12:30:48 +02:00
dd5c25fab2 Remove print left in by accident 2018-07-06 12:10:30 +02:00
3cc2a9b934 Fix T55581: kill running (render) jobs when deleting a scene
also fixed passing WM_JOB_TYPE_ANY to WM_jobs_kill_type()

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D3498
2018-07-06 11:58:13 +02:00
Stefan Werner
df30b50f2f Cycles: Enabled half precision textures for OpenCL devices that support the cl_khr_fp16 extension. 2018-07-06 11:42:34 +02:00
3e0920c61a Fix view pie menu 2018-07-06 11:17:50 +02:00
6379c7bd47 Addons: silence warnings instead of disabling 2018-07-06 11:03:24 +02:00
174a3348ab Addons: svg has been updated 2018-07-06 10:23:08 +02:00
Stefan Werner
d20d2bcb7f Cycles: Fixed OpenCL kernel build, it threw a compiler error. 2018-07-06 10:21:25 +02:00
de777ad9e6 Merge branch 'master' into blender2.8 2018-07-06 10:18:52 +02:00
1daa20ad9f Cleanup: strip trailing space for cycles 2018-07-06 10:17:58 +02:00
6d38d82437 Cycles: missed when renaming updated RNA 2018-07-06 10:16:28 +02:00
aff8b02394 Merge branch 'master' into 28 2018-07-06 10:10:47 +02:00
62fbb7d4a1 Empty Object: Center images by default 2018-07-06 10:05:37 +02:00
ed2204933a Fix typo in empty image drawing 2018-07-06 10:01:05 +02:00
27e0d6cbd0 Fix image drag and drop
- Dropping now creates empty images w/o holding Ctrl.
- Dropping background images works when cursor over camera.
2018-07-06 09:10:07 +02:00
3314d0bcb6 Disable addons which haven't been updated
Gave noisy warnings on startup.
2018-07-06 08:04:28 +02:00
5b3545f99f Merge branch 'master' into blender2.8 2018-07-06 07:56:08 +02:00
d56b90705e BKE_addons: utility to remove by name 2018-07-06 07:55:29 +02:00
288bcb2593 Further tweaks to drawing of non-selected graph editor keyframes
The previous commit only solves the problem when using the default
theme using factory settings. For previously saved themes, there could
still be problems, as the alpha values were still 0.

This commit improves the logic here so that while keyframe points on
unselected F-Curves will still get faded out (to not stick out too much
from the curves they live on), but the effect will not be as pronounced
(i.e. the points will stay visible all the time).
2018-07-06 15:38:25 +12:00
a71c2deac5 Fix T55777: Non-selected keys in Graph Editor are invisible
Restore theem setting default for Graph Editor's vertex,
with default alpha set to 1.0. The alpha value here needs
to be non-zero, as the alpha values currently get used
when drawing verts.
2018-07-06 15:15:45 +12:00
88a6aab8bb Fix T55775: Crash when select keyframe on object channels in Timeline editor 2018-07-06 15:01:28 +12:00
08ae597d63 Cleanup: flag checks 2018-07-05 22:56:18 +02:00
f5d096798c Merge branch 'master' into blender2.8 2018-07-05 22:50:07 +02:00
52655f5161 Cleanup: flag checks 2018-07-05 22:49:42 +02:00
8dff538989 Merge branch 'master' into blender2.8 2018-07-05 22:46:04 +02:00
0e2915b292 RNA: correct callback type
Missed when changing callbacks from int to bool type.
2018-07-05 22:25:34 +02:00
45fdf41be8 RNA: use is_dirty prefix for checking updates
Common convention for read-only update checks
2018-07-05 21:49:36 +02:00
a3f5d4cb14 Keymap: Make Ctrl-Tab toggles pose mode
Showing a pie menu is redundant since tab is already
mapped to edit mode.

Bypass the menu for pose mode toggle.
2018-07-05 21:28:25 +02:00
72e04f9890 Draw Manager: simplify object mask usage
Remove flag defines, use object types directly.
2018-07-05 20:43:50 +02:00
e5ca319f9d Cleanup: minor changes to last commit, #2 2018-07-05 19:49:05 +02:00
7112e96e0f Cleanup: minor changes to last commit 2018-07-05 19:41:38 +02:00
1bf5cc57bd Keymap: convenience Alt-MMB view switching
Allows to quickly set the view axis for advanced users,
Requested by @hjalti
2018-07-05 19:31:10 +02:00
f2de8a190f 3D View: support setting the relative axis
This sets the closest view axis, as if the current view is 'front'.

Useful to switch to the nearest left/right/top/bottom.
2018-07-05 19:31:10 +02:00
a883f0fd54 UI: add separators in properties editor header tabs. 2018-07-05 19:27:50 +02:00
dbdafe1209 Shaders: add target setting to material output node.
This makes it possible to have a single shading nodetree that contains
separate Cycles and Eevee shaders. By default the target is set to All
so shaders are shared.
2018-07-05 18:43:48 +02:00
5bd57aaa05 Viewport: tweak Z key shading toggle.
* Z now goes to solid mode when in lookdev or rendered mode.
* Alt-Z was broken after removal of texture mode, now toggles lookdev mode.
* Simplify code by turning it into a single operator.
2018-07-05 17:51:58 +02:00
d8223468fe GPU: avoid unnecessary multiple nodetree localize and output finding. 2018-07-05 17:51:58 +02:00
c974a35953 Cleanup: indentation 2018-07-05 17:08:16 +02:00
997b73c1db 3D View: split view-numpad into two operators
Naming operator based on keys it used was strange,
split into view-axis and view-camera.
2018-07-05 17:08:13 +02:00
404bacc639 Refactored into a single option
Technical all options are still there for finetuning.
2018-07-05 16:57:22 +02:00
35f8198c9d Refactor: SHOW->HIDE
HIDE needs less code also in the future, RNA still uses SHOW.
2018-07-05 16:57:22 +02:00
4dfcc6c25a Overlay: enable/disable drawing of specific object types.
This patch will allow users to customize what object types will be drawn by the object mode overlay.
It supports: Empties, Lamps, Cameras, Speakers, Armatures and Lightprobes.

It currently does not support Physics objects due to the overlap it has with other objects types.

Also be aware that in pose mode the armature is drawn, but not by the object mode overlay

Reviewers: campbellbarton

Tags: #bf_blender_2.8

Differential Revision: https://developer.blender.org/D3524
2018-07-05 16:57:22 +02:00
5db711fdd9 Depsgraph: Preserve engine data when doing object copy on write update 2018-07-05 16:56:47 +02:00
ec98d8cc9e Cleanup: Undefined function declarations 2018-07-05 16:56:47 +02:00
d192d72312 Ensure dependency graph exists before initializing editors
Will help entering sculpt mode on file load by making it possible
to fully initialize sculpt session. The goal is to make sure PBVH
exists since the very beginning of file open (missing PBVH is a
reason why object is not visible before first stroke).

This is not enough yet to fully solve the issue, since entering
sculpt mode tags object for Copy-on-Write update, which frees
PBVH.
2018-07-05 16:56:47 +02:00
c1678a3723 Revert "Overlay: enable/disable drawing of specific object types."
This reverts commit f7ec70895c.
2018-07-05 16:51:49 +02:00
f7ec70895c Overlay: enable/disable drawing of specific object types.
Added a option to the overlay popover that controls the visibility of
non-renderable objects like lamps, cameras, speakers, armatures, curves
empties and force fields.

After discussion we went for a single option with more detailed check in
the object_mode draw engine.

Differential Revision: https://developer.blender.org/D3524
2018-07-05 16:46:06 +02:00
Stefan Werner
4d00e95ee3 Cycles: Adding native support for UINT16 textures.
Textures in 16 bit integer format are sometimes used for displacement, bump and normal maps and can be exported by tools like Substance Painter. Without this patch, Cycles would promote those textures to single precision floating point, causing them to take up twice as much memory as needed.

Reviewers: #cycles, brecht, sergey

Reviewed By: #cycles, brecht, sergey

Subscribers: sergey, dingto, #cycles

Tags: #cycles

Differential Revision: https://developer.blender.org/D3523
2018-07-05 13:53:34 +02:00
a4328a4b70 Cleanup: warning 2018-07-05 12:32:31 +02:00
d13fb7a7c4 Sculpt: Fix disappearing object on undo
Tagging object for copy on write will ruin its PBVH.

Since sculpting is an "original" domain, we only need to
update draw batches to update.
2018-07-05 12:32:06 +02:00
397d088611 UI: show modal operator keymaps in the status bar
This is work in progress, transform keymap especially
needs some filtering on it's keymap.
2018-07-05 12:27:15 +02:00
1517fa4309 Fix build w/o fluidsim 2018-07-05 12:27:15 +02:00
03ef9f3214 Fluidsim: fixed memory leak 2018-07-05 12:22:55 +02:00
f4ce6d02cd Fluidsim: ported from DerivedMesh to Mesh
Also removed a bunch of unnecessary #include statements from fluidsim.c.
2018-07-05 11:30:38 +02:00
99a6d616e8 Ported CDDM_apply_vert_normals from DM to Mesh 2018-07-05 11:30:38 +02:00
edd59aa2be Revert "Keymap: use Shift-Space for auto-complete"
This reverts commit 30680b8d51.

Conflicts with typing in capitals.
2018-07-05 08:28:42 +02:00
30680b8d51 Keymap: use Shift-Space for auto-complete
Resolve conflict w/ maximized area.
2018-07-05 08:16:22 +02:00
49b86bcfec Merge branch 'master' into blender2.8 2018-07-05 07:54:47 +02:00
cd17b32583 Cleanup: pep8 2018-07-05 07:53:21 +02:00
53c63db2ee Fix issue with closing child windows in recent changes. 2018-07-04 19:33:15 +02:00
535fec0661 Workspaces: change behavior when window layout for workspace is missing.
When switching the workspace in a window that does not yet have a layout
for the newly active workspace, we now duplicate the layout from the
previously active workspace. Previously it duplicated the layout from
the first window in the newly active workspace.
2018-07-04 18:40:33 +02:00
c43443d530 Workspaces: store view layer per main window, instead of per workspace.
It was a bit odd that the scene was stored per window but not the view
layer. The reasoning was that you would use different view layers for
different tasks. This is still possible, but it's more predictable to
switch them both explicitly, and with child window support manually
syncing the view layers between multiple windows is no longer needed
as often.
2018-07-04 18:40:33 +02:00
4e2228525f Workspaces: add main and child windows.
* Main windows show a topbar and statusbar, and select a workspace and
  scene. They are created with Window > New Main Window.

* Child windows do not show a topbar or statusbar. These follow the
  workspace and scene of their parent main window. Created with Window >
  New Window or View > Duplicate Area into New Window.

* The purpose of this change is to support multi monitor setups where you
  just want to put more editors on the other monitors. Without multiple
  topbars and statusbars, working within a single workspace and scene.
  Creating multiple main windows is intended to be a concious choice to
  do different tasks in different workspaces and scenes.

* Note these changes do not currently affect how the operating system
  treats the windows.

* When changing the workspace, the layout in all child windows changes.
  This makes sense if we consider child windows to be just a way to
  extend the main window across more monitors. In some case it may be
  useful to keep the same layout though, we can add an option for this
  depending on user feedback.
2018-07-04 18:40:33 +02:00
2bef8ca1b8 Cleanup: pass window to listeners, instead of screen + workspace. 2018-07-04 18:40:33 +02:00
5a1aa5b935 Keymap: movie-clip center frame, match graph view 2018-07-04 18:37:27 +02:00
54fba73812 Keymap: proportional edit keys 2018-07-04 18:25:21 +02:00
59415598e4 Fix Pose Mode selection overlay breaking other overlay.
Fix T55758
2018-07-04 18:14:12 +02:00
a8b5658437 UI: Node Link Menu to use same colors as regular menus
Node link menus (like shader settings in Material properties) used a slightly
brighter variant of the menu widget. Making it hard to style and match the rest.

Make it use widget_menuiconbut, which is just the menu widget with an icon and no arrows.

Thanks Brecht for the help!
2018-07-04 18:00:12 +02:00
1df1514d31 Kemap: mirror, flip changes from T55162 2018-07-04 17:48:09 +02:00
7e0ceb2ff6 Keymap: outliner changes from T55162 2018-07-04 17:26:16 +02:00
46d8aa6d94 UI: Default theme tweaks for Node editor 2018-07-04 17:24:20 +02:00
49fdf0b946 Keymap: Resolve inconsistencies, T55162 2018-07-04 17:10:41 +02:00
7c47b338c0 Depsgraph: Don't force copy-on-write when shading changes
Shading is supposed to be dealing with draw manager batch cached
thingamajigs, but was causing full object update.

This was causing both flickering in sculpt mode (PBVH was removed,
why it was SOMETIMES restored before draw is a mystery), and was
also causing things to be really slow.
2018-07-04 16:44:44 +02:00
56ace4b209 Depsgraph: Log entry operations which are directly modified and tagged 2018-07-04 16:44:44 +02:00
4bbbfdb26a UI: Default Theme: editor tabs more prominent
Workaround for now until all editors tabs share the dedicated Tab theme
settings under User Interface (which the top bar is currently using).

Thanks SimonStorl-Schulke from devtalk forum for feedback.
2018-07-04 16:33:50 +02:00
03ff3aebc4 Weight Paint: draw from original mesh
Selection changes weren't showing.
2018-07-04 16:27:23 +02:00
c767523727 Eevee: Fix incorrect padding in octahedral mapping
This fixes T54439
2018-07-04 15:58:21 +02:00
a232b4926f UI: Default theme tweaks to animation channels 2018-07-04 15:39:46 +02:00
f03079eff0 UI: Fix channels using editor header color as background
Channels were using TH_HEADER which is usually gray and unrelated to channels list.
Use sub channel color instead (light blue in the default theme).
2018-07-04 15:39:46 +02:00
1545657d7a Cleanup: remove unused zbuf member 2018-07-04 15:36:42 +02:00
fd341dd6f7 Added copyData flag to ocean modifier 2018-07-04 15:15:08 +02:00
d663ec48c0 Fluid Sim: Removed unused PointCache pointer
The only uses were setting it to NULL and asserting it is NULL.
2018-07-04 15:10:45 +02:00
175fe29e58 Cloth simulation: share point cache between CoW copies of objects 2018-07-04 14:54:16 +02:00
60b9d413db Pass copy flag to modifier copyData function
This will allow modifiers to decide whether to copy or share caches between
ModifierData copies.
2018-07-04 14:52:14 +02:00
c960804747 Cycles Denoising: Pass tile buffers to every OpenCL kernel to conform to standard and get rid of set_tile_info 2018-07-04 14:38:03 +02:00
f1525cf534 Cycles Denoising: Correctly handle target buffer in tile unmapping and move device swap logic to the device_memory 2018-07-04 14:37:55 +02:00
9db8bdbc65 Cycles Denoising: Cleanup: Rename tiles to tile_info 2018-07-04 14:37:24 +02:00
97a0d6fcc7 Cycles Denoising: Refactor denoiser tile handling
This deduplicates the calls for tile (un)mapping and allows to have a target buffer that is different from the source buffer (needed for baking and animation denoising).
2018-07-04 14:36:01 +02:00
b10c64bd2f Cycles Denoising: Split main function into logical steps 2018-07-04 14:35:05 +02:00
88b297da99 Keymap: resolve group/un-group inconsistencies
Apply grouping changes proposed in T55162

- Ctrl-G to make a group.
- Ctrl-Alt-G to ungroup.
2018-07-04 14:00:21 +02:00
7d355008bf Fix NLA transform crash 2018-07-04 13:54:22 +02:00
8aa1ef2675 Keymap: Add back Ctrl-M for mirror 2018-07-04 13:46:07 +02:00
72e090a3cf Keymap: Remove pie menu from tab-key
Based on discussion with @eyecandy & @venomgfx,
we agreed that Tab drag/click, is too easy to accidentally press
while moving the cursor.
It's also not typical to activate the operator on release which
introduces a small lag switching edit-mode.

This is a shame since in some ways its a nice way to re-use the key,
overall it just feels a little too unpredictable for such an important
action.

This commit makes the following changes.

- Tab: toggles edit-mode.
- Ctrl-Tab: opens pie menu.
- Ctrl-AccentGrave: toggles manipulator.

Note, while AccentGrave isn't always available
this shortcut is not essential.
2018-07-04 13:04:11 +02:00
8da2e97ec3 UI: Default theme use color for value slider item
Matches Flatty Light
2018-07-04 12:54:08 +02:00
67f4e9783b UI: Fix node triangle always using selected color
Now uses the text color instead.

Thanks to devtalk community for spotting this.
2018-07-04 12:54:08 +02:00
f9660a78ea Keymap: use add key instead of verify
Caused Xkey to be added but not delete key.
2018-07-04 12:49:23 +02:00
b575c50753 CMake: Add missing header file to list of sources 2018-07-04 12:10:02 +02:00
769c57b38a SoftBody: share point cache between CoW copies
This is the same approach as 98a0bcd425
applied to soft body simulation. In short, CoW copies share the point cache,
and treat it as read-only except when the depsgraph is active.
2018-07-04 11:33:27 +02:00
9e4d667c2c SoftBody: refactored sbFree()
This prevents having to wrap each call to sbFree() in an if(ob->soft)
condition and assign ob->soft = NULL after calling.

Furthermore, passing `Object *` allows us to change freeing behaviour
depending on whether the object is an evaluated copy or an original (not
done in this commit yet).
2018-07-04 11:22:57 +02:00
75b5ff6698 Softbody: unified copy functions
This unifies two almost-identical functions at the expense of having to
add one single 'flag' value at one call.

This makes copy_softbody() aware of the source/dest objects, allowing it
to make a distinction between doing depsgraph evaluation copies and real
object copies. This will be used in an upcoming commit to ensure that
the pointcache is shared between CoW copies, similar to the current
approach for rigidbody simulation.
2018-07-04 11:22:32 +02:00
13ec4be594 Fix T55750: Crash on moving sequencer strip
Custom-data free callback was freeing transform data too.
2018-07-04 10:31:31 +02:00
405c6c077f UI: Adjust width of Pivot, Shading and Transform Orientations popovers 2018-07-04 02:23:52 +02:00
969111f9b5 Cleanup: pep8 2018-07-03 22:35:37 +02:00
b360c9d7f9 cleanup of extend edge data and fixed minor errors 2018-07-04 00:04:03 +05:30
46bdbc6c78 UI: adjust popover width for overlays & toolbar 2018-07-03 19:55:51 +02:00
9e5002aded UI: optional ui-unit-width for popovers
Some popovers don't fit well with the default width,
allow panels to adjust as needed.
2018-07-03 19:55:01 +02:00
16878072a4 T55441: Pop-over large arrow offset when wide 2018-07-03 19:40:21 +02:00
bb9355e703 View3D: Remove v3d->zbuf
This is because depth test is set before drawing anything now. There is no
case where we want to draw without depth test that is not selection and
this case is not handle by v3d->zbuf anymore.

UI assume depth test is off by default. The DRWManager assume it's on.

This should fix T55623.
2018-07-03 19:22:15 +02:00
79152371c3 UI: add tool properties contexts
Currently unused, create for add-ons to populate.
2018-07-03 18:45:45 +02:00
81a23d1f2d Tool System: add operator for introspection
In some cases we want associate use an operator for a tool
for introspection, so we can for eg, automatically
use the same binding for in the popup toolbar.

Space-G/R/S for transform now work as accelerator keys again.

Also Space-E for extrude.
2018-07-03 18:38:08 +02:00
1c699d75a0 Fixed bugs in normal shading continuity and added support
to have corner vertices of a vmesh to have same normal as reconstructed
face in harden
2018-07-03 21:51:01 +05:30
51acd54760 Fix tool-system error running in background mode 2018-07-03 18:02:16 +02:00
00db85ea81 Theme: use alpha for lamp wire
Needed for showing helper line to plane.
2018-07-03 17:46:23 +02:00
3da9d36554 Fix T55709: Pose Library - Add New Pose crashes 2018-07-03 16:50:17 +02:00
f14680b1be UI: Default theme, more tweaks
Also make the selected list items not as bright, boxes darker and
adjustments for contrast and accessibility.
2018-07-03 16:43:06 +02:00
4632e4fde4 Keymap: Use easily accessible key for animation
Based on animator feedback, this key is accessed many times a day.
Swap Shift-Space /w Ctrl-Space (full-screen area).
2018-07-03 16:37:15 +02:00
cde6bbfea1 Keymap: update 2.7x map 2018-07-03 16:34:12 +02:00
48d7cf680e Keymap: Select/De-Select support for anim-editors
Also update menu items, adding select/de-select.
2018-07-03 16:28:59 +02:00
69e512243c Cleanup: Remove unused variable 2018-07-03 15:39:32 +02:00
14b0510d21 Edit Mesh Overlay: Fix floating point instability artifacts
This was visible when vertices were very close to the near clip plane.
2018-07-03 15:39:31 +02:00
1c5b375390 UI: Default theme update for contrast
Selected color is now .9 alpha so keyed/animated/driven statuses
show through when widget is active. Assign color for overriden state.

Also fix progress bar not visible.
2018-07-03 15:36:33 +02:00
190d1b2f7a Fixed merge errors 2018-07-03 19:01:20 +05:30
fbafa4352b Keymap: Select/De-Select now use A, Alt-A
There are still some keys to update because
some operators only support toggle.
2018-07-03 15:10:12 +02:00
c0c0eb7e7e Fix typo in transform orientations. 2018-07-03 14:52:34 +02:00
33a5cde313 Keymap: Adjust animate and manipulator toggle keys
Make room for Alt-A to be used for de-select.
Discussed with artists in studio & @venomgfx,

- Use Ctrl-Space for animation.
- Use Ctrl-Tab to toggle manipulator.
- Remove mirror transform binding.
2018-07-03 14:51:53 +02:00
76d7186d61 UI: use new transform orientation when created. 2018-07-03 14:24:22 +02:00
03ca4a57c7 Cleanup: move snap/pivot/orientation popovers to proper file. 2018-07-03 14:24:22 +02:00
a2ce6af2f5 Correct tool rename
Needed to update manipulator too.
2018-07-03 14:20:05 +02:00
952ae70109 Cleanup: unused function 2018-07-03 13:53:52 +02:00
c118b852b7 Tool System: move transform into a top-level tool
Also rename move to grab.
2018-07-03 13:52:04 +02:00
967b84534a Workbench: Fix wrong shading shadoow direction. 2018-07-03 13:36:04 +02:00
e30f25ba22 GHOST: Fix assert and rebind previous ogl context. 2018-07-03 13:36:04 +02:00
433e3db8d8 Revert "GHOST: Delay opengl context initialization"
This reverts commit 128926a41b.
2018-07-03 13:36:04 +02:00
6c9fe9cd8c Revert "GHOST: WGL: Delay context initialization for offscreen contexts."
This reverts commit 800c3c5ca5.

# Conflicts:
#	intern/ghost/intern/GHOST_ContextWGL.cpp
2018-07-03 13:36:04 +02:00
d78bcf9055 Revert "GHOST: Fix uninitialized var"
This reverts commit 27b6734022.
2018-07-03 13:36:04 +02:00
7a8403dbb0 Revert "GHOST: Fix uninitialized values."
This reverts commit aca403c819.
2018-07-03 13:36:04 +02:00
c50e1216a6 Fix dimmed shortcut key display issues in toolbar menu and color picker.
Draw with alpha * 0.5 instead of using item them color, this doesn't work
well in the toolbar menu and highlighted menu items otherwise.
2018-07-03 13:08:25 +02:00
48c93640d2 Cleanup: fix compiler warning. 2018-07-03 13:08:25 +02:00
b868e58d9b Sculpt: Fix wrong object used for crazy space calculation
Was applying modifiers twice, when it should not have.

Is expected to solve mesh corruption when in sculpt mode.
2018-07-03 12:53:29 +02:00
6d0e172fef Sculpt: Cleanup, spelling 2018-07-03 12:49:57 +02:00
268bcb8027 Sculpt: Fix ghosting artifacts when sculpting in workbench engine 2018-07-03 12:29:49 +02:00
cf2096cfd9 Nodes: add new image button to image nodes. 2018-07-03 12:25:50 +02:00
72a051f957 Cleanup: remove generation context from image new operator. 2018-07-03 12:19:16 +02:00
b4ccec6742 Fix ID buttons not working in popover menus. 2018-07-03 12:16:30 +02:00
a94d582a40 Sculpt: Fix possible race condition with undo nodes
it is possible that two threads will request same undo node, only one
of them will initialize the node. The issue is that initialization is
happening outside of a lock, which was making one thread to use non-
initialized node.

If this change is ever a bottleneck, make a lock inside of node.
2018-07-03 11:06:29 +02:00
a9211e808c UI: hide empty status mouse button when dragging 2018-07-03 10:30:13 +02:00
4bc11b72e5 Workbench: CleanUp whitespaces 2018-07-03 10:25:07 +02:00
6016abc1a3 Workbench: Fix texture drawing
Somehow not sure when the test for textures was performed on an
uninitialized variable resulting in never showing the textures at all
2018-07-03 09:54:25 +02:00
8dc18b54ad Workbench: Fix ghosting and crash in X-Ray mode
When playing animations the anti-aliasing was not reset, resulting in
ghosts from previous frames to be drawn. Also when playing animations
and switching to X-Ray mode for the first time would most likely
result in a write to uninitialized memory.
2018-07-03 09:29:04 +02:00
39678442e1 Cleanup: typos 2018-07-03 09:22:02 +02:00
d7982f71e9 Keymap: remove 'Screen Editing' from 2.7x map
Uses action-zones which aren't currently working in keymap presets.
2018-07-03 09:04:44 +02:00
1ff5cc8c1a addons: disable addons with versions below 2.8 2018-07-03 07:59:08 +02:00
7a0750016e Merge branch 'master' into blender2.8 2018-07-03 07:23:15 +02:00
eb7286bfd2 Python: Print file:line when editing UI source 2018-07-03 07:22:26 +02:00
105192e5a2 Cleanup: pep8 2018-07-03 07:13:27 +02:00
646f8bdb48 Cleanup: pep8 2018-07-03 07:12:24 +02:00
00fc1d70a7 Merge branch 'master' into blender2.8 2018-07-03 06:58:34 +02:00
8c15d612a5 Cleanup: pep8 2018-07-03 06:55:02 +02:00
b66aa0b0a6 Cleanup: pep8 2018-07-03 06:48:44 +02:00
e856eb7e8b UI: don't change the theme area when setting theme 2018-07-03 05:57:27 +02:00
Julian Eisel
be5482ba2f UI: Dim color of shortcut label in menus and toolbar
The shortcut labels now use the "Item" theme color. Its contrast for hovered
items is a bit low, but not too bad.

Note that this also changes the color of the little toolbar triangle to be grey
(the same color we use for the keymap label). IMHO that looks better though.
This doesn't update any themes other than the default one.

Part of T54711.
2018-07-03 00:54:46 +02:00
98d2055089 Fix ugly half alignment in timeline header. 2018-07-02 20:25:59 +02:00
5b5e23cec3 Splash: add "Alpha" text and link to the development fund. 2018-07-02 20:08:43 +02:00
Macelaru Tiberiu
2203b041e1 Sculpting: add Manual detail mode for dynamic topology.
In this mode mesh detail does not change on each stroke, but only when
using flood fill.

Differential Revision: https://developer.blender.org/D3515
2018-07-02 20:08:42 +02:00
8c7ddf944e Theme: use highlight from flatty light
Also make text & number editing use same colors.
2018-07-02 20:08:15 +02:00
6fce49ab08 Theme: desaturate colors
Having everything tinted gives isn't good for color perception.
2018-07-02 20:08:15 +02:00
31e43d021f Merge branch 'blender2.8' into soc-2018-bevel 2018-07-02 23:31:19 +05:30
368a64fe04 Refactored bevel normal editing functionality. 2018-07-02 22:55:33 +05:30
31c9bd35bc Workbench: Fix use of uninitialized memory. 2018-07-02 19:21:01 +02:00
dc87648970 UI: Fix Properties with consecutive icons enabled in dropdown menus
It was using ICON_UNLOCKED when the property was true.

This affected the use_lock_interface properties now displayed in the Render
menu.
2018-07-02 19:14:06 +02:00
e35f9f0408 Merge branch 'master' into blender2.8 2018-07-02 18:55:24 +02:00
dbe1b07e05 Cleanup: right shift 2018-07-02 18:45:26 +02:00
Vuk Gardašević
12603826ea UI: Transform Orientations panel as popover
Functionality fits in the Transform Orientations, no need for a dedicated
panel in the viewport sidebar.

See D3511
2018-07-02 18:44:05 +02:00
9f80429ab6 Cleanup: use _f, _i suffix for GPU state API 2018-07-02 18:27:05 +02:00
c2814f5b28 Merge branch 'master' into blender2.8 2018-07-02 18:18:16 +02:00
74ace41160 Minor cleanup and fixed normal updating erasing entire mesh 2018-07-02 21:47:15 +05:30
0c25881c39 Cleanup of fix_normal_shading
Fixed the edge crease that was present and also made significant
performance improvements.
2018-07-29 19:52:23 +05:30
73c577d46a Painting: fix uninitialized variable use 2018-07-02 18:16:37 +02:00
William Reynish
ac8b641b77 Outliner: remove view menu, move more into RMB context menu and filter popover. 2018-07-02 17:40:20 +02:00
ae6872e26f UI: update status bar mouse icons, draw in text color. 2018-07-02 17:40:20 +02:00
5d77216ef7 Cleanup: remove unused icon code after OpenGL upgrade. 2018-07-02 17:40:20 +02:00
861cf1d131 Fix modal keymap breaking exporter
We could support quotes in keymap names, for now don't write them.
2018-07-02 17:37:15 +02:00
94bc1a40b4 Fix sculpt key bindings 2018-07-02 17:33:34 +02:00
778b272552 Theme: use black for object wire
Would too easily loose contrast with shaded objects.

See: T55673
2018-07-02 17:09:45 +02:00
adc8569deb Error in theme color cleanup #2 2018-07-02 17:04:17 +02:00
Julian Eisel
bea364fe2a Fix: Global area edges couldn't call right click menu to join/split
Operators ignored edges along the screen-layout bounds. They should've ignored
those along window bounds instead.

Although the global areas can not be joined/split, the adjacent areas can. So
the menu should still be shown.
Had to change the return value of area joining operator, so that an error report
can show up when trying to join over a global area edge. Think this is fine to
do, but you never know with such stuff.

Preferably we'd gray out the "Join Area" item in the menu when clicking on the
edge of a global area. Unfotunately the operator uses coordinates passed as
operator properties to find the right edge/areas, which we cannot access from
the poll callback.
2018-07-02 16:56:54 +02:00
878b09562c Error in last commit 2018-07-02 16:52:08 +02:00
f4f85b9db7 Cleanup: remove redundant theme colors
Remove unused colors (colors which RNA has no access to).
2018-07-02 16:34:47 +02:00
ecc0945117 UI: show favourites from properties-space in the 3D view
This allows settings to be toggled in the 3D view.
2018-07-02 15:57:12 +02:00
5fd2ea58a6 UI: Header consistency
Snap before proportional editing, pivot after
2018-07-02 15:53:56 +02:00
41a7225794 UI: align header menus to space them closely 2018-07-02 15:47:00 +02:00
4d05dd880a Keymap: reinstate Ctrl-L key
Linking based on selection may be done often, so adding back.
2018-07-02 15:27:19 +02:00
e5767eaad1 Cycles: Fix missing curve hair when building with GCC-8 in release mode
Reshuffle cast intrinsics to make XOR to operate on __m128i rather
than on __m128.

Hopefully this does not affect performance.
2018-07-02 15:16:14 +02:00
8e0cfcfc90 Keymap: add back macos preferences shortcut
Would like to avoid OS-keys, but apparently this is expected on OSX.
2018-07-02 15:15:27 +02:00
f2124c5624 UI: revert 3D menu alignment
This caused collapsed menu to draw in a row,
will look into alternate way to avoid menus taking too much room.
2018-07-02 15:02:45 +02:00
6a323d196f UI: Header consistency for 3D Viewport
Alignment/snapping/proportional edit to the right like in all other editors,
keeping the center for the shading/overlay settings.
2018-07-02 14:54:20 +02:00
69e437ba22 UI: Header consistency for Text editor 2018-07-02 14:54:20 +02:00
79c8f5ac0d UI: Header consistency for Squencer 2018-07-02 14:54:20 +02:00
ea57345adb UI: Header consistency for Node editor
Also move use_insert_offset to the View menu as it is not toggled that often
to take space in the header.
2018-07-02 14:54:20 +02:00
fd6d149347 UI: Header consistency for UV/Image editor 2018-07-02 14:54:20 +02:00
5b7f0d36f3 UI: Header consistency for animation editors 2018-07-02 14:54:20 +02:00
cec11c86e5 UI: File Browser header consistency
Move "Recursion" and "Display Size" to a new View menu.

Thanks Campbell for helping with wonky menus.
2018-07-02 14:54:20 +02:00
34678388f3 Outliner: add outliner wide RMB context menu.
All right click menus in the outliner now include OUTLINER_MT_context.
2018-07-02 14:52:22 +02:00
b3098c30a6 UI: add workspace cycling menu items 2018-07-02 14:30:28 +02:00
20046defd7 UI: update mouse icons in status bar. 2018-07-02 13:46:09 +02:00
2e15ee0dcf Keymap: add back X-Key for delete
This is needed as part of modeling work-flow, so keep it accessible.
2018-07-02 13:00:43 +02:00
3b0148d2aa Keymap: use Page Up/Down for workspace switching
These are common keys for changing tabs,
leaving tab free to be used for tools/mode switching.
2018-07-02 12:49:45 +02:00
06994e954b UI: add screen split to window context menu 2018-07-02 12:46:51 +02:00
ec22327a5f Merge branch 'master' into blender2.8 2018-07-02 12:43:36 +02:00
c6416ae653 Screen: support splitting from floating menu 2018-07-02 12:40:17 +02:00
b076b3853c Merge branch 'master' into blender2.8 2018-07-02 12:03:56 +02:00
b88e51dd55 Cleanup: use bool for poll functions 2018-07-02 11:51:31 +02:00
ad5a20efce Commit D3494 : Compiled shader lookup fix
Authored by Pavel Rudko (PavelRudko) on Thu, Jun 21, 10:41 AM.

Original description:

I've encounterd into a problem with blender 2.8.
See the example screenshot (scene, shader setup). For some materials it's not enough to calculate hash based on fragment code and defines. In some cases attribute names may change. And if we change uv set name, for example, vertex shader is not recompiled, and another attribute name inside it is used.
2018-07-02 11:05:48 +02:00
bfbfb1c47e Correct f-string in own recent changes 2018-07-02 09:18:38 +02:00
bf7c815169 Fix T55675: Crash internal animation player 2018-07-01 21:07:18 +02:00
37994e0af2 Merge branch 'master' into blender2.8 2018-07-01 20:15:21 +02:00
26c5a1c301 Cleanup: right shift in interface code 2018-07-01 20:12:07 +02:00
192e5d65a7 Keymap: add generally useful popups to F-Keys 1..4
This allows key bindings: link/append and user-preferences
to be accessed via keys - without having to assign keys to each action.

- F1: Context sensitive help.
- F2: File Context Menu.
- F3: Search.
- F4: Window Context Menu.

Other keys F5..10, remain free,
ideally they can be kept for user actions.
2018-07-01 17:51:31 +02:00
71e65daf5c Fix T55687: compile error when not using c++11. 2018-07-01 16:48:19 +02:00
9c5203c98f Fix T55626, fix T55106: Cycles motion blur + persistent images bug. 2018-07-01 16:32:35 +02:00
36a9436d80 Merge branch 'master' into blender2.8 2018-07-01 16:22:06 +02:00
ddee0931b8 RNA: use bool for boolean RNA types
We were using int's for bool arguments in BKE,
just to avoid having wrapper functions.
2018-07-01 15:57:59 +02:00
3ec6f2172d Cleanup: reduce variable scope 2018-07-01 10:32:47 +02:00
fadad17c58 Cleanup: avoid calloc when immediately overwritten 2018-07-01 10:26:37 +02:00
bc95c7a3ea Cleanup: remove num argument prefix 2018-07-01 09:23:51 +02:00
1c0aa4e396 Cleanup: RNA naming 2018-07-01 09:13:04 +02:00
b4998548ab Cleanup: use '_len' suffix for line stipple 2018-07-01 08:42:16 +02:00
ab6e23ffbb 3D View: use 3px dashed relationship line
Seems this was accidentally doubled from 2.7x?
2018-07-01 08:36:22 +02:00
0d31ab362e Revert "Experimental Tweak: Only show relationship lines between objects when either the parent/child object is selected"
This reverts commit 9129319647.

This meant users needed to select everything to see relationship lines,
this isn't always easy since objects can have limit-selection set.

This could be made into an enum option if it's important.
2018-07-01 08:28:12 +02:00
24979ccb65 UI: set default theme outline alpha
The outline wasn't being set causing it not to draw.
2018-07-01 08:04:39 +02:00
9daf6b12a6 Merge branch 'master' into blender2.8 2018-07-01 07:24:46 +02:00
9738de820a Cleanup: use f-string 2018-06-30 22:02:41 +02:00
6a13b6324b UI: support check-boxes in quick menu
Could support other RNA types,
however menus don't work well in this case.
2018-06-30 21:08:48 +02:00
7d48a342d6 Merge branch 'master' into blender2.8 2018-06-30 18:06:20 +02:00
bea62c5c1a Cleanup: split out context member query 2018-06-30 18:05:01 +02:00
62fcf34a41 RNA: check for 3D view overlay/shading
Use to calculate paths for the info window.
2018-06-30 17:43:14 +02:00
Severin
b08fa7a6d9 UI: Support status-bar hiding
Just like the top-bar, the status-bar can now be hidden/collapsed by dragging
its edge. We display a small line with the editor outline color then, so there
is something that can be dragged up to un-collapse the area again.
This collapsed state is not written to files yet.
2018-06-30 17:01:03 +02:00
eb47ac4569 UI: correct menu label comparison 2018-06-30 16:00:18 +02:00
Severin
7f4ce6c62b Fix corrupt screen when splitting areas after collapsing top-bar 2018-06-30 15:41:04 +02:00
b35aa659d1 DNA: rename operator idname 2018-06-30 14:17:13 +02:00
eb63b32dee Merge branch 'master' into blender2.8 2018-06-30 13:52:04 +02:00
bdc1108e8c Cleanup: remove unused context arg to menu 2018-06-30 12:31:53 +02:00
41176cd3d8 UI: support adding menu's to favourites 2018-06-30 12:08:08 +02:00
62ff53ff19 UI: move queries into interface_query.c 2018-06-30 10:58:56 +02:00
b89307acfd Merge branch 'master' into blender2.8 2018-06-30 10:56:12 +02:00
a42fd3de5d UI: Add 'interface_query.c'
Interface files are increasingly mixing up too much functionality,
add a file only to handle queries.

More functions can be moved/added here.
2018-06-30 10:49:04 +02:00
ea6fef9385 Merge branch 'master' into blender2.8 2018-06-30 10:32:55 +02:00
b26e9f0000 Cleanup: rename bmesh_queries -> bmesh_query
Other files with the same purpose already used 'query'.
2018-06-30 10:32:21 +02:00
16a8f35df1 Keymap: 2.7x, use fractions 2018-06-30 10:20:16 +02:00
d15bff5e96 Keymap: 2.7x uses spacebar for search. 2018-06-30 10:06:30 +02:00
ba1f292b32 UI: add operator search to edit-menu
While this is most useful to access from an active-region,
it's not discoverable without a menu entry.
2018-06-30 10:04:08 +02:00
25b7bdb6a9 Merge branch 'master' into blender2.8 2018-06-30 09:29:38 +02:00
5c0d8bcdc7 Cleanup: use f-string 2018-06-30 09:25:23 +02:00
Severin
1f1c2d8ce8 Cleanup: Move area geometry management into an own file
Area geometry management is quite complex and not easy to get into. We should
gradualy build an API that abstracts away this complexity.
2018-06-30 01:56:07 +02:00
Severin
a55b00b53b Fix a number of small errors in area coordinate handling
For example collapsing the lower part of the topbar with 2x interface scale
would hide the top-bar header region. There were also more asserts when changing
window size and moving area edges afterwards (same assert as in T55298).
Fixes are similar to e626998a26.

With all the recent fixes I've done, area geometry handling should be stable
again. Let's hope I'm right :)
2018-06-30 00:42:19 +02:00
Severin
48ad67ef82 Cleanup: Add/use function to get area width/height from area vertices
This used to be rather cryptic and it was easy to forget the `+ 1` which in fact
is needed to get the correct width/height, see e626998a26. This should
also fix some minor off-by-one errors.
2018-06-29 21:29:06 +02:00
728e92422e Fix T54524: keyframe and driver colors not showing in shape key list.
This reverts commit 357b72e0a7 which caused
the issue, we need a better fix for that cosmetic issue from T50862. For
now displaying keyframes and drivers is the more important one.
2018-06-29 21:23:13 +02:00
Severin
ac2e10d47b Fix memory leak when using scroll-bars 2018-06-29 20:57:43 +02:00
Severin
9b6aed845a Cleanup: Remove unused argument in recursive function 2018-06-29 20:35:32 +02:00
0c94528829 Cleanup: naming in MOD_utils. 2018-06-29 19:02:19 +02:00
3bc21bc5f7 Cleanup: Moar DM busting, mostly cleaning up MOD_utils. 2018-06-29 18:58:13 +02:00
3aa61499d0 Fix unnecessary empty space in shading popover. 2018-06-29 17:58:58 +02:00
ccacf3ae3c Cycles: change AO node default to 16 samples and only local off. 2018-06-29 15:43:55 +02:00
ccca2c0164 Workbench: Spherical Harmonics tests
Added a compile directive in order to test SH4 in stead of SH2Win.
For now I disabled SH4, it is a bit more clear, but has a small
performance impact. Will check later for a better approach
2018-06-29 14:59:30 +02:00
5ba87cf22e Cleanup: remove another bunch of DM usages, includes etc. 2018-06-29 14:57:02 +02:00
a59df21ad8 Fix T55645: broken particle Use Count option for instancing objects.
There is now a manual refresh button on the panel to update the list
of objects in case it changes, and it also gets refreshed when changing
the collection or toggling the use count option.

This is a bit more manual but the previous code of refreshing the
list while evaluating the depsgraph was unreliable.

This also fixes it to take properly take into account visibility, and
to work with linked collections for which index writing was missing.
2018-06-29 14:53:02 +02:00
ece72c9ec0 Keymap: re-enable object apply transform 2018-06-29 14:12:52 +02:00
dcdde6bedb Keymap: minimal default keymap
Use 2.7x keymap preset for full keymap.

Use define to allow further adjustments.

See T55666.
2018-06-29 12:58:59 +02:00
2223d63c58 Refactor static override code to pass Main around.
Access to main database is actually rarely needed, but some custom
'apply' functions do need it (like Collections' overriding of objects or
children collections).
2018-06-29 12:48:12 +02:00
3733be8731 Cleanup: nuke G.main from BKE's particle_system.c 2018-06-29 12:48:12 +02:00
3eff6f7a5e Cleanup: some moar DM kicking, in armature edit code. 2018-06-29 12:48:12 +02:00
04f8929271 Workbench: Transparent textures
Worknemch now supports transparent textures.
As the main engine is a deferred shading only a cutoff is supported
(draw or don't draw this pixel)
2018-06-29 12:05:23 +02:00
15ebe30bc5 Workbench: remove runtime warnings
Added feature check when uploading material uniforms
2018-06-29 09:59:37 +02:00
3169160a97 Workbench: TAA optimalization
First frame of the TAA is just a regular copy of the previous buffer. so
we write directly to the final buffer and skip the taa shader. We do
init the history buffer via blit so it will be initialized for the other
iterations.
2018-06-29 09:26:58 +02:00
18d87e79e9 Merge branch 'master' into blender2.8 2018-06-29 09:25:40 +02:00
b372766816 Cleanup: trailing newlines 2018-06-29 09:23:51 +02:00
3325487530 Keymap: 2.7x macos-only additions 2018-06-29 09:19:47 +02:00
f44c9b0c93 Keymap: add 2.7x keymap
This is the keymap from 929c78e33c
before the 2.8x keymap diverged from 2.7x.

All non-modal maps have been included.
2018-06-29 09:19:40 +02:00
899d100dd4 Workbench: Use less GPU memory
When AA was enabled a new buffer was created. As the composite pass is
already done, we can reuse earlier buffers.

For the deferred rendering we reuse the color_buffer_tx and for the
forward rendering we reuse the transparect_accum_tx.
2018-06-29 08:42:56 +02:00
d34b0faa65 Workbench: Removed MaterialData UBO
Most of the times the materials differ due to the object_id. This was an
overhead and resulted in instabilities on Intel graphical cards. This
commit will revert the Material Data UBO and replace it with normal
uniform.
2018-06-29 08:27:14 +02:00
9bd0c63382 Merge branch 'master' into blender2.8 2018-06-29 08:05:38 +02:00
af36dd4664 Cleanup: trailing newlines 2018-06-29 08:02:49 +02:00
Severin
be983295ea Fix: Moving area edge could corrupt screen in very specific case
Caused by ca8f787349. This issue is in master actually. Fixing it there
would cause conflicts so won't do that unless needed ;)

Steps to recreate were:
* Split properties editor into two (default startup.blend)
* Move both properties editors to the bottom, so only their headers are visible
* Move the upper edge of the upper properties editor up and down
Although it doesn't happen everytime, you may see the edge between the timeline
and the 3D view move, while the region drawing doesn't update.

What happened is area edge snapping allowed to snap the edge outside of window
bounds (we snap to a 4px grid by default), which screen_vertices_scale
interpreted as window scaling and thus run area size updates.
2018-06-29 02:23:59 +02:00
4d39da1060 Merge branch 'master' into blender2.8 2018-06-28 23:57:00 +02:00
46dceefc35 WM: Remove Screen Cast
This feature is better handled by specialized tools.
2018-06-28 23:40:51 +02:00
Severin
4d1c5f1ec5 Change earlier fix to work with hiDPI
Referring to ca8f787349. Thought in this case the simple `+ 1` would be
correct, but we need to make the same pixel adjustment as we do in other places.
2018-06-28 21:07:30 +02:00
Severin
c7954df96c Fix: Moving area edge could make areas overlap status-bar
Simply moving the properties editor of the default startup.blend all the way to
the bottom could trigger this. Calculating limits for area edge moving would use
screen bounds instead of entire window bounds (screen + global bars).

Added assert that should help debugging further issues like this.
2018-06-28 20:54:33 +02:00
Severin
ca8f787349 Fix T55298: Failing assert when splitting areas vertically
There are more related glitches for which I have fixes. Will test them some more
and push in a followup commit.
2018-06-28 19:51:39 +02:00
William Reynish
a71d53cb15 UI: move UV selection options to left
This is consistent with the 3D view.
2018-06-28 18:31:23 +02:00
dbbea2fc22 Fix: build error with msvc
introduced by rBd2757d149bf2d9ac604da6fb7f4742ee77e68d2d
2018-06-28 09:07:10 -06:00
aacd15e8a9 Overlay: Make overlay engine rebder on top of paint modes.
This puts the wireframe on top of the weight in weight paint mode,
sculpt mode ...

Wireframe should be colored differently if the object is in paint mode
but it's not there yet.
2018-06-28 16:12:24 +02:00
8caedc27d9 Correct mistake checking version 2018-06-28 16:01:18 +02:00
e65d7665f1 Removed most calls to modifier_deformVerts_DM_deprecated()
None of those calls actually passed a DerivedMesh.
2018-06-28 16:01:02 +02:00
Cédric Paille
aa6247a385 Alembic: speed up export of packed UV islands.
Differential Revision: https://developer.blender.org/D3510
2018-06-28 15:46:05 +02:00
d2757d149b Make stdout unbuffered
Unbuffered stdout makes stdout and stderr better synchronised, and helps
when stepping through code in a debugger (prints are immediately
visible). We don't output much to stdout anyway, so this isn't likely to
cause any performance issues.
2018-06-28 15:32:19 +02:00
747843516f Draw relationship lines for rigid body constraints 2018-06-28 15:32:19 +02:00
2b4c7600b7 Workbench: Anti-aliasing refactor
- TAA is also enabled for Forward rendering
- Uses less GPU memory (removed one history buffer)
- TAA is done after the color management
- consolidated the aa code between forward and deferred rendering
(workbench_effects_aa.c)
2018-06-28 14:39:15 +02:00
daa47e5e80 Workbench: Removed unused code in cavity shader 2018-06-28 14:39:15 +02:00
d2745986c8 Static Override: add support to override items (objects/sub-collections) in Collection IDs.
Was kind of a PITA to get working, but simple tests seem to pass well...
2018-06-28 14:28:31 +02:00
3c37354c97 Static Override: fix diffing logic for ietms ID pointers case.
I.e. we can now use REPLACE operation directly on items of an RNA
collection, when those items are ID pointers.

Again, mandatory to support new Collection's objects/children override.
2018-06-28 14:28:31 +02:00
e35d956860 Static Override: RNA apply code: pass extra 'item_ptr' to apply callbacks.
This is unused currently, but is mandatory for incomming support to
Collections objects and children items override support.
2018-06-28 14:28:31 +02:00
4626ca47b9 Prevented depsgraph errors when RigidBody Constraint is incomplete 2018-06-28 14:20:11 +02:00
7ad0e8300d Fixed AttributeError when there is no object selected 2018-06-28 14:20:11 +02:00
98a0bcd425 Prevent copying too much in the Rigid Body simulation
To prevent the pointcache from being copied-on-write too (and requiring
copying back), the cache is now shared between the original and
evaluated scenes. Reading from the cache is always allowed; running the
sim and writing to the cache is only allowed when the depsgraph is
active.

Some pointers have moved from RigidBodyWorld (RBO) to
RigidBodyWorldShared (RBOS). writefile.c copies some pointers back from
RBOS to RBO so that the file can still be opened on older Blenders
without crashing on a segfault.

The RigidBodyWorldShared struct is written to the blend file, because it
refers to the PointCache ID block.

The RigidObjectShared struct is runtime-only, and thus not saved to the
blend file.

An RNA getter-function is used to hide the new 'shared' pointer. As a
result the Python API hasn't changed.

Reviewed by: campbellbarton

Differential Revision: https://developer.blender.org/D3508
2018-06-28 14:20:11 +02:00
9b050b736b Fix assert to due missing GPU blend mode. 2018-06-28 13:46:30 +02:00
89e0d9848a UI: keep some operator text in headers.
Key shortcuts and explanation about how to use the tool should go to the
status bar, but other info can in the header so it's near where the user
is working. This distinction has not been made yet for all operators.
2018-06-28 13:04:28 +02:00
af9fcb6a33 Give RigidBodyWorld constraints collection a fake user
This prevents it from disappearing when the blend file is saved.
2018-06-28 12:31:44 +02:00
2928590431 Remove flatty_dark_blueberry (now default) 2018-06-28 12:28:49 +02:00
d2851b78f0 Manipulator: regression from removing keymaps
Keymaps were used to check which tool was active.
2018-06-28 12:26:33 +02:00
fddfc416ef RNA path: add way to get both valid ptr/prop pair, and final item ptr.
This will be much useful in some cases, at least in override area it is
needed (avoids searching again for the overriden item in a collection).
2018-06-28 11:58:15 +02:00
f827ab1d0c Correct bad merge 2018-06-28 11:29:35 +02:00
de30c47513 Merge branch 'master' into blender2.8 2018-06-28 11:10:09 +02:00
f22ef1706d Fix T55662: Crash on text autocomplete
Regression from undo system upgrade.
2018-06-28 11:09:09 +02:00
3f74a5c5fd Proper fix for RNA path evaluation of collection items.
Following RNA pointer way - only return evaluated item if asked for.
2018-06-28 11:06:31 +02:00
33306cabbe RNA_access: path parsing: fix broken code for collections.
When RNA path was for a collection item, we'd falsly get NULL final
property (and wrong final RNA pointer too).

Own stupid mistake in some previous commit, iirc.
2018-06-28 11:06:31 +02:00
0bf33a1e33 Cleanup: Nuke DM out of particle edit code.
Note that this commit also fixes serious memory leaks, temp Mesh
generated out of Main from the DM were never freed here!
2018-06-28 11:06:31 +02:00
d125e777b3 Cleanup: remove some DM from editor's Object vgroup code. 2018-06-28 11:06:31 +02:00
ed0ca7258e Cleanup: more DM include removal, use BAREMESH cddata mask in constraint code. 2018-06-28 11:06:31 +02:00
Dalai Felinto
c1aaa6b24b Fix material preview for EEVEE/Cycles
The preview files had all the other collections excluded from the view layer.
Although this fix the problem, it probably means we ignored some existing
2.8 files in recent changes. Which is likely fine anyways given that 2.8 is
experimental.
2018-06-28 11:05:14 +02:00
54beb7b433 Merge branch 'blender2.8' of git.blender.org:blender into blender2.8 2018-06-28 11:00:26 +02:00
f3065ed365 Merge branch 'master' into blender2.8 2018-06-28 10:50:04 +02:00
274bde23fb CMake: enable WITH_ASSERT_ABORT by default
Assert from BLI_assert by default in debug builds
(instead of just printing a warning).

Some developers ignored this, causing errors for others.
Better debug builds cause hard error so code isn't ignored.

Disabling is still useful when bisecting or testing outdated code.
2018-06-28 10:48:06 +02:00
d5a8c0c414 UI: use two dot ellipses
Use less space for sign used when we don't have enough.
2018-06-28 10:45:39 +02:00
071ec6b397 Workbench: Fix crash editing in texture modes without uv layer
When meshes has no uv layer, but has a texture assigned there was a uv
layer allocated which was corrupt. When no uv layer is available now
there won't be a vbo created. This might impact performance as the draw
cache does not cache this result.
2018-06-28 10:40:19 +02:00
f09480b212 Hair drawing: respect the amount of layers.
Current implementation works with at most of 3 layers, but was not
checked during hair drawing leading to reading from uninitialized
memory.

This commit limits it to the number of layers that is used during
compilation of blender.
2018-06-28 10:40:19 +02:00
3f2bde5a39 Workbench: Materials Texture hash
only hash the texture if it exists. Really minor improvement
2018-06-28 10:40:19 +02:00
b01392e9ac Tools: disable fallback drag action for transform
Based on animator feedback, accidentally not clicking on the manipulator
handle had unpredictable behavior.

This functionality will be moved into the manipulator and made optional
(add an invisible fallback manipulator).
2018-06-28 10:34:41 +02:00
20880d8744 Workbench: Fix Texture drawing
textures were not always drawn as the material did not always include
the image in the hash. Not sure if this will solve all cases, but it
definitely works better with this change.
2018-06-28 09:20:46 +02:00
53e191e0a5 Merge branch 'master' into blender2.8 2018-06-28 08:50:11 +02:00
8777b33699 Fix missing blend mode in recent OpenGL refactor 2018-06-28 08:49:30 +02:00
597122d72b Cleanup: use f-strings 2018-06-28 08:43:58 +02:00
d8d245917d Cleanup: pep8 2018-06-28 08:27:03 +02:00
a18a6a1441 gl cleanup: fix wrong cast in bf_editor_transform 2018-06-27 22:47:25 -06:00
8e02106d0d GLRefactor: partially remove gl calls from source/blender/editors.
This translates the gl calls to the new GPU_ wrappers from D3501.

Given it's tedious and repetitive work, this patch does as much as it can with search + replace, the remainder of the gl calls will need to be manually dealt with on a case by case basis.

This fixes 13 of the 28 failing editors when building without opengl.

For the list of substitutions see D3502

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3502
2018-06-27 19:07:23 -06:00
William Reynish
fe258fd445 UI: Center ID Blocks in Dopesheet Editor
Also move use_multi_word_filter to the View menu instead of next to every
search field, as it can be very slow in big scenes.
2018-06-28 00:49:17 +02:00
William Reynish
7a8c49ef91 UI: Center ID Blocks in Clip Editor
See T55635
2018-06-28 00:33:52 +02:00
William Reynish
ed8fca8782 UI: Center ID Blocks in Image Editor
See T55635
2018-06-28 00:33:10 +02:00
William Reynish
9f4b7bed29 UI: Center ID Blocks in Video Sequencer
Also remove Use Preview Range and Lock Frame buttons from the header
they belong to the Timeline editor now.

See T55635
2018-06-28 00:32:05 +02:00
William Reynish
3e1b755ead UI: Center ID Blocks in Node Editor
See T55635
2018-06-28 00:30:47 +02:00
William Reynish
252d1d8e22 UI: Center ID Blocks in Text Editor
See T55635
2018-06-28 00:29:04 +02:00
a009f2659f UI: keep statusbar keymap icons in same position, if there is enough space. 2018-06-28 00:13:58 +02:00
8b2297847f Merge branch 'master' into blender2.8 2018-06-28 00:13:52 +02:00
9536f67e7e Fix Cycles tests build on macOS. 2018-06-28 00:11:01 +02:00
35bfc8c748 Merge branch 'master' into blender2.8 2018-06-27 23:01:19 +02:00
b633d760a2 Cleanup: style 2018-06-27 22:32:52 +02:00
31f0c9182e Cleanup: style 2018-06-27 22:29:59 +02:00
William Reynish
609805eed3 UI: shorten labels to avoid clipping 2018-06-27 22:12:50 +02:00
cf7ff47e3e Remove empty gradient definitions in new theme
MSVC doesn't support
2018-06-27 22:12:50 +02:00
31137f772b Remove empty gradient definitions in new theme
MSVC doesn't support
2018-06-27 20:21:23 +02:00
d3b814e9ec UI: tweak status bar layout to make it less jumpy.
Keymap on the left, messages and jobs in the middle, stats on the right.
2018-06-27 19:48:54 +02:00
0e304ca8f5 UI: some renaming for more clear/consistent cursor keymaps in status bar.
There's much more work to be done here, this is just fixing some obvious ones.
2018-06-27 19:04:04 +02:00
3504b27c50 Patch to fix shading continuity.
Added it as extension to harden. Tried out different methods to fix normals,
Though as with width and segments changes shape, orientation of new polys
a non-smooth method of fix was not possible. Current method aggregates
vertex normals into a smooth fan without affecting edge shading.
Still need to fix the crease at new vertex edges
2018-06-27 20:19:15 +05:30
f55f2db6bd Fix T55644: Multires ignores render subdivision when simplified
We did not tell proper render/viewport context to subsurf derived mesh
created for multires.
2018-06-27 16:35:06 +02:00
08b105654d Depsgraph: Move time dependency to animation of action
This way we guarantee that animation component on the datablock will
totally wait for action to be fully evaluated before attempting to
evaluate f-curves.

Fixes T55642: Inconsistent result on animated DoF file
2018-06-27 16:35:06 +02:00
3766b93853 Depsgraph: Add missing relation to pose init
Pose init initializes inversed object matrix, which means it does
need to have proper object transform.
2018-06-27 16:35:06 +02:00
05bcb2d5f5 Depsgraph: Fix missing relation from action to animation when it's shared 2018-06-27 16:35:06 +02:00
c3594f6469 UI: remove layout choosing menu from new window operator.
The handling of multiple window layouts within a workspace is intended to
be automatic now, this was a leftover from an earlier design.
2018-06-27 16:08:52 +02:00
fad585d6f4 UI: user fewer icons in File and Render menus.
Having an icon for nearly every menu entry can make it harder to scan.
2018-06-27 16:08:52 +02:00
eda770f884 Theme: set default theme 'Flatty Dark Blueberry'
The theme is now stored in generated C code,
which can be extracted from existing user preferences.

This theme can then be used for version patching themes
instead of duplicating values

Note that theme versioning has been removed,
since minor changes from now on won't apply well on top of 2.7x theme.

Theme colors from interface_widgets.c have been removed too.
2018-06-27 16:03:43 +02:00
66298a99e3 Theme: add 2.7x theme
Prepare for new default
2018-06-27 15:32:34 +02:00
3df82335dd Theme: Tweaks to console/text in Flatty Dark Blueberry 2018-06-27 15:04:37 +02:00
310796214f Workbench: Use different samples in AO per TAA iteration
Per iteration a different AO samples are used, so the final result is
less distorted. Will improve the quality of the image a lot when the
cavity option is turned on.
2018-06-27 14:36:01 +02:00
William Reynish
d48600fddc UI: Single-column layout for Lamp panel 2018-06-27 14:23:17 +02:00
20b8e1d8f1 Workbench: Added a quality slider for the viewport
Currently only attached to the Anti Aliasing of the solid mode of the
viewport. But eventually we could add other options here. Quality
setting can be found in the System tab of the userpref.

The slider goes from No Antialiasing (0.0 - 0.1) to FXAA (0.1 - 0.25) to
TAA8 (0.25 - 0.6) to TAA16 (0.6 - 0.8) to TAA32 (0.8 - 1.0)
2018-06-27 12:59:01 +02:00
cf2dcd57c0 Theme: Further polishing and unifying on Flatty Dark Blueberry
With feedback from @campbellbarton for better contrast in edit mode.
2018-06-27 12:20:25 +02:00
Dalai Felinto
a5ba97e58c mesh_navmesh.c removal
This was added back by mistake in a wrong merge
f1bc899146.
2018-06-27 11:40:30 +02:00
65128cde51 Cleanup: remove BKE's modifiers_bmesh.c, other DM removal/cleanup in BMesh code. 2018-06-27 10:59:52 +02:00
e878f1d00d Cleanup: nuke DM out of constraint code. 2018-06-27 10:37:57 +02:00
9c7a561883 Cleanup: remove some more DM usages... 2018-06-27 10:37:57 +02:00
c3544df207 CMake: fix linking blendont 2018-06-27 08:49:45 +02:00
6f2c9ea3e1 bf_gpu: Add GPU_state module.
This has wrappers for the most common gl* functions in the codebase, and is in preparation for D3502

Reviewers: brecht, fclem

Differential Revision: https://developer.blender.org/D3501
2018-06-26 15:17:31 -06:00
a61480c271 Merge branch 'master' into blender2.8 2018-06-26 22:56:39 +02:00
532c8ac583 Cleanup: pep8 function indentation 2018-06-26 19:58:56 +02:00
a3cd57ea8c Fix scrollbar operator showing in status bar cursor keymap. 2018-06-26 19:49:25 +02:00
e0b28306df Fix status bar wrong cursor keymap using wrong region in some cases. 2018-06-26 19:48:24 +02:00
df02675e21 UI: move modal operator text from headers to status bar.
Python API is context.workspace.status_text_set()
2018-06-26 19:45:55 +02:00
ecb56eac57 UI: Add/Update bad tooltips
Part of T51061
2018-06-26 12:29:11 -04:00
c817a89e73 Workbench: Wrong ENUM value for SINGLE color
Had to be "SINGLE", but was "SOLID" resulting in not showing the single
color option in the shader popover
2018-06-26 18:19:53 +02:00
6b0670951f Workbench: TAA quick fix for AMD cards
Seems to be that mix(a, b, 1.0) will not give you b. on nvidia this is
not a problem as a was initialized with 0.0, but on AMD it can be any
floating point number, resulting that mix(inf, b, 1.0) was still more to
inf than to b.
2018-06-26 18:14:19 +02:00
b4c01aca30 Merge branch 'master' into blender2.8 2018-06-26 17:42:33 +02:00
d5a42bce38 RigidBody: use runtime.mesh_orig instead of DEG_get_original_object 2018-06-26 17:39:17 +02:00
599e979d90 Fix bug in DNA_struct_elem_find when checking the first field
find_elem(olddata=NULL) doesn't work reliably for existence checks; it will
return NULL both when the field is found at offset 0 and when it is not
found at all.
2018-06-26 17:35:21 +02:00
0954085e1e Fix missing object/collection hiding icons on undo. 2018-06-26 17:17:05 +02:00
e69e62a90a UI: decrease status bar height. 2018-06-26 17:15:43 +02:00
cf8a059769 Workbench: Tempural Anti Aliasing
- FXAA is now also done in the workbench_forward engine.
- User can enable TAA8 in the userpref by setting their max
viewport AA to TAA8. FXAA will still be used when navigating
2018-06-26 16:35:47 +02:00
Dalai Felinto
c07f2bc891 Fix T55628: Crash when creating new material slots
We need to update the geometry when resizing the object material slots.
2018-06-26 16:00:04 +02:00
Vuk Gardašević
43d27095a3 UI: Make Mesh shading menu consistent with the other menus 2018-06-26 14:29:21 +02:00
William Reynish
25caedc4ba UI: Tweaks to Cycles Bake panel
-Correctly aligns bake options in the column
-Updated Metadata panel with right-aligned checkboxes for consistency
2018-06-26 14:17:02 +02:00
c1459a1e7f Fix T55630: update issue between Object and TexPaint modes.
Need to flush mesh DEG COW here, for some reason...
2018-06-26 12:36:38 +02:00
cdd915e9e9 UI: status bar cursor keymap display
Show mouse button actions in status bar, based on context,
modifiers and active tool.

See: T54861
2018-06-26 12:18:54 +02:00
4adf19e80b Icons: mouse buttons & drag
Monochrome icons from jendryzch
2018-06-26 12:15:39 +02:00
e17285a381 Tweak: Try to make the purpose of the collection/search fields clearer
Note: The labels in this panel are still WIP. There are probably clearer
names for some of these, including maybe even omitting some.
2018-06-26 21:44:14 +12:00
c0a8a29ae6 AnimEditors: Remove the toggles to enable name/collection-based filtering
Now the name/collection filters run when there's some text,
and don't run when the box is empty, thus reducing an extra
step that was needed before these options could be used.
2018-06-26 21:44:14 +12:00
5f545dbde8 AnimEditors UI: Move less frequently used filtering options to a "Filters" popovers
This commit is an experiment in using popovers as a place to house some
of the filtering options for animation editors, in line with what's taking
place in the Outliner with the filtering popover there too.

Right now, the most frequently used/changed options are still available
on the headers (i.e. the "Only Selected"/"Hidden"/search fields), while
everything else (i.e. the per-datablock filters, which were already hidden
behind a collapsed-toggle button before) now live in the popover.
2018-06-26 21:44:14 +12:00
c795505a2c Cleanup: dyntopo sculpt draw update: use same BM_face_as_array_vert_tri for indexbuf generation.
It's cleaner, and actually assert that BMFace is a triangle. Same code
as when generating vertexbuf for flat shading!
2018-06-26 11:43:17 +02:00
dad4703ec5 Fix T55320: Sculpt Mode with dyntopo and smooth shading drawing bug.
We have to discard the batch in smooth case, because we are modifying
the index buffer (flat shading don't need it, only changes vertex buffer
on redraw, which is safe).

Many thanks to @fclem for his help on debuging/understanding what was
wrong here!
2018-06-26 11:43:17 +02:00
42fde5d32b Fix memory leak when duplicating particles 2018-06-26 11:31:28 +02:00
a9ab0c1a7c Depsgraph: Tag relations for update when particle dupli-collection changes 2018-06-26 11:27:41 +02:00
Dalai Felinto
d6ac293bd4 Cleanup: comment 2018-06-26 11:07:29 +02:00
cfb50463be Free crash when freeing object caches from duplicator 2018-06-26 10:53:05 +02:00
Stefan Werner
73eb1bfd55 Revert "Turned off clang warnings in third party includes."
This reverts commit d53093953f.
2018-06-26 10:26:56 +02:00
ea339dc62c Merge branch 'master' into blender2.8 2018-06-26 09:34:13 +02:00
df237b964b PyAPI: add ImBuf.copy
DD348 by @kilon w/ edits.
2018-06-26 09:31:57 +02:00
a69f985f40 PyAPI: move deep-copy args check to py_capi_utils 2018-06-26 09:31:57 +02:00
e6825946d0 Cleanup: style, pep8 2018-06-26 08:45:13 +02:00
29182dd570 Cleanup: style 2018-06-26 08:35:35 +02:00
87f598fd3f Cycles: Fix wrong row count for World MIS CDF calculation 2018-06-26 05:35:30 +02:00
Stefan Werner
d53093953f Turned off clang warnings in third party includes.
The latest clang compiler (at least the one in Xcode 9.4.1) warns about the register keyword and macro expansions using defined().
Since these warnings come from third party code, we can't address them directly in Blender. Silencing them via #pramgas will
at least keep the warnings during a build down to the ones that are relevant to Blender code.
2018-06-25 23:02:01 +02:00
4aee554345 Fix crash with files saved with missing render slots. 2018-06-25 20:29:51 +02:00
9e88892f8f UI: Use background color for reports
At the moment it's using a hardcoded gray color that conflicts with
themes using gray for the header text. Instead use a slightly brighter
background color to make it stand, yet still use a theme setting.
2018-06-25 18:57:51 +02:00
25a223c3bd Draw: Use more proper particles index lookup 2018-06-25 18:22:27 +02:00
540b99bd28 Cycles: Free evaluated meshed when we are done with object 2018-06-25 17:28:46 +02:00
7cd86cd1fe Cycles: Fix memory leak with session
We didn't check for sync object being already allocated.
In fact, we simply need to use proper function to free
session.
2018-06-25 17:28:46 +02:00
c2110213ca Physics: update softbody and dynamic paint to get colliders from depsgraph.
Because looping over the scene is unsafe and slow.
2018-06-25 17:15:07 +02:00
2c9b32949b Cleanup: refactor depsgraph physics API functions. 2018-06-25 17:15:07 +02:00
William Reynish
26251282e0 UI: Single-column layout for Force Fields and Particles
Force Fields and Falloff are now simpler and more compact
by removing unnecesary labels (there was a text label just for one option)

Particle Force Fields Falloff is now a sub-panel of each effector type,
rather than just as a section with label.
2018-06-25 17:04:40 +02:00
William Reynish
51e077c5c0 UI: Single-column layout for View Layer, passes and World 2018-06-25 17:02:50 +02:00
William Reynish
153195da22 UI: Single-column layout for Texture Color 2018-06-25 17:01:54 +02:00
William Reynish
5ddba52029 UI: Single-column layout for Shape Keys and Geometry Data 2018-06-25 17:00:00 +02:00
eefe878660 Fix T55360: marker-based Camera switch focal length bug.
Scene was missing DEG tag update when its camera was changed based on
active 'camera marker'.
2018-06-25 16:21:24 +02:00
476b4c415c Fix T55493: Sculpting on smooth shaded bug.
Undo was not tagging PBVH to update normals too...
2018-06-25 14:15:08 +02:00
38d6e82d1a Fix use of non-evaluated collision and effector objects.
Only enabled objects in the view layer should be used, while temporarily
hidden objects should still have an effect.
2018-06-25 14:11:55 +02:00
817bf582c2 Cleanup: rename object base flags to be more clear. 2018-06-25 14:09:17 +02:00
a99dcab148 Depsgraph: cache collision relations, for performance and stability.
Same reasoning as effector relations in earlier commit.
2018-06-25 13:35:41 +02:00
5b3ff9f7d8 Cleanup: Move colorband handling from DM to mesh_runtime universe. 2018-06-25 13:04:24 +02:00
e10eb5bcb8 UI: In user preferences group Developers Extra and Python Tooltips
Move Navigation Manipulator toggle next to Mini Axis as they are related
(and in the future merged into one pulldown) and rename Manipulator
to "Transform Manipulator" to make it clear they're different kinds
of manipulators. Also move to the first column next to other viewport settings.
2018-06-25 12:58:28 +02:00
e97237892c Merge branch 'master' into blender2.8
Conflicts:
	source/blender/editors/sculpt_paint/paint_image.c
	source/blender/editors/space_view3d/view3d_draw.c
	source/blender/editors/space_view3d/view3d_view.c
	source/blender/gpu/GPU_draw.h
	source/blender/gpu/GPU_material.h
	source/blender/gpu/intern/gpu_draw.c
	source/blender/gpu/intern/gpu_material.c
	source/blender/makesrna/intern/rna_userdef.c
	source/blender/windowmanager/intern/wm_files_link.c
	source/blender/windowmanager/intern/wm_init_exit.c
	source/creator/creator_args.c
	source/gameengine/GamePlayer/ghost/GPG_ghost.cpp
	source/gameengine/Ketsji/KX_PythonInit.cpp
	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
2018-06-25 12:50:32 +02:00
cdee53edfc Cycles: Cleanup, indentation 2018-06-25 12:39:44 +02:00
8a7f317666 Cleanup: Nuke most of G.main from GPU code. 2018-06-25 12:32:48 +02:00
Dalai Felinto
0145daa09b Outliner: Make search always work
This was a flag in early 2.8 to allow users to hide the entire search prop.
Now since we want it fully expanded at all times, it makes no more sense.
2018-06-25 12:15:12 +02:00
861b0ec417 UI: Right align check-box for extra text space
See: T54951
2018-06-25 12:06:51 +02:00
29c1069244 Cleanup: code style 2018-06-25 12:06:51 +02:00
f33cb522dd Cleanup: Few more validation of G_MAIN usages... 2018-06-25 12:02:20 +02:00
7a4d5b78ea Depsgraph: Add missing nodes and relations for speaker 2018-06-25 11:54:12 +02:00
c448c0a67f RigidBody: Replaced 'if' with 'switch' 2018-06-25 11:24:55 +02:00
eb56ca3119 Rigid body: compute looptris on original mesh instead of CoW copy 2018-06-25 11:20:06 +02:00
Dalai Felinto
1099ac1ed9 Silence warning for release builds 2018-06-25 11:02:19 +02:00
e8a1b4d645 Change bitmap to GHash in bevel_harden_normals_mode 2018-06-25 13:47:46 +05:30
d864332085 Merge branch 'master' into blender2.8 2018-06-25 09:48:10 +02:00
b09387c388 Add back header needed win32 2018-06-25 09:46:03 +02:00
d32e4ca701 Merge branch 'master' into blender2.8 2018-06-25 07:43:51 +02:00
f3b9fa5393 CMake: correct remove_strict_cxx_flags_file
Was still using C-flags.
2018-06-25 07:30:00 +02:00
a5b7f1ef53 UI: internal changes to user-menu storage
- Use per context menu lists to support menu editing.
- Support for different kinds of menu items since this may be needed
  in the future. Only use operator types for now.
2018-06-24 20:06:30 +02:00
a59d7374ea Nuke DM out of collada code.
Also, now use out-of-main temp copy of mesh for export, and fixed a
potential memleak (return without freeing temp copy of mesh, tsst).
2018-06-24 18:40:52 +02:00
d0856d1d54 Fix most of 'disappearing' first letter in right-aligned labels.
BLF' blf_font_width_to_strlen() could easily generate strings with up to
nearly two pixels length over requested limit!

Note that the fiddling between floats and ints values make things really
confusing here... :/

There is still a few limit cases where, even though computed str length
is now always below reauested limit, we still get first letter
disappearing, no idea why currently.
2018-06-24 17:51:13 +02:00
6454319033 Lamps: Make default size more usable
This way the area light shapes are more visible (and usable) by default.

Changes were discussed with @venomgfx
2018-06-24 15:03:10 +02:00
a9bc880cf8 Object Mode: Add Shape visual for spot and point lamps
Since Eevee and Cycles both use lamp size for point lamps, displaying
the shape is now more relevant than before.
2018-06-24 15:03:10 +02:00
574c716f2d Cycles: change AO node color default to 1.0. 2018-06-24 12:24:30 +02:00
8f85cf033c Merge branch 'master' into blender2.8 2018-06-24 11:08:14 +02:00
e61bbc00b7 Cleanup: move UI context menus into own file 2018-06-24 10:43:09 +02:00
a3cb9c8238 Wireframe Overlay: Add back the per edge hiding
This method is a bit more optimized than the very first one
because it does not rely on the adjacent faces properties.

That said it's still a bit slower than the per vertex method.
2018-06-24 00:01:02 +02:00
12bd80fefd Eevee: Fix wrong depth test in main shading pass. 2018-06-23 21:26:21 +02:00
acb94b6c78 Typo in last commit 2018-06-23 20:57:09 +02:00
85c1e61375 UI: Add user defined context menu
- Add/Remove from RMB context menu.
- Stored in user preferences.
- Access from Q key.

See T55027.
2018-06-23 20:52:47 +02:00
2fa231a86b Ghost: Fix F12 render on windows.
createOffscreenContext left the new context bound to the calling thread
causing a race condition with the background thread doing the actual
rendering. see T55555 for a more detailed description of the problem.

this patch changes the behavior of createOffscreenContext to restore the
context to the calling context.

Reviewers: fclem

Differential Revision: https://developer.blender.org/D3499
2018-06-23 11:37:35 -06:00
4ddb03ba79 Keymap: Add F3 key back for search
Keeping tilder, adding back F3 since some platforms
still don't have hardware scan-codes for tilder key on non-US keyboards.
2018-06-23 16:25:29 +02:00
6328214ec8 Manipulator: fix issue refreshing transform tool
Changing manipulator types failed.
2018-06-23 15:02:27 +02:00
43872124f7 Merge branch 'master' into blender2.8 2018-06-23 10:46:09 +02:00
f8a3636374 UI: alternate fix for empty context menu
block and layout could be NULL and checking this everywhere
wasn't practical.

Instead of lazy initializing, add UI_popup_menu_end_or_cancel
which cancels empty popup menus.
2018-06-23 10:31:10 +02:00
0511cded25 UI: naming of cursor options 2018-06-23 09:46:18 +02:00
575c71b670 Blenfont: Fix texture not being initialized in recent refactor.
Caused some gpus to have issues with the font shadows.

thanks @fclem for helping tracking this one down.
2018-06-22 14:35:32 -06:00
1757b38179 Added UI for harden normals and normal control in bevel modifier 2018-06-23 01:46:42 +05:30
0f66fe5732 Fix normal shading continuity for in-plane bevels 2018-06-22 23:22:44 +05:30
2d7606daa5 Missed last commit 2018-06-22 19:25:38 +02:00
a997b5d17b Tool System: transform can now toggle loc/rot/scale 2018-06-22 19:23:27 +02:00
cc4dc2dce2 Depsgraph: cache effector relations, for performance and stability.
To find all effectors in the scene, we need to loop over all objects.
Doing this during depsgraph evaluation caused crashes because not all
objects are guaranteed to be evaluated yet.

To fix this, we now cache the relations as part of the dependency graph
build. As a bonus this also makes evaluation faster for big scenes,
since looping over all objects for each particle system is slow.

Fixes T55156.
2018-06-22 17:57:22 +02:00
79615c5adb Cleanup: nuke (nearly) all remaining usages of DM from RNA.
Only case remaining is a nasty ccgdm/opensubdiv update case, TBD once
subsurf case is addressed.
2018-06-22 17:55:48 +02:00
122e0105e2 Port DM_debug stuf to BKE_mesh_runtime. 2018-06-22 17:55:48 +02:00
8286cc8cd4 Fix crash reading toolsettings 2018-06-22 17:22:06 +02:00
bf0dc7ee19 Cleanup: use standard BKE_object_free_derived_caches in BKE_mesh_to_curve.
...Instead of doing own dirty/risky version of the same thing!
2018-06-22 16:59:38 +02:00
b1e86ff385 Cleanup: misc DrivedMesh stuff. 2018-06-22 16:59:38 +02:00
befd87ac62 StudioLights: API
- get spherical harmonics coefficients
2018-06-22 16:23:30 +02:00
6bfc961424 Cleanup: Moar DM busting from editor code area. 2018-06-22 16:10:29 +02:00
ccbe3bdd08 Cleanup: nuke another DM usage in paint code. 2018-06-22 16:03:16 +02:00
f51661fb66 Cleanup: useless BKE_cdderivedmesh includes... 2018-06-22 15:52:14 +02:00
c850fcc2c0 Modifiers: port shapekey modifier, some cleanup. 2018-06-22 15:45:46 +02:00
97c99fb034 Modifiers: port UV_unwarp from DM to Mesh.
Pretty trivial...
2018-06-22 15:32:41 +02:00
48e70ab848 Add depth and orientation options to 3D cursor tool 2018-06-22 15:23:56 +02:00
3c828c29b3 Cleanup: unused value 2018-06-22 15:23:56 +02:00
888fb065a4 Modifiers: Remove remaining parts of md->scene 2018-06-22 15:12:03 +02:00
a7ca8fe1dd Modifiers: Remove lots of usages of md->scene 2018-06-22 15:12:03 +02:00
7a4b784909 Subsurf: Move away from using scene from modifier data 2018-06-22 15:12:03 +02:00
fffe34531d Cloth: Move away from scene stored in cloth modifier data 2018-06-22 15:12:03 +02:00
c2fa82e7a4 Multires: Move away from using scene from modifier data 2018-06-22 15:12:03 +02:00
dfca352294 StudioLight: Better API
In stead of a single refresh function that re-init the whole system. The
API now supports adding and removing. Which will be much faster and less
flickering of missing icons when adding/removing lights
2018-06-22 14:49:49 +02:00
f4d6e66b25 Merge branch 'master' into blender2.8 2018-06-22 14:42:25 +02:00
6cd0484de8 CMake: Make language explicit for per-file strict flags removal 2018-06-22 14:40:00 +02:00
ec27776d8e CMake: Cleanup, add_cc_flag -> add_c_flag 2018-06-22 14:29:13 +02:00
38247fc80b CMake: Cleanup, rename CC_REMOVE_STRICT_FLAGS to C_REMOVE_STRICT_FLAGS 2018-06-22 14:25:42 +02:00
0d7e758c91 CMake: Tweaks to removal of strict flags
Silences the following strict flags from external libraries:

- -Wclass-memaccess
- -Wswitch
- -Wtype-limits
- -Wint-in-bool-context

Needed to tweak macro a bit, since the old logic was wrong:
we can not use CXX flags for C compiler, need way more strict
separation between what goes where.
2018-06-22 14:25:42 +02:00
6528310543 Cleanup: move cursor rotation into own function 2018-06-22 13:59:56 +02:00
Dalai Felinto
f4f6e5b665 Outliner: Aggregate ID types and object types together with numbers
We draw small numbers over the icon of multiple objects of the same type.
Also, we make all inlined elements to be non-clickabled.

For modifiers we still do it the old way. In this case it is more important
to see the order then the ammount.

Reviewers: brecht, campbellbarton
Subscribers: billreynish, venomgfx

Design task and mockup: T54707
Differential Revision: https://developer.blender.org/D3497
2018-06-22 13:57:04 +02:00
42344adcd4 Update theme Flatty Dark Blueberry 2018-06-22 13:45:36 +02:00
0b9cd0c88d Merge branch 'master' into blender2.8 2018-06-22 12:58:29 +02:00
a5f046f449 Cleanup: rename 3D cursor calculation vars 2018-06-22 12:55:15 +02:00
88158e4116 Cleanup: 2.8-new G.main in RNA code.
Again, essentially validating them, and adding assert check if needed.
2018-06-22 12:50:26 +02:00
646412004b Merge branch 'master' into blender2.8
Conflicts:
	source/blender/makesrna/intern/rna_image.c
	source/blender/makesrna/intern/rna_object.c
	source/blender/makesrna/intern/rna_object_force.c
	source/blender/makesrna/intern/rna_screen.c
	source/blender/makesrna/intern/rna_sculpt_paint.c
	source/blender/makesrna/intern/rna_space.c
	source/blender/python/bmesh/bmesh_py_types.c
	source/blender/python/generic/bpy_internal_import.h
	source/blender/python/intern/bpy_rna_anim.c
	source/blender/python/intern/gpu_offscreen.c
2018-06-22 12:46:16 +02:00
b6b7c83dd8 StudioLight: Only apply windowing when SH level is 2
It does not make much sense for the other levels
2018-06-22 12:37:03 +02:00
2fe528424d Cleanup: remove last G.main from RNA.
Again, we cannot actually get rid of G_MAIN global access here, so in
most case just 'marked' them as valid, and added assert checks to ensure
we do only work with IDs in G_MAIN in those cases.
2018-06-22 12:35:41 +02:00
0427eca2a6 StudioLight: remove caches when removing studiolight
Cache files were not deleted and when uploading a new file with the same
name resulted in using the old cache file.
2018-06-22 12:31:20 +02:00
e402c36388 Studiolight: Spherical Harmonics Windowing
Apply Windowing on the Spherical Harmonics result. This would lead to
better results.
2018-06-22 12:31:19 +02:00
101fd7ec06 Tweak new BKE_id_is_in_global_main to accept NULL pointer (and consider them as valid). 2018-06-22 12:26:45 +02:00
bcdec63570 Fix harmless use of unintialized memory
Still nbice to avoid such access to keep valgrind output more sane.
2018-06-22 12:08:18 +02:00
e6e2e9c246 Cleanup, spelling 2018-06-22 12:08:18 +02:00
9921e10583 Math: Set matrix to zero when inversion fails
Avoids usage of uninitialized memory when inversion fails.

That uninitialized memory can cause object to become visible when
it is supposed not to or other artifacts like that.

Longer term solution would be to check every instance of invert_m#
function and to explicit fallback when needed (possibly, using
extra utility functions).
2018-06-22 12:08:18 +02:00
cbf5c738d6 Cleanup: get rid of last G.main's in bpy area.
Essentially 'validating' them as G_MAIN, and adding some asserts in
dubious places, that handled IDs are actually in G_MAIN.
2018-06-22 11:37:47 +02:00
1870a1adc7 BKE_library: Add func to check an ID is actually in G_MAIN database. 2018-06-22 11:37:08 +02:00
f3501a00e2 PaintMode: Full Shading Boolean => Slider
There was a Full Shading bool that was shared across the WP, VP and TP
modes. This commit makes some changes:

- Replace the bool with a factor. This gives the user more control on
the visibility.
- Also draw it on top of the Material and Rendered mode so the user can
control what he needs. In certain cases you don't want to see the final
rendered material, but the actual texture.
- Removed the skipping of objects when in paint modes. As now the paint
modes are blended.
2018-06-22 10:43:03 +02:00
c517778a8b Cleanup: style 2018-06-22 08:18:02 +02:00
61bed8768d Cleanup: suppress assert in recent GPU refactor 2018-06-22 08:11:17 +02:00
2e80279a75 Fix T55547: "Fit camera to selected" fails 2018-06-22 07:55:49 +02:00
84ae0fe3a5 GLRefactor: Refactor bf_blenfont to use GPUTexture instead of raw GL calls and types.
In an effort to centralize all opengl calls in the codebase, this patch replaces
the raw opengl calls in bf_blenfont with GPUTexture so it's no longer depended
on opengl headers.

reviewer: Brecht

Differential Revision: https://developer.blender.org/D3483
2018-06-21 18:36:05 -06:00
a0dce6810d Edit Mode: Bevel Op: Offset Soft Max to 100
This is consistent with the modifier
2018-06-21 13:46:11 -04:00
4f83fd4cf8 Merge branch 'master' into blender2.8 2018-06-21 19:29:22 +02:00
68f4a4641e Fix T55568: second click event ignored 2018-06-21 19:26:21 +02:00
51f6b25afd Revert "Fix T55568: second click event ignored"
This reverts commit 52aa963f0e.

Fixed for keyboards, broke mouse buttons.
2018-06-21 19:24:53 +02:00
c111eb0e99 Cleanup: get rid of dual DM/Mesh versions of mirror topology code.
Easy to switch to only use (evaluated) mesh instead!
2018-06-21 19:05:10 +02:00
d6eac9d787 Cleanup: ED_mesh_pick_vert: DM -> me_eval. 2018-06-21 18:38:37 +02:00
31d916210c Cleanup: remove DM from 'join as shape' operator.
Also deduplicated the 'mesh as shapekey' code, we had kind of two funcs
doing the same thing here...
2018-06-21 18:26:12 +02:00
6046d9f715 Fix own error making outliner rename not emboss 2018-06-21 18:15:17 +02:00
6427141f7b Modifiers: Stop using md->scene in isDisabled() callback
This is first commit in series of changes to get rid of md->scene.
2018-06-21 18:04:05 +02:00
991d4f1c6b Fix incorrect use of G.is_rendering for particles in some places. 2018-06-21 17:08:42 +02:00
318ad705ad Cleanup: nuke useless BKE_DerivedMesh.h includes. 2018-06-21 16:45:54 +02:00
78653cfb8c Merge branch 'master' into blender2.8 2018-06-21 16:43:39 +02:00
84dbf949d7 UI: don't show empty button context menu 2018-06-21 16:37:19 +02:00
c45a3b80e2 Fix T55555: Crash when select material properties
This error is only in Windows and Mac when select in properties the material tab.

This commit revert dc856be839 Preview: Add own opengl context to render preview images.
2018-06-21 16:11:29 +02:00
b350edc207 Depsgraph: Add missing relation from proxy group
Transform evaluation does depend on that matrix, but relation was never
in dependency graph. It was not even in the old dependency graph, which
makes me wonder how this thing worked reliably to begin with.

Should fix flickering issue in the render farm.
2018-06-21 15:57:24 +02:00
a0f1bd8ed1 Depsgraph: Re-hook duplicgroup relation to final transform operation
Transform evaluation doesn't not depend on objects which are being duplicated,
so should not be any regressions here.

The whole relation should probably be gone as it's kind of rooting back to
legacy times, but that would need more clear research and investigation and
regression testing.
2018-06-21 15:57:24 +02:00
ad42c358f8 Depsgraph: Walk into dupli_group object
That will help with cases when dupli_group object is not linked
directly to the scene.
2018-06-21 15:57:24 +02:00
b80cce2053 Cleanup: names: data transfer/mesh remap: dm -> me/mesh.
That area is now officially purged from the Devil.. errr... DerivedMesh!
2018-06-21 15:33:10 +02:00
ef90a8e12c Cleanup: data transfer: get rid of dual destination mesh.
Not needed anymore, we only actually need to know wether it's orig mesh
or eval one in a few places...
2018-06-21 15:33:10 +02:00
1859215576 Cleanup: some potentially critical changes in data transfer.
Removing that stuff should be valid with new depsgraph/modifiers stack
evaluation system... BUT it might not be, so rather have those in
separate own well-isolated commit.
2018-06-21 15:33:10 +02:00
fffff5a993 Cleanup: nuke DM out of data transfer code.
This was actually rather hairy, this code is huge and complicated, easy
to make mistakes...

Good thing is, it will allow for significant simplification and more
(name) cleanup in following commits ;)
2018-06-21 15:33:10 +02:00
cd6cb55ff3 Fix Cycles incorrect versioning for automatic sample world resolution. 2018-06-21 15:28:59 +02:00
4904eadc0f Fix T55525: "Only Keyframes from Selected Channels" option in Timeline was being ignored
I was originally going to just expose the filtering options fo the timeline
too (via popover), to provide full access to the filtering options here too.
However, investigating further, that would've caused problems when trying to
use the Next/Prev Keyframe operators in other editors (see comment in code).
For now, the simpler solution is to just sync the scene-level flag (used for
this option) back to the dopesheet settings (used for generating the summary
channel used for displaying keyframes), to buy some time to investigate more
carefully.
2018-06-22 01:26:06 +12:00
526392ab16 Workbench: Remove warning
When in forward rendering and Object outline was disabled every render
call created one console warning (uniform objectId not found)

this commit removes this warning
2018-06-21 15:17:05 +02:00
8534ce9384 Revert "Objects: when active object gets hidden, make it inactive."
This reverts commit fec97ec949, it's useful to be able to edit object
properties for hidden objects. The issue with mode locking that this
was meant to solve will be handled in another way.
2018-06-21 15:04:33 +02:00
c054a1a848 Merge branch 'master' into blender2.8 2018-06-21 15:02:38 +02:00
d5552a6d4b T55570: Moved Texture drawtype as to shading popover
the use of the texture drawtype is limited. so who should we have it
this prominent on the screen. By adding it as a shading.color_type
option we should save some screenspace.
2018-06-21 14:58:00 +02:00
a4f08297ed UI: preference for developer extras
Currently only used for "Edit Source" feature.
2018-06-21 14:54:21 +02:00
52aa963f0e Fix T55568: second click event ignored
Double-click handling caused the second click to be ignored
for keymaps that only handle click.
2018-06-21 14:04:43 +02:00
3584810fdd Python/BLF: add blf.color(r, g, b, a) method.
This is needed now that glColor() no longer works.
2018-06-21 13:37:02 +02:00
8d1ea6a767 Fix T55573: Mode rotate on local axis crashes 2018-06-21 12:53:58 +02:00
William Reynish
244cb8410e UI: Single column for Rigid Body World 2018-06-21 12:41:01 +02:00
a283333cd8 Fix Cycles CUDA render errors with CUDA 9.2.
Work around what might be a compiler bug.
2018-06-21 12:32:32 +02:00
d6313f47af Fix T55564: Cycles OpenCL build error on some scenes. 2018-06-21 11:46:52 +02:00
9b91e727be Merge branch 'master' into blender2.8 2018-06-21 11:10:37 +02:00
b681461c84 Fix T55568: second click event ignored
Double-click handling caused the second click to be ignored
for keymaps that only handle click.
2018-06-21 11:07:52 +02:00
66263905ae Merge branch 'master' into blender2.8 2018-06-21 10:32:16 +02:00
f1bc9331b1 Fix T55491: Double click fail in menu popups 2018-06-21 10:07:18 +02:00
3995b33a42 WM: don't make LMB a special case for double click 2018-06-21 09:49:30 +02:00
00d52376f7 CodeStyle: Comments 2018-06-21 09:22:34 +02:00
e60d4d6a0c Code cleanup: Added newline 2018-06-21 09:05:31 +02:00
54c4a107b1 Missed warning is previous commit 2018-06-21 09:04:03 +02:00
032c741214 Studiolight: Calculation of irradiance buffer
The calculation of the irradiance buffer was slow. Now it is only
calculated when it is being used (background_alpha > 0.0)
this solves the freeze when switching to LookDev mode.

Also changed the default calculation to use the Spherical Harmonics
calculation. This is able to generate the irradiance buffer fast, but is
less accurate. As the irradiance buffer is only used for visual
guidance speed is more important than accuracy.

Added compile directive to switch between the implementations.
(see STUDIOLIGHT_IRRADIANCE_METHOD)

Disabled caching the irradiance buffer when
STUDIOLIGHT_IRRADIANCE_METHOD_SPHERICAL_HARMONICS is used as it is not
needed.
2018-06-21 09:02:12 +02:00
636a690eb1 Fix: Ensure that summary channel is enabled when creating timeline 2018-06-21 17:56:11 +12:00
b081436d1c Graph Editor: Changing the display mode to "Drivers" mode now runs the Drivers-Editor UI setup code
This is a step towards being able to just choose the "Drivers Editor"
from the editor selector, and have everything displayed, ready to use.

Currently there are a few problems to resolve still:
1) This update callback doesn't run when changing the mode via the
   editors selector in the UI. (Note: This problem also affects the
   Timeline vs Dopesheet, causing a lot of initialisation work to be
   skipped)

2) There's some missing redraw/refresh here to cause the properties
   region to actually show. You need to resize the window for that to
   happen now.
2018-06-21 17:15:45 +12:00
876c73c9af Cleanup: Move logic for initialising a new Drivers editor into its own function
This shouldn't really be part of the windowmanager code. Pulling it out
now, so that we can reuse in RNA when switching display modes,
(and perhaps other places later)
2018-06-21 16:58:14 +12:00
3777918e5c Remove debug prints 2018-06-21 16:08:52 +12:00
417856dae5 Fix: Incorrect submodes being set in Dopesheet/Action Editor when changing modes
This commit fixes a number of problematic corner cases when switching between
editors after 2b5050a4cd

The root cause of these issues was that mode_prev was not being set in
many cases, resulting in mode changes to the Timeline and back (via other
editors) causing Dopesheet Editors to reset back to "Action Editor" mode.

1) Creating new Dopesheet Editors (e.g. change the default 3D view to
   a Dopesheet editor) would default to displaying the "Action Editor",
   since mode/mode_prev == 0 represents the "Action Editor" (for backwards
   compatability reasons), while mode == 3 is for the "Dopesheet"

2) If you set the Dopesheet Editor to another mode (e.g. "Grease Pencil" mode),
   change to another editor (e.g. Shaders), then come back, the mode would
   get reset to "Action Editor".
2018-06-21 16:07:47 +12:00
ed428b2c04 UI: Use Collection icon for New Collection in Outliner
Also temporarily bring back the toggle to search, since it's off by default.
2018-06-21 01:01:02 +02:00
f3bd5da7fc UI: button to create new collection in the Outliner
Expose search like in 2.7, we could make it pop on Ctrl+F to save space if needed.
Align Filter and the less used View menu to the right.

Based on mockups and feedback session with William
2018-06-21 00:37:57 +02:00
0b7edf105d UI: Icons for Outliner display modes
We need a better icon for Orphan Data
2018-06-21 00:32:56 +02:00
4cfc54a5cb UI: adjust menu triangle
Was not centered for single icon buttons.
2018-06-20 21:34:27 +02:00
8d00d6d0bf UI: rename "NLA Editor" -> "Nonlinear Animation"
See: T54744
2018-06-20 20:16:47 +02:00
2b5050a4cd UI: expose Timeline as a space type
See: T54744
2018-06-20 20:11:41 +02:00
c73a6b0d42 Merge branch 'blender2.8' into soc-2018-bevel 2018-06-20 22:29:44 +05:30
6991b477d7 UI: expose Driver as a space type
See: T54744
2018-06-20 18:46:48 +02:00
Dalai Felinto
2e66e5faca Silence warning in greasepencil-object branch
We don't have warnings in 2.8 because of include order.
But headers shouldn't depend on that for warnings, really.
2018-06-20 18:44:17 +02:00
7d3589e660 Cleanup: pep8, single quotes for enums 2018-06-20 18:22:52 +02:00
40e1e8ebed Despgraph: don't tag for transform/geometry update on relations rebuild.
This should already be happening elsewhere and was causing depsgraph
rebuild to be slower than it should.
2018-06-20 18:12:48 +02:00
e1dff01e29 Depsgraph: add some missing depsgraph tags when relations change. 2018-06-20 18:12:48 +02:00
0d0d8935a5 Fix outliner mixed collection/object visibility drag toggle not working. 2018-06-20 18:12:48 +02:00
73d0a3f142 Fix hide object operator to do nothing if no object is selected. 2018-06-20 18:12:48 +02:00
82dc5f91e8 UI: Style locks in Object Transform panel 2018-06-20 17:01:40 +02:00
54a0247f59 Cleanup: whitespace 2018-06-20 16:42:19 +02:00
William Reynish
b998ccefee UI: Single column, flow and sub-panel for collision physics 2018-06-20 16:34:27 +02:00
ab9e2dccd3 Cleanup: follow naming conventions
Using panels for presets printed warnings for classes named as menus.
2018-06-20 16:32:31 +02:00
1ccd70b7c1 Icons: update generation script 2018-06-20 16:15:58 +02:00
William Reynish
00fd2b57d1 UI: Single column layout for Force Fields 2018-06-20 16:11:18 +02:00
William Reynish
a8e132768a UI: Dynamic Paint panels into sub-panels 2018-06-20 16:11:18 +02:00
a3428131b6 Studiolight: Spherical harmonics
Compile time option to reduce the level of the SH
2018-06-20 16:08:11 +02:00
3414a16705 Merge branch 'master' into blender2.8 2018-06-20 16:01:30 +02:00
d312dbea2d Cleanup: naming (make it clear vars are squared) 2018-06-20 15:58:46 +02:00
e6609deba2 Merge branch 'master' into blender2.8 2018-06-20 15:50:54 +02:00
12e926781a Merge branch 'master' into blender2.8 2018-06-20 15:40:14 +02:00
372754c164 Screen: split ED_area_actionzone_find_xy
Add ED_area_actionzone_refresh_xy which can tag redraw
find no longer changes changes to the action zone.
2018-06-20 15:34:20 +02:00
5cad6afac6 Cleanup: rename is_in_area_actionzone 2018-06-20 15:34:20 +02:00
daaf315bf2 Cleanup: quiet warning 2018-06-20 15:34:20 +02:00
3df5625ae7 Cleanup: remove some useless Derivedmesh struct declarations. 2018-06-20 15:17:35 +02:00
b13585e782 Cleanup: remove last DM usages from datatransfer code. 2018-06-20 15:17:35 +02:00
0fb1093b14 Studiolight: fixed diffuse lighting
- Orientation of the cubemap were not conform cycles and eevee
- one side of the cubemap was flipped, so one side was overlit and the
other side was to dark.
2018-06-20 15:00:23 +02:00
c6ab911744 Merge branch 'master' into blender2.8 2018-06-20 14:16:22 +02:00
984a78e763 Fix crash opening some files, after recent changes. 2018-06-20 13:42:23 +02:00
4234cddda9 Objects: support for hiding all objects in a collection.
In the outliner there are now icons for it, Ctrl+Click isolates a
single collections.

In the 3D view, Ctrl+H key opens a menu that is more or less the
equivalent of the old layer buttons in the header. Regular Click isolates
the collection, Shift+Click toggle the collection visibility. Pressing
number keys and letters works in this menu, which can help for quickly
selecting a specific collection.

Shortcuts for quick switching by just pressing 1/2/3/.. keys are available
again. The order can be confusing with nested collections, but that seems
unavoidable. The first numbers control the top level collections, and then
sub collections if numbers are left.

Remaining design issues:

* The 3D view menu needs to be improved: support for sub collections,
  staying open on shift+click, access from the 3D view header somewhere,
  shortcut key display.
* Currently collection hiding just controls per-object hiding, we plan
  to separate this state still so alt+H doesn't affect collection hiding.
2018-06-20 13:04:51 +02:00
5e968a996a Objects: restore per object restrict view/render/select.
Note this is now separate from H key hiding, and meant for more persistent
ways to define which objects are relevant to the viewport or render.

This avoids some cases where you'd have to create collection specifically
to hide objects for viewport/render.
2018-06-20 12:35:25 +02:00
0619f960c2 Objects: restore H key per object hiding.
H hides selected objects, Shift+H hides unselected objects, and Alt+H
reveals hidden objects.

This hiding state is distinct from restrict viewport and render, and
meant for temporarily hiding objects without affecting more persistent
collection hiding.

Object hiding is per view-layer, same as selection. It affects the
viewport and any preview renders in there, but not final renders.

In the outliner, different icons are now used for temporary hiding, and
restrict viewport and render. Hidden objects are greyed out.

Remaining design issues:

* For lamps we probably still want to keep their effect on the scene,
  currently they are fully disabled by hiding. Arguably mesh lights or
  even objects being reflected or casting shadows are not that different
  but perhaps the special lamp exception from local view should remain.
* We need a feature still to disabled this hiding for specific viewports,
  for render or animation preview where you want to see the entire scene
  while working in another view.
* We need a new icon for restrict viewport, for now it uses a grid similar
  to the 2.4 icon.
* Hiding objects does not preserve selection state as it did in 2.7,
  it's probably convenient to support this again?
2018-06-20 12:35:25 +02:00
c17ba4a903 T55550: Workbench Shadows are incorrect in first draw cycle
Shadows uses the old location for light_direction. Maybe a merge
conflict.
2018-06-20 12:29:09 +02:00
fd48e685c3 Cleanup: remove some G.main from BKE's node.c
Validate some cases using G_MAIN instead (I don't think we want to work
on any other Main than G.main one when registering/unregistering nodes
etc.).

And when freeing, all ID not in Main shall now be tagged accordingly, so
we *should* not need to do that stupi search over all ntrees in G.main
to check wether we have to free it ourself or not!
2018-06-20 12:27:26 +02:00
84c2ef0eaf UI: Use chevrons for number sliders, pulldowns and popovers
In the future popovers/pulldowns should have different indicators

Patch by William Reynish and Clement Foucault
2018-06-20 12:24:24 +02:00
20788e1747 Cleanup: moar G.main removal.
Nice trick from blender2.8, we now can get active scene from active
window of windowmanager!
2018-06-20 11:53:30 +02:00
edb80a801d Fix crash activating the HUD w/o an active region 2018-06-20 11:43:10 +02:00
8b673fc75f Cleanup: get rid of last non-thread-safe BLI_frand random generator func. 2018-06-20 11:30:25 +02:00
d97ee0b06a Cleanup: get rid of last BLI_frand usage. 2018-06-20 11:30:25 +02:00
1b2a2e0862 Cleanup: use new BKE_mesh_iterator foreach_mapped helpers in WPaint gradient code. 2018-06-20 11:30:25 +02:00
f58fa57b83 UI: fix "Edit Source" operator 2018-06-20 11:13:07 +02:00
6d21450a61 Revert "UI: fix "Edit Source" operator"
This reverts commit 109dbab593.

Accidental changes applied
2018-06-20 11:12:18 +02:00
109dbab593 UI: fix "Edit Source" operator 2018-06-20 11:10:08 +02:00
b661a4d663 Merge branch 'master' into blender2.8 2018-06-20 11:09:07 +02:00
8763a8fd4b Particle edit: Fix missing hair in edit mode for new particle systems
Need to get away from thosae update flags in original datablocks.
2018-06-20 11:05:52 +02:00
d4519f54b3 UI: only show "Edit Translations" when addon used 2018-06-20 10:45:03 +02:00
570f3e6719 Object Mode: enable mode locking by default
This is meant to be default behavior for 2.8, see T55246
2018-06-20 10:18:53 +02:00
df2d05b203 Outliner: add object mode switching to RMB menu 2018-06-20 10:14:04 +02:00
9f9756ec35 Cleanup: strip space 2018-06-20 10:14:04 +02:00
8b9712faeb Fix T55540 Add foreachMappedXXX equivalent API for evaluated meshes 2018-06-20 10:03:50 +02:00
e3052ecb0d Studiolight: removed raise condition
Happened when deleting many studiolights at the same time when the
previews were still beging calculated in the background.

Added a free function callback that is filled when the preview is being
generated. This free function will then kill the preview job

This patch also removes icons that are not valid anymore so the user
cannot accidentally render an icon where the studiolight is invalid.

In the end we should use a add/remove function in the studiolight as
currently icons are recalculated too much.
2018-06-20 09:29:40 +02:00
91c0f17a47 Missed last commit 2018-06-20 07:27:35 +02:00
dc13e0d7dc Cleanup: default emboss=off for outliner buttons
Also use use braces for code blocks and reduce right-shift.
2018-06-20 07:14:19 +02:00
d44c40d91c Cleanup: some more valid G.main usages moved to G_MAIN. 2018-06-19 19:30:47 +02:00
9c20de8998 Merge branch 'master' into blender2.8 2018-06-19 19:25:44 +02:00
0a8af46707 Final cleanup of G.mains in render area. 2018-06-19 19:25:06 +02:00
29d7358ff6 UI: fix ctrl wheel while over the opposite side 2018-06-19 19:22:23 +02:00
63f31e466a Cleanup: names of WPaint gradient data structs.
Those actually never had anything to do with DM... Just used WP prefix
instead!
2018-06-19 19:15:11 +02:00
cc3c91c27f Cleanup: remove DerivedMesh from WPaint Gradient tool code.
Name cleanup to follow.
2018-06-19 19:15:11 +02:00
db0563e995 Fix re-entrant calls in some cases of mesh_evaluated generation.
`mesh_get_eval_final` and friends could call `mesh_build_data`, which in
paint/sculpt mode would call `BKE_sculpt_update_mesh_elements` which
would call `mesh_get_eval_final`... ugly!
2018-06-19 19:15:11 +02:00
85f717fcda UI: tweak sequencer color space position, it's not related to display device. 2018-06-19 19:14:42 +02:00
44611ab860 UI: fix Ctrl-Wheel to change button values 2018-06-19 18:36:30 +02:00
1292aae5c0 Correction to previous commit.
There is no guarantee that given ob pointer is not also an evaluated one
here...
2018-06-19 18:29:40 +02:00
5372da0121 ModStack: Fix broken object_get_datamask helper.
Would compare evaluated ob pointer to original one...

Found while investigating some errors in incomming cleanup, but this was
probably generating lost of other issues in some cases...
2018-06-19 18:25:30 +02:00
5b227c420b Fix animation player drawing wrong size 2018-06-19 18:03:08 +02:00
61af6b83e6 Merge branch 'master' into blender2.8
Conflicts:
	source/blender/editors/sculpt_paint/paint_image_proj.c
2018-06-19 16:49:54 +02:00
750a78be9c 3D View: improve selection locking
Locked selection would still occlude with objects which could not be
selected.
2018-06-19 16:43:01 +02:00
0116c95d4c Studiolight: Temp Mutex issue
This is a temp fix for a better system.
Currently the studiolights can be referenced by a WM_job and being freed
via the API. This can happen when removing a studiolight via the
interface.

As the studiolight has no relation with the job, it is hard to detect if
it is still being used. I tried with a Mutex and a Thread Queue but they
were failing.

So the current temp fix is to keep the studiolights in memory until you
close blender. This Must be fixed ASAP! I added this fix so normal cases
can workish.
2018-06-19 16:37:23 +02:00
Stefan Werner
9ff135d85d Cycles: Fixed crash when the camera was inside 16 volumes or more. It still won't render those volumes correctly, but at least the crash is addressed. 2018-06-19 16:35:18 +02:00
b5893b1ba3 Fix (unreported) passing CDLayer 'ID' instead of bitflag to a cdlayer mask!
Probably harmless, since I bet CD_ORIGINDEX is nearly always generated,
but still...
2018-06-19 16:25:24 +02:00
a7e66d89d0 Merge branch 'master' into blender2.8 2018-06-19 16:21:35 +02:00
86c1cad1cf Fix missing render slots bugs after recent changes. 2018-06-19 16:19:49 +02:00
7c3ecbf040 Correct rigidbody stub 2018-06-19 16:18:23 +02:00
1c6ca9dc90 Fix animation player 2018-06-19 16:13:23 +02:00
e49f6bb208 UI: Smoke panels as sub-panels
Remove suffix from name since they are sub-panels now.

Display Settings -> Viewport Display, and two sub-panels as well for less used settings.
2018-06-19 16:01:35 +02:00
dd752476b9 Added face strength in bevel modifier
The selected face strength (Weak/Medium/High) can be used by the WN Modifier
to determine influence of current face in
2018-06-19 19:27:08 +05:30
fbae373db5 Cleanup: remove ref to dm in names in projpaint struct. 2018-06-19 15:55:45 +02:00
650bc17c1e Remove derivedmesh from 3DView texture/projection paint.
Pretty straightforward changes. Name cleanup to follow in a separated
commit.
2018-06-19 15:55:45 +02:00
34d9e9837a UI: Fluid physics panels as sub-panels
Also remove suffix from name since they are sub-panels now.
2018-06-19 15:48:21 +02:00
a2b79a21e1 UI: Soft Body panels as sub-panels
Also remove suffix from name since they are sub-panels now.
2018-06-19 15:48:21 +02:00
71b25e75c3 UI: Rigid body panels as sub-panels
Also remove suffix from name since they are sub-panels now.
2018-06-19 15:48:21 +02:00
96e6fd3b60 Remove rigid body from rbw->group when deleting
I moved some code from ED_rigidbody_object_remove() to
BKE_rigidbody_remove_object(), so that calling the latter doesn't leave
the object in rbw->group (causing a crash later on when rebuilding the
depsgraph).
2018-06-19 15:40:25 +02:00
ab1beb9744 UI: Cloth panels as sub-panels
Also remove Cloth suffix from name since they are sub-panels now.
2018-06-19 15:33:38 +02:00
d8f9ec1547 Particles: Support changing modifiers during particle edit mode
The idea is to only use pointers to particles in original object when
creating an edit structure. The derived mesh we get from evaluated
object.

The rest of the commit is just keeping pointers in sync.
2018-06-19 15:28:33 +02:00
95306a4d19 Particles: Use utility function to copy particles 2018-06-19 15:28:33 +02:00
aa3f0b0998 Particles: Add utility function to copy particles from one system to another 2018-06-19 15:28:33 +02:00
92c519ff17 Blender Version Bump
Without this, render slots aren't added.
2018-06-19 14:50:39 +02:00
ce0a87a208 Revert: EditMode Inactive edge drawing
Did it manually as there was some refactoring done that has value
2018-06-19 14:32:52 +02:00
92823275af Fixed rigid body simulation randomly stopping
This was caused by a floating point comparison using ==, instead of using
compare_ff_relative().
2018-06-19 14:22:48 +02:00
4b5f3690bb Missed warning in previous commit 2018-06-19 14:07:21 +02:00
1b972a38fe Lookdev: Renamed RNA
studiolight_background => studiolight_background_alpha
Removed "Show" from the label
2018-06-19 14:04:51 +02:00
de748bbedf Studiolight: Background Generation of icons 2018-06-19 14:04:51 +02:00
c564d847ef Show cached frames in timeline at correct height
The line was covered by the horizontal scrollbar instead of drawn above
it.
2018-06-19 11:49:56 +02:00
8f922b30b0 RigidBodyWorld: copy ptcache from evaluated scene back to original scene
This makes it possible to perform re-evaluation of the scene without
having to re-run the simulation.

The CoW → Orig copy is only performed when the depsgraph is active, so
as to not influence the current scene while rendering in the background.

Alternatively, we could have the CoW copy share the cache with the
original to prevent too much copying of cache data. This will be faster,
but I'm not sure whether we can reliably check the DEG_is_active()
status at CoW copy creation time.
2018-06-19 11:49:56 +02:00
668f39519c Fix T55528: Cycles AO node should default to 1 if radius is 0. 2018-06-19 11:45:05 +02:00
caaf4e5a37 Merge branch 'master' into blender2.8
Conflicts:
	source/blender/editors/sculpt_paint/paint_image_proj.c
2018-06-19 10:52:01 +02:00
b09a8203e9 Cleanup DM generation code for ProjPaint.
Two branches were actually doing essentially the same thing here, no
need to artificially complicate things. ;)
2018-06-19 10:48:37 +02:00
64a2f98062 Fix (unreported) unauthorized relesing of derived_final DM in paint projection code.
NEVER free yourself DM returned by mesh_get_derived_final(), it's always
to one assigned to ob->derived_final!
2018-06-19 10:43:54 +02:00
816817011f Cleanup: rename mode -> object.mode in Py UI
Keep 'mode' only for 'context.mode'.
2018-06-19 09:25:05 +02:00
9025841a0a Error in last commit 2018-06-19 09:20:38 +02:00
2d2db18f0b UI: move object-mode lock out of the 3D header
Avoid obscure options here.
Move to the edit menu, although this may be temporary.
2018-06-19 09:14:31 +02:00
65b3c7b72c Studiolight: Add SH2 cache
- the result of the SH2-coeffiecients are stored in a bin file (3*9
floats). As the file is a local file we do not care about the
architecture.
- solved issue that also for internal lights the irradiance file were
stored. We don't want that as it could be in a not accessible location
2018-06-19 09:06:35 +02:00
7a3e037dc0 Merge branch 'master' into blender2.8 2018-06-19 08:56:45 +02:00
751189e9d6 Vertex Paint: set sculpt object mode immediately
SculptSession.mode_type wasn't initialized until painting,
making it unreliable for checks in other parts of the code.

Also remove unnecessary initialization,
matching sculpt mode more closely.
2018-06-19 08:50:35 +02:00
bd3fe54b0d Merge branch 'master' into blender2.8 2018-06-19 08:15:03 +02:00
f0c6f5ee77 editorconfig: correct C/C++ using space 2018-06-19 07:48:12 +02:00
8c77c36539 Ghost: Fix offline OGL render on windows.
rBe0c088f8fb5a introduced offline rendering support on windows, sadly it was trying to use the desktop window for getting a context, which given SetPixelFormat can only be called once for any given HDC was an unfortunate choice.

This patch uses a temporary hidden window for getting the opengl context.

Reviewers: mano-wii

Differential Revision: https://developer.blender.org/D3481
2018-06-18 18:10:45 -06:00
30c383fd35 Merge remote-tracking branch 'origin/master' into blender2.8 2018-06-18 13:40:39 -06:00
38b72fb64b make.bat: Fix msvc-2017 detection.
D3485 by @manung

Differential Revision: https://developer.blender.org/D3485
2018-06-18 13:39:12 -06:00
643370b10f Cleanup: code-style 2018-06-18 20:58:08 +02:00
0d8b92267d Object Mode: make mode locking optional
Design from T55246 is kept while allowing 2.7x behavior.
2018-06-18 20:43:26 +02:00
9fb5924446 Fix a very nasty and sneaky bug in lib remap / static override code.
Not sure why remap call for static override reference ID pointer was put
there, probably a mistake during some merge back in the days...

But this ended up with self_id of libquery data struct still being set
to previous ID pointer, which could randomly generate crap like falsly
reporting indirect data and such, leading to lost reference datablock at
writefile time...
2018-06-18 20:20:55 +02:00
176bbe3466 Merge branch 'master' into blender2.8 2018-06-18 18:55:12 +02:00
ab59f9e65d editorconfig: add rst 2018-06-18 18:53:49 +02:00
594bcf934e Cleanup: use DEG tag flags, instead of old OB ones.
Having those two in parallel is ratehr confusing... :/
2018-06-18 18:43:21 +02:00
4efe8fc806 Fix crash when making static override of an object from a collection.
Since we free collection caches when we remap one of their objects, we
also need to tell depsgraph to flush this into the COWs of that
collection, otherwise things like draw code can access freed memory...
2018-06-18 18:43:21 +02:00
e92d61797b 3D View: don't show manipulators when overlay is disabled 2018-06-18 18:33:02 +02:00
f0245a18d1 Merge branch 'master' into blender2.8 2018-06-18 18:22:06 +02:00
b7b7468bef editorconfig: add line length, glsl 2018-06-18 18:21:35 +02:00
b2fa20f6c9 Merge branch 'master' into blender2.8 2018-06-18 18:12:04 +02:00
ce7c87fbda Add .editorconfig file
This is a fairly well supported file-type configuration
for indentation and trailing space stripping.

See editorconfig.org for details.
2018-06-18 18:09:45 +02:00
f828355cd6 Avoid assert on startup 2018-06-18 17:39:51 +02:00
d7122825ec Cleanup: redundant greater than 2018-06-18 17:39:50 +02:00
bea779fd78 Particle: Add missing field initializaiton 2018-06-18 16:01:29 +02:00
762dec21f6 UI: decorators hid non-array buttons
Error in last commit.
2018-06-18 15:50:21 +02:00
7356cec0c6 Studiolights: Radiance icons were inverted. 2018-06-18 15:45:55 +02:00
7747d4cecf Workbench: increased Quality of the diffuse lighting model
- implemented Spherical Harmonics L2 for diffuse shading.

TODO: caching the precalculated harmonics so it won't take soo long to
open the popover
2018-06-18 15:32:53 +02:00
fec97ec949 Objects: when active object gets hidden, make it inactive. 2018-06-18 15:20:06 +02:00
7c836ac30a Cleanup: simplify some view layer code. 2018-06-18 15:20:06 +02:00
0365079676 Particles: Remove obsolete code for child particles in edit mode 2018-06-18 15:14:03 +02:00
55623368b4 UI: decorators weren't showing icon-only buttons 2018-06-18 15:11:10 +02:00
de4c81c153 Fix merge error in bpy_driver.c 2018-06-18 15:09:55 +02:00
c655c65987 UI: No decorators on render engine picker 2018-06-18 12:41:39 +02:00
324e10e76a Merge branch 'master' into blender2.8
Conflicts:
	source/blender/makesrna/intern/rna_space.c
2018-06-18 12:32:12 +02:00
579631819f Fix T55503: File browser filter not working correctly.
There were two issues here, introduced by rB66aa4af836:
* Forgot to change length of some filter_glob var deep in filebrowser code.
* Truncating filter_glob in general can be dangerous, generating
unexpected patterns.

Last point was the root of the issue here, truncating to 63 chars string
left last group as 'match everything' `*` pattern.

To fix that to some extent, added a new BLI_path_extension_glob_validate
helper to BLI_path_util, which ensures we do not have last
wildcards-only group in our pattern, when there are more than one group.
2018-06-18 12:26:47 +02:00
5e47f365e1 UI: Start UIList with 2 rows for materials/particles
There is room for it anyway because of the 3 buttons on the right.
2018-06-18 12:21:17 +02:00
d5ec62a0c3 Multires: Remove unused function
It uses derived mesh, and relies on scene stored in modifier data.
So port is needed anyway.
2018-06-18 11:14:00 +02:00
4330027895 Depsgraph: Cleamup, reduce indentation level 2018-06-18 10:23:03 +02:00
35c02c08b8 3D View: support outline overlay option 2018-06-18 09:23:25 +02:00
04e2a5cef4 Refactor: Put ViewportAA as UserPref
By default users want AA in the viewport. For slower systems you want to
be able to turn it off. As in the future we would also like to support
TAA in the viewport we introduced it as a Max Viewport AA settings.

Also removed the drawoption to enable/disable AA per viewport
When rendering the AA is always turned on.
2018-06-18 08:54:08 +02:00
79546a4eb6 ShadingMenu: Splitted in SubPanels 2018-06-18 08:54:08 +02:00
b2f0803b5b Fix T55511: Decorator drag makes many undo steps
Each keyframe made a separate undo step.
2018-06-18 08:25:05 +02:00
af51ec3214 Cleanup: indentation 2018-06-18 08:10:23 +02:00
0d45074768 Cleanup: whitespace 2018-06-18 08:08:08 +02:00
a794da5200 Fix T55517: Property-split fails w/ expanded enum 2018-06-18 08:05:46 +02:00
05b99b763e UI: disable decorators for render output 2018-06-18 07:38:06 +02:00
9d57b5aa44 Merge branch 'master' into blender2.8 2018-06-18 07:34:31 +02:00
b66ae8259e RNA: disable animation for file output options 2018-06-18 07:31:21 +02:00
05dc109553 Merge branch 'master' into blender2.8 2018-06-17 20:37:10 +02:00
86e20a2e63 Cleanup: trailing space cmake, make.bat 2018-06-17 20:18:09 +02:00
e7a68ef843 Cleanup: trailing space in CMake files 2018-06-17 20:15:24 +02:00
195879a50d Edit Mesh: Fix buggy occlusion when in xray mode.
This mimics the behaviour of the old wireframe mode. When in Xray mode,
don't use the limit selection to visible option.

Also hide the option if Xray is enabled.
2018-06-17 20:11:37 +02:00
2ceff8bd63 Python: Allow untrusted py-drivers to run limited expressions
Limit to a restricted set of built-ins, as well as the math module.
Also restrict of op-codes, disallowing imports and attribute access.

This allows most math expressions to run
without any performance cost once the initial check is done.

See: D1862 for details.
2018-06-17 20:01:05 +02:00
06a1a66a9b Merge branch 'master' into blender2.8 2018-06-17 17:10:19 +02:00
a24b4e6090 Cleanup: trailing space for remaining source/ 2018-06-17 17:06:28 +02:00
76c2203f9c Cleanup: trailing space for blenloader 2018-06-17 17:06:07 +02:00
6fc8a74886 Cleanup: trailing space for blenkernel 2018-06-17 17:05:51 +02:00
a262ea8c47 Cleanup: trailing space for compositor 2018-06-17 17:05:29 +02:00
410880552b Cleanup: trailing space for freestyle 2018-06-17 17:05:14 +02:00
e74bd46ede Cleanup: trailing space for imbuf module 2018-06-17 17:04:54 +02:00
1eed46c788 Cleanup: trailing space for modifiers 2018-06-17 17:04:27 +02:00
78fbd146f3 Cleanup: trailing space for DNA headers 2018-06-17 17:04:09 +02:00
4be752a93c Cleanup: trailing space in source/gameengine/ 2018-06-17 17:03:10 +02:00
61d27db359 Merge branch 'master' into blender2.8 2018-06-17 16:36:30 +02:00
5513da65b2 Cleanup: trailing space for BLI 2018-06-17 16:32:54 +02:00
f19ecdeec6 Cleanup: remove unused BLI_rebase_path 2018-06-17 16:26:47 +02:00
56173e512c Merge branch 'master' into blender2.8 2018-06-17 16:18:15 +02:00
a0a1fc8938 Cleanup: BLI path extension API
Use BLI_path_extension_* prefix.
2018-06-17 16:13:24 +02:00
6855d537e3 Merge branch 'master' into blender2.8 2018-06-17 15:52:32 +02:00
6453814ec0 BLI_path: add string size debug define
Off by default, only for debugging.
2018-06-17 15:35:00 +02:00
c7ae7ccfb8 Driver: trailing zeros from expression 2018-06-17 14:50:42 +02:00
547e962bf6 3D View: 3D Cursor was not restoring GL state
Caused camera frame to be double width.
2018-06-17 14:43:31 +02:00
446a646551 UI: hide decorators in panels w/o animated buttons 2018-06-17 12:38:28 +02:00
529669fde7 Edit Mesh: tweak active face edge width
This rewinds a change from own commit e3d88b021c
The only took edge overlay into account (crease, seam.. etc)
Currently active-face also uses this width.

While the difference is subtle,
this makes the active-face stand out more clearly.
2018-06-17 12:31:01 +02:00
d53d78ac45 UI: correct decorator buttons 'enabled' flag 2018-06-17 12:15:32 +02:00
e960920f2f UI: decorator color button assert
Also set 'all' argument based on the RNA-index
(even though it worked, better set to correct value).
2018-06-17 12:15:32 +02:00
ab20901c9e Cleanup: codestyle 2018-06-17 12:03:22 +02:00
43ce201125 Merge branch 'master' into blender2.8 2018-06-17 11:57:49 +02:00
42103a3eb8 CMake: add missing headers 2018-06-17 11:56:20 +02:00
2f1e34cfcc Cleanup: use clamp_* from BLI_math (replace macro) 2018-06-17 11:50:56 +02:00
75188552a1 Merge branch 'blender2.8' of git.blender.org:blender into blender2.8 2018-06-16 21:49:40 -06:00
0a08c5cd36 Fix : Build error with uchar in intern_gawain.
error introduced by  D3483, intern_gawain has no access to bli_systypes.h
2018-06-16 21:49:11 -06:00
fe98124a98 Custom Hdri: Use same AntiAliasing as Matcaps 2018-06-16 23:28:39 +02:00
b503dd7747 StudioLights: Fix preview icon.
Use same antialiasing method as the matcaps and fix the normal computation.
2018-06-16 23:28:39 +02:00
48adf90367 Matcap: Make matcap preview the same size as the other StudioLights 2018-06-16 23:28:39 +02:00
224daf55ac Matcaps: Add AntiAlias alpha mask to icon preview. 2018-06-16 23:28:39 +02:00
0332d338ea Studio Light: Fix typo 2018-06-16 23:28:39 +02:00
4a2c58e077 Outlines: Don't draw Xray mode outlines in material or render mode 2018-06-16 23:28:39 +02:00
45591cc0df GLRefactor: Remove all GL types from gawains public headers.
In preparation for possible alternative back-ends, the dependency on glew.h needs to be confined to as few libraries as possible. This patch removes all gl types from the public gawain headers.

It'll need some more refactoring later on, but for now this will suffice.

Reviewer: brecht, fclem

Differential Revision: https://developer.blender.org/D3482
2018-06-16 12:44:20 -06:00
c90d348e04 Merge remote-tracking branch 'origin/master' into blender2.8 2018-06-16 12:30:56 -06:00
36e82b7759 make.bat: Fix make showhashes not working.
broke in recent refactor.
2018-06-16 12:29:38 -06:00
c21499ba4a UI: show decorator icon for static-override 2018-06-16 18:27:04 +02:00
3b7f630a54 Merge branch 'master' into blender2.8 2018-06-16 18:02:50 +02:00
dc1c820b2b Cleanup: remove BLI_frand from GreasePencil code. 2018-06-16 18:02:23 +02:00
0a8e6b48c4 Correct assert in recent changes 2018-06-16 17:31:37 +02:00
3cf239ccfa UI: support dragging to key-frame 2018-06-16 16:29:05 +02:00
d8c2c63c00 UI: Add property decorator buttons
When use_property_split is enabled, this template adds
buttons to set keyframes, (Alternative to showing color).

See: T54951
2018-06-16 16:28:42 +02:00
ace8ad861d Fix T55427: Removing Vertex Group used by Data Transfer Modifier results in crash.
Only fixing crash, proper handling (a.k.a remapping) of all
possible cases here, for all possible data layers, is rather involved...
2018-06-16 16:22:00 +02:00
8f2acda7d7 Merge branch 'master' into blender2.8 2018-06-16 16:16:53 +02:00
35c71aed25 UI: refactor drag-toggle for other button types 2018-06-16 16:04:26 +02:00
ce80e00a7c Edit Mesh: Simplify the overlay shader.
Remove all the clip cases and just pass the vertices screen position to the
fragment shader.

This does put a bit more pressure on the fragment shader but it seems to be
faster than before. And it simplify the code a lot.

It seems to fix some long standing issue on some intel GPU.
2018-06-16 15:49:16 +02:00
d45d094378 Edit Mode: Fix bad display of edges when limit selection mode is Off. 2018-06-16 15:49:16 +02:00
73abca1da0 UI: minor changes from 2.8
- Option to skip multi-data edits.
- Open hold buttons on drag.
- Utility function to set default value.
2018-06-16 15:44:13 +02:00
5600296c9d Merge branch 'master' into blender2.8 2018-06-16 15:28:57 +02:00
b955747875 Cycles Cleanup: Remove unneccessary color management call 2018-06-16 13:47:49 +02:00
9d876960e8 This option limits visibility of the glew.h header to just bf_gpu and intern_gawain
this is to highlight areas in the code that still directly do opengl calls or use
opengl types.

This is in preparation for supporting alternative rendering back-ends.

Reviewers: brecht, fclem

Differential Revision: https://developer.blender.org/D3304
2018-06-15 20:17:16 -06:00
01f576e87b Merge branch 'master' into blender2.8
The Eevee AO node supports the new Normal socket, but ignores Distance,
Samples, Inside and Only Local settings.
2018-06-15 23:16:49 +02:00
799779d432 Cycles: change Ambient Occlusion shader to output colors.
This means the shader can now be used for procedural texturing. New
settings on the node are Samples, Inside, Local Only and Distance.

Original patch by Lukas with further changes by Brecht.

Differential Revision: https://developer.blender.org/D3479
2018-06-15 22:16:06 +02:00
469408de72 UI: fix redundant scrolling in the redo panel 2018-06-15 21:05:49 +02:00
0ff87e3a60 Cleanup: code style 2018-06-15 20:55:37 +02:00
e3d88b021c Edit Mesh: tweak vertex size & edge width
- Vertex size now matches the theme setting.
- Edge width is closer to a single pixel line.
- Face dot was scaled up to be drawn as a circle,
  but is currently a square.
2018-06-15 20:11:35 +02:00
2291ce9f1f Merge branch 'master' into blender2.8 2018-06-15 19:12:44 +02:00
2b9edbc98b WM: suppress drag events if motion is handled 2018-06-15 19:09:43 +02:00
ecc57e7524 Merge branch 'master' into blender2.8 2018-06-15 17:43:18 +02:00
d645b1a78a Cleanup: some more G.main removal.
We are really starting to scratch the last bits here...
2018-06-15 17:42:17 +02:00
9c629b06bf Workbench OpenGL render: always render alpha on 1.0
Old implementation rendered alpha to 0.0 for background, but only during
deferred rendering. We should attach this to an DNA setting and also let
the forward shading respect this. But for now this is a better default
2018-06-15 17:42:11 +02:00
49915e3241 Cleanup: validate G.main's in creator code.
Using G_MAIN here is valid!
2018-06-15 17:36:44 +02:00
3e4bf31327 Cleanup: G.main removal from 2.8-only code. 2018-06-15 17:33:24 +02:00
5b6ae0523e Merge branch 'master' into blender2.8 2018-06-15 17:25:41 +02:00
ca2be6912d Hair editing: Use original object's particles for drawing
This allows to rely on brush to update children positions,
and avoid tag of object. Makes it way faster to comb with
children enabled.
2018-06-15 17:23:49 +02:00
5ac7068c5f Hair editing: Multi-thread various parts
Currently focused on making parts which are a bottleneck for Spring,
to make things fast as possible. There are surely lots of places
where threading is not currently done, but we can keep doing this,
maybe even with help from the community :)
2018-06-15 17:23:49 +02:00
acdbf71578 Hair editing: Only tag Copy-on-Write when children are enabled
Without children we only need to update batch cache. This way
we don't re-evaluate the whole modifier stack just to perform
child particles redistribution.
2018-06-15 17:23:49 +02:00
da9b1b14ed Cleanup: some more G.main removal/validation... 2018-06-15 17:21:07 +02:00
ed3d693cb1 Dependency graph fixes for RigidBodyWorld
- rbw->group added to the depsgraph.
- Mesh evaluation added when necessary.
- Prevent of double-free by freeing the scene before objects.
2018-06-15 17:15:42 +02:00
43d22d80e7 Keymap: use click event for tab-key
Checking release events would toggle edit-mode during alt-tab
cycling on X11.

Now both press and release events are needed.
2018-06-15 17:10:40 +02:00
d148514821 Workbench: Disable AA when doing opengl render.
- OpenGL uses linear space and has its own AA. So we don't calculate
when doing opengl rendering.
2018-06-15 16:50:34 +02:00
23b3901057 Merge branch 'master' into blender2.8 2018-06-15 16:32:31 +02:00
2e25a48b05 Fix more Cycles CUDA errors after recent changes. 2018-06-15 16:28:09 +02:00
Dalai Felinto
badb700161 Fix T55443: Manipulators not refreshing 2018-06-15 15:45:21 +02:00
0b8c2eed75 Merge branch 'master' into blender28 2018-06-15 15:42:42 +02:00
8166d0affd Cleanup: warning 2018-06-15 15:42:31 +02:00
e552247489 MeshEditMode: refactor
- added a lib for shaded functions
- decreased active face inner size
2018-06-15 15:37:13 +02:00
Dalai Felinto
86a2f4a34a Fix crash with x-ray and redo panel
Code was assuming any area with region data was the main one.
This is no longer the case.
2018-06-15 15:01:28 +02:00
b84fad2ba3 Fix T55490, intersect two triangles fails.
Need to use the 'use_partial_connect' option in island connect,
so changed signatures of various functions to pass that into and
then down from BM_mesh_intersect (making true for intersect, false
for boolean).
Then fix bm_face_split_edgenet_partial_connect to work when
input edges are not necessarily wire, but at least not in the
face they are being connected in. That caused generalization
of core BM_vert_separate_hflag_wire (which is only used in
this one place in all Blender).
2018-06-15 08:48:45 -04:00
84c91a87a9 Converted Rigid Body from DerivedMesh to Mesh 2018-06-15 14:33:11 +02:00
5073ee0bb2 Workbench: FXAA
- do the FXAA pass after the color management. Be aware that during
rendering this is still being done in linear space
2018-06-15 14:05:49 +02:00
0276abbcf7 Workbench: FXAA
FXAA implementation in the deferred renderpass of the workbench.
Can be enabled per 3dview. Eventually this will also be a user setting
as it is more a system/performance setting than a scene setting.
2018-06-15 13:02:16 +02:00
15c340293f T55486: use GPU_R11F_G11F_B10F for target of Xray compo 2018-06-15 13:02:15 +02:00
64bfa4b300 T55486: use GPU_R11F_G11F_B10F for Matcaps 2018-06-15 13:02:15 +02:00
b7338463a7 Tool System: workaround click conflicting w/ add brush 2018-06-15 12:29:30 +02:00
995a1815f5 Fix T55408: Double transforms on parents/children.
object.base_flag was not synced back from evaluated ID to original one.
Similar thing as copying back to original transform matrix, avoids
having to get data from evaluated one in lots of cases.
2018-06-15 12:17:26 +02:00
76bc8669a0 Merge branch 'master' into blender2.8 2018-06-15 10:44:33 +02:00
284e0ea756 Fix (unreported) Text Editor: scrollbar exiting early
caused by recent clickdrag changes
2018-06-15 10:27:30 +02:00
8148d549bb Fix Cycles CUDA error after recent changes. 2018-06-15 10:26:28 +02:00
3a2a10e3a6 Merge branch 'master' into blender2.8 2018-06-15 10:25:41 +02:00
cbc7ee28d7 WM: 2.8 screen compatibility
Without these minor changes loading files from 2.8 will crash.

Manually applied edits from 26786a2b87
2018-06-15 10:24:53 +02:00
7c16739c75 Fix mouse input overwriting transform redo values
Redo trackball rotate and edge slide weren't working.

Caused by re-ordering of initialization 47de0321bf
2018-06-15 08:48:53 +02:00
e2c87c7e94 Cleanup: unused var 2018-06-15 08:03:19 +02:00
27de412ca8 Merge remote-tracking branch 'origin/master' into blender2.8 2018-06-14 22:54:42 +02:00
525be2f579 Image: Refactor render slots to a dynamic list
Previously, render slots were hardcoded to a fixed amount.

With this change, render slots now are stored in a list. Therefore, users can add and/or remove as many slots as they want.

Credit to brecht for the UI part.

Reviewers: brecht, sergey

Differential Revision: https://developer.blender.org/D3474
2018-06-14 22:46:30 +02:00
51f1ed8221 Cleanup: style 2018-06-14 22:44:53 +02:00
928d31d94a WM: fix redo region setting the context 2018-06-14 22:32:01 +02:00
26786a2b87 WM: add support for temporary region data 2018-06-14 22:27:58 +02:00
3ee606621c Cycles: Query XYZ to/from Scene Linear conversion from OCIO instead of assuming sRGB
I've limited it to just the RGB<->XYZ stuff for now, correct image handling is the next step.

Reviewers: brecht, sergey

Differential Revision: https://developer.blender.org/D3478
2018-06-14 22:21:37 +02:00
064e701472 Cycles: Connect value inputs to Strength instead of Color when inserting an Emission node
Same result, but saves an additional ConvertNode.
2018-06-14 22:16:42 +02:00
716e138a1b Cycles: Automatically detect HDRI resolution by default and use non-square sampling map
The automatic mode checks all Enviroment Texture nodes and picks the largest image's resolution.
If there are no Enviroment Textures, it just uses the old default.

Also, the sampling map now isn't limited to square shapes. The automatic detection uses the exact image size,
the manual UI option now halves the value to get the height.

A default aspect ratio of 2:1 makes sense since this is what most HDRIs use.

Reviewers: brecht, sergey

Differential Revision: https://developer.blender.org/D3477
2018-06-14 22:07:07 +02:00
1adfabc8c6 WM: revert part of Top-Bar inclusion
This removes OperatorRepeatContextHandle, from 5f6c45498c
since we now only have redo in the area an operator is executed in.

These values could be invalid and crashed in some cases.
2018-06-14 21:58:11 +02:00
7afa59e37a Edit Mesh: Fix blending function of edges
This fix the ugly (usually) dark outline that was around selected edges.
2018-06-14 21:45:16 +02:00
dc25e69c2d Fix motion paths not updating correctly for bones in some cases.
Sometimes the evaluated pose channel pointers can change during depsgraph
evaluation, so we can't store them ahead of time. The object pointer
should be ok since evaluated ID memory is reused.
2018-06-14 20:58:14 +02:00
2e09b277d5 Revert "GHOST: GLX: Remove XInitThreads"
This reverts commit 7529690df3.

I tried to put manually add threading protection to GHOST around
Xlib calls but that did not fix the crashes. So reverting that
for now despite the performance implication on some system.
2018-06-14 18:17:28 +02:00
dc856be839 Preview: Add own opengl context to render preview images. 2018-06-14 18:17:28 +02:00
a8e8808d58 Give RigidBodyWorld collection a fake user
This prevents it from disappearing when the blend file is saved.
2018-06-14 17:35:46 +02:00
8dc883052c UI: redo panel would still start zoomed in at times 2018-06-14 16:48:31 +02:00
59bb5d3a89 Cleanup: some remaining G.main's in COllada in 2.8... 2018-06-14 16:43:11 +02:00
a03fb42841 Workbench: Code cleanup: Double assignment 2018-06-14 16:28:16 +02:00
b9c9b87fa6 Cleanup: remove BLI_frand ugly global random generator usage from compositor. 2018-06-14 16:25:39 +02:00
3a36cbdfde Transform: Suppress assert w/ vertex paint 2018-06-14 16:14:51 +02:00
00eeb05f4c Depsgraph: Make certain components NOT tag copy-on-write when they are tagged
Currently done for mesh batch cache update, and for base flags sync.
Those components do not need anything from original object, and hence
can skip CoW tag and have faster update after them used.
2018-06-14 16:04:09 +02:00
42d8872014 Depsgraph: Use dedicated ocmponent for object's base flags flush 2018-06-14 16:04:09 +02:00
87b2444270 Merge branch 'master' into blender2.8
Conflicts:
	source/blender/collada/AnimationExporter.cpp
	source/blender/collada/AnimationExporter.h
	source/blender/collada/ArmatureImporter.cpp
	source/blender/collada/ArmatureImporter.h
	source/blender/collada/ControllerExporter.cpp
	source/blender/collada/ControllerExporter.h
	source/blender/collada/DocumentExporter.cpp
	source/blender/collada/DocumentImporter.cpp
	source/blender/collada/GeometryExporter.cpp
	source/blender/collada/GeometryExporter.h
	source/blender/collada/MeshImporter.cpp
	source/blender/collada/MeshImporter.h
	source/blender/collada/SkinInfo.cpp
	source/blender/collada/SkinInfo.h
	source/blender/collada/collada_utils.cpp
	source/blender/collada/collada_utils.h
2018-06-14 15:55:51 +02:00
0626de2033 GPU: consistenly use mipmap on/off in all draw modes.
This is important for good texture paint performance.
2018-06-14 15:50:22 +02:00
14db989e73 Cleanup: remove legacy GPU pass binding code. 2018-06-14 15:46:43 +02:00
39142103d9 T55479: Tag for update when active texture changes 2018-06-14 15:30:06 +02:00
fd19069999 Cleanup: remove last G.main's from Collada code. 2018-06-14 15:15:51 +02:00
277d901274 T55456 EditMeshMode
- see the face selection color when face is active
- test different masks for active face, finally chosen for no mask at
all.
2018-06-14 14:18:52 +02:00
158930228d Improved two tooltips
Tooltips shouldn't just repeat the information from the label.
2018-06-14 13:55:24 +02:00
f4dc4bd275 Fix crash on startup in after recent G.main changes. 2018-06-14 13:45:15 +02:00
3eba5c0079 Cleanup: remove last G.main's in WM code of 2.8.
Again, just validating ther usage and using G_MAIN instead.
2018-06-14 12:42:30 +02:00
4bf751be70 Merge branch 'master' into blender2.8
Conflicts:
	source/blender/modifiers/intern/MOD_normal_edit.c
	source/blender/windowmanager/intern/wm_files.c
2018-06-14 12:39:52 +02:00
66407e15cb Cleanup: Remove last G.main's from WM code.
Was mostly validating valid usages of G.main -> G_MAIN actually.
2018-06-14 12:34:13 +02:00
a671aa922a Workbench: Material colors + settings during sculpting 2018-06-14 12:12:27 +02:00
d64cd6f7ee Move call to drw_state_ensure_not_reused() inside the region locked by DST.gl_context_mutex.
Currently with a debug build there is a race condition where the mutex is released before the DST structure is reset to 0xFF, meaning when multiple threads are using the DRWManager it can get cleared when the main thread is using it, causing crashes.

Reviewers: fclem, brecht

Reviewed By: fclem

Tags: #bf_blender_2.8

Differential Revision: https://developer.blender.org/D3476
2018-06-14 12:03:40 +02:00
17b029d80e T55406: Flip Matcap
- Icon represent the flipped matcap in the shading menu
- Added template_icon to display any icon in scale.
2018-06-14 11:44:36 +02:00
0eb3246713 Fix T55470: Add option to not fix polygons' winding to Edit Normals modifier.
this is actually adding option to add buggy behavior, but.. NPR often
expects buggy behaviors, and its one of the main targets for normal editing.
So think it's reasonable to add that option (disabled by default of
course).

Note that am not really happy with UI, but:
* Not sure where to put it, it's kind of own self-contained area option.
* Don't to make it too much visible, using this should be the exception!
2018-06-14 11:41:12 +02:00
fecec7dd68 3D View: Show view-aligned rotation manipulators 2018-06-14 11:37:47 +02:00
f35572ae9e Cleanup: style 2018-06-14 11:37:47 +02:00
62f594ca7b UI: Make spacers align blocks on area divisions
This solves the problem of blocks jumping around when changing modes and
center them to the area (in case of only 2 spacers).
Which is (in my own opinion) more aestetically pleasing.
2018-06-14 11:29:44 +02:00
7449dc8d13 3D View: Tweak transform plane manipulator fading
The threshold to fade out and hide was too small.
2018-06-14 10:39:36 +02:00
4ee97c9a1c WM: increase hot-spot of 3D manipulators
Larger hot-spot was disabled for performance,
however without this - clicking on them is too difficult.
2018-06-14 09:55:58 +02:00
ba2c10c1f7 3D View: increase size of view aligned rotation
Minor changes based on user feedback.

- View aligned rotation manipulator overlapped too often
  with axis aligned widgets. Increase size (matching 2.79)
- Offset arrow-heads when combining rotate & translate,
  don't draw the stem since it overlaps with scale.
2018-06-14 09:46:11 +02:00
22ac20a705 WM: option not to draw arrow manipulator stem 2018-06-14 09:25:55 +02:00
eeca206e76 Cleanup: rename arrow manipulator 'draw_options'
Rename to 'transform' since this controls interaction.
2018-06-14 09:17:03 +02:00
b839d67f3e UI: correct HUD zoom resetting 2018-06-14 08:30:46 +02:00
2f3e890b94 DRW: Fix crash caused by hair transform feedback
Seem to be cause by the lack of proper FBO bound.
2018-06-13 22:20:48 +02:00
8d2309f94f 3D View: make navigation buttons smaller
Keep orbit large, other buttons are now closer to other icons buttons.
2018-06-13 21:00:05 +02:00
711a50c5ea Merge branch 'master' into blender2.8
This includes making Eevee match Cycles behavior of inserting an emission
node when linking colors to closures.
2018-06-13 19:26:52 +02:00
4d58fac1b4 Fix undo group to use human readable name, since this shows in the UI. 2018-06-13 18:39:30 +02:00
3102833962 Fix undo of transform after frame change undoing too much.
For grouped undo we should not skip the undo push, rather replace the
previous undo push. This way undo goes back to the state after the last
operation in the group.
2018-06-13 18:39:30 +02:00
90e6323ed8 Cycles: auto insert emission node when linking color to closure.
This is convenient for previewing the output of a node, and we agreed
to support this behavior in both Eevee and Cycles.
2018-06-13 18:39:30 +02:00
e5880eb1ff Fix exception in superellipse where precision_reached is used
with proper initialization
2018-06-13 21:56:15 +05:30
a3c630aebb Merge branch 'master' into blender2.8 2018-06-13 18:25:23 +02:00
2922131971 Corrected bevel of vertex by using profiles for curve of bevel 2018-06-13 21:53:15 +05:30
57cd52a4ab WM: check release event for particle edit mode
Caused by drag event.
2018-06-13 18:23:09 +02:00
2e23385c35 T55456: EditDrawMode
reorganized shader compilation
2018-06-13 16:47:38 +02:00
645c918825 T55456: EditDrawMode
use darker defaults for not active selection mode elements
2018-06-13 16:47:38 +02:00
4943739b89 Merge branch 'master' into blender2.8
Conflicts:
	source/blender/blenloader/intern/readfile.c
	source/blender/editors/mesh/editmesh_utils.c
	source/blenderplayer/bad_level_call_stubs/stubs.c
2018-06-13 16:42:56 +02:00
b8015ece51 Revert "T55456: EditDrawMode"
This reverts commit da6ed54569.
2018-06-13 16:34:20 +02:00
f61c30f804 Cleanup: get rid of last G.main in BMesh code. 2018-06-13 16:29:12 +02:00
cd0a4836d4 Cleanup: unused var 2018-06-13 16:17:07 +02:00
9c65227061 Tag object/scene for selection update from operators
Before that depsgraph tagging was done from inside notifier listener in
viewport. This had the following issues:

- If there are no viewports, selection tag was not done. Causing possible
  issues when object becomes visible.

- Required special trickery to detect which data to tag for update.

- Was causing crash when transforming/selecting markers in clip editor.
  This is because selecting marker needed to poke viewport to redraw, since
  selected bundles will be displayed differently in viewport.
2018-06-13 16:07:55 +02:00
Dalai Felinto
c1e503e89a Silence false positive warning on boolean modifier 2018-06-13 16:04:31 +02:00
1bcf9217eb Merge branch 'master' into blender2.8
Conflicts:
	source/blender/blenkernel/BKE_pointcache.h
	source/blender/blenkernel/intern/object.c
	source/blender/blenkernel/intern/pointcache.c
	source/blender/editors/include/ED_particle.h
	source/blender/editors/physics/particle_edit.c
	source/blender/editors/physics/particle_edit_undo.c
	source/blender/editors/physics/particle_object.c
	source/blender/editors/physics/physics_intern.h
	source/blender/editors/physics/physics_pointcache.c
	source/blender/editors/space_time/space_time.c
	source/blender/editors/space_view3d/drawobject.c
	source/blender/editors/space_view3d/view3d_edit.c
	source/blender/editors/transform/transform_conversions.c
	source/blender/editors/transform/transform_generics.c
	source/blender/editors/transform/transform_manipulator.c
	source/blender/makesrna/intern/rna_object.c
	source/blender/makesrna/intern/rna_object_force.c
	source/blender/makesrna/intern/rna_sculpt_paint.c
	source/blenderplayer/bad_level_call_stubs/stubs.c
2018-06-13 15:36:24 +02:00
7a10cfe7fe UI: preset popover buttons in panel headers.
Moves the preset into a menu for the panel header, so it can be changed
without opening the panel and takes up less space. Two remaining issues:

* For long lists the add new preset button can be scrolled off screen.
* We should support showing the name of the chosen preset in the panel
  header, but the current preset system does not support detecting which
  preset is used.

Differential Revision: https://developer.blender.org/D3366
2018-06-13 15:22:34 +02:00
Dalai Felinto
1664ccb675 Fix flexible spacer distance
Introduced on 0bce173bc7.
2018-06-13 15:17:56 +02:00
Dalai Felinto
8f8205584d UI: Make NLA header consistent with dopesheet 2018-06-13 15:07:25 +02:00
1a6b2650fa Cleanup: double quotes for non-enum strings 2018-06-13 15:06:58 +02:00
eed9458c22 UI: center align 3D view header snap, pivot etc 2018-06-13 15:04:13 +02:00
Dalai Felinto
6b6c86d1f7 UI: Fix clip editor double text-less icon situation 2018-06-13 15:04:07 +02:00
5ff1d845ea Cleanup: moar ugly G.main removal...
Note that due to RNA get/setters issue, that one may actually add some
G.main usages to the total... But at least it's not hidden anymore in a
very low-level, dark corner of BKE pointcache code!
2018-06-13 14:28:05 +02:00
da6ed54569 T55456: EditDrawMode
- removed the dithering from the active face
2018-06-13 14:21:38 +02:00
57fe9767f4 Merge branch 'master' into blender2.8 2018-06-13 14:19:57 +02:00
f7083b00ee Cleanup: tool settings access 2018-06-13 14:12:21 +02:00
2002fe27d9 Fix T55467: nodes cant be resized after recent clickdrag change 2018-06-13 14:03:46 +02:00
Dalai Felinto
64ecd3d2e7 Set minimum blender version as 2.80
Technically we probably need to do for the current subversion (17).
But the entirely 2.80 series is known to be experimental.

The most important part is to notify people that if they open the 2.80
file in master it will loose data.
2018-06-13 13:01:16 +02:00
710f1f2232 UI: add back pivot point
Was accidentally removed after recent changes.
2018-06-13 12:55:57 +02:00
23c24cead5 T55456: EditMode Drawing
- Hide facedots, except when in V3D_ZBUF_SELECT mode
`use_occluded_geometry`
- Different theme (wire_inactive) when not in edge selection mode
2018-06-13 12:38:53 +02:00
c0926d536f Manipulator: Skip redundant transform updates
Partially address T55458
2018-06-13 11:59:48 +02:00
ca7a93953a Error in recent popover width 2018-06-13 11:57:52 +02:00
0bce173bc7 UI: remove empty space at the end of headers, tweak start/end spacing. 2018-06-13 11:43:10 +02:00
dcf70dc181 Fix 3D view header panning not working with region overlap. 2018-06-13 11:43:09 +02:00
e4ab04b8bb Fix pop-over buttons always getting space for icon 2018-06-13 11:22:15 +02:00
2a5d4d7573 Merge branch 'master' into blender2.8 2018-06-13 11:11:23 +02:00
5788f24337 Cleanup: swapped X/Y UI_UNIT 2018-06-13 11:10:55 +02:00
1a79c6d360 Merge branch 'master' into blender2.8
Conflicts:
	source/blender/blenkernel/intern/blendfile.c
	source/blender/blenkernel/intern/node.c
	source/blender/blenkernel/intern/particle.c
2018-06-13 11:02:48 +02:00
67e8c1e1c7 Cleanup: remove more G.main from BKE area. 2018-06-13 10:57:10 +02:00
f234adf65c UI: adjust view navigation layout
Button layout now matches T54723.
2018-06-13 10:57:09 +02:00
edd0522e8f UI: HUD now follows region theming 2018-06-13 09:50:41 +02:00
64aadc7c7d Depsgraph: Avoid use of 0 tag flag on build finish
Use all the explicit tagging. Solves characters being in T-pose after
opening specific scene files.
2018-06-13 09:49:14 +02:00
813a538a57 UI: show HUD when region overlap is disabled 2018-06-13 09:27:40 +02:00
0ab8f9c74a UI: fix hud panel refresh glitch 2018-06-13 09:21:09 +02:00
679eefae74 UI: shorten proportional edit name
Didn't fit in panel.
2018-06-13 09:16:26 +02:00
a03eadaec8 UI: redo panel layout tweaks
- Don't use compact layout (enum titles were hidden).
- Split-properties to use less vertical space.
- Make panel wider, half width when collapsed.
2018-06-13 08:26:16 +02:00
fc0b21ff73 Fix region expanding on refresh 2018-06-13 00:30:16 +02:00
0c0811829f UI: adjust header alignment
- User preferences header at the bottom.
- Action header at the top.

Now all editors accessible from the menu have their header at the top,
default layout for the timeline remains at the bottom.
2018-06-12 22:59:15 +02:00
958d24ae0f UI: Name N-Key toggle to Sidebar 2018-06-12 22:57:03 +02:00
77879ac038 Fix T55376: instanced collection render visibility ignored.
For physics simulation it's still fuzzy though, but this needs bigger
design for how it works with view layers and visibility.
2018-06-12 22:36:43 +02:00
6700c02e53 WM: don't show redo hud when unsupported 2018-06-12 22:33:58 +02:00
98e0bd90f4 WM: hide internal operator settings
These are set in the interface and aren't useful to show to users.

Other minor changes

- Rename 'Ruler/Protractor' -> 'Ruler'
- Rename Subdivide 'Quad/Tri Mode' -> 'Create N-Gons' (and invert).
2018-06-12 22:00:22 +02:00
94e0abda75 UI: move auto-merge option to mesh options panel
This can be used even w/o snap.
2018-06-12 21:16:50 +02:00
81f24dd781 UI: re-arrange object mode and 3D view buttons
After some consideration we're moving 3D view settings
that impact the 3D view back.

See T55386 for details.
2018-06-12 21:10:31 +02:00
18cc8809c3 Fix T55457: Crash after merge faces 2018-06-12 20:43:46 +02:00
e65d20e7dc Cleanup: add ED_region_panels_layout
Only had the '_ex' (extended) version.
2018-06-12 18:39:18 +02:00
9b9b943e0c Merge branch 'master' into blender2.8
Conflicts:
	source/blender/blenkernel/BKE_anim.h
	source/blender/blenkernel/intern/anim.c
	source/blender/blenkernel/intern/scene.c
	source/blender/editors/armature/pose_edit.c
	source/blender/editors/armature/pose_transform.c
	source/blender/editors/armature/pose_utils.c
	source/blender/editors/include/ED_armature.h
	source/blender/editors/object/object_edit.c
	source/blender/editors/transform/transform_conversions.c
2018-06-12 18:26:50 +02:00
2788202417 Cleanup: moar G.main removal from BKE area. 2018-06-12 17:57:24 +02:00
f27ecd56ef Cleanup: BKE_scene_free should not have to worry about cleaning its usages.
This is supposed to be handled by calling code! Henceforce, no need to
call BKE_sequencer_clear_scene_in_allseqs() here, and... no need for
that ugly G.main case. ;)
2018-06-12 17:46:16 +02:00
a76cfe2c22 Cleanup: no need for extra HUD type check now 2018-06-12 17:38:04 +02:00
031416c559 Merge branch 'master' into blender2.8 2018-06-12 17:36:24 +02:00
b00d840359 WM: remove sloppy region type access
Avoid accidentally operating on the wrong region type.
2018-06-12 17:34:44 +02:00
760e79d809 WM: rename BKE_regiontype_from_id
This returns the first as a fallback, causing confusing usage.
Renamed and added a version of the function that doesn't.
2018-06-12 17:26:38 +02:00
e8dd4cd9ca Cleanup: warning, spaces 2018-06-12 17:20:12 +02:00
2af7c38682 Cleanup: get rid of global RNG usage in paint stroke code. 2018-06-12 17:13:47 +02:00
376bc88dc0 Fix leak of manipulator tooltip timers.
This was causing performance degradation over time in posing, as the
manipulator recomputes the center locations for every event.

Ref T55442.
2018-06-12 17:07:18 +02:00
3801736b89 Depsgraph: remove object tagging hack for render.
With copy-on-write it should now all be evaluated correctly in render
resolution, without needing to switch the original data resoluton.
2018-06-12 17:07:18 +02:00
a9cfd8c910 Cleanup: get rid of global RNG usage in transform code. 2018-06-12 17:00:31 +02:00
8826a00482 WM: HUD was disappearing on redo 2018-06-12 16:59:37 +02:00
97cac69739 Fix redo panels being added to non-hud regions 2018-06-12 16:55:00 +02:00
2a3e7fe656 UI: improve HUD ensure/clear logic
Running operators w/o redo now clears the HUD immediately.
2018-06-12 16:50:27 +02:00
deb3d73eea Particle: Use loclaized RNG for physics simulation
Avoids threading conflicts between multiple particle systems being simulated.
2018-06-12 16:37:40 +02:00
7d36408b82 Merge branch 'master' into blender2.8
Conflicts:
	source/blender/editors/include/ED_view3d.h
	source/blender/editors/space_view3d/view3d_draw.c
	source/blender/python/intern/gpu_offscreen.c
2018-06-12 16:29:07 +02:00
866127d9f2 StudioLight: Use texel size as input size
Bettter light distribution for diffuse shading
2018-06-12 16:18:50 +02:00
ec4ce908db Fix T55452: Crash on saving with visible particle system.
Missing Main pointer in recent refactor/cleanup of G.main usages...
2018-06-12 16:17:05 +02:00
b236400ff5 Math: Remove unused functions which are not safe for threading
All areas are toy use "local" number generator, in order to keep
behavior predictable and threadable. This is what BLI_rng_() API
is for.

There are still lots of usages of BLI_frand(), which are to be
ported to BLI_rng_get_float(). but that is somewhat involved.

For the time being, remove unsafe API, so new areas have zero
chance using it.
2018-06-12 15:51:43 +02:00
6231a077ac Merge branch 'master' into blender2.8
Conflicts:
	source/blender/blenkernel/BKE_group.h
	source/blender/blenkernel/BKE_object.h
	source/blender/blenkernel/intern/group.c
	source/blender/blenkernel/intern/library_remap.c
	source/blender/blenkernel/intern/object.c
	source/blender/blenloader/intern/readfile.c
	source/blender/editors/object/object_group.c
	source/blender/editors/object/object_relations.c
	source/blender/editors/physics/rigidbody_constraint.c
	source/blender/editors/physics/rigidbody_object.c
	source/blender/makesrna/intern/rna_group.c
2018-06-12 15:41:32 +02:00
1b5e3e1c01 Use evaluated objects in Alembic unit tests
This at least makes sure the tests don't fail any more. Possibly there
should be more evaluation happening there.
2018-06-12 15:39:54 +02:00
39e050af40 Fix T55409: Can't animated keyframed material node value after moving keyframe on timeline
Completely ignore animation for legacy zero update tag.

If one needs animation to be evaluated, tag with proper update tag, stop relying
on direct assignment of adt->>recalc with zero update tag for DEG.

This commit might cause missing updates when needed, those needs to be looked
into once they happen.
2018-06-12 15:39:11 +02:00
8204261ede Particle: Remove global RNG usage from distribution 2018-06-12 15:38:29 +02:00
53a9cde038 Particle: Use local RNG during initialization 2018-06-12 15:38:29 +02:00
46cb64917d Render: Remove global RNG usage
We shouldn't be using BI textures anyway. But in any case, adding noise
texture to compositor is doing proper seed updates already, so probably
was already ported to a proper RNG usage.
2018-06-12 15:38:29 +02:00
b6b1e0f56c T55454: removal of clay engine
The ClayEngine was introduced to test the blender2.8 architecture during
development. As currently we have the wanted features implemented with
matcaps we are going to remove the clay engine as it was never intended
to be an official releasable engine

Note: The test cases are never run. But when enabled will be skipped as
they were implemented over the Clay Engine
2018-06-12 15:32:31 +02:00
d72ddb81ae Studiolight: add rim lighting to the default light setup 2018-06-12 15:17:01 +02:00
a6585fa4b1 Cleanup: moar removal of G.main in BKE area... 2018-06-12 15:16:45 +02:00
1d8279fd8d Alembic: made bl_alembic_import_test.py run again
Two tests are still failing, but at least the API changes in 2.8 have been
applied now.
2018-06-12 15:10:15 +02:00
d617a6c85b Cleanup/simplify G.main usages.
Using G.main only to get main bled filepath, or built-in fonts, is OK.
So now using the 'valid' G_MAIN macro here instead.
2018-06-12 15:03:51 +02:00
4bfc7b9e7d Fix crahs using ndof 2018-06-12 14:50:57 +02:00
18ae64858b Cleanup: Indentation 2018-06-12 14:43:40 +02:00
c2abb6d3fc Particles: Use local RNG
Currently only obvious cases, but is already a progress.
2018-06-12 14:30:50 +02:00
49b39ea851 Duplication: Use local RNG
Makes generation safe for threading.
2018-06-12 14:30:50 +02:00
cb409bb219 Add utility function to help debugging concurrent usage of global RNG
Checks are disabled by default, but we need to make them enabled by
porting all required areas, or by removing API which uses global RNG.
2018-06-12 14:30:50 +02:00
3b2e19cb4c Depsgraph: Ensure modifiers evaluation doesn't happen on top evaluated mesh 2018-06-12 14:30:50 +02:00
c279592123 Depsgraph: Don't update derived mesh for particles on render
Render depsgraph is evaluated from scratch, so it should not be needed
to do such a call.

This also prevents modifier stack from being evaluated on top of already
evaluated mesh
2018-06-12 14:30:50 +02:00
0d817e68ef Depsgraph: Add debug option to invalidate data tagged for update
See comment for INVALIDATE_ON_FLUSH.
2018-06-12 14:30:50 +02:00
3263e5e881 Depsgraph: Set temp object to invalid state as soon as it becomes inaccessible 2018-06-12 14:30:50 +02:00
abdea5754e Depsgraph: Cleanup, wrap private functions to an anonymous namespace 2018-06-12 14:30:50 +02:00
43eebdfebd Merge branch 'master' into blender2.8
Conflicts:
	source/blender/collada/DocumentImporter.cpp
	source/blender/editors/include/ED_object.h
	source/blender/editors/object/object_modifier.c
2018-06-12 12:58:31 +02:00
be57cf9b2a Cleanup: remove moar G.main from BKE area. 2018-06-12 12:53:27 +02:00
c98b2e74df Merge branch 'master' into blender2.8
Conflicts:
	source/blender/editors/object/object_add.c
	source/blender/editors/object/object_relations.c
2018-06-12 12:38:54 +02:00
5508b572ea Cleanup: remove some G.main from ED's animsys.
The easy ones - there some much, much trickier to tackle there...
2018-06-12 12:28:14 +02:00
fdd26faa49 LookDev: Move lookdev balls when menu switches 2018-06-12 12:24:05 +02:00
ab0daa1866 Studiolight: Disabled irradiance icons 2018-06-12 11:53:34 +02:00
8cca1abcb1 Studiolight: Bumped the radiance buffer to RGBA16F
Fixes issue reported at
https://devtalk.blender.org/t/lookdev-ibl-result/890/3
2018-06-12 11:51:04 +02:00
e1f24a8615 Studiolight: cache irradiance buffer 2018-06-12 11:51:04 +02:00
75bcb70c60 Cleanup: remove some G.main from BKE area. 2018-06-12 11:21:54 +02:00
d2e691b91a UI: fix crash with HUD panel size
There can be no panels in the region.
2018-06-12 11:18:52 +02:00
6d152c5997 UI: remove redo popover from topbar
See: T55039
2018-06-12 10:52:27 +02:00
7bf4023689 Fix T55448: Typo in Cycles CUDA debug output
Reviewers: sergey, lukasstockner97

Reviewed By: lukasstockner97

Tags: #cycles, #bf_blender

Differential Revision: https://developer.blender.org/D3472
2018-06-12 10:45:32 +02:00
4bf331c0fc UI: Initial persistent floating redo panel
This is the first step to moving redo out of the top-bar, see: T55039

- Support for floating panels in the ScrArea has been added.
- A new region type RGN_TYPE_HUD is used for floating settings input.
- Only one HUD should be visible at a time.
- Currently HUD regions are only visible
  for 3D view and image space types.
- There are currently some remaining glitches with hide/show
  that need further investigation.
2018-06-12 10:42:49 +02:00
3937e8fbc3 UI: non editable template_icon_views are rendered as label
This is also a way to render an large preview icon without the selection
control. This is used by the studiolights in the userprefs that only
displays the preview of the light.
2018-06-12 08:45:38 +02:00
a2027c6587 UI: replace ui_draw_search_back w/ general code
Useful for drawing any kind of region-background.
2018-06-12 08:14:13 +02:00
35da1afa09 Cleanup: remove unused context args 2018-06-12 07:59:27 +02:00
1dc93f90a0 Cleanup: remove image->bindcode, always wrap in GPUTexture.
This simplifies code, and will hopefully make UDIM usage of GPUTexture
a little easier.
2018-06-11 23:24:04 +02:00
1d111cd046 Revert "Cleanup: remove image->bindcode, always wrap in GPUTexture."
This reverts commit 8242a5bc85. This isn't
quite ready to use yet.
2018-06-11 22:35:09 +02:00
8242a5bc85 Cleanup: remove image->bindcode, always wrap in GPUTexture. 2018-06-11 22:30:59 +02:00
0054dff67e Fix part of T55439: don't add indirectly linked objects to the scene on link. 2018-06-11 21:51:21 +02:00
3816502b7c Drivers: ensure Python expressions are cached with copy-on-write.
Store the compiled expressions on the original driver.

Ref T55442.
2018-06-11 21:34:21 +02:00
2bbe0c4ef4 Cleanup: fix compiler warnings. 2018-06-11 21:21:41 +02:00
76c7c66b02 Fix accidental addons submodule change in previous commit. 2018-06-11 21:13:02 +02:00
Edmund Kapusniak
c08716d3ee Fix crash with OpenGL rendering in multiple threads on macOS.
On macOS we must always go through BLI_thread_local_get/set().

Differential Revision: https://developer.blender.org/D3470
2018-06-11 21:10:24 +02:00
9520fc0ff7 Pose: optimize pose rebuild for copy-on-write.
Ref T55442.
2018-06-11 20:48:18 +02:00
691471fe22 Cleanup: add simplified panel callbacks 2018-06-11 19:31:56 +02:00
d4b4504260 Improve/partially fix overriding of Object material pointers.
Basic workflow shall now work, still lots to do in the UI (ID template
needs some love to reflect overriden status ;) ).
2018-06-11 19:29:15 +02:00
b5f67bfd83 Merge branch 'blender2.8' into soc-2018-bevel 2018-06-11 21:24:51 +05:30
c31bc465ea Revert previous commit and do proper fix for missing typeinfo in nodes. 2018-06-11 17:39:39 +02:00
1255129932 Merge branch 'blender2.8' into soc-2018-bevel 2018-06-11 21:03:07 +05:30
7529690df3 GHOST: GLX: Remove XInitThreads
This was needed because we were sharing opengl contexts across multiple
threads. With the recent refactor this should be no longer needed.
2018-06-11 17:23:06 +02:00
faf7453b45 Fix crash in loading/applying static overrides of some nodal material.
No real idea why node's typeinfo is NULL here... but think we do not
care much in that case, so just adding some NULL checks for now.
2018-06-11 17:12:47 +02:00
aca403c819 GHOST: Fix uninitialized values. 2018-06-11 17:07:52 +02:00
4ffd153dbf Fix crash when doing Sculpt->Edit->Sculpt switch.
We actually get fully rid of BKE_object_free_derived_mesh_caches usages,
now always using BKE_object_free_derived_caches (bad name, btw, should
be 'evaluated_caches ;) )...
2018-06-11 18:58:21 +02:00
3df809958b WM: use layout/draw callbacks for buttons space 2018-06-11 18:39:46 +02:00
3e1f83a1dc WM: split panel drawing into layout and draw
This matches changes made to the header.
2018-06-11 18:39:46 +02:00
1f1ca74476 Outlines: Make Xray outlines 2px thick instead of 3px 2018-06-11 18:04:00 +02:00
638590078c Outlines: Make outlines in xray mode not occluded.
This is visually too distracting (flickering). Until we have a better
solution, just disable occlusion fading.
2018-06-11 18:04:00 +02:00
05111d79d0 Cleanup: remove unused DAG_EVAL_PREVIEW mode. 2018-06-11 17:06:28 +02:00
2abb156b9f Cleanup: remove object.is_visible.
Depsgraph already iterates over visible objects, and since this was only
valid for objects evaluated with the depsgraph it was confusing.
2018-06-11 17:06:28 +02:00
73b9531dcf Fix incorrect object selection test in outliner and rigid body. 2018-06-11 17:06:28 +02:00
0461f45e5e Fix T55436: crash with point density and shader tweaking.
With copy-on-write we can no longer assumes the point density data is
available after Cycles synchronization with Blender data is done. So
force it to be loaded earlier, even if it's not great for interactivity.
2018-06-11 17:06:28 +02:00
84692844a3 Fix merge error in 908b696, removed files were accidentally added back. 2018-06-11 17:06:28 +02:00
27b6734022 GHOST: Fix uninitialized var
Was causing crash on startup.
2018-06-11 17:04:59 +02:00
a753c6e11a UI: split left/right header buttons
- Added flexible separators to
  Clip, Graph, Dopesheet, Image, Node, Timeline, 3D View.
- Added graying out for Proportional Editing
  menus to avoid popping when right-aligned.
- Slightly re-arranged some controls,
  so they can be on correct side of the separators.

Patch by @billreynish
2018-06-11 17:01:10 +02:00
17ee4836ab Fix: Remove UI_BLOCK_MOVEMOUSE_QUIT from popovers
This was causing driver editing popovers to just keep disappearing
whenever you accidentally moved the mouse away, making the popovers
there nearly useless.

After testing with the other popovers we have in other places, I don't
really see why we needed this flag enabled in the first place. You can
still switch between popovers in the topbar by mousing over the others,
and if you want to dismiss without clicking to escape, you can go over a
standard menu instead OR just move back towards the button that spawned it.

Let's just test this out for a while and see how it goes. Maybe we don't
need a more invasive solution here...
2018-06-12 02:49:12 +12:00
204c167c72 Merge branch 'master' into blender2.8
Conflicts:
	source/blender/blenkernel/BKE_mesh.h
	source/blender/blenkernel/intern/mesh_convert.c
	source/blender/editors/interface/interface_eyedropper_color.c
	source/blender/editors/object/object_add.c
	source/blender/editors/space_image/image_ops.c
	source/blender/makesrna/intern/rna_image.c
	source/blender/windowmanager/intern/wm_draw.c
2018-06-11 16:02:46 +02:00
9e439197ed Workbench: API Changes
- merged matcap and studioLight api
2018-06-11 15:54:24 +02:00
78a8d3685b Cleanup: remove moar ugly G.main usages...
BKE_image was an ugly nest, could fix all but the ones from compositor,
so moved ugly G.main there, at least we know where the Evil is that way ;)
2018-06-11 15:40:37 +02:00
Dalai Felinto
9b39a5142f Fix T55440: Pose Mode Crash 2018-06-11 15:29:13 +02:00
800c3c5ca5 GHOST: WGL: Delay context initialization for offscreen contexts.
Same as 128926a41b but for windows.
2018-06-11 13:06:54 +02:00
b763c34e80 Cycles: Cleanup, silence strict compiler warning
There is one legit place in the code where memcpy was used as an
optimization trick. Was needed for older version of GCC, but now
it should be re-evaluated and checked if it still helps to have
that trick.

In other places it's somewhat lazy programming to zero out all
object members. That is absolutely unsafe, at the moment when
less trivial class is used as a member in that object things
will break.

Other cases were using memcpy into an object which comes from
an external library. We don't control that object, and we can
not guarantee it will always be safe for such memory tricks
and debugging bugs caused by such low level access is far fun.

Ideally we need to use more proper C++, but needs to be done with
big care, including benchmarks of each change, For now do
annoying but simple cast to void*.
2018-06-11 13:02:10 +02:00
a6e582164f Libmv: Cleanup, make strict compiler more happy
In C++ it is not really safe to memcpy objects, and newer GCC will warn
about this. However, we don't use our vector for unsafe-to-memcpy objects,
so just explicitly silence that warning.
2018-06-11 13:02:10 +02:00
5ad7bda45f Render: Fix build problem with missing GL/glew.h 2018-06-11 13:00:21 +02:00
Dalai Felinto
070830c62d Fix separator element for headers with multiple directions 2018-06-11 14:54:04 +02:00
Dalai Felinto
d90fc119c2 UI: Separator spacer
This support layout.separator_spacer() to be used by headers as a way to
dynamically separate the ui buttons.

Right now no UI file is changed, though we can use this right away in the
timeline, and shortly after in the viewport header (moving settings from
the topbar to it).

Original design by William Reynish.

Review: Campbell Barton
D3468
2018-06-11 14:46:35 +02:00
74051111eb Merge branch 'master' into blender2.8 2018-06-11 14:44:03 +02:00
160cb9a284 Merge branch 'master' into blender2.8
Conflicts:
	intern/cycles/blender/blender_object.cpp
	source/blender/alembic/intern/abc_exporter.cc
	source/blender/alembic/intern/abc_mball.cc
	source/blender/alembic/intern/abc_mball.h
	source/blender/blenkernel/BKE_anim.h
	source/blender/blenkernel/BKE_displist.h
	source/blender/blenkernel/BKE_dynamicpaint.h
	source/blender/blenkernel/BKE_group.h
	source/blender/blenkernel/BKE_mball.h
	source/blender/blenkernel/BKE_mball_tessellate.h
	source/blender/blenkernel/BKE_object.h
	source/blender/blenkernel/BKE_scene.h
	source/blender/blenkernel/intern/anim.c
	source/blender/blenkernel/intern/depsgraph.c
	source/blender/blenkernel/intern/displist.c
	source/blender/blenkernel/intern/dynamicpaint.c
	source/blender/blenkernel/intern/group.c
	source/blender/blenkernel/intern/mball.c
	source/blender/blenkernel/intern/mball_tessellate.c
	source/blender/blenkernel/intern/mesh_convert.c
	source/blender/blenkernel/intern/object.c
	source/blender/blenkernel/intern/object_dupli.c
	source/blender/blenkernel/intern/object_update.c
	source/blender/blenkernel/intern/pointcache.c
	source/blender/blenkernel/intern/scene.c
	source/blender/blenkernel/intern/smoke.c
	source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
	source/blender/depsgraph/intern/builder/deg_builder_relations.cc
	source/blender/editors/include/ED_object.h
	source/blender/editors/object/object_add.c
	source/blender/editors/object/object_edit.c
	source/blender/editors/object/object_modifier.c
	source/blender/editors/physics/dynamicpaint_ops.c
	source/blender/editors/sculpt_paint/paint_vertex.c
	source/blender/editors/sculpt_paint/sculpt_uv.c
	source/blender/editors/space_view3d/drawobject.c
	source/blender/editors/space_view3d/view3d_draw.c
	source/blender/editors/transform/transform_conversions.c
	source/blender/editors/transform/transform_snap_object.c
	source/blender/editors/util/ed_util.c
	source/blender/gpu/intern/gpu_material.c
	source/blender/makesrna/intern/rna_meta.c
	source/blender/makesrna/intern/rna_object_api.c
	source/blender/modifiers/intern/MOD_dynamicpaint.c
	source/blenderplayer/bad_level_call_stubs/stubs.c
2018-06-11 14:39:38 +02:00
b7bf8b3757 Render: Create a separate gl context for rendering.
This should take care of all the threading stability issues some people
are reporting.
2018-06-11 13:55:02 +02:00
128926a41b GHOST: Delay opengl context initialization
This way they can be init in their owner thread. Contexts should not be
shared accross threads. Once you make a context active on a thread it is
owned by the thread.

This commit only have the GLX backend updated but should not break orther
platform.
2018-06-11 13:55:02 +02:00
1463ec6896 DRW: Rename ogl_context to gl_context
We might not use opengl forever :)
2018-06-11 13:55:02 +02:00
228ba8475a DRW: Add cache reset.
This is a temporary solution to the use of the shared cache.

Ideally this cache should be per gl drawing context.
2018-06-11 13:55:02 +02:00
0ec2e7ad53 Shading: Change icon of userpreference in Shading popover 2018-06-11 12:48:01 +02:00
d0956e9cb3 Cleanup: Moar G.main removal of Hell.
This commit actually adds some G.main... but at much, much higher level
than the ones it removes, so should still be better ;)
2018-06-11 12:15:14 +02:00
8055ed2741 Cleanup: remove some G.main usages... 2018-06-11 12:15:14 +02:00
a67cc72232 MetaBall support for Workbench + EEVEE
Note: Metaballs only support the first material slot. Splicing it per
material would create empty Batches. In order to overcome this we set
the batch for other materials to NULL. We added extra checks in EEVEE
and Workbench to not draw when the geom is NULL.
2018-06-11 11:52:41 +02:00
5aa8d981ec Workbench: Flipping MatCaps for forward shading 2018-06-11 11:52:41 +02:00
f2e60b53a7 Fix pchan head/tail original values not being set 2018-06-11 11:37:22 +02:00
13d238729b Fix bad level stubs 2018-06-11 11:36:22 +02:00
Dalai Felinto
df72101631 Revert unintended changes to depsgraph
This partially reverts f8d7df6f16.
I committed this bit by mistake.
2018-06-11 11:33:09 +02:00
4ac87d58eb Merge branch 'master' into blender2.8 2018-06-11 11:06:43 +02:00
28c34ae7e2 Cleanup: Use BLI_strncpy
It has behavior which we expect, and silences strict compiler warning.
2018-06-11 11:06:15 +02:00
4d339f56fe Fix T55278: Lightmap Pack > New Image broken when active object is None
thanx bblanimation (Christopher Gearhart) for spotting the issue and
providing the fix!

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D3449
2018-06-11 11:02:07 +02:00
b6be8c0394 Merge branch 'master' into blender2.8 2018-06-11 10:46:33 +02:00
9e8bd3a072 path_util: avoid overflow w/ strtoll use
Also style cleanup.
2018-06-11 10:46:02 +02:00
ca36364a6a 3D View: move screen overlays to the top
- Frame & object name now top left.
- Axis now top right (when view navigation disabled).

This is needed so we can use the lower area for redo popup, see T55386.
2018-06-11 10:37:56 +02:00
91958436fb Merge branch 'master' into blender2.8 2018-06-11 10:28:36 +02:00
1d8d4e03f5 Fix PyConsole: Drag events finished early in modal text selection 2018-06-11 10:18:51 +02:00
0ec6196ae3 Merge branch 'master' into blender2.8 2018-06-11 10:03:42 +02:00
7ac0272b77 Fix T55140: opened image doesn't show up in movie clip editor
atoi usage in BLI_stringdec could overflow, use strtoll instead and
check
valid range with INT_MIN and INT_MAX

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D3452
2018-06-11 09:57:16 +02:00
05e7802a97 WIP: Add driver eyedropper operator button beside the "add input" button
This doesn't work currently. Needs more investigation why.
2018-06-11 19:43:28 +12:00
21c24c0423 Drivers UI: Introduce more whitespace, to make the sections clearer 2018-06-11 19:43:28 +12:00
5843de3251 Merge branch 'master' into blender2.8 2018-06-11 09:34:04 +02:00
7c10ed7e72 Cleanup: Remove the "all" parameter from "ANIM_OT_driver_button_edit"
This won't ever be used for this operator, as the "edit" operator should
only ever be used for dealign with a single driver - the one under the
cursor.
2018-06-11 19:27:53 +12:00
3122366b28 Overlays: Reserve space for a "Onion Skins" overlay
While we probably won't be getting a general purpose "Onion Skinning"
overlay anytime soon for meshes, etc. (at least not before the
depsgraph stabilises, and we also get geometry caching working),
for the Grease Pencil integration at least, it makes sense to move
GP objects to using a more general/future-proof solution, instead
of continuing to use a special/dedicated button in the header.

Currently the UI part of this is commented out. Also, the GP branch
doesn't need to move to this pre-merge. But, since 2.8 changes move
fast, it's better to reserve the space now to have it next to motionpaths,
than introduce it later.
2018-06-11 19:15:05 +12:00
4d67655348 Drivers UI: Don't show the Copy/Paste driver dvars buttons in the popovers
The copy/paste driver variables buttons currently only work when used in the
Graph Editor as they rely on being able to have the "active F-Curve" context
info that's only present in the Graph Editor (in Drivers Editor mode).
Instead of having them constantly greyed out in the popover, it's easier
to just hide them for now. Besides, this is probably more of an "advanced"
feature that we don't need to expose in the simple UI.
2018-06-11 19:15:05 +12:00
474a145d78 Fix T55349: crash adding paint slot when object is on hidden layer
use better poll and get ob with 'ED_object_active_context' (instead of
'CTX_data_active_object')

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D3467
2018-06-11 09:12:29 +02:00
d7373f6c49 Cleanup: warnings 2018-06-11 09:03:39 +02:00
1ff28c2650 Drivers UI Fix: Use uiLayoutSetContextFromBut() so that operators will work in the panel
This fixes the problem where the "Show in Drivers Editor" button would
not actually select and highlight the driver under the mouse.

(TODO: The channels still aren't getting selected properly in the
channels list, but at least the properties show correctly)
2018-06-11 18:55:29 +12:00
0c6410ec0c Added ability to harden normals.
Uses 2 different params: mode and strength. There are still some
hiccups with how 2.8 interacts with normals. Will resolve as
support gets better
2018-06-11 11:58:26 +05:30
9ab26bec27 Driver Workflow (T55145): Tweak to default expression used for new drivers created from UI
Previously, newly created drivers were set to "Scripted Expression"
mode and had their 'expression' field set to the pre-driver value of the
property, so that adding a driver didn't cause the property to immediately
lose its old value (and potentially causing havok in the scene).
However, this had the unintended consequence of making the driver setup
workflow more cumbersome, as you first had to replace that value with
the name of the driver variable before your driver would work.

This commit works around this issue by trying to combine the best of both
worlds (quite literally):  Now, the driver expression for drivers created
using Ctrl-D will be "var + <old value>".

Thus, in the simplest case, the driver will do something as soon as you fill
out the driver variable settings (e.g. just filling out the Target Object field
will do it), meaning you get your drivers working faster. Of course, it may now
be necessary to edit out the old-value, and/or it might be a bit more confusing
what/why it's there for newbies. However, the improved ease of setup, and/or
a more tangible example of how an expression may be constructed outweigh the
downsides IMO.
2018-06-11 17:44:08 +12:00
4605e57b0f Drivers Workflow (T55145): Improvements to "Add Driver" workflow
This commit implements a new behaviour for the "Add Driver" functionality
(invoked from the RMB menu on a property, or by pressing Ctrl-D).

Instead of spawning a context menu asking you to pick the way
you want to create a driver, it will now just create a driver on the
property under the mouse and then show the "Edit Drivers" popover so
that you can immediately start editing the properties of this driver.
This way, the whole process is more visual and feels less blocking /
constrained, with less upfront decisions needed immediately.

Notes:
* The new behaviour is equivalent to choosing the "Manually Create (Single)"
  and then doing a "Edit Driver" on the property
* Renamed the old "ANIM_OT_driver_button_add" operator to
  "ANIM_OT_driver_button_add_menu". It will probably go away
  in the near future, but it's better to keep it around for a
  while longer still until the new workflow settles down.
2018-06-11 17:35:13 +12:00
f1e3e50294 Sub-panels for Cycles Depth of Field 2018-06-10 21:27:43 +02:00
865acd9247 Sub-panel for camera DoF for EEVEE 2018-06-10 21:06:49 +02:00
5290882bd5 Workbench: Xray: Fix hairs with matcaps. 2018-06-10 20:28:04 +02:00
20b0194cd3 Workbench: Xray: Make dithered depth dependant on alpha.
The range is 0.25 to 0.75 opacity when the Xray opacity is between 0.0 to 1.0.

This is to avoid loosing completely the sense of occlusion when having no
other solid drawing than the wireframe and loosing the transparency when
xray alpha is at 1.0.

Also replace Bayer (checkerboard) method by interlieved gradient noise to
minimize the chance to loose an occluded line completely.

Other noise function could be tested in the future.
2018-06-10 20:06:26 +02:00
542462d35c Workbench: Xray: Add selected/active non-occluded outlines
This Fix the problem when multiple objects are selected and one of them
occlude the others. You cannot see clearly what is selected.

With this option, selection is more clear when Xray mode is enabled.
2018-06-10 20:06:26 +02:00
e321fc4a7c Workbench: Xray: Make nearest surfaces more clear
By using equation 7 from the paper, we make the surfaces nearest to the
viewpoint appear more "opaque". This gives better sense of ordering than
the previous weighting function that was really not doing anything.
2018-06-10 20:06:26 +02:00
15862e1990 Workbench: Xray: Lower hairs opacity
Since hairs are very likely to owerflow the weight buffer, we divide their
alpha value by 3.

This might become a particle system setting if needed.
2018-06-10 20:06:26 +02:00
95894421cb Workbench: Xray: Optimize and fix implementation.
There was a method explained in the Weighted Blended Order-Independent
Transparency paper to support hardware that does not support per render
target blending function.

So now only 2 geometry passes are required instead of 3 (one being the
outline/depth fill pass).

This also fix how the blending is done. There was some premult confusion
in the implementation.
2018-06-10 20:06:26 +02:00
b23d5132a9 UI: Add redo last to edit-menu 2018-06-10 17:15:40 +02:00
9129319647 Experimental Tweak: Only show relationship lines between objects when either the parent/child object is selected
As in Pose Mode, the idea here it to try to reduce viewport complexity
without requiring users to turn off the overlay completely all the time.
For example, a background prop (e.g. a tree with a tyre hanging off it,
or a branch with hand-placed leaves) won't be cluttering the viewport with
its relationship lines all the time, when you're trying to do something else.

When you really do need to see these lines, you can still select the object
in question, and you'll see the lines for which objects are its children
or what its parent is. And to see all lines, you can still always select all
objects.
2018-06-11 02:49:38 +12:00
ca16c74e87 Viewport: "Show Relationship Lines" overlay toggle is now respected by Object Mode & Armatures (Edit/Pose) 2018-06-11 02:49:38 +12:00
937e4fb49a UI: change toolbar icon size from 38 -> 32 2018-06-10 16:42:19 +02:00
a978654977 UI: use property split for UV mask panel 2018-06-10 16:29:55 +02:00
4d1193feb3 UI: correct jitter button 2018-06-10 16:08:19 +02:00
87a71f36fc UI: use split property for tool settings
Patch by @billreynish w/ edits
2018-06-10 15:58:39 +02:00
c10f1379cd UI: remove tab use in the tool-settings 2018-06-10 15:40:02 +02:00
e5a0cf730a UI: use two columns for the overlay popover
Also use sub-panels.

Patch by @billreynish w/ edits.
2018-06-10 15:24:04 +02:00
afa45fb858 UI: Use flow layout for object properties context
Mainly as a proof of concept and test to use in other contexts.
2018-06-10 13:56:28 +02:00
a68bed06f6 Merge branch 'master' into blender2.8 2018-06-10 12:11:16 +02:00
d0a16772ad WM: add macros to check mouse button/gesture/wheel
Use to check click/drag,
fixes issue with mouse wheel triggering pie menu.
2018-06-10 12:08:09 +02:00
8314be7c89 Fix T55423: GLSL compilation error Flat + XRay 2018-06-10 11:51:07 +02:00
a52152c59f Merge branch 'master' into blender2.8 2018-06-10 08:21:50 +02:00
ae01df5779 Cleanup: trailing space in CMake files 2018-06-10 08:19:03 +02:00
dd67d703a7 Workbench: Fix material compilation. 2018-06-09 21:11:03 +02:00
147eef9741 Eevee: Improve compilation time (reduce branching).
This patch reduce the branching in the lamp loop, improving compilation time
noticeably (2372ms to 1785ms for the default shader).

This should not change the appearance of the shader.

Performance impact is negligeable.
2018-06-09 21:11:03 +02:00
45a5ddb57b Merge branch 'master' into blender2.8 2018-06-09 18:58:14 +02:00
2e14b7fb97 RNA: remove Layout.introspect
This was added as an experiment to extract information for docs
but this was never all that useful for its intended purpose.
2018-06-09 18:55:51 +02:00
419a813938 Merge branch 'master' into blender2.8 2018-06-09 18:48:11 +02:00
83cb34ccd1 Cleanup: unused functions 2018-06-09 18:47:39 +02:00
726ed7244e UI: always show popover subpanel header text 2018-06-09 18:15:08 +02:00
2ae404252d UI: fix popover subpanel header display 2018-06-09 18:03:22 +02:00
7fdde7fd86 UI: use draw_header function for popover buttons
Add 'is_popover' for panel draw functions to check if they're in a popup.
This puts dyntopo toggle next to the popover.
2018-06-09 17:38:32 +02:00
ec8a20fec0 Add new GridFlow layout.
This mimics the 'spreadsheet' behavior. Columns and/or rows can have
equal sizes, or adapt to their content - but always in a grid way (i.e.
all items in a same column will always have same available width, and
all items in a same row will always have same available height).
Also, you can fill (order) the grid in a row- or column-major way.

Not used anywhere for now.

Differential: https://developer.blender.org/D2395
2018-06-09 16:54:26 +02:00
5159ce640f Cleanup: style 2018-06-09 16:39:40 +02:00
70f8eaf1b7 Merge branch 'master' into blender2.8
Conflicts:
	source/blender/editors/space_view3d/drawobject.c
2018-06-09 15:18:21 +02:00
638de72277 Cleanup: remove some G.main usages. 2018-06-09 15:17:04 +02:00
2ca8230f67 Merge branch 'master' into blender2.8 2018-06-09 14:43:01 +02:00
fb565ddb68 Cleanup: trailing space in RNA 2018-06-09 14:40:09 +02:00
56a47e58f4 Cleanup: style 2018-06-09 14:30:32 +02:00
09ce794dc8 UI: initial support for parent panels in popovers
Currently this just includes the panels, no support for collapsing yet.
2018-06-09 14:21:39 +02:00
8f40af6dcd RNA: revert object mode re-order
This was done so numbered shortcuts made sense.
Now order matches master.
2018-06-09 12:57:15 +02:00
964c5421df Merge branch 'master' into blender2.8 2018-06-09 12:56:37 +02:00
9bcced83ee GHOST/X11: Print the keycode w/ debug enabled 2018-06-09 12:53:39 +02:00
3bbef95747 Workbench: Fix xray normal not being normalized. 2018-06-09 12:44:56 +02:00
337aab59e9 Workbench: Matcaps: Fix matcap under perspective.
This fixes the problem that matcaps have when using a very larg FOV in
perspective view.

This was because it was stupidly using the normal direction which can not
aligned with the view vector under perspective.

So to workaround this problem we don't use the normal as is, but compute
how much it's facing the camera.

This changes how matcaps looks in perspective because they now always use
the full range of the matcap (which is expected).
2018-06-09 12:44:56 +02:00
a1b42b79b3 Workbench: Fix incident vector calculation.
This fixes specular in perspective view.
2018-06-09 12:44:56 +02:00
7ce81484f8 Merge branch 'master' into blender2.8 2018-06-09 12:06:33 +02:00
6f4c7f1f01 GHOST/X11: Correct non-latin kb workaround case
Harmless since this is always enabled,
only do this for easier troubleshooting when disabling the define.
2018-06-09 12:04:07 +02:00
b492a0e767 Merge branch 'master' into blender2.8 2018-06-09 11:27:22 +02:00
f3427cbc98 GHOST/X11: support accessing physical keycodes
This means we can check keys such as tilde in a generic way.
2018-06-09 11:23:41 +02:00
03f0ecca93 GHOST/X11: Map unknown us.intl key to accentgrave 2018-06-09 09:10:04 +02:00
86660aa294 Layout for materials closer to single column 2018-06-08 23:56:39 +02:00
dd2e187344 Audaspace: add support for latest ffmpeg. 2018-06-08 23:11:16 +02:00
528dc6440b Merge branch 'master' into blender2.8 2018-06-08 22:19:39 +02:00
5165d62931 WM: correct recent change to click/drag detection
fb1915d870 - caused click/drag events not to be detected.

Now check a key is a mouse or keyboard event.
2018-06-08 22:17:21 +02:00
d1ab958fd4 Merge branch 'master' into 28 2018-06-08 19:03:37 +02:00
4f2eac3b39 WM: fix panel drag event handling 2018-06-08 19:03:29 +02:00
bf77efb684 WM: fix node link & background drag 2018-06-08 19:03:29 +02:00
1857823839 WM: fix panel drag event handling 2018-06-08 18:58:41 +02:00
2dc7555522 WM: fix node link & background drag 2018-06-08 18:55:47 +02:00
Dalai Felinto
f8d7df6f16 Depsgraph: Remove no longer needed nodetree values copying on eval
Note: Depsgraph still calls the nodetree eval function that doesn't
nothing in turn. We can remove it, but it is harmless though.
2018-06-08 17:52:49 +02:00
f2fd5987d0 UI: clear properties color when empty 2018-06-08 17:30:00 +02:00
3e86bb2d0b Sculpt/Paint: move PBVH building to use evaluated mesh instead of deprecated Derivedmesh.
Pretty straightforward changes, merely mimicking dm-related code,
which was already essentially using either Mesh or BMesh data to
build the PBVH...

Note that we "lose" the subsurf (a.k.a. grid) PBVH case here, but that
one was already dead code in current blender2.8, since final dm is
always a cddm built from evaluated mesh.

Proper fix is pending new code for subsurf/multires area.
2018-06-08 17:23:25 +02:00
1ce55693f5 UI: remove tools space type, use properties context
We've decieded to use tools context in properties editor.
2018-06-08 16:35:05 +02:00
Dalai Felinto
9d59d20957 DRW: Fix animated material not refreshing
This introduces a garbage collection system similar to gpu_texture.
2018-06-08 16:29:33 +02:00
0417f205f5 Fix crash with wertex and weight modes
Similar to recent sculpt mode.
2018-06-08 16:24:07 +02:00
Dalai Felinto
f638ad61b8 Rename: GPU_material_get_uniform_buffer > GPU_material_uniform_buffer_get 2018-06-08 16:20:34 +02:00
Dalai Felinto
856a79e1fb Rename: GPU_texture_orphans 2018-06-08 16:20:34 +02:00
cbbf8bbbb4 Workbench: XFlip Matcap per 3D View
Note: Icons are not yet updated.
2018-06-08 16:13:49 +02:00
Julian Eisel
fc85096dc8 Fix T55387: Render fullscreen from top menu crashes Blender
Would try to use data from global area for the newly created fullscreen area.
This should not happen, so instead of a global area use first area from layout.
2018-06-08 15:59:34 +02:00
4df45e18dc Alembic: replaced BLI_assert() with comment why the assert is wrong
The comment also hints at what should be fixed, instead.
2018-06-08 15:51:49 +02:00
249a41bc7c Alembic: slight clarifications 2018-06-08 15:51:49 +02:00
ba31c4d684 Alembic export: get evaluated object when exporting shape 2018-06-08 15:51:49 +02:00
2a771cbc58 Alembic: Moved a BLI_assert
The assert should only be triggered when assigning a pointer, and not
simply when checking the pointer.
2018-06-08 15:51:49 +02:00
335e030753 mesh_get_eval_final() should check ob->runtime.mesh_eval
It has nothing to do with ob->derivedFinal, which it checked before.
2018-06-08 15:51:49 +02:00
934b9e80d0 Add check in BKE_pbvh_apply_vertCos that number of deforming cos matches number of pbvh vertices.
This shall help catching issues in future.
2018-06-08 15:43:57 +02:00
06357b23a2 Fix T55404: Auto key with only-available doesn't work 2018-06-08 15:43:04 +02:00
9f2447cbd8 Code cleanup 2018-06-08 15:35:25 +02:00
70b3fb3781 Workbench: Custom StudioLight UI 2018-06-08 15:34:46 +02:00
6739bb195e Merge branch 'master' into blender2.8 2018-06-08 15:22:28 +02:00
540e85d567 GHOST/X11: Map unknown es,dk keys to accentgrave 2018-06-08 15:21:20 +02:00
0dd9a9e66a Alembic: fixed MSVC incompatibility 2018-06-08 15:09:10 +02:00
f504306671 Workbench: Default specular settings when no materials are used 2018-06-08 15:07:30 +02:00
97e7d9f90b Merge branch 'master' into blender2.8 2018-06-08 14:57:17 +02:00
d97df0d0e6 Cleanup: unused var, trailing space 2018-06-08 14:56:09 +02:00
4127aeb7a5 GHOST/X11: Map unknown de,fr keys to accentgrave
This still uses the correct string when typing text,
it just allows the key to be used in keymaps.

We should eventually add scan-code support.
2018-06-08 14:53:03 +02:00
e36ecb8a66 Alembic unit tests: fixed compiler errors
This doesn't mean the code is correct, but at least it builds.
2018-06-08 14:48:50 +02:00
94aa4d1657 Merge branch 'master' into blender2.8
Conflicts:
	source/blender/blenkernel/BKE_sequencer.h
	source/blender/blenkernel/intern/sequencer.c
	source/blender/editors/curve/editcurve_paint.c
	source/blender/editors/gpencil/gpencil_edit.c
	source/blender/editors/gpencil/gpencil_paint.c
	source/blender/editors/gpencil/gpencil_utils.c
	source/blender/editors/include/ED_object.h
	source/blender/editors/include/ED_view3d.h
	source/blender/editors/interface/interface_eyedropper_depth.c
	source/blender/editors/render/render_opengl.c
	source/blender/editors/sculpt_paint/paint_image_proj.c
	source/blender/editors/sculpt_paint/sculpt.c
	source/blender/editors/space_view3d/drawobject.c
	source/blender/editors/space_view3d/view3d_draw.c
	source/blender/editors/space_view3d/view3d_edit.c
	source/blender/editors/space_view3d/view3d_intern.h
	source/blender/editors/space_view3d/view3d_select.c
	source/blender/editors/space_view3d/view3d_utils.c
	source/blender/editors/transform/transform_conversions.c
	source/blender/editors/transform/transform_snap.c
	source/blender/python/intern/gpu_offscreen.c
	source/blender/windowmanager/intern/wm_files.c
2018-06-08 14:38:57 +02:00
ae3e59fb61 Fix T55380: Crash when getting out of EditMode in some cases
Derived meshes are to be dead, so soon this code will be removed as well.
2018-06-08 14:38:01 +02:00
aff6cc9cf1 Workbench: Lights user pref 2018-06-08 14:30:32 +02:00
fb1915d870 Prevent wheel causing spurious click/drag events 2018-06-08 14:09:45 +02:00
33437719c1 Alembic import: fixed memory management for CoW copies of CacheFile blocks
When a CacheFile datablock is copied to an in-main datablock, it means that
the new copy should be independent of the old copy. In this case certain
properties are reset/duplicated. When it is copied to a no-main datablock,
we assume this is a copy-on-write copy that's used for evaluating things,
in which case the handle and object paths are referenced instead of
reset/ duplicated. This prevents us from re-opening the Alembic file every
time a new CoW copy is made.

The same approach is taken when freeing data (only when an in-main datablock
is freed do we actually free the data).
2018-06-08 13:52:53 +02:00
0c7fc3a961 Alembic import: assign cache_file handle to original datablock 2018-06-08 13:52:53 +02:00
7b6af843c2 Cleanup: getting rid of G.main.
Sometimes one needs a *lot* of changes for a single G.main... :/
2018-06-08 12:17:22 +02:00
c5904574cb Fix T55391: Anim render only shows scene state at current frame (no animation) 2018-06-08 12:12:52 +02:00
3926ec6aa1 Studiolight: Segment when using float based matcaps 2018-06-08 12:11:05 +02:00
1f1e26f1ab Depsgraph: Fix missing relations when camera has drivers 2018-06-08 12:04:53 +02:00
d38c7db5e1 Depsgraph: Cleanup, make conditions more clear and less indented 2018-06-08 11:57:16 +02:00
4017b48331 Depsgraph: Don't optimize out collections used by duplication system
This makes evaluated objects to point to a non-evaluated collection,
which is already really bad. What is even more worse, objects in those
collections are not evaluated either.

Proper solution would be to implement visibility flag for nodes, which
will be set to 0 for transform/geometry components, but which will be
1 for copy-on-write components.

This way we will guarantee consistency of dependency graph.

For now this change is good enough and unlocks production.

Fixes T55375: Crash when changing visibility of instanced collection
Fixes T55357: Particle geometry crash
2018-06-08 11:57:16 +02:00
378e42e119 Depsgraph: Cleanup, indentation 2018-06-08 11:57:16 +02:00
9600c7cb05 Depsgraph: Cleanup, make conditions more clear and less indented 2018-06-08 11:57:16 +02:00
691282e571 Alembic export: create render-evaluated depsgraph for exporting
Previously the context depsgraph was used, which (most likely) uses
viewport evaluation instead of render evaluation.
2018-06-08 11:53:03 +02:00
55606dbdbc CMake: disable WITH_COMPILER_ASAN for CMAKE_BUILD_TYPE Release 2018-06-08 11:45:53 +02:00
346a1d445e Cleanup: redundant check 2018-06-08 11:28:42 +02:00
0297274720 Merge branch 'master' into blender2.8 2018-06-08 10:54:51 +02:00
dff8a7db73 Fix regression in grease pencil drawing
Drag events finished drawing early.
2018-06-08 10:52:49 +02:00
b3c8ffcb3e Workbench: UI for custom studio lights/matcaps
- all known image types are supported
- BpyAPI for studiolights added
- added open user pref operator in shading menu
- possible to add multiple files in a single run

For now refreshing studio lights will free all studiolights and reinit
the whole mechanism. This can be improved by only freeing deleted, reset
updated and add new custom studiolights.

details to show currently only shows the path we perhaps want to add
other information also
2018-06-08 10:41:24 +02:00
4d16d00154 Keymap: continued testing/development (search key)
Use Accent/Grave for search, to be more convenient than F-Keys.

This sets F3 back to what it was before.
2018-06-08 10:07:41 +02:00
3d681108bf Merge branch 'master' into blender2.8 2018-06-08 08:50:13 +02:00
20367898fe Fix T55301: Transform confirm on release fails w/ MMB 2018-06-08 08:48:21 +02:00
e3fe8ce00b WM: backport event/keymap type util from 2.8 2018-06-08 08:46:31 +02:00
908b6960c0 Merge branch 'master' into blender2.8 2018-06-08 08:10:35 +02:00
a25c11fd8d Cleanup: trailing space
Remove from blender/nodes, collada, blenfont & render.
2018-06-08 08:07:48 +02:00
d352a0adc5 Merge branch 'master' into blender2.8 2018-06-08 08:02:50 +02:00
009c38df53 Fix recently added drag events closing menus 2018-06-08 08:01:43 +02:00
8b5ce6e843 Transform: fix non-3D view editmode assert 2018-06-08 06:31:40 +02:00
30cd35a37b Keymap: continued testing/development
After testing in the studio and extending the event system for
drag events, we've agreed on adjustments to the new keymap,
see: T55162

- Tab: Edit-mode toggle.
- Tab + Cursor Drag: mode switching pie menu.
- Accent/Grave: for 3D view pie menu.
- F3: Search
- 1..3, Shift-1..3: Edit mesh vertex/edge/face toggle.

Other minor changes were made, however they aren't part of the design.

- Ctrl-Shift-S: Image editor Save-As (was F3)
- Ctrl-Alt-R: Repeat history (was F3)
2018-06-07 20:46:12 +02:00
cfc4805455 Merge branch 'master' into blender2.8 2018-06-07 20:41:10 +02:00
8f49299134 WM: fix drag events applying after release 2018-06-07 20:39:17 +02:00
cfc1ddeff7 GHOST/X11: Xinput/XIM support caused double key-up
All keyboard events were sending double key events (including modifiers)
when xinput was enabled with gnome (causing much confusion!).

I cant test if XIM works,
but this isn't useful to send double events, so disabling for now.
2018-06-07 20:35:06 +02:00
Dalai Felinto
18e316bcb9 Uniform Buffer Objects: Simplification refactor
Since we are only creating this and never updating, there is no need for
the original approach with the individual data to be updated.

Note we only populate the GPU data when binding the UBO, so we can in the
future easily create the UBOs in a separate thread than the main drawing one.

Also at the moment animated materials are not working. To fix that we need
to free/tag for free the GPUMaterials in BKE_material_eval.
2018-06-07 20:34:00 +02:00
Dalai Felinto
57da454872 Uniform Buffer Object: No more dirty tagging calls/check 2018-06-07 19:42:03 +02:00
Dalai Felinto
1962ae69b1 Rename GPU_material_create_uniform_buffer > GPU_material_uniform_buffer_create 2018-06-07 19:40:47 +02:00
Dalai Felinto
56f2293a51 GLSL: No need to extract the UBO dynamic inputs 2018-06-07 19:40:08 +02:00
Dalai Felinto
e5bc37eb5e Don't tag UBO as dirty anymore otherwise it still crashes on render 2018-06-07 19:19:39 +02:00
Dalai Felinto
d17094b256 BKE_world_eval: cleanup 2018-06-07 19:16:26 +02:00
Dalai Felinto
85e2871382 No more need to tag sss as dirty for EEVEE
And for the records, this shoudn't have been added to the
GPU_material_uniform_buffer_tag_dirty function since they are unrelated.
2018-06-07 19:13:23 +02:00
d32b59fc18 Remove more printfs .... 2018-06-07 19:06:56 +02:00
630019d5f8 Alembic export: use depsgraph to get evaluated mesh/object 2018-06-07 19:01:45 +02:00
28817c82f1 Alembic export: no need to check particle's mesh_final on export
Hair writing is still not working properly, though, but at least now
samples are written at all.
2018-06-07 19:01:45 +02:00
9a873d0ab2 Alembic import: don't crash Blender when reading invalid samples 2018-06-07 19:01:45 +02:00
5852c66125 Alembic hair writer: avoid double-free 2018-06-07 19:01:45 +02:00
20d3ce57d0 Alembic export: cleaned up multiply-passed depsgraph & scene
Those can now solely be found in the ExportSettings object.
2018-06-07 19:01:45 +02:00
ef7b7efd11 Eevee: Fix hair not rendering. 2018-06-07 18:58:13 +02:00
3b556a477d Merge branch 'master' into blender2.8
Conflicts:
	source/blender/editors/sculpt_paint/paint_vertex.c
	source/blender/editors/sculpt_paint/sculpt.c
	source/blender/editors/sculpt_paint/sculpt_undo.c
2018-06-07 18:45:45 +02:00
5593baea1b Remove printfs
... it's getting late here.
2018-06-07 18:44:37 +02:00
0859492c75 Fix crash cause by SSS referencing Material Nodetree data. 2018-06-07 18:43:43 +02:00
a3773dcc4f Fix memleak with GPUhairs. 2018-06-07 18:43:10 +02:00
80dcb2ced8 Cleanup: typo, and 0 -> false for booleans. 2018-06-07 18:36:16 +02:00
00233f5f78 Wireframe: Fix edges or non manifold meshes not showing.
This will show the associated edges to the vertices but that's the only
workaround I can think of right now.
2018-06-07 18:01:36 +02:00
f9ca750bdf Wireframe: Change / Optimize the limited wireframe visibility option.
This make the limited wireframe not a performance problem anymore.

However, this does change the number of edges displayed as the threshold
is now computed per vertex instead of per edges.

For this reason we extended (internaly) the range of the slider so that the
users can hide more edge.
2018-06-07 18:01:36 +02:00
3823287179 Merge branch 'master' into blender2.8 2018-06-07 17:08:55 +02:00
d274c64d22 WM: add support for drag events
This allows for a single key to be mapped to both release and drag,
useful for pie menus to share a key with a different action.
2018-06-07 17:06:01 +02:00
8dc33a81b0 Merge branch 'master' into blender2.8 2018-06-07 16:53:31 +02:00
df4525d1d9 Fix key repeat events resetting the click timer 2018-06-07 16:52:40 +02:00
f0815b1322 Merge branch 'master' into blender2.8 2018-06-07 16:45:34 +02:00
863e395ad8 Cleanup: trailing space for windowmanager 2018-06-07 16:43:52 +02:00
fcc5d7c29e Draw: Fix crash when tryign to get procedural textures with modifier disabled
Maybe disabled modifier check should be done higher in the call hierarchy.
2018-06-07 16:40:15 +02:00
64e0ab6a00 Merge branch 'master' into blender2.8 2018-06-07 16:32:40 +02:00
86aaa3efba Fix T55126: COW problem: there is an active object even if unselectable 2018-06-07 16:31:10 +02:00
e19686a35a WM: check for release instead of not pressed
Makes reasoning about events more predictable.
2018-06-07 16:19:59 +02:00
819ad49d29 Cleanup: typo. 2018-06-07 16:02:55 +02:00
1e4722eeab Merge branch 'master' into blender2.8
Conflicts:
	source/blender/editors/transform/transform_generics.c
2018-06-07 15:41:57 +02:00
8a2db3ed21 Fix crash due to missing init of new bAnimContext bmain member in transform code.
From own previous G.main-busting commit.
2018-06-07 15:38:31 +02:00
d9d3e7778c Fix sculpt mode undo (COW update needed) 2018-06-07 15:15:54 +02:00
a3f520170c Merge branch 'master' into blender2.8 2018-06-07 14:58:57 +02:00
6242940639 Fix double free in dyntopo-sculpt mode undo 2018-06-07 14:54:09 +02:00
a16d835f7b Wireframe: Frustum cull them. 2018-06-07 14:50:01 +02:00
8366c3ecd8 Depsgraph: Ensure collections are up to date after modifications
Before that copied collection in copy-on-write were running out
of sync with original ones. This was causing crash with the
following scenario:

- Delete some objects from scene
- Add particle system to an object
- Change particle mode to Hair

Thanks Dalai for debug session! Pair programming ftw!
2018-06-07 14:41:29 +02:00
30ec94561c Depsgraph: Use more proper relations for scene relation 2018-06-07 14:41:29 +02:00
da8d33e2e3 Merge branch 'master' into blender2.8 2018-06-07 13:41:32 +02:00
5330f1c5d1 Fix sculpt assert on initialization 2018-06-07 13:39:49 +02:00
c63f804222 Armature: Fix flickering outline on planar custom bones. 2018-06-07 13:38:17 +02:00
508e34d0bf Merge branch 'master' into blender2.8
Conflicts:
	source/blender/editors/animation/anim_deps.c
	source/blender/editors/animation/keyframing.c
	source/blender/editors/animation/keyingsets.c
	source/blender/editors/armature/pose_edit.c
	source/blender/editors/armature/pose_transform.c
	source/blender/editors/gpencil/gpencil_convert.c
	source/blender/editors/include/ED_anim_api.h
	source/blender/editors/include/ED_keyframing.h
	source/blender/editors/interface/interface_anim.c
	source/blender/editors/space_action/action_edit.c
	source/blender/editors/space_graph/graph_edit.c
	source/blender/editors/space_outliner/outliner_draw.c
	source/blender/editors/transform/transform_conversions.c
	source/blender/makesrna/intern/rna_armature.c
	source/blender/makesrna/intern/rna_pose.c
	source/blender/python/intern/bpy_rna_anim.c
	source/blenderplayer/bad_level_call_stubs/stubs.c
	source/gameengine/Converter/KX_BlenderSceneConverter.cpp
2018-06-07 13:04:16 +02:00
4e014727f6 Armature: Fix missing loose edges on custom bone shapes. 2018-06-07 12:58:23 +02:00
Dalai Felinto
3126f85d26 Fix T55062: Depsgraph: Crash with COW with EEVEE viewport
We now remove the shader for every update.

So at the moment the whole point of UBO (Uniform Buffer Objects) is that they
are more efficient than individual uniforms.

Next steps is a harmless refactor to stopping UBO from referring to original
data in the UBO, and simply copying it.

It would also be interesting to make the final shader more granular as far as
the library and required functions are concerned. Even if this doesn't impact
performance, it should give us smaller easy to debug shaders
(a simple shader now has > 5k lines!).

If performance for animated values is measureable slower after this commit we
can port the shader creation CPU side to the depsgraph - localizing the tree,
hashing, lookup, ...

Additionally we can stick to update the UBO when the material changes but not
its topology. This is very trick because of localized trees. So we will only
re-visit this if profiling hints at any benefit from it.
2018-06-07 12:56:34 +02:00
b3a7a75a26 Cleanup: remove moar G.main usages.
Notes:
* Really need to address RNA setters case, end up adding way too much
G.main here these days... :/
* Added Main pointer into bAnimContext, helps a lot in anim code ;)
2018-06-07 12:48:29 +02:00
d1474371fa Fixed deadlock on viewlayer update when there are drivers
When calling the bpy.ops.poselib.apply_pose() operator from Python, Blender
would deadlock when the rig has drivers.

Similar BPy_{BEGIN,END}_ALLOW_THREADS calls were already in place in the
rna_Scene_update_tagged() function.
2018-06-07 12:37:55 +02:00
a867e63dd6 Rename "Viewport Display SSAO" sub-panel name to Screen Space Ambient Occlusion
Since it is already a sub-panel of Viewport Display anyway
2018-06-07 12:08:40 +02:00
cdbda1c3d8 GPUPass: Refactor gpupass caching system to allow fast gpumaterial creation.
This is part of the work needed to refactor the material parameters update.

Now the gpupass cache is polled before adding the gpumaterial to the
deferred compilation queue.

We store gpupasses in a single linked list grouped based on their hashes.
This is not the most efficient way but it can be improved upon later.
2018-06-07 12:02:42 +02:00
366ac88d68 Merge branch 'master' into blender2.8 2018-06-07 12:01:09 +02:00
16017178b2 Revert "Cycles: Cleanup: Don't use return on function returning void"
Not sure why exactly it is called a cleanup, the code was much more clear
and robust against possible missing return statements which are MANDATORY.

Missing return statement will:

- Cause two different BVH traversals to be run.

  Not is happening currently, but if more BVH layouts are added, it will
  become a problem.

- It is already causing assert() statements to fail, since functions are
  no longer returning when they are supposed to.

If there is any measurable reason to keep this change, let me know.
Otherwise just stick to reliable/tested/robust code.

This reverts commit ba65f7093b.
2018-06-07 11:57:57 +02:00
a54235e0c6 Particle mode: Support children drawing
The issue is that children drawing is done by object mode,
which operates with data from evaluated context. But that
data needs edit mode's cache to be properly updated first.
2018-06-07 11:31:56 +02:00
613faa0987 Draw: Don't take cache existence into account for draw type 2018-06-07 11:31:56 +02:00
72cfd5134b Draw: Use proper continue when psys is disabled 2018-06-07 11:31:56 +02:00
1aa89d9a1c Particle edit: Simplify code by benefiting from single edit context
Makes ADD brush to work.

At some point children particles draw got broken, children are not
visible for until first stroke is done. Still looking into it.
2018-06-07 11:31:56 +02:00
df0253be33 Merge branch 'master' into blender2.8
Conflicts:
	source/blender/collada/ArmatureExporter.cpp
	source/blender/collada/ArmatureExporter.h
	source/blender/collada/DocumentExporter.cpp
	source/blender/collada/DocumentExporter.h
	source/blender/collada/SceneExporter.cpp
	source/blender/collada/SceneExporter.h
	source/blender/collada/collada.cpp
	source/blender/collada/collada.h
	source/blender/editors/armature/armature_edit.c
	source/blender/editors/armature/pose_transform.c
	source/blender/editors/include/ED_armature.h
	source/blender/editors/include/ED_object.h
	source/blender/editors/include/ED_screen.h
	source/blender/editors/io/io_collada.c
	source/blender/editors/object/object_transform.c
	source/blender/editors/screen/screen_edit.c
	source/blender/editors/screen/screen_ops.c
	source/blender/windowmanager/intern/wm.c
	source/blender/windowmanager/intern/wm_files.c
	source/blender/windowmanager/intern/wm_window.c
	source/blenderplayer/bad_level_call_stubs/stubs.c
2018-06-07 11:23:26 +02:00
54f9cd5283 Cleanup: Nuke moar G.main usages... 2018-06-07 11:11:46 +02:00
e27759152a Minor comment on possible TODO while validating paint ops for CoW... 2018-06-07 10:59:21 +02:00
e43065596b Alembic export: CoW/Depsgraph fixes 2018-06-07 10:48:52 +02:00
d88314ee5b Alembic export: port DerivedMesh → Mesh 2018-06-07 10:48:52 +02:00
5b0f96f97c Alembic import: port DerivedMesh → Mesh 2018-06-07 10:48:52 +02:00
f447411a82 Bone selection: user control contrast
Experiment: let the user be in control of the alpha channel as some rigs
are hard too see during bone selection. Especially rigs that were
designed for 2.79 wireframe mode.
2018-06-07 09:26:06 +02:00
7fb216d800 Workbench: respect the duplication visibility flag 2018-06-07 09:26:06 +02:00
2d2f23de10 Fix T55348: Renaming a marker can't cancel
Regression in a14005c070
2018-06-07 08:54:47 +02:00
a60d4f33c6 Merge branch 'master' into blender2.8 2018-06-07 08:15:11 +02:00
409cfba1a3 Python API: Initial 'imbuf' API
Support only basic operations new/load/write & resize.

Add now so we can extend as needed & more easily accept patches.
2018-06-07 08:00:13 +02:00
ba80d8440f Cleanup: style 2018-06-06 22:17:06 +02:00
1c4b04f1fd Merge branch 'master' into blender2.8 2018-06-06 19:52:20 +02:00
0e68751b8a Fix BLI_ASSERT_UNIT macro w/ non-finite numbers 2018-06-06 19:49:27 +02:00
70b705b5fe UI: NLA: Influence should be a factor (RNA) 2018-06-06 12:09:13 -04:00
4165a57a66 Fix broken auto-keying after copy/paste of poses.
That bug was also likely affecting other cases - basically it was making
auto-keying always key from evaluated ('visual') values, never base,
data values... Added a flag, in some cases we do want evaluated values
here, obviously.
2018-06-06 17:19:13 +02:00
Dalai Felinto
f818ff411a Cycles: use viewport duplicator visibility on preview 2018-06-06 16:44:51 +02:00
Dalai Felinto
04dfca5b9d Depsgraph: Expose (evaluation) mode in rna 2018-06-06 16:44:51 +02:00
Dalai Felinto
4e213d4216 Depsgraph iterator: Remove explicit mode
We can get the mode from the depsgraph itself.
2018-06-06 16:44:51 +02:00
Dalai Felinto
9a0506ea18 Fix T55350: Cycles: instanced hair with hidden emitter is invisible when rendering 2018-06-06 16:44:07 +02:00
36000e6da3 Cleanup: unused function 2018-06-06 16:36:00 +02:00
c44acc7fb8 Fix view_layer update function
This was no longer working, now this works the same way as
scene.update(), only it applied to the current view layer.

Caused crash running alembic export from Python.
2018-06-06 16:33:34 +02:00
0ee4785675 Cleanup: get rid of just-added G.main usage.
Was just added to ease merging of master, proper code now!
2018-06-06 16:32:09 +02:00
bb7202495a Merge branch 'master' into blender2.8
Conflicts:
	source/blender/collada/ArmatureExporter.cpp
	source/blender/collada/ArmatureExporter.h
	source/blender/collada/DocumentExporter.cpp
	source/blender/collada/DocumentExporter.h
	source/blender/collada/SceneExporter.cpp
	source/blender/collada/SceneExporter.h
	source/blender/collada/collada.cpp
	source/blender/collada/collada.h
	source/blender/editors/armature/armature_edit.c
	source/blender/editors/armature/editarmature_retarget.c
	source/blender/editors/armature/pose_transform.c
	source/blender/editors/include/ED_armature.h
	source/blender/editors/include/ED_object.h
	source/blender/editors/include/ED_screen.h
	source/blender/editors/io/io_collada.c
	source/blender/editors/object/object_transform.c
	source/blender/editors/screen/screen_edit.c
	source/blender/editors/screen/screen_ops.c
	source/blender/windowmanager/intern/wm.c
	source/blender/windowmanager/intern/wm_files.c
	source/blender/windowmanager/intern/wm_window.c
	source/blenderplayer/bad_level_call_stubs/stubs.c
2018-06-06 16:25:28 +02:00
19d651ca9a View3DShading popover: Naming + alignment 2018-06-06 16:17:07 +02:00
d706101559 Depsgraph: remove legacy code for dupli group updates.
This caused crashes in some cases, and should be fully handled by
the depsgraph now.
2018-06-06 16:00:25 +02:00
bb09556be5 UI: sub panel titles draw smaller and indented. 2018-06-06 16:00:25 +02:00
f55f418867 Fix incorrect double checked lock in collection object cache. 2018-06-06 16:00:25 +02:00
f884ba02a2 Merge branch 'master' into blender2.8 2018-06-06 15:58:18 +02:00
de702a4803 Alembic export: only free duplilists when not NULL 2018-06-06 15:54:03 +02:00
48e871ab1d Cleanup: Nuke moar G.main usages... 2018-06-06 15:50:24 +02:00
fcf720a135 View3D: Shading Popup
- layout so cavity options are better visible
- fixed issues showing wrong options in Material mode
- added labels + seperators
2018-06-06 15:44:00 +02:00
89042f576e LookDev: When HDRI could not be reloaded we should switch to world
Thanks for reporting sergey!
2018-06-06 15:26:09 +02:00
7fee5f5643 Fix object-dupli selection w/ COW 2018-06-06 15:24:27 +02:00
f1fd5ed74f T55333 Workbench: Cavity Shader
A cavity shader based on SSAO. Works on all workbench deferred passes.

Per 3d viewport the cavity shader options can be set as different
shading needed different options. Some global options are in the
Viewport Display of the scene like num samples and distance.

Experimental: Naming of Ridges and Valleys
2018-06-06 14:51:18 +02:00
4a52531a11 Alembic: Fix double-free of mutex
The mutex was shared between CoW copies of the CacheFile datablock, and
as a result also freed multiple times. It is now only freed when the
original datablock is freed; the CoW copies share the same mutex.
2018-06-06 14:38:17 +02:00
4c4fa3d49b Fix double-free of custom data
This causes a temporary spike in memory usage when creating a copy; the
entire copy will be removed anyway when DerivedMesh is removed.
2018-06-06 14:38:17 +02:00
3b8ae85e3d Move Time Remapping into a sub-panel 2018-06-06 14:28:35 +02:00
a8ae68aa5c Fix crash when file is saved in particle edit mode
Depsgraph is not available on file load yet.
2018-06-06 14:13:46 +02:00
2088bb0d49 UI: add particle brush to topbar 2018-06-06 14:06:45 +02:00
b58e5d4f2c Particle edit: Fix missing hair with new oarticle system added 2018-06-06 13:54:39 +02:00
1295e85de0 Particle edit: Fix crash when trying to edit particles without cache
Particles in EMITTER mode needs to have cache.
2018-06-06 13:54:39 +02:00
528cdf9b50 Fix update issue in VPaint mode.
Need to flush the changes through DEG CoW, otherwise drawing code would
not see them in some cases...
2018-06-06 12:42:01 +02:00
e3324c3a8e Depsgraph: Silence relations builder errors
Were caused by depsgraph trying to create relations between objects
which are coming from restricted collection.
2018-06-06 12:36:52 +02:00
22370929fe Depsgraph: Expand object data datablocks for drivers
Drivers can reference object data datablock directly, and if there
was no object in the scene with that datablock, blender will crash.
2018-06-06 12:36:52 +02:00
7810c60fe3 Depsgraph: Handle key->object relations from object builder 2018-06-06 12:36:51 +02:00
695747aad1 Depsgraph: Object data separation, armature 2018-06-06 12:36:51 +02:00
5a14af62d0 Depsgraph: Object data separation, geometry 2018-06-06 12:36:51 +02:00
82ec06cbfa Depsgraph: Object data separation, camera 2018-06-06 12:36:51 +02:00
ca7de1ff22 Depsgraph: Object data separation, lamp 2018-06-06 12:36:51 +02:00
1a0cb28ae2 Depsgraph: Object data separation, light probes
This is a beginning of series of commits which will clearly separate
building IDs which are used as object data from object building.

The goal is to be able to always build whatever ID. Required to make
driver targets to work reliably with copy-on-write concept.
2018-06-06 12:36:51 +02:00
180e8f8bfb Depsgraph: Remove confusing metaball logic
DATA datablock must evaluation must never depend on object it is
used for. If there is something what depends on an object, it must
be done on object level.

At least the actual callback was empty.
2018-06-06 12:36:51 +02:00
9f255db4fe Wireframe: Fix do_version. 2018-06-06 12:32:30 +02:00
7a76223f1f Ensure BKE_mesh_new_nomain_from_template() always has valid mxxx pointers
When the source mesh doesn't have the primary layers (CD_VERT for vdata,
etc.) the returned mesh also didn't have those layers, even when non-zero
elements were requested (for example requesting 4 vertices would still
result in mvert = NULL).
2018-06-06 12:27:25 +02:00
8a0e6a3143 Consolidated custom data layer initialisation
Code shared between BKE_mesh_new_nomain() and
BKE_mesh_new_nomain_from_template() is now in separate functions, instead
of copy-pasted.
2018-06-06 12:27:25 +02:00
5e180ebffc Set mesh->totface in nomain-mesh creation
The totxxx fields should match the number of elements in their respective
custom data layers.
2018-06-06 12:27:25 +02:00
c4ce4034e6 Fix T55344: linked collection instance has user count 0. 2018-06-06 11:22:17 +02:00
3e87c039ba UI: tweak for Cycles panels. 2018-06-06 11:22:17 +02:00
1d86bdf16b Cleanup: fix compiler warning. 2018-06-06 11:22:17 +02:00
03b8e4f608 Fix importing temporary screens
Apparently Blender 2.79 could save temporary screens; those should not be
converted to workspaces.
2018-06-06 11:13:11 +02:00
23db3a5ade Renamed BKE_nomain_mesh_xxx → BKE_mesh_nomain_xxx
This maintains the `BKE_mesh_` prefix for the mesh-related BKE functions.
2018-06-06 10:30:24 +02:00
783d31c3a3 DerivedMesh deprecation: Removed some functions in displist.c
Those functions were using DerivedMesh but are not called from anywhere.
As a result, they cannot be tested after porting DerivedMesh to Mesh.
2018-06-06 10:11:31 +02:00
abccde4d68 DerivedMesh deprecation: marked no-longer-in-use function
Functions that are no longer in use can be marked as such, so that later
we can easily remove them.
2018-06-06 10:11:31 +02:00
5f543915e8 Modifiers: ported curve_calc_modifiers_post() internals from DerivedMesh → Mesh
The function still returns a DerivedMesh, but internally it uses Mesh
now.
2018-06-06 10:11:31 +02:00
274453ef73 Error in recent popover keep_open option 2018-06-06 09:43:03 +02:00
a9f9236670 Merge branch 'master' into blender2.8 2018-06-06 09:39:35 +02:00
bfbd85e9d6 Fix error using freed bmain
Regression in 481cdb08ed
2018-06-06 09:36:50 +02:00
ab375079df Cleanup: rename WITH -> USE for internal defines 2018-06-06 09:29:54 +02:00
6ff89166a8 Cleanup: USE_UI_* prefix for UI defines
Otherwise there is no quick way to see where this comes from.
2018-06-06 09:27:23 +02:00
52502ad0a4 UI: WM_OT_call_panel option to keep popovers open 2018-06-06 09:24:51 +02:00
14251d4615 Workbench: Speed up fo scene with many duplis
The ObjectID pass was generating per material per dupli a specific
number for the outline what results in a GPU context switch. In spring scene
01-050 a scene with many trees (duplis) generated 28000 GPU materials.

Now only new materials are created when objectid pass is enabled. Also
added a hard limit to the number of objects for the objectid pass (255)
Basically the outline between objects will not be drawn, but it will be
very hard to detect them also.

Also fixed for XRay mode.
2018-06-06 08:50:12 +02:00
1889eec918 UI: use regular size icons for toolbar popup
Test this since the popup feels disruptive/flashing when its too large
when set smaller it looks closer to a menu w/ key-accelerators which is
the intention in this case.

It's also more likely the active tool can be placed under the cursor.
2018-06-06 08:32:25 +02:00
c1a880bc5e Fix object selection w/ COW 2018-06-06 08:20:05 +02:00
3c9e2e82fa Cleanup: style 2018-06-05 21:32:49 +02:00
851829c1fb Eevee: Improve load time.
Only generate shadow store shaders on demand and create a simpler shader
for small blur radius.
2018-06-05 21:02:57 +02:00
18a8bb5c16 Fix compilation error due to different params
in freeCustomNormalArray declaration and definition
2018-06-05 23:21:08 +05:30
e394a78b4c Fix compilation issue due to last commit. 2018-06-05 19:49:12 +02:00
d5ce40a5ed Wireframe: Add slider to hide edges from coplanar faces
The default behaviour is to show the same amount of edges as 2.7.
The slider makes it possible to show all edges or even less.
2018-06-05 19:35:36 +02:00
713027b832 make.bat : move all experimental options to their own section in the help. 2018-06-05 11:29:03 -06:00
983811607d make.bat : bring the help up to date with recent additions to the build script. 2018-06-05 10:40:14 -06:00
cd58ce85c2 make.bat : check for existence of ninja before using it. 2018-06-05 10:39:39 -06:00
5e44324b79 make.bat: change the way the vs buildtools are detected.
The recent change also used the buildtools instead of the regular compiler, you now have to explicitly state what you want to use :

2017 - the standard msvc compiler
2017pre - the msvc compiler from the preview installation
2017b - the msvc compiler from the buildtools installation
2018-06-05 10:38:48 -06:00
7ff07ddd01 Merge branch 'master' into blender2.8
Conflicts:
	source/blender/windowmanager/intern/wm_files.c
2018-06-05 17:56:18 +02:00
1628a6858e Fix crash in owmn previous commit. 2018-06-05 17:54:53 +02:00
f0d9dbae0d Merge branch 'master' into blender2.8
Conflicts:
	source/blender/blenkernel/intern/blendfile.c
	source/blender/blenloader/intern/readfile.h
	source/blender/blenloader/intern/versioning_250.c
	source/blender/blenloader/intern/versioning_260.c
	source/blender/blenloader/intern/versioning_270.c
	source/blender/blenloader/intern/versioning_legacy.c
	source/blender/editors/render/render_shading.c
	source/blender/makesrna/intern/rna_movieclip.c
	source/blender/render/intern/source/pipeline.c
	source/blender/render/intern/source/voxeldata.c
2018-06-05 17:02:50 +02:00
ce6db959c7 Moved function declarations from BKE_DerivedMesh.h to BKE_mesh_runtime.h
The function definitions still reside in DerivedMesh.c. Once we're done
porting all the DerivedMesh use to Mesh, we'll move the still-relevant
functions to mesh_runtime.c. This move is now cumbersome due to shared
statically-declared utility functions in DerivedMesh.c
2018-06-05 16:59:25 +02:00
a9ed50514c Moved function declarations from BKE_mesh.h → BKE_mesh_runtime.h 2018-06-05 16:59:18 +02:00
7436fb2ef1 Merge branch 'master' into 28 2018-06-05 16:36:13 +02:00
481cdb08ed Cleanup: use new accessors to blendfile path (Main.name). 2018-06-05 16:33:46 +02:00
1d97e948d2 Cleanup: add hleper functions to get filepath from Main.
This helps making things clearer and cleaner. Func returning filepath of
G.main is separate, so that we can easily track its usages, and
hopefully deprecate it at some point. Though that usage of G.main is
likely the less evil one, you nearly always want current blendfile path
in those cases anyway.
2018-06-05 16:33:46 +02:00
c68429bc03 Cleanup: pep8
Use 'autopep8 --ignore E721,E722' on our UI code, only minor changes.
2018-06-05 16:32:11 +02:00
d94df18550 Cleanup: doxy grouping for mesh runtime API 2018-06-05 15:55:16 +02:00
7a612c3799 LookDev: Fix crash when no world 2018-06-05 15:49:54 +02:00
60aee3943f UI: move 3D view display options into popover
- Moved Mesh Display, Mesh Analysis & Motion Tracking
  display panels to Overlays.
- Removed Item panel from sidebar (buttons available elsewhere).

Patch by @billreynish w/ edits
2018-06-05 15:35:57 +02:00
d860d23e1a make.bat: cache the vcredist directory.
When run from make.bat the environment is setup correctly and the VCToolsRedistDir environment variable exists, on later invocations of cmake this may no longer be the case and a warning was emitted about the missing runtime. we can't rely on InstallRequiredSystemLibraries.cmake here since it uses the compiler version to figure out the correct location and it doesn't know how to deal with clang.
2018-06-05 07:25:37 -06:00
2cc6e06bdb Error in last commit 2018-06-05 15:21:04 +02:00
b6d920bbd5 Depsgraph: Fix bug with broken tweak of animated node tree settings
With single editing context we can have expected and correct evaluation order
of animation and material update.
2018-06-05 15:11:34 +02:00
2891fb645b 3D View: disable manipulators & text w/o overlay
Manipulators which aren't explicitly activated via tools are now hidden.

Tool manipulators are kept because it doesn't make sense to interact
with a tool with hidden manipulators.
2018-06-05 14:54:52 +02:00
24bd483ee1 Object Modes: Flush COW on mode switching
Caused glitch w/ sculpt mode not updating.
2018-06-05 12:48:25 +02:00
09f780c1b0 Preserve unkeyed changes on undo and file open
This partially reverts 5975d6581c.

With single editing context it is more predictable what is unkeyed change is.
2018-06-05 12:35:19 +02:00
6d7327f607 Cleanup: simplify studiolight/matcap enum code, remove limit. 2018-06-05 12:23:55 +02:00
0d47a4d2fe T55291: Matcaps were reset when loading file 2018-06-05 12:21:41 +02:00
df1d319a79 Static Override: Fix order of operations issue in material slots.
*Really* not happy with that kind of constraint, but no choice for
now...
2018-06-05 12:08:18 +02:00
856d36e4b8 Static Override: progresses towards full support for material slots.
Material slots are a real pain to get working, due to all the black
magic they do to hide object vs. obdata storage of the material...

Currently hitting an order problem - we need to always set 'link' (to
object or obdata) property of the slot first, before we set its
material... *super-sigh*
2018-06-05 12:08:18 +02:00
cb42ad8c75 Fix compilation error after recent matcap changes 2018-06-05 12:02:08 +02:00
cd8613c6e7 Fix T55319: Keyframing issues
The issue was that keyframing from menu would tag object for animation
update, which was making object to loose unkeyed changes.
2018-06-05 11:56:46 +02:00
342dd5a771 Workbench: remove the soft limit for the xray_alpha 2018-06-05 11:45:22 +02:00
a3815f8777 Workbench: Matcaps T55291
- users can use their own matcaps
.config/blender/2.80/datafiles/studiolights/matcap/ folder
- upto 100 matcaps can be loaded
- color of the matcap is influenced by the color of the material/single
color etc. To show the plain matcap use single color at 1.0
- chosing a matcap is at lighting level (flat/studio/matcap)
- matcap only possible in solid mode
- also works for X-Ray mode

As the old matcaps are still in used by the clay engine I didn't remove
it yet.
2018-06-05 11:38:33 +02:00
ade710500d UI: set cursor line width 2018-06-05 11:37:30 +02:00
f1a3b68e76 Transform: avoid assert in wpaint mode 2018-06-05 11:31:17 +02:00
b9db470636 Fix stupid mistake in previous commit. 2018-06-05 11:22:43 +02:00
0be9d8db65 RNA/Override: Move override-related property flags to own variable.
We are already running out of available flags in main, generic int, and
everytime I work on static override I find new special cases that will
need new specific propflag, so...
2018-06-05 11:11:43 +02:00
99dd3b0156 Baby step towards making overridable materials for objects.
Naughty Collections RNACollection of objects is still to be tamed, but
for individual objects should work now....
2018-06-05 11:11:42 +02:00
5d628c519b Transform: improve pose trans/rot/scale guessing
Switching the mode was being done per object,
where it should first check all pose bones from all objects.

This also removes code that changes the transform mode
from within the counting function.
This was only needed on transform initialization.
2018-06-05 11:04:12 +02:00
0941b8b672 Missing from last commit 2018-06-05 10:13:55 +02:00
83db7a0070 Transform: revert use of evaluated objects
This is no longer needed.
2018-06-05 09:48:38 +02:00
1df228a416 UI: context menu for other editor types
D3458 by @billreynish w/ edits.

- Context menu for dope-sheet, graph, image & node editors.
- Add type to contenxt menu header.
- Access with W-Key.
- Change UV-editor weld key binding to Shift-W.
2018-06-05 09:18:00 +02:00
80d86f303a UI: support property split for 'prop_search' 2018-06-05 08:56:14 +02:00
88b46a6ce9 make.bat : Fix clang+asan msbuild project generation 2018-06-04 22:35:57 -06:00
Dalai Felinto
17e9870221 DRW: Fix crashes with instanced data
Problem introduced on 101c277e3d.
2018-06-04 19:17:29 +02:00
6fee105943 Cleanup: correct menu name 2018-06-04 19:09:52 +02:00
da53c3f020 Merge branch 'master' into blender2.8 2018-06-04 18:50:14 +02:00
58e8c71cbd Cleanup: strip ghost trailing space 2018-06-04 18:47:57 +02:00
f6740993f7 Cleanup: strip tests trailing space 2018-06-04 18:47:31 +02:00
c8af234f85 Fix T55325: Revert "Always get a reference point when snapping with the projected elements option enabled."
This reverts commit 0864a4c1ea.

That way it's best for retopology.
2018-06-04 13:33:19 -03:00
84becb870f Merge branch 'master' into blender2.8 2018-06-04 17:58:07 +02:00
747534af00 Particle System: move data creation into RNA update
Relying on evaluation to initialize data causes issues w/ 2.8.
2018-06-04 17:55:19 +02:00
William Reynish
2b4d2de253 UI: more subpanels for Cycles and Eevee. 2018-06-04 17:36:03 +02:00
ce5e9b599c Fix Python UI error with Eevee and hemi lamps. 2018-06-04 17:36:02 +02:00
784a3ccf79 Fix hang rendering with motion blur. 2018-06-04 17:36:02 +02:00
101c277e3d Workbench: Shadows: Fix cap being clipped by far plane.
This was the last remaining problem with shadow volumes (that I know of).

Only extrude until we hit the far plane.
2018-06-04 17:33:34 +02:00
349d416949 Tool System: refresh tools after undo 2018-06-04 16:41:03 +02:00
18e8350cd1 Cleanup: Hopefully more clear name 2018-06-04 16:22:36 +02:00
bda0175984 DRW: Fix leak from the wireframe drawing. 2018-06-04 16:04:18 +02:00
570804882d Wireframe: Lower line thickness and front color blending. 2018-06-04 16:04:18 +02:00
4b5670ac11 Cleanup: redundant headers 2018-06-04 16:03:52 +02:00
3b4c7a8c9b Weight paint: Use helper function to get original mesh
Makes it one line to get needed mesh, no code duplication. And can easily
update asserts and tighten the nuts.
2018-06-04 15:49:11 +02:00
0e8edbbc01 Add utility functions to get different "levels" of evaluated/original mesh 2018-06-04 15:48:37 +02:00
2b22a61152 Depsgraph: Only store original mesh pointer for mesh object 2018-06-04 15:24:41 +02:00
52f9023fbf Fix weight paint crash
The PBVH was referencing runtime custom data which was freed on refresh.
2018-06-04 15:18:48 +02:00
07f0046203 Fix crash when making objects to share same mesh
Make it more reliable and predictable way of getting pointer to
an original mesh which came from copy-on-write engine.

Related change: made it (hopefully) more clear name for flags.
2018-06-04 15:17:16 +02:00
1dc31f5b98 GPU: Fix missing case of new radeon on xorg.
This was causing issue with shader compilation.
2018-06-04 15:15:00 +02:00
e47e60a9b9 Workbench: Shadows: Fix the remaining fail case.
Non-manifold geom was producing inverted result when the camera was inside
the shadow volume.

When rendering non manifold geometry with the depth fail method, we need to
emit the cap as if it was the same geometry with a virtual thickness.

Another way to view it is to imagine having a set of non-manifold geometry
all facing the light.

So for every tri we emit a front cap oriented toward the light and the
back cap pointing away from it (whatever the actual orientation of the tri).

Extrusion pass stay the same as the depth pass method (double the increment
if it's a manifold edge).
2018-06-04 15:15:00 +02:00
736a84ec66 Cleanup: Use proper type for original ID pointer
Helps debugging, no need to cast in a debugger.
2018-06-04 14:14:14 +02:00
William Reynish
acb5bbf9b2 UI: use subpanels for Cycles, render, scene, object, particle, curves. 2018-06-04 13:44:23 +02:00
a46ced5076 Fix missing collection instance motion blur settings. 2018-06-04 13:41:27 +02:00
f430f14df4 Merge branch 'master' into blender2.8 2018-06-04 12:48:03 +02:00
7277f8973b Fix T55260: load Text File with Python from GUI Button results in 0 User
Let's just always ensure user_one when loading text from operator...
2018-06-04 12:46:59 +02:00
c2ff37455e Fix selecting bones
Own error w/ recent USE_OBJECT_MODE_STRICT
2018-06-04 12:39:10 +02:00
2903146826 Added UI support for seams and sharp edges and cleanup 2018-06-04 15:13:54 +05:30
95011f6d48 Merge branch 'master' into blender2.8 2018-06-04 09:39:04 +02:00
44505b38df Cleanup: strip trailing space in editors 2018-06-04 09:31:30 +02:00
0911acb5cf Merge branch 'master' into blender2.8 2018-06-04 09:11:45 +02:00
6654e109df Cleanup: strip trailing space in GPU module 2018-06-04 09:09:12 +02:00
5b64301834 Merge branch 'master' into blender2.8 2018-06-04 09:06:14 +02:00
2d3d76693a Cleanup: newlines at EOF for Python modules 2018-06-04 08:54:40 +02:00
7719c11006 Cleanup: strip trailing space in Python module 2018-06-04 08:54:40 +02:00
854db8951b Cleanup: strip trailing space in bmesh module 2018-06-04 08:49:47 +02:00
ba65f7093b Cycles: Cleanup: Don't use return on function returning void 2018-06-04 00:07:17 +02:00
f6743fcaa4 UI: use subpanel for particle emission source, as an example. 2018-06-03 21:36:12 +02:00
d7c2b78822 UI: add subpanel support.
In the Python API, any panel becomes a subpanel by setting bl_parent_id
to the name of the parent panel. These subpanels can contain advanced or
less commonly used settings.
2018-06-03 21:30:35 +02:00
79c0ac7c78 Added support for extending sharp edges with bevel 2018-06-03 22:50:35 +05:30
9b01e7bc27 UI: move Cycles device to Performance panel. 2018-06-03 19:01:18 +02:00
81dbf08eb4 Merge branch 'master' into blender2.8 2018-06-03 17:09:07 +02:00
38eb91c848 Cleanup: correct variable name, doxy sections 2018-06-03 17:06:13 +02:00
25ff7a4f2a DRW: Hair: Add additionnal subdivision smoothing support.
Only use catmull-rom interpolation for now. It's smoother and does not
exhibit artifacts.
2018-06-03 16:45:03 +02:00
06dd89b0ca GPUTexture: Fix memleak in orphaned texture management. 2018-06-03 16:45:03 +02:00
e657a4af13 Merge branch 'master' into blender2.8 2018-06-03 15:20:11 +02:00
4c4eb1ce20 Workbench: Fix memleaks. 2018-06-03 15:26:53 +02:00
d0f7ab27a8 Wireframe: Optimization for intel GPUs.
Intel GPU take more advantage of the geometry shader than other vendors.

Using a simple geom shader approach in this case is more performant.
2018-06-03 15:26:37 +02:00
335b193336 Cleanup: add argument names to screen callbacks 2018-06-03 15:11:31 +02:00
778a19a13a DRW: Fix hair disapearing if emitter is culled. 2018-06-03 12:36:03 +02:00
32c5972653 Workbench: Rework hair support.
Now hairs are shaded properly in workbench and support texturing.

I also added a 10% random normal direction per hair to have a bit more
variation in the shading. This is hardcoded for now.
2018-06-03 12:36:03 +02:00
38bf3b8d23 Merge branch 'master' into blender2.8 2018-06-03 11:24:57 +02:00
6221180963 Cleanup: remove blockscale & handler
Replace with link_flag, currently unused,
needed for dynamic space types which is planned.
2018-06-03 11:12:50 +02:00
18a4553838 Edit menu: add Repeat Last and Repeat History 2018-06-02 23:13:03 +02:00
815b1f24fa build_environment: support for msvc2017 and newer cmake.
-expanded build_deps.cmd with 2017 support, it can't locate msvc2017 so needs to be run from developer prompt.
-Newer cmake was unhappy with openal's cmakelists.txt
-collada has warning as error on and errored out on new msvc2017 warnings.
2018-06-02 13:59:56 -06:00
04d9316cf3 UI: use single column layout for particles
Also minor changes to other panels.

Patch by @billreynish
2018-06-02 21:52:52 +02:00
c55e90da4c Cleanup: -Wswitch warning 2018-06-02 21:38:31 +02:00
2ef695fabf build_environment: fix paths in osl.diff 2018-06-02 13:18:22 -06:00
6c6c4da718 GPU: Fix texture being freed in threads without ogl context bound.
This is a dirty fix. A bit more cleaner approach would be to check if a
context is bound and delay the deletion only in this case.
Also we may want to do this orphan deletion at some other places than
wm_window_swap_buffers.
2018-06-02 21:16:40 +02:00
bc6358a580 DRW: Add uniform name recording in debug mode. 2018-06-02 21:16:40 +02:00
f25e459f8f DRW: Make the Procedural hair update part of the drawmanager.
Instead of relying on the engine integration which is redundant.
2018-06-02 21:16:40 +02:00
98e4d548a1 Eevee: Hair: Make SSR works with hairs. 2018-06-02 21:16:40 +02:00
119423b252 Eevee: Cleanup unused Ghash 2018-06-02 21:16:40 +02:00
8ace49dedc Eevee: Add shadow support for hairs. 2018-06-02 21:16:40 +02:00
1de73fc6c3 Eevee: Hair: Make hairs visible even if the show emitter option is disabled. 2018-06-02 21:16:40 +02:00
08a2c5f224 Eevee: Add support for hair random property.
Do note that it does not match cycles implementation.

Also we could precompute the hash per strand before rendering but that would
suggest it's not per engine specific.

If we make the random value internal to blender then it won't be a matter
because other renderers will have access to the same value.
2018-06-02 21:16:40 +02:00
4430bd3644 Eevee: CodeStyle: Fix naming and confusion about the hairs vectors. 2018-06-02 21:16:40 +02:00
Dalai Felinto
0736460dfb Merge remote-tracking branch 'origin/master' into blender2.8 2018-06-02 20:34:25 +02:00
Dalai Felinto
fec317de8d --debug-gpu-shader: Dump GLSL shaders to disk
This is really convenient for development. Either for profiling the
generated shaders or to check if the generated code is correct.

It writes the shaders to the temporary blender session folder.

(ported over from blender2.8)
2018-06-02 20:29:27 +02:00
6de656b4f2 transform_snap_object: Do not use occlusion test when X-Ray is enabled. 2018-06-02 13:11:51 -03:00
58efa7d686 Fix inaccuracy of SCREEN_OT_area_split when snap to midpoint and adjacent.
By default when moving a edge of the screen it always snaps to an invisible grid with unit of 4 pixels.
This was also affecting the snap to the midpoint and adjacent.
The solution was to make the snap to areagrid optional and use values of `origmin` and `origsize` that match the transformations in screen_edit.c.
2018-06-02 12:19:49 -03:00
0de0cee9a2 Fix crash running in background mode 2018-06-02 14:53:07 +02:00
9cd2e4fa3f Cleanup: quiet warnings w/o Python 2018-06-02 13:10:27 +02:00
b608133075 Fix crash if no tool is set 2018-06-02 13:10:15 +02:00
a08a8aa928 Merge branch 'master' into blender2.8 2018-06-02 13:09:12 +02:00
c140f11946 Cleanup: warning 2018-06-02 11:58:01 +02:00
Dalai Felinto
bb8770b976 Fix UI for camera data
The fix bit is the split.

But since we are using col.separator() left and right we need this as well.
I still don't think the separators are the way to go, yet may as well be
consistent with the current design in place, thus the extra separator here too.
2018-06-02 11:22:44 +02:00
8433ed76b2 UI: re-order navigate manipulator
Looked as if size applied to navigation too.
2018-06-01 22:37:27 +02:00
d18cd768bb UI: use single column properties for object data
patch by @billreynish w/ minor edits
2018-06-01 19:26:07 +02:00
bfe1d0e0dc Merge branch 'master' into blender2.8 2018-06-01 18:26:42 +02:00
75fc1c3507 Cleanup: trailing whitespace (comment blocks)
Strip unindented comment blocks - mainly headers to avoid conflicts.
2018-06-01 18:19:39 +02:00
297bf7235b Cleanup: whitespace 2018-06-01 18:10:43 +02:00
2f5704486d Added ability to apply seams to all middle edges
between the 2 marked edges. currently does not make changes to material
or sharpness of edges
2018-06-01 21:18:26 +05:30
c0dd355926 Modifiers: ported applying modifier from DerivedMesh → Mesh 2018-06-01 17:35:26 +02:00
4fccb8a023 Boolean modifier: fixed crash when applying the modifier 2018-06-01 17:35:26 +02:00
e44743736f Merge branch 'master' into blender2.8
Conflicts:
	source/blender/editors/io/io_collada.c
	source/blender/editors/object/object_bake.c
	source/blender/editors/object/object_edit.c
	source/blender/editors/render/render_internal.c
	source/blender/makesrna/intern/rna_object_api.c
	source/blenderplayer/bad_level_call_stubs/stubs.c
2018-06-01 17:26:36 +02:00
e4a727626e X-Ray: Added a slider for the alpha
- will not render when set to 0.0 for speed reasons. so when user sets
transparency to hide everything the bigger passes will be skipped.
2018-06-01 17:15:35 +02:00
56dc2bf0c5 Workbench: Updated the internal light to have a bit of back lighting 2018-06-01 17:15:35 +02:00
9e09900a30 Fix wrong colors for workbench World Background option. 2018-06-01 17:14:06 +02:00
William Reynish
15e5dbc2c3 UI: tweaks to viewport shading and overlay panel layouts. 2018-06-01 17:14:06 +02:00
0706b410bd UI: use same "Viewport Display" name for scene/object/material panels. 2018-06-01 17:14:06 +02:00
eef18d39cb Fix broken set collection offset from cursor operator. 2018-06-01 17:14:06 +02:00
051e186d5c Cleanup: some more G.main removal from editor code. 2018-06-01 17:08:38 +02:00
b3be71e07a Mesh Batch Cache: Fix memory leak. 2018-06-01 17:07:45 +02:00
72a360827b T54991: Restore support for Motion Path drawing in 2.8
This commit restores support for Motion Path drawing in 2.8 (as it wasn't ported over
to the new draw engines earlier, and the existing space_view3d/drawanimviz.c code was
removed during the Blender Internal removal).

Notes:
* Motion Paths are now implemented as an overlay (enabled by default).
  Therefore, you can turn all of them on/off from the "Overlays" popover

* By and large, we have kept the same draw style as was used in 2.7
  Further changes can happen later following further design work.

* One change from 2.7 is that thicker lines are used by default (2px vs 1px)


Todo's:
* There are some bad-level calls introduced here (i.e. the actgroup_to_keylist() stuff).
  These were introduced to optimise drawing performance (by avoiding full keyframes -> keylist
  conversion step on each drawcall). Instead, this has been moved to the calculation step
  (in blenkernel).  Soon, there will be some cleanups/improvements with those functions,
  so until then, we'll keep the bad level calls.


Credits:
* Clément Foucault (fclem) - Draw Engine magic + Shader Conversion/Optimisation
* Joshua Leung (Aligorith) - COW fixes, UI integration, etc.


Revision History:
See "tmp-b28-motionpath_drawing" branch (rBa12ab5b2ef49ccacae091ccb54d72de0d63f990d)
2018-06-01 16:38:21 +02:00
44a8070db3 Cleanup: fix incorrect contributor information. 2018-06-01 15:47:00 +02:00
06c4106d03 Fix for fix, indentation was accidental 2018-06-01 15:42:00 +02:00
75b2729488 Fix missing braces 2018-06-01 15:37:53 +02:00
50afc430fd Update Flatty themes with the new pulldown background and minor tweaks. 2018-06-01 15:32:46 +02:00
Vuk Gardašević
27881e9948 Fix Add menu issue when there are no collections to instance
Differential Revision: https://developer.blender.org/D3453
2018-06-01 15:27:18 +02:00
13ca63d2ad Draw background on pulldown widgets if the header is transparent.
Since the viewport header now supports transparency, text on pulldowns
can be hard to read if their color matches the viewport content.

Background is drawn using the 'inner' theme color, that was unused until now.
2018-06-01 15:11:38 +02:00
3b05034935 Fix broken logic in make static override operators for Collections.
Was pretty sure I already fixed that some weeks ago... but look like it
was not committed or somehow lost...
2018-06-01 14:31:29 +02:00
ddf2a58282 Mesh: Replace DM for mesh w/ wpaint vertex picking 2018-06-01 14:29:22 +02:00
82b8fd8eaf UI: don't show XYZ text w/ direction buttons 2018-06-01 14:10:43 +02:00
32c12d057f Cleanup: rename vars 2018-06-01 14:01:46 +02:00
be8016908d Mesh: Replace DM for mesh -> curve conversion 2018-06-01 14:01:44 +02:00
4faf9bfbe9 Mesh versions of DerivedMesh access API calls
Add mesh_get_eval_final & mesh_get_eval_deform

Note: these will eventually need to be renamed & moved into BKE.
2018-06-01 13:58:53 +02:00
b85d5b6d52 Cleanup: quiet warning, don't set unused alpha 2018-06-01 13:58:53 +02:00
83a41ccd0a LookDev: make sure lookdev balls are still visible after 'N' 2018-06-01 12:52:10 +02:00
cfdadc7d61 Edit Mode: Fix Edit Object renderability with multi objects edit. 2018-06-01 12:28:32 +02:00
4eb47c303d Fix: raytrace_mirror does not exist anymore
Eevee default material settings were not showing.
2018-06-01 12:14:08 +02:00
0c18024a8d Fix error 2018-06-01 12:04:24 +02:00
c771bbc27e Code cleanup: Compiler warning 2018-06-01 12:01:31 +02:00
01c75c3765 Math: optimizations for 4x4x matrix inverse, multiplications.
In some heavy rigs matrix inverse can be 10% of computation time. This
reduces it to 2% by using Eigen's optimized 4x4 matrix inverse and SSE
matrix multiplication.
2018-06-01 12:00:11 +02:00
719e782f2c Modifiers: tiny optimizations for mesh deform, lattice, kdop. 2018-06-01 12:00:11 +02:00
bcbee4b9a3 Fix missing animation updates when the proxy object is not visible.
The relation was inverted here, for a long time already. The reason is
unclear and in principle it should work fine in the right direction.
2018-06-01 12:00:11 +02:00
1bc801e020 Fix use of uninitialized value in depsgraph. 2018-06-01 12:00:11 +02:00
14c55a5828 Cleanup: long lines 2018-06-01 11:59:15 +02:00
Dalai Felinto
e35dab0fec Fix building for workbench in windows (BLI_INLINE) 2018-06-01 11:55:50 +02:00
0bddf5315f Fix T55282: Modifiers: Removed unnecessary object evaluation 2018-06-01 11:50:53 +02:00
8f24d404fe Removed old mention of CDDerivedMesh 2018-06-01 11:50:53 +02:00
e614a8290c Fix/Workaround T55272: Sculpt/VPaint removes mesh 2018-06-01 11:49:10 +02:00
e8142ad7dc Cleanup: quiet warnings 2018-06-01 11:49:10 +02:00
4683091369 Object Mode: Display loose edges if overlays are enables.
This fix T55280 Loose edges not visible in object mode
2018-06-01 11:36:01 +02:00
d5a359b1d4 Fix: overlays are reset when selection is being performed
/me hits myself in the head. In selection code the flags were not tested
but set directly.
2018-06-01 11:31:30 +02:00
c450966e95 Workbench: Material specific settings for the specular
- Uses the roughness setting of the basic eevee material
- renamed gloss_mir to roughness
- set default of roughness to 0.25
- renamed ray_mirror to metallic
- cleaned up material rna (BI mirror struct)
- use BLINN phong model
- normalize incoming/outgoing specular light
- when using camera oriented studiolight, the SolidLight will be used
for specular highlights
- EXPERIMENT: when in world oriented studiolight only the shadow direction will be used.
- change the settings of the internal light to make scenes more
readable
2018-06-01 11:01:55 +02:00
3b2d3a3cd1 Fix crash switching sculpt/vpaint -> edit mode 2018-06-01 10:34:00 +02:00
7bdc67f5f3 Fix broken 'make single user' operator UI.
Texture option was removed, since BI engine removal...
2018-06-01 10:27:27 +02:00
fe09aa602a 3D View: hide orbit navigation in camera view
Typically for camera views it's nicer not to overlay large widgets,
only include the button to exit camera view.
2018-06-01 10:17:07 +02:00
c338ac9454 Modifiers: ported Soft Body DerivedMesh → Mesh
The simulation doesn't seem to update properly yet.
2018-06-01 10:04:46 +02:00
3cefb27830 Partial Revert of COW/Camera manipulator changes
d64fbe9456 3e26b84397
2018-06-01 09:48:40 +02:00
266fc1c1ff Revert "COW Fix: Lamp manipulators"
This reverts commit 33e45658eb.

No longer needed.
2018-06-01 09:25:24 +02:00
5736157b5e 3D View: respect text option for edit-mode info 2018-06-01 09:22:08 +02:00
a6395cebb7 Error in last commit 2018-06-01 08:31:32 +02:00
c87cfcc8de 3D View: make text overlay optional 2018-06-01 08:26:55 +02:00
63785a889c 3D View: support world background color 2018-06-01 08:16:24 +02:00
35efa1d3d3 Add 'Toggle Header' to header context menu.
Also disable collapsing the header by dragging it up/down. This prevents
accidentally hiding the header when resizing areas.
2018-06-01 02:55:16 +02:00
Dalai Felinto
a63b55f642 Cycles UI: Show pause button only when in rendered mode 2018-05-31 23:58:49 +02:00
Dalai Felinto
a4bb1a5881 Fix render engine info region when overlap and header on bottom
Note there is some talk about changing the position of this (which would be strange in the image editor by the way,
since there we use the bottom for the result of the current pixel when dragging the mouse).

However first I wanted to fix this regardless.
2018-05-31 23:58:48 +02:00
995fa1f4c0 UI: new tool properties space type
This currently shows panels that were in the 2.79 3D view toolbar
which are now popovers.

In some cases it's useful for these to stay open.
This commit adds a space type to do this.

Note this is currently empty in object mode.
2018-05-31 21:45:26 +02:00
14dee6d7a5 UI: support drawing panels from multiple contexts 2018-05-31 21:42:02 +02:00
7c75c2db4f Add Asan support for clang on windows.
This will currently only work for the RelWithDebInfo configuration since asan
does not support the debug crt. for source line information in the reports,
you need a copy of llvm-symbolizer in the blender folder or set the
ASAN_SYMBOLIZER_PATH environment variable to point to it. Currently (as of
6.0.0) llvm-symbolizer does not ship with the binary clang/llvm distribution.

Reviewers: campbellbarton

Differential Revision: https://developer.blender.org/D3446
2018-05-31 11:50:30 -06:00
Dalai Felinto
e51cbce646 Cleanup: Fix indentation 2018-05-31 19:19:27 +02:00
bf4ce5755f Overlay: Add Wireframe overlay.
This overlay is showing mesh topology. It is usable with transparency
even if the mesh order can mess up with the expected result (some object
more prominent than others).

Edge thickness and alpha values are hardcoded for now but can easily be
added to theme or object settings.
2018-05-31 19:09:20 +02:00
712885c30e DRW: Add wireframe buffer texture generation for wireframe drawing.
Only OB_MESH is supported for now.

Creates a simple index buffer with negative indices if the edges is not a
real edge.

Also create the buffer texture representation of this buffer along with the
pos_in_order buffer texture.
2018-05-31 19:09:20 +02:00
f43e3d0b6b DRW: Fix DRW_shgroup_call_procedural_* vertex count. 2018-05-31 19:09:20 +02:00
494470ba23 GPUTexture: Expose GPU_texture_create_buffer and add GL_R32I support. 2018-05-31 19:09:20 +02:00
8789490f96 LoopTri: Fix example code.
For real guys! Test your example code!
2018-05-31 19:09:20 +02:00
71c904433c DRW: Fix stick bones memory leak. 2018-05-31 19:09:20 +02:00
2feed9bdef Fix Collada building... 2018-05-31 18:37:33 +02:00
f71efafe8f Merge branch 'master' into blender2.8
Conflicts:
	source/blender/editors/sculpt_paint/paint_image.c
	source/blender/editors/space_image/image_edit.c
	source/blender/editors/space_image/image_ops.c
	source/blender/makesrna/intern/rna_material.c
	source/blender/makesrna/intern/rna_sculpt_paint.c
	source/blender/makesrna/intern/rna_space.c
	source/blenderplayer/bad_level_call_stubs/stubs.c
2018-05-31 18:35:14 +02:00
cfea9c261c Cleanup: Remove G.main from some editor files. 2018-05-31 18:23:20 +02:00
df22cd9ce1 Depsgraph: Fixes to prevent object duplicate to jump
This includes:

- Skip OB_RECALC_TIME tag from object duplicate operator
  not sure why it is needed: even if original object was
  animated, duplicating it will copy evaluated values.

- Don't tag whole ID for update when updating it after
  relations rebuilt. Use the same trickery to detect
  whether animation is to be re-evaluated or not as is
  done for update flag=0.

- Don't tag datablocks which are expanded for update
  of copy-on-write.

- Avoid flush along relation from copy-on-write
  operation in action. This will not invalidate any
  pointers in the copied datablock since we don't
  reference anything in the action.
2018-05-31 18:07:55 +02:00
3352dd3a3f Depsgraph: Remove unused flags
They are no longer needed after the active depsgraph concept is here.
2018-05-31 18:07:55 +02:00
126e6c8e1d Transform: Read all data from original objects
This is now guaranteed to be in sync with evaluated state for an active
dependency graph.

Solves issue with duplicating animated object.
2018-05-31 18:07:55 +02:00
59a516913e Depsgraph: Copy evaluated data to original datablock
Only do it for active dependency graph.

Currently covers animation, drivers, object and pose channel matricies.
2018-05-31 18:07:55 +02:00
b5b1f9d11c Depsgraph: Consider depsgraphs used by workspace as active
Will cause some bad behavior when object is shared across multiple
visible view layers with different overrides. Accept it for now,
and possibly force single view layer later.
2018-05-31 18:07:55 +02:00
7a4b0ff358 Depsgraph: Begin concept of active dependency graph
When active dependency graph is evaluated, it will apply animation,
drivers and scalar evaluation data (such as object matrix) to an
original datablock. This way operators and tools can easily read
data from original datablock.

This will simplify porting them to copy-on-write, and solve issues
when some operator will allocate new datablock based on original one,
and will want to read data from it.
2018-05-31 18:07:55 +02:00
d4daf9c00d Depsgraph: Forbid update flush to go from copy-on-write to animation 2018-05-31 18:07:55 +02:00
cd702db338 Animation: Pass dependency graph to animation system
This way we allow animation system to make decisions based on which
context dependency graph is coming from, and whether it belongs to
an active edit window or not.
2018-05-31 18:07:55 +02:00
48ea2131aa Sequencer: Make dependency graph part of sequencer context
Currently unused, but will be needed soon to deal with active edit
window context.
2018-05-31 18:07:55 +02:00
cb614107d3 UI: fix own error switching fake space types 2018-05-31 18:00:17 +02:00
5a82aee9e6 Merge branch 'master' into blender2.8
Conflicts:
	source/blender/alembic/intern/abc_exporter.cc
	source/blender/blenkernel/BKE_mball.h
	source/blender/blenkernel/intern/depsgraph.c
	source/blender/blenkernel/intern/mball.c
	source/blender/editors/object/object_add.c
	source/blender/render/intern/source/convertblender.c
2018-05-31 16:57:39 +02:00
8d53e8cd02 UI: hide user preferences from space menu
See T54744
2018-05-31 16:46:24 +02:00
da11e33b26 Cleanup: remove G.main from BKE mball code. 2018-05-31 16:44:05 +02:00
361b3eb88e Cleanup: warning 2018-05-31 16:36:24 +02:00
eb1feb9f4a Merge branch 'master' into blender2.8
Conflicts:
	source/blender/editors/object/object_add.c
	source/blender/editors/object/object_select.c
	source/blender/editors/space_outliner/outliner_edit.c
2018-05-31 16:21:47 +02:00
0b396bc15b Minor tweaks to labels 2018-05-31 16:05:47 +02:00
16100f8261 Cleanup: get rid of last G.main usages in BKE library code. 2018-05-31 16:04:04 +02:00
b809340960 Merge branch 'master' into blender2.8
Conflicts:
	intern/cycles/blender/blender_curves.cpp
	source/blender/blenkernel/BKE_particle.h
	source/blender/blenkernel/intern/modifier.c
	source/blender/blenkernel/intern/object_update.c
	source/blender/blenkernel/intern/particle_system.c
	source/blender/editors/object/object_modifier.c
	source/blender/editors/physics/physics_fluid.c
	source/blender/makesrna/intern/rna_particle.c
	source/blender/modifiers/intern/MOD_particlesystem.c
2018-05-31 15:37:15 +02:00
b53d358261 Cleanup: remove G.main from BKE modifier. 2018-05-31 15:24:30 +02:00
3248ac5e83 Cleanup: Remove unused variable 2018-05-31 15:02:12 +02:00
Dalai Felinto
25e5ec245c Support Move / Link to collection in the outliner as well 2018-05-31 14:52:05 +02:00
Dalai Felinto
d0af8edcd1 Outliner: Expose collections editors poll in ED_outliner.h 2018-05-31 14:52:05 +02:00
Dalai Felinto
eaad4caa56 Link to Collection - Add shortcut (Shift + M) 2018-05-31 14:52:05 +02:00
54e92bbd29 Fix: View All in Action Editor zoomed in far enough to enter "crazy mode" with a single keyframe
Now, when there's just a single keyframe, pressing HomeKey will instead
just center the view instead of trying to do "frame range" + margin.
2018-05-31 14:51:28 +02:00
4e96bff938 Update CoW when adding/removing pose in pose library 2018-05-31 13:53:40 +02:00
f56a9fbad5 Depsgraph: Remove the "disable-copy-on-write" option completely
After discussion with Sergey and Dalai, we have decided to remove
this option completely. We're getting to the point where it is almost
impossible to really use 2.8 without COW, and keeping the old option
running ends up diverting dev resources away towards tracking down
and fixing problems with a parallel system that will be going away.
2018-05-31 13:43:00 +02:00
9b4e56c091 Merge branch 'master' into blender2.8
Conflicts:
	source/blender/blenkernel/BKE_camera.h
	source/blender/blenkernel/BKE_dynamicpaint.h
	source/blender/blenkernel/BKE_object.h
	source/blender/blenkernel/intern/camera.c
	source/blender/blenkernel/intern/dynamicpaint.c
	source/blender/blenkernel/intern/object.c
	source/blender/blenkernel/intern/smoke.c
	source/blender/editors/object/object_transform.c
	source/blender/editors/physics/dynamicpaint_ops.c
	source/blender/editors/space_view3d/view3d_edit.c
	source/blender/editors/space_view3d/view3d_view.c
	source/blender/modifiers/intern/MOD_dynamicpaint.c
	source/blenderplayer/bad_level_call_stubs/stubs.c
2018-05-31 12:57:24 +02:00
d41bf6b8e8 Edit last commit
Better check if the property is set in case others want to use this
property w/o SKIP_SAVE set.
2018-05-31 12:54:44 +02:00
46508430f8 Fix tool-system re-using last space type
Even though the regression is somehow caused by 03a80facfc
this value shouldn't be reused so apply an unrelated fix.
2018-05-31 12:51:47 +02:00
28369f725c Cleanup: remove G.main from BKE object
Had to add some G.main to modifiers, but in 2.8 we do not need that
anymore, so it's not that bad! ;)
2018-05-31 12:27:47 +02:00
23e375a281 Revert "Tag COW when applying pose from pose library"
This reverts commit 24b03729ae5ba4561ace8cbfb2d56cdbde781589; committed
too soon.
2018-05-31 12:00:18 +02:00
24b03729ae Tag COW when applying pose from pose library
Related to T55232
2018-05-31 11:59:04 +02:00
9948e26e14 Fix depsgrah copying and evaluating hidden collections. 2018-05-31 11:43:29 +02:00
1e6108e972 OpenColorIO: cache multiple shaders instead of just one.
Fixes constant shader and texture rebuilding when doing animation playback
with multiple editors that use different view transforms.
2018-05-31 11:21:19 +02:00
46cfa605c3 Cleanup: Reduce indentation level 2018-05-31 11:17:57 +02:00
9084c57a65 Mark edges that can have seams in Bevel.
Works by going clockwise from first edgehalf in BevVert and marking seam length
each time it encounters a pair of edges with seams
2018-05-31 14:42:50 +05:30
17f458ff32 Merge branch 'master' into blender2.8 2018-05-31 11:08:02 +02:00
24d1829243 Cleanup: nuke G.main out of BKE PackedFile code. 2018-05-31 11:07:14 +02:00
fcfe1963a6 Fix depsgraph copying and evaluating hidden objects. 2018-05-31 10:37:13 +02:00
5cbad89637 Cleanup: unused defines 2018-05-31 10:15:48 +02:00
12ab59a2d6 Merge branch 'master' into blender2.8 2018-05-31 10:03:15 +02:00
84a9647f22 Cleanup: use doxy sections for space types
Also use struct names in enum/define comments.
2018-05-31 09:49:58 +02:00
d9324b61d5 Cleanup: return types in stubs 2018-05-31 09:49:44 +02:00
e4afccf388 Depsgraph: optimization of driver evaluation with many drivers. 2018-05-31 09:46:21 +02:00
e910765ad0 WM: Use tool-system for setting brushes
This sets the tool instead of the brush, with cycling support.
2018-05-31 09:04:15 +02:00
81bf9a41e1 Tool System: Utility to set the tool by name
Wrapper for the Python operator.
2018-05-31 09:02:43 +02:00
Hristo Gueorguiev
6c0705009e Fix OpenCL compilation error - BPT without SSS. 2018-05-31 00:08:56 +02:00
fbd614f1fa Workbench: Highlights
Made the highlights darker (using the defaults of blender 2.7
- sharpness = 50
- spec color = 0.025 (I bumped it to 0.1)
- added a log2 to the frontal camera light to reveal more details of the
mesh
2018-05-30 22:19:10 +02:00
16d3f4db4c Tool System: optionally cycle tools in a group
Add the ability for key bindings to set a tool-group,
which cycles to the next tool when the tool is already active.
2018-05-30 22:17:37 +02:00
264a4a8f97 RNA: add tool index access
Needed for changing the active tool from Python.
2018-05-30 22:16:13 +02:00
84e5c981dc UI: toolbars now redraw on tool change 2018-05-30 22:16:13 +02:00
f5f25b843e Removed Object color from workbench. Added Highlights to FLAT shading. 2018-05-30 20:34:29 +02:00
eb0fcd4574 Generic Viewport Panel for Materials
Is enabled for all render engines as workbench will be rendering
SOLID/Texture modes and uses these settings.
2018-05-30 19:57:51 +02:00
1f693aefca Cleanup: style/whitespace
Also use 'uint'.
2018-05-30 19:49:33 +02:00
61fc9fcffa Cleanup: redundant check 2018-05-30 19:49:33 +02:00
0b6603d9b6 Fix selection randomly failing with border render.
We no longer user scissor for 3D viewport drawing, and some selection
code assumed it still. This also cleans up unnecessary scissor test
switching, we only have it temporarily enabled now.
2018-05-30 19:34:12 +02:00
c0f42a7526 make.bat: fix support for building with just the build tools installed. 2018-05-30 11:11:35 -06:00
c86437cc83 Fix Cycles UI script error with denoising. 2018-05-30 18:22:00 +02:00
cce16df10f Fix Cycles viewport render stuck with curve objects.
We should solve this better by making the depsgraph convert all curves to
meshes, for now ensure we don't to depsgraph tags during export.
2018-05-30 18:17:49 +02:00
17ce968c59 Depsgraph API: renaming, more granular update information.
* depsgraph.ids: all evaluated datablocks in the depsgraph
* depsgraph.objects: all evaluated objects in the depsgraph
* depsgraph.object_instances: all object instances to display or render
* depsgraph.updates: list of updates to datablocks
2018-05-30 18:17:49 +02:00
08862b8246 Render API: rename some API functions back to earlier names.
Their purpose is the same, no reason to break API compatibility here.
2018-05-30 18:17:49 +02:00
85ce4d957c UI: use split property layout for some panels
Object, render, scene properties now use split-property layout,
also cycles interface.

Patch by @billreynish w/ minor edits.
2018-05-30 18:00:11 +02:00
9fabe3ef53 Cleanup: quiet warning 2018-05-30 17:38:07 +02:00
efd0333a9c UI: fix property split w/ color buttons & empty text 2018-05-30 17:29:20 +02:00
1272936773 Tweak for previous commit: Just group all bone properties under the bone name
After more testing, I realised that bendy bone properties should also be grouped,
but probably all other per-bone settings too. Now, just group all of them, since
it's easier for everyone this way.
2018-05-30 17:05:37 +02:00
7661f8a65b Modifiers: Bring back custom data referencing logic
Brings dependency graph evaluation time to similar time than 2.79
for file reported in T55228.
2018-05-30 17:00:47 +02:00
41fac4fa76 Modifiers: Make input of modifier stack referencing copied CD layers
The idea is to allow modifier stack to reference custom data layers
from copied version of mesh datablock.
2018-05-30 17:00:47 +02:00
25d4d43491 Modifiers: Restore duplication of referenced layers
Was no reason to remove those calls, it was always a plan to bring
referenced layers back eventually.
2018-05-30 17:00:47 +02:00
cdfa517760 Insert Keyframe: Change default behaviour for how F-Curves get grouped
For many years, animators have been complaining about how keyframing a (transform)
property directly would leave them ungrouped, while keyframing them using a Keying Set
would put them into a group based on the name of the keyingset.

This commit attempts to improve (unify + make consistent) the default behaviour:
* All object transforms now get added to an "Object Transforms" group,
  regardless of whether they were added individually via buttons or keyingset
* All bone transforms now get added to a group corresponding to the name of the bone
  instead of only the ones added via keyingset
2018-05-30 16:46:12 +02:00
23b455a891 Cleanup: Reuse existing scene pointer 2018-05-30 16:46:11 +02:00
92e3b3839b Merge branch 'master' into blender2.8
Conflicts:
	source/blender/editors/space_outliner/outliner_intern.h
2018-05-30 16:32:49 +02:00
10a2562bc5 Fix missing movieclip ID type in allowed ones for Outliner... 2018-05-30 16:14:55 +02:00
f1f1c32849 Object Modes: don't de-select others when activating 2018-05-30 15:51:49 +02:00
Dalai Felinto
5b8fe8324b Fix render info not working with overlap regions 2018-05-30 15:45:40 +02:00
38957c1838 Object Modes: stay in object mode when setting active
When activating an object from the 3D view or outliner,
keep the newly selected object in object mode.
2018-05-30 15:33:05 +02:00
5954a5c465 Object Modes: pose support for generic mode exit 2018-05-30 15:33:05 +02:00
375c1eab65 Cleanup: RNA naming, use highlight as suffux
This is whats done already elsewhere.
2018-05-30 15:33:05 +02:00
d0d2fc9819 Cleanup: whitespace 2018-05-30 15:26:57 +02:00
30fb455977 Initial 'fix' for Sculpt & COW - shallow copy sculpt data into COWed object.
Still a lot to fix here, right now you can get sculpt drawing updating
when you come from Edit mode, not from Object mode... Go figure...
2018-05-30 15:15:35 +02:00
35a6d9ec55 ID copy: Add flag which allows custom data to reference original datablock 2018-05-30 15:07:59 +02:00
acaf46db0e Workbench: Specular Highlights
Added specular highlights for:
 - Solid studio shading
 - Texture studio shading
2018-05-30 14:42:07 +02:00
29f9a19708 Modifier stack: Avoid roundtrip from mesh to DM back to mesh
Saves quite a bit of CPU ticks per mesh update, giving measurable
speedup for file from T55228.

Memory usage goes up a it, most likely due to evaluated mesh having
more custom data layers than corresponding DM does.
2018-05-30 14:29:05 +02:00
da16cb1511 Eevee: Keep track on whether orco was allocated or not
If it's coming from vertex data, we must not free that pointer.
2018-05-30 14:29:05 +02:00
f03953ae06 Object Mode: Add Texture space visualization. 2018-05-30 14:27:40 +02:00
ccb7f1d4f1 Fix T55256: Animation Noise modifier does not update on value change
Animation needs tagging in depsgraph (for animation refresh), instead of only
tagging AnimData->recalc
2018-05-30 14:22:25 +02:00
26f42a1928 Fix: Toggling "mute" toggle in animation editors didn't work with copy-on-write
Tested on Autumn run cycle by muting master bone animation - when working, the
dog should run forwards when the master bone animation is being muted.
2018-05-30 14:22:25 +02:00
5c17dbd991 Fix missing Cycles 3D viewport updates when editing materials, lamps.
This introduces a new depsgraph API for getting updated datablocks,
rather than getting it from bpy.data.

* depsgraph.ids_updated gives a list of all datablocks in the depsgraph
  which have been updated.
* depsgraph.id_type_updated('TYPE') is true if any datablock of the given
  type has been added, removed or modified.

More API updates are coming to properly handle multiple depsgraphs and
finer update granularity, but this should make Cycles work again.
2018-05-30 14:07:23 +02:00
8ed723745e Fix unnecessary Cycles render updates when selecting objects. 2018-05-30 14:07:22 +02:00
292125bfd3 Fix broken meshdeform modifier after recent cleanup. 2018-05-30 14:02:28 +02:00
9c2db1455f Keymap: group paint modes, reorder enum
Menu now matches the keymap.
2018-05-30 13:47:24 +02:00
eb24c9a1e1 Keymap: Pose/Weight-Paint modes now co-exist
Use the same key for pose & weight paint mode (instead of texture paint)

This makes more sense since pose/weight paint modes
are often used in combination.
2018-05-30 12:56:38 +02:00
03ec3a6141 Cleanup: remove '.' 2018-05-30 12:56:38 +02:00
48ceeead10 DRW: Instance Data: Replace with static allocation that can be referenced.
This mean you can store data used for drawing inside the object engine
data.

Also fixes T55243 Crash in ASAN debug builds due to use-after-free memory in draw code - instances issue?
2018-05-30 12:25:20 +02:00
10c0bba28e Eevee: Hair: Fix hair strip view Position. 2018-05-30 12:25:20 +02:00
7e8fd563c6 DRW: Add compile option to disable deferred compilation.
This maybe usefull for debugging.
2018-05-30 12:25:20 +02:00
93de6ca2db DRW: Instance selection id: use Batch buffers instead of DRWInstanceData
This is motivated by the refactor of DRWInstanceData to be actual non
contiguous mempools.
2018-05-30 12:25:20 +02:00
0488b728eb Eevee: Add support for the Hair info node.
Only the random output is not supported for the moment.
2018-05-30 12:25:20 +02:00
10f6450ef2 Eevee: Add support for new Hair geometry system.
This now can shade actual poly strips that mimics cylinders.
This makes hair coverage exact compared to the line method and result in
smoother fading hair.

This does make the sampling a bit more exact but needs more samples to
converge properly.
2018-05-30 12:25:20 +02:00
501c0b1df8 GPUMaterial: Add support for hair vertex color, uvs and orco. 2018-05-30 12:25:20 +02:00
328f8dc21c DRW: Add new GPU hair system.
This new system use transform feedback to compute subdivided hair points
position. For now no smoothing is done between input points.

This new system decouple the strands data (uv, mcol) with the points
position, requiring less update work if only simulation is running.

In the future, we can have compute shader do the work of the feedback
transform pass since it's really what it's meant to. Also we could generate
the child particles during this pass, releasing some CPU time.

draw_hair.c has been created to handle all of the Shading group creations
as well as subdivision shaders.

We store one final batch per settings combination because multiple viewport
or render could use the same particle system with a different subdivision
count or hair shape type.
2018-05-30 12:25:20 +02:00
2faef3473c Cycles: Use new internal hair shape properties.
The do_version actually copy the existing custom properties to the internal
ones, because theses properties are straight port from cycles.
2018-05-30 12:25:20 +02:00
e0e3038b1e Hair Particles: DNA: Add properties for new GPU hairs.
Hair Particles shape properties are ported from cycles. Thoses properties
have the same defaults and have a do_version of their own. Cycles will use
theses properties instead of its custom ones.

Some realtime engine specific settings are also added to scene->r because
it's much easier to control as global values.

Bumping Version number so cycles can do its own do_version on top of the
default settings.
2018-05-30 12:25:20 +02:00
ec6da3d72e DRW: Add new per drawcall option to bypass culling. 2018-05-30 12:25:20 +02:00
201952aed2 GPUTexture: Add support for GL_RGBA16 texture format. 2018-05-30 12:25:20 +02:00
3bc0cb08b8 DRW: Add DRW_CALL_PROCEDURAL DRWCall type.
This mimics the behaviour of DRW_shgroup_empty_tri_batch_create and will
replace it eventually.

The advantage is that it's compatible with transform feedback.
2018-05-30 12:25:20 +02:00
7b9a0ed8c4 BLI: Utils: Add Macro that compute the number of digits in integers type.
Usefull if you want to create char chains to contains hashes of a certain
type.
2018-05-30 12:25:20 +02:00
08d325805f Keymap: add back sculpt keys
Shouldn't have been removed in recent keymap edits.
2018-05-30 12:18:26 +02:00
72f4ac99c7 Cleanup/fix wrong modifiers targets handling in COW context.
Modifiers stack only get COW/evaluated IDs, so no need to go auery again
DEG for those. Further more, now unified handling of EditBMesh case (was
done on case-by-case basis in a few modifiers, not all for some reason).

We are still missing the ability to get final and cage deformed meshes
when in Edit mode though, this is to be defined/implemented in depsgraph.
2018-05-30 12:04:06 +02:00
e55c1a9b5a Depsgraph: Add TODO about backing up evaluated state of ID 2018-05-30 12:02:32 +02:00
edc1e65809 Add deformed evaluated mesh to object
This is a first step to have correspondence of legacy derivedDeform
within a new formulation. Only base ground for now to support file
reading, copy-on-write remapping and such.
2018-05-30 11:49:45 +02:00
6afa0a7a50 Fix T55253: Camera lens can't be edited after keyframing it
Bring back animation channel exception for tag flag=0.
2018-05-30 11:26:19 +02:00
9abbf73d3f Cleanup: Wrap object runtime eval members into own struct 2018-05-30 11:11:03 +02:00
a01244cade Outliner: support toggling non-active edit/pose mode objects
Support switching non-active objects in/out of a mode from the outliner.

- This allows users to change which objects are in a mode w/o
  having to exit the mode and change seleciton.
- Changing the mode of the active object applies to all other objects.
- By convention setting a mode selects, removing de-selects,
  this is done for convenience so switching to a mode from object mode
  maintains the set of objects in the current mode.

See: T55246
2018-05-30 10:29:41 +02:00
47a8d3b880 UI: Show outliner icon highlight w/ non-active edit-mode objects 2018-05-30 10:29:41 +02:00
e054b7f251 BKE_object: Add BKE_object_data_is_in_editmode 2018-05-30 10:29:41 +02:00
01f9e13c30 Cleanup: use 'e' prefix for enum types 2018-05-30 10:29:41 +02:00
d709705203 Cleanup: Naming, match policy with rest of copy-on-write design 2018-05-30 10:24:54 +02:00
301a27187c Cleanup: More typed allocation type enum usage
Majority of the code is EOL, but still handy for debug purposes.
2018-05-30 10:22:28 +02:00
b54cc68365 Cleanup: Use typed allocation type enum in custom data API 2018-05-30 10:20:22 +02:00
0ed2e254bb Use enum for custom data allocation type
Allows to easily see human readable value in debugger.
2018-05-30 10:17:09 +02:00
cb22caa8c7 Merge branch 'master' into blender2.8 2018-05-30 08:49:34 +02:00
18c12803bd Edit Mode: add success return value
Also remove fix for T6614, since BKE_object_obdata_is_libdata
no longer checks proxy.
2018-05-30 08:41:06 +02:00
0e0502cbdf Merge branch 'master' into blender2.8 2018-05-30 07:34:22 +02:00
2c03d6a12b DNA: add OB_DATA_SUPPORT_EDITMODE macro 2018-05-30 07:31:35 +02:00
9992079d59 EEVEE: LookDev, reset camera settings 2018-05-29 22:02:36 +02:00
36e6d44c90 Fix last commit. 2018-05-29 15:58:56 -03:00
00dc1c08aa Fix T55223: Crash when changing lattice resolution. 2018-05-29 15:39:44 -03:00
f8908f0d43 Correct last commit
Left unneeded code in space_context_cycle_invoke
2018-05-29 18:18:36 +02:00
e9cd2fb23b Keymap: partially implement changes from T55162
- Use Tab key for search.
- Number keys switch modes.
- The number of the current mode can open a submode menu
  (currently only works for edit-mode)
- Ctrl-Tab, Ctrl-Shift-Tab - cycle workspaces.
2018-05-29 17:52:27 +02:00
929c78e33c EEVEE: LookDev blurred background 2018-05-29 17:50:51 +02:00
Dalai Felinto
08b8fa0863 Cleanup 2018-05-29 17:33:14 +02:00
Dalai Felinto
85d845ef98 Fix crash when moving object parented to a curve
Note, we can probably remove scene from BKE_object_where_is_calc
and force to always use it from depsgraph.
2018-05-29 17:33:07 +02:00
Dalai Felinto
5eda9732b3 Use the correct time to evaluate object in BKE_object_where_is_calc functions 2018-05-29 17:05:32 +02:00
Dalai Felinto
e2bac484e0 Use correct time for curve parent evaluation
Time should alwaus come from depsgraph, not scene.
2018-05-29 17:05:32 +02:00
36e9ed98e7 StudioLight: Calculate Specular irradiance 2018-05-29 16:29:11 +02:00
f98c838b71 EEVEE: LookDev reversed the background fadeout 2018-05-29 16:22:53 +02:00
d5889f57ae EEVEE: LookDev fadeout to the world horizon color 2018-05-29 16:22:53 +02:00
8f670dd855 Merge branch 'master' into blender2.8
Conflicts:
	source/blender/blenkernel/BKE_material.h
	source/blender/blenkernel/BKE_mesh.h
	source/blender/blenkernel/intern/library_remap.c
	source/blender/blenkernel/intern/material.c
	source/blender/editors/object/object_relations.c
	source/blender/editors/render/render_preview.c
	source/blender/makesrna/intern/rna_object.c
2018-05-29 16:02:53 +02:00
f7af08b5fe Cleanup: Get rid of G.main in BKE_material.
Note that in some cases, this only moves the G.main case to somne other
places - in particular, RNA getters/setters are becoming annoying here...
2018-05-29 15:49:21 +02:00
9d037153f7 Object Modes: disable mode switching on selection
See T55246
2018-05-29 15:47:08 +02:00
44b99d1052 For 2.8, bring back debug mode indices display. 2018-05-29 09:31:00 -04:00
43584f4a41 Missed own last commit 2018-05-29 15:17:34 +02:00
Dalai Felinto
bc54823376 Fix T55244: Parenting object(s) to curve crashes blender
There is a chance parts of Blender call BKE_object_workob_calc_parent
with ob->parent objects that are outside the depsgraph.

This we can tackle later since these are corner cases anyways,
and this fix fixes all parenting operators in Blender.
2018-05-29 15:11:20 +02:00
8b24f45e6b Object Modes: only use selection for mode switch
Selection is no longer needed for an object to be considered in a mode.

Part of T55246 design task, fixes T55187
2018-05-29 14:21:18 +02:00
03b0495d04 Fix: Only change transform mode from translation to rotation/scale when no valid bones were found in an armature
This commit fixes a problem the Spring team were having in the shot files 01_030/050 with
the camera rig, where when you tried grabbing/translating the bones of the camera rig,
they would only keep rotating/scaling instead.

The reason for this is that with the multi-object editing support added into the transform
system, this code would now get run for all the other objects that were being included
in Pose Mode, even if no bones from those armatures were selected. Since no valid translatable
bones were found in those other armatures, the transform mode would get reset upon
encountering one of those other bones.
2018-05-29 12:27:04 +02:00
756b70c6c3 UI: Expand space sub-types into the menu
Initial support for expanding editors, see: T54744
2018-05-29 12:15:26 +02:00
d4ac65d003 Cleanup: use same 'depsgraph' name everywhere outside of DEG space.
'graph' is waaaayyyyy too generic name outside of DEG context, and
better try to use same name everywhere!
2018-05-29 12:07:48 +02:00
643259415d EEVEE: LookDev fade out background option 2018-05-29 12:06:48 +02:00
a0b08e7b66 EEVEE: LookDev use_scene_light draw option
Scene lights are rendered when
 - v3d is not available
 - or shading type is other then OB_MATERIAL
 - or shading type is OB_MATERIAL and use_scene_light is true
2018-05-29 11:01:25 +02:00
2bb4977c4a Fix T55203: Particle hair weights are not preserved 2018-05-29 10:36:19 +02:00
77e32e8819 EEVEE: LookDev overlays enabling
The mirror ball and diffuse ball are only rendered when overlays are
turned on and the lookdev overlay is turned on.
2018-05-29 09:08:32 +02:00
842245ac55 Merge branch 'blender2.8' into soc-2018-bevel 2018-05-29 11:10:54 +05:30
c72a204001 make.bat : fix release build not getting the right settings. 2018-05-28 21:50:59 -06:00
6946c41340 Merge remote-tracking branch 'origin/master' into blender2.8 2018-05-28 20:07:51 -06:00
d6a4b23f8b make.bat : improve error message while detecting the msvc runtime when using clang 2018-05-28 20:07:24 -06:00
3ad9a94c9d Merge remote-tracking branch 'origin/master' into blender2.8 2018-05-28 19:57:50 -06:00
9450792bf2 make.bat : add support for building with ninja and clang together. 2018-05-28 19:56:17 -06:00
4e5d5b3a9e COW operators: Fix VIEW3D_OT_view_all cursor not updating with shift+c center cursor
This differential fixes a bug for resetting view (shift+c).
Bug description: When 3D cursor is placed randomly somewhere, and shift+c is pressed,
the cursor is not shown to reset at world center.

Reviewers: sergey, aligorith, brita_

Reviewed By: brita_

Subscribers: brita_

Differential Revision: https://developer.blender.org/D3423
2018-05-28 23:45:22 +02:00
eb2491363a Cleanup: fix some harmless compiler warnings. 2018-05-28 23:27:40 +02:00
359469a39a Fix T55204: proxy object disappearing randomly.
The problem was a missing depsgraph relation between the transforms of
the object and its proxy, it was only there for the pose.
2018-05-28 23:24:16 +02:00
9b1a15d8f8 Fix assert in workbench drawing, instance data not big enough. 2018-05-28 23:19:57 +02:00
3c1483cf1e COW operators: Fix drag and dropping of color properties 2018-05-28 23:07:23 +02:00
5d1a172783 Merge remote-tracking branch 'origin/master' into blender2.8 2018-05-28 14:35:59 -06:00
81060ff6b2 Windows: Add support for building with clang.
This commit contains the minimum to make clang build/work with blender, asan and ninja build support is forthcoming

Things to note:

1) Builds and runs, and is able to pass all tests (except for the freestyle_stroke_material.blend test which was broken at that time for all platforms by the looks of it)

2) It's slightly faster than msvc when using cycles. (time in seconds, on an i7-3370)

victor_cpu
	msvc:3099.51
	clang:2796.43

pavillon_barcelona_cpu
	msvc:1872.05
	clang:1827.72

koro_cpu
	msvc:1097.58
	clang:1006.51

fishy_cat_cpu
	msvc:815.37
	clang:722.2

classroom_cpu
	msvc:1705.39
	clang:1575.43

bmw27_cpu
	msvc:552.38
	clang:561.53

barbershop_interior_cpu
	msvc:2134.93
	clang:1922.33

3) clang on windows uses a drop in replacement for the Microsoft cl.exe (takes some of the Microsoft parameters, but not all, and takes some of the clang parameters but not all) and uses ms headers + libraries + linker, so you still need visual studio installed and will use our existing vc14 svn libs.

4) X64 only currently, X86 builds but crashes on startup.

5) Tested with llvm/clang 6.0.0

6) Requires visual studio integration, available at https://github.com/LazyDodo/llvm-vs2017-integration

7) The Microsoft compiler spawns a few copies of cl in parallel to get faster build times, clang doesn't, so the build time is 3-4x slower than with msvc.

8) No openmp support yet. Have not looked at this much, the binary distribution of clang doesn't seem to include it on windows.

9) No ASAN support yet, some of the sanitizers can be made to work, but it was decided to leave support out of this commit.

Reviewers: campbellbarton

Differential Revision: https://developer.blender.org/D3304
2018-05-28 14:34:47 -06:00
Dalai Felinto
66577c8732 Rename EEVEE visibility group > collection
I think we should rename the DNA as well, and break the 0.01 files using this feature.
But I will leave this decision to Clement.
2018-05-28 21:27:00 +02:00
cf60939a59 Ugly Hacky Fix: Clear Loc/Rot/Scale + Autokey now works for bones
This is a hacky fix so that animators can use this tool again with autokey enabled
(which they do all the time). The issue here is that the tool writes the new (0)
values to the original data, but insertkey now reads from evaluated data (so that
keying interpolated values works). However, the cleared values do not get re-evaluated
or flushed before insertkey gets to it (via auto keying), meaning that the wrong values
get keyed.

There may be better solutions for this, but for now, this is the simplest fix that
I can get working.
2018-05-28 20:25:03 +02:00
69d3a08557 EEVEE: lookdev default materials 2018-05-28 19:35:08 +02:00
e63fbc992d Fix T55231: Setting bone.select from RNA didn't tag for copy on write
This was causing problems with addons such as the Selection Sets addon used
in studio by the animators.
2018-05-28 18:52:04 +02:00
e9cf3b5347 CoW: Skip pointers that are used in Lattice edit mode. 2018-05-28 13:47:05 -03:00
46d7c55b17 Cleanup: Fix typo: updata -> update 2018-05-28 13:47:04 -03:00
f8d0447dfb CoW: Skip used pointers in MetaBall edit mode. 2018-05-28 13:47:04 -03:00
f36315dd34 CoW: Skip pointers used in Text edit mode. 2018-05-28 13:47:03 -03:00
98d4d4ce58 Tool System: workaround psys cursor conflict
This needs to be solved properly, for now add cursor-click tool
which can co-exist w/ particle paint.
2018-05-28 18:16:01 +02:00
42d6b8efc0 RNA: re-enable property notifiers
While these will be removed eventually,
it makes tracking down COW buts a hassle.
2018-05-28 18:16:01 +02:00
d2f8b48f01 Depsgraph: preserve memory caches for particles when creating Copy-on-Write
Solves issue with particle memory cache ignored.

Thanks Bastien for review!
2018-05-28 18:06:45 +02:00
2f56bf3535 Workbench: Fix uninitialized variable usage. 2018-05-28 12:27:50 -03:00
272ca5772d EEVEE: LookDev storage list wrongly used 2018-05-28 17:18:58 +02:00
9b6a30d2cb Fix T55226: outliner glitch with item open/close, after recent optimization. 2018-05-28 17:10:00 +02:00
765fd29d68 EEvEE: LookDev 2018-05-28 17:07:39 +02:00
ce5fa2deca Fix: Action/Graph editor UI's didn't update when channel properties were changed
More MessageBus-related silliness to resolve issue with toggling visibility/mute/locking
status of F-Curves/Groups/etc., as well as other things like modifying active keyframe's
values, or changing properties of F-Modifiers.

I've now ended up just whitelisting in the region subscribers all the animation-related
structs in RNA. But still, that may not be enough to deal with potential issues later
with the property sliders (shown per channel, optionally), which can come from anywhere.

(Spring bug)
2018-05-28 16:54:45 +02:00
1d320f10ac UI: Option to layout properties in two columns
Needed for proposed alternate layout, see T54951.
2018-05-28 16:49:30 +02:00
4045730d58 Fix missing animation curves update when tweaking f-curves
Action is an own datablock, meaning, changes to f-curves needs
to copy those changes to all evaluated versions of action datablock.
2018-05-28 16:45:28 +02:00
e673be1ebc Merge branch 'master' into blender2.8 2018-05-28 15:25:41 +02:00
dc0eed178a Fix Cycles + OSL build error, pass main to node editing functions. 2018-05-28 00:04:14 +02:00
95c5d1193f Merge branch 'master' into blender2.8 2018-05-27 21:10:43 +02:00
fd2c48726f UI: center align number buttons w/o text
This makes supporting split properties and text possible, see T54951
2018-05-27 21:08:50 +02:00
9c8da50106 Slightly blue tinted variation of the upcoming Flatty Dark theme.
It's been requested for a while now and with the upcoming
default dark theme this is a good companion variation.
2018-05-27 19:06:25 +02:00
e7010a05be Merge branch 'master' into blender2.8
Conflicts:
	source/blender/makesrna/intern/rna_object_api.c
	source/blender/makesrna/intern/rna_scene.c
	source/blender/makesrna/intern/rna_scene_api.c
2018-05-27 18:52:28 +02:00
38cb29d67e Cleanup: Nuke most of remaining evil G.main from RNA.
The few ones in getters/setters we cannot remove as easily, for now we
can live with those I think...
2018-05-27 18:46:39 +02:00
1863883a24 Merge branch 'master' into blender2.8 2018-05-27 17:26:59 +02:00
edce44d693 Cycles: Fix problems in the IES loader when rendering with no file selected 2018-05-27 17:16:15 +02:00
47f2b3b80d Merge branch 'master' into blender2.8 2018-05-27 12:54:21 +02:00
56254a42e0 UI: replace BLI_strncpy w/ memcpy
Size is already checked.
2018-05-27 12:50:03 +02:00
4ca4e64d25 Grid: Do not go over objects in front/side ortho views.
Fixes T55190 Grid displayed on top of objects in orthographic view
2018-05-27 11:26:17 +02:00
9a74b60367 Merge branch 'master' into blender2.8 2018-05-27 11:06:29 +02:00
474971f3d8 Cleanup: unused var 2018-05-27 11:06:11 +02:00
bc3727a943 Recently added IES conflicts w/ EEVEE 2018-05-27 11:01:46 +02:00
198be6f37b Grid: Fix T51813: Opaque grid on OSX. 2018-05-27 10:50:39 +02:00
06cb460cd7 3D View: minor change to NDOF view orbit
This change is needed for 2.8, where the NULL check isn't a reliable way
of testing if dynamic offset is needed.
2018-05-27 10:34:01 +02:00
12a9e9ae33 Fix restrict error in BLI_str_format_byte_unit
Don't use sprintf to append a string to it's self.

Also correct BLI_str_rstrip_float_zero's return value.
2018-05-27 10:28:04 +02:00
7a0699db34 make.bat : Fix builtime.txt being written in the wrong folder. 2018-05-26 19:20:07 -06:00
48155c210a Cycles: Add Support for IES files as textures for light strength
This patch adds support for IES files, a file format that is commonly used to store the directional intensity distribution of light sources.
The new IES node is supposed to be plugged into the Strength input of the Emission node of the lamp.

Since people generating IES files do not really seem to care about the standard, the parser is flexible enough to accept all test files I have tried.
Some common weirdnesses are distributing values over multiple lines that should go into one line, using commas instead of spaces as delimiters and adding various useless stuff at the end of the file.

The user interface of the node is similar to the script node, the user can either select an internal Text or load a file.
Internally, IES files are handled similar to Image textures: They are stored in slots by the LightManager and each unique IES is assigned to one slot.

The local coordinate system of the lamp is used, so that the direction of the light can be changed. For UI reasons, it's usually best to add an area light,
rotate it and then change its type, since especially the point light does not immediately show its local coordinate system in the viewport.

Reviewers: #cycles, dingto, sergey, brecht

Reviewed By: #cycles, dingto, brecht

Subscribers: OgDEV, crazyrobinhood, secundar, cardboard, pisuke, intrah, swerner, micah_denn, harvester, gottfried, disnel, campbellbarton, duarteframos, Lapineige, brecht, juicyfruit, dingto, marek, rickyblender, bliblubli, lockal, sergey

Differential Revision: https://developer.blender.org/D1543
2018-05-27 01:24:57 +02:00
aefc793a81 Workbench: Shadow: Refine camera in shadow test.
Test if all nearplane points are not in front of the shadow BBox.
2018-05-27 00:15:47 +02:00
60ddea7758 Workbench: Shadows: Add frustum check and camera occlusion test.
If the object is manifold and the camera is in the shadow side, we can
use the depth fail method to fix the inverted shadow glitch.

Unfortunately this does not really work for non-manifold.

Implementation details:
We try to be as efficient as we can, we precompute camera near plane
projected into 2D shadow space so we can test for intersection with the
shadow boundbox easily.

As the intersection test is done in 2D it's pretty fast.
Unfortunately, this means the shadow bounds are all aligned to the same
space and are not the smallest bound we could extract.
2018-05-26 23:31:17 +02:00
975828e23a Armature: Fix warning. 2018-05-26 23:24:11 +02:00
8df99a5d8a DRW: Add new DRW_debug API.
This new API aim to provide simple function that can be called by the draw
engines during any phase of the draw pipeline. All calls are saved and
issued after all engines have finished rendering.

This removes the need of setuping special passes and shading groups for some
simple debug drawing.
2018-05-26 23:24:11 +02:00
c883f09fa8 Workbench: Codestyle 2018-05-26 23:24:11 +02:00
975eac0b07 Workbench: Shadow: Add shader variant for manifold case.
Totally Manifold objects only require a single increment/decrement of the
stencil value. This result in less geometry generated and less overdraw.
2018-05-26 23:21:33 +02:00
0c9974c8cd Workbench: Shadow: Use depth fail method for manifold objects.
Since this method have no failure case for manifold objects, use it.
2018-05-26 23:01:30 +02:00
ef502854fe Threads: add spinlock hit for hyperthreading processors on Windows.
Suggested by Percy Ross Tiglao.
2018-05-26 22:35:30 +02:00
44935fdfa3 Armature: Make Custom bone have the same appearance as other bones.
I had to correct some errors in the winding order of the normal bones.
2018-05-26 22:28:52 +02:00
2241a61aab Armature: Fix missing bone edges in object mode. 2018-05-26 22:28:52 +02:00
6b38fa8cab Armature: Modify Shape outline shader to use Line adjacency instead of tri.
This is much faster and simpler. This is also to make it compatible with
custom bone shape in the future.
2018-05-26 22:28:52 +02:00
581b021a1f Cleanup: unused defines 2018-05-26 13:15:55 +02:00
c9c95ed25f Cleanup: unused defines 2018-05-26 13:12:00 +02:00
75355ef426 RNA: correct naming w/ last cleanup 2018-05-26 13:06:40 +02:00
0d559a6730 RNA: follow boolean naming conventions 2018-05-26 11:54:25 +02:00
6ebcf98943 Cleanup: whitespace, long lines, duplicate include 2018-05-26 11:05:23 +02:00
3e3f6754b4 Cleanup: rename RNA property to match UI 2018-05-26 09:51:21 +02:00
33e45658eb COW Fix: Lamp manipulators 2018-05-26 09:45:58 +02:00
c9db7ceff2 make.bat: Add support for building with ninja.
ninja is an alternative to msbuild designed for fast rebuilds. However there is no IDE support, builds only from the command line.

Comparison between msbuild and ninja for a full build, build time in seconds.

Full Clean Build
msbuild     867.5
Ninja       801.2
Difference  -66.3 (-7.6%)

Minor Change
msbuild      43.0
Ninja        14.9
Difference  -28.1 (-64.4%)

No Changes
msbuild      23.0
Ninja         6.1
Difference  -16.9 (-73.5%)
2018-05-25 21:46:42 -06:00
bae880dc9e make.bat/cleanup: removed stray echo in make.bat 2018-05-25 17:59:07 -06:00
857e4e04d8 make.bat: refactor make.bat
make.bat was starting to become hard to maintain, this refactors it into separate batch files for each stage of the process.

-Improved detection of msvc2013/2015
-Improved failure handling.
-Added check for working msbuild and C++ compiler
-Added verbose switch to ease trouble shooting.
-Added Check if svn/cmake/git are in the path before using them
-Display the build configuration before asking to download the libraries
-Offer an option to recover an interrupted checkout of the libraries.
-Automatically check out sub-modules in-case they are missing.
2018-05-25 17:57:13 -06:00
64ee6f4e9f Fix error when snapping with occlusion.
Face normal may be facing the wrong side.
2018-05-25 18:43:38 -03:00
c9f7a3b32a Fix T55207, fix T55208: hair not positioned correctly after subsurf.
The problem was that the particle system modifier was reading ob->derivedDeform
during modifier stack evaluation. Due to the mesh -> DM conversion this was no
longer set leading to wrong results.

In fact we don't really need the deformed mesh, just the original mesh topology
for face/poly index remapping. So the solution is to use that instead.
2018-05-25 23:20:20 +02:00
4dee702332 Add number and memory size formatting throughout the UI
This commit adds number formatting (thousands separator) to the baking panel. It also adds a new function to format memory sizes (KB/GB/etc) and applies it to the baking panel and scene stats. The new function is unit tested.

Reviewers: Severin
Tags: #user_interface
Differential Revision: https://developer.blender.org/D1248
2018-05-25 22:41:49 +02:00
Dalai Felinto
768706c6a5 Fix eevee render settings not working
This was no longer working since 15c2801aac.
2018-05-25 19:51:18 +02:00
a3a069f493 Tool System: cursor tool now transforms on drag 2018-05-25 19:43:23 +02:00
5d2d36b068 Applied soc-2017-normal-tools 2018-05-25 22:24:24 +05:30
9dca74f0e5 [windows/make.bat] use a more reliable way of locating visual studio 2017.
The registry hack we were using wasn't very reliable, the recommended way to locating visual studio is using vswhere (15.2 and up), using it also allows to switch between the regular and pre-release versions.
2018-05-25 10:24:01 -06:00
562cf573d3 Multi-Object-Mode: EditMesh UV snap to cursor
D3422 by @Al
2018-05-25 17:28:37 +02:00
1bf2a7709f Timeline: Move Keying settings from sidebar to header as popover
Having them on the sidebar means we have to expand the editor every time.
2018-05-25 17:02:56 +02:00
8a73ea7af2 Use menu back theme colors for popover 2018-05-25 17:02:56 +02:00
988a14aa14 COW Fix: Transforming animated objects would jump when starting transforms
Just as with my earlier fix for bones (0492e56fec),
here we're reading evaluated object values into the "i" versions of each transform
property, and using the original/non-evaluated data for the pointers.

XXX:
What's not clear though is what we should be doing with the "BKE_object_where_is_calc()"
calls here. They currently use ob, but that probably shouldn't happen... and ob_eval
should in theory have a more up-to-date version of what it would need to evaluate!
2018-05-25 16:36:04 +02:00
51926de7f0 UI: popover now only centers on active button once 2018-05-25 16:31:52 +02:00
c0f9f69c7e Fix T55200: dragging object into hidden collection does not hide it. 2018-05-25 16:08:59 +02:00
5901c1ca42 UI: fix event handling direction
Correct arrow key direction in popovers,
also de-duplicate menu callback,
2018-05-25 15:47:12 +02:00
dd22080b9a Fix: X-Axis Mirror option was missing from the Pose Options popover
Although it's mostly a rigging option, sometimes it's useful to have it when posing.
2018-05-25 15:34:25 +02:00
572a9619b9 Remove DerivedMesh: paint_utils.c; Cow-ify PAINT_OT_sample_color
DM was only using it for color sampling in the 3Dview. Now it's properly
using COW evaluated versions of object and mesh instead.
2018-05-25 15:24:30 +02:00
40638e1970 Fix T55062: crash with workspace scene relations.
List of relations was saved with wrong struct type.
2018-05-25 15:06:40 +02:00
657fedbbee Style: use extra space for aligning parameters in a function. 2018-05-25 10:03:25 -03:00
8510472198 Cleanup: Change remaining BKE_scene_frame_get() in constraint.c to use DEG_get_ctime() 2018-05-25 14:49:11 +02:00
14b51b3974 Fix T55197: Dopesheet filtering settings were not triggering refresh anymore due to messagebus crap 2018-05-25 14:43:48 +02:00
Julian Eisel
dc26ef081b Fix T55198: Preferences Keybindings Crash
Operator sanitize function would be called for non operator props. Mistake from
88eafe078a.
2018-05-25 14:04:48 +02:00
45e7d609ce Fix outliner showing objects in collections instances.
It didn't do this before for groups, and while it could be useful this leads
to terrible performance when there are many instances.
2018-05-25 13:48:29 +02:00
2cc53227ab Outliner: optimize lookup of unused tree elements. 2018-05-25 13:48:29 +02:00
b11a1d5da2 UI: support for a popup panel which stays open 2018-05-25 12:55:22 +02:00
e9908134e8 UI: Move UI_paneltype_draw into layout code
No functional changes, needed for persistent popovers.
2018-05-25 12:55:22 +02:00
Dalai Felinto
fbc65c6b28 Fix T55165: Driving camera lens with property behaves unexpectedly
Differential Revision: https://developer.blender.org/D3438
2018-05-25 12:48:33 +02:00
8a78a53e3b Keymap: place cursor on press
Needed for tablet users.
2018-05-25 12:46:52 +02:00
d8a6c1d316 Cleanup/simplification for BKE_modifier_get_evaluated_mesh_from_object
* Added BKE_object_get_evaluated_mesh, which can also be used outside of
Modifier context.
* BKE_modifier_get_evaluated_mesh_from_object is now a dummy wrapper
around BKE_object_get_evaluated_mesh, we do not need anything special
anymore for RENDER quality option, since this is supposed to be handled
at depsgraph level... Maybe we can get rid of it at some point, but kind
of like the idea of keeping it for now, sounds more consitent.
2018-05-25 12:27:54 +02:00
ba6abd83b0 Cleanup: do not make functions for the pleasure of having functions... 2018-05-25 11:39:02 +02:00
f243390bd6 Cleanup: minor details in BKE paint code related to palettes.
* Always use BKE_id_new, unless you have a very good reason to use
lower-level code!
* Prefer to pass actual ID user pointer to functions like id_us_plus & co,
rather than 'floating' ID pointer, when possible. It makes it more clear
who is the user we increase count for!
2018-05-25 11:32:47 +02:00
03a80facfc Fix T55183, fix T55174: crashes with workspace / view layer relation.
Don't store pointers to ViewLayer in the workspace, only names. Add specific
relation type since the generic mechanism makes the code hard to follow.
Integrate with pointer restore for undo and library remapping code to avoid
data going out of sync.

Also add relation automatically if there doesn't exists one yet in
BKE_workspace_view_layer_get, because in general it's really hard to ensure
it will exist when making arbitrary scene changes.

Differential Revision: https://developer.blender.org/D3432
2018-05-25 11:16:58 +02:00
08da2826e0 Merge branch 'master' into blender2.8 2018-05-25 10:52:53 +02:00
9812943931 WM: check modal handlers for keymap lookups
Keep in sync with 2.8x
2018-05-25 10:51:05 +02:00
e31b8303ed UI: fix assert
Replace hard-coded button size check with UI_UNIT_X.

Caused icon-only buttons to have strings assigned based on UI-scale.
2018-05-25 10:45:48 +02:00
230943be2d Fix 3D Cursor w/ interface scale 2018-05-25 10:07:28 +02:00
ef22d2e8ad Merge branch 'master' into blender2.8 2018-05-25 10:04:25 +02:00
d02335a195 3D View: add pixelsize function w/o UI scale 2018-05-25 10:00:51 +02:00
2a6e4f7157 Cleanup: style 2018-05-25 09:45:04 +02:00
a79252d8c7 Keymap: use Ctrl-Shift-Space for fullscreen area
Closer to Shift-Space, less awkward to access.
2018-05-25 09:20:37 +02:00
f04cadd83e UI: Move Split into Mesh Menu
This doesn't just apply to faces.
2018-05-25 08:31:26 +02:00
bc9b202e65 Fix split only checking selected faces 2018-05-25 08:31:26 +02:00
51b2622814 UI: move copy/paste into the object menu
We already have per mode copy/paste in mode specific menus.
2018-05-25 08:20:19 +02:00
b611cecf4e UI: Specials menu update
- Name "Context Menu".
- Make it more context sensitive.
- Remove some more obscure items.

Patch from @billreynish
2018-05-25 08:20:19 +02:00
1be4eba27b Fix crash when entering the curve edit mode. 2018-05-24 19:22:35 -03:00
a0dbaf1d9d ED_transform_snap_object: remove unused bmain parameter in context creation. 2018-05-24 19:09:01 -03:00
302fea6b61 Change defaults
- Vertex/Edge Slide: Correct UV's = ON
- Extrude Along Normals: Even Thickness = ON
- Laplacian Smooth: Lambda Factor = 1.0
- UV/Image Editor: Normalized Coordinates = ON
- Render Image: Dithering = 1
- Image Sequence Auto Refresh = ON

See T54943
2018-05-24 21:33:39 +02:00
5e1021f78f 3D View: remove temporary edge-select hack
This caused a glitch with COW, where forcing edge selection
caused the evaluated scene to enable this afterwards.

Now pass the selection mode as an argument to the draw function.
2018-05-24 20:38:17 +02:00
c72b576aab Fix crash with snap and project to self.
Apparently the original `edit_btmesh` is being freed and the new one has to be referenced
2018-05-24 15:35:20 -03:00
357199375b Correct own last commit 2018-05-24 19:36:38 +02:00
5a431be629 Multi-Object-Editing: MESH_OT_shortest_path_select
Note from revisor: Edit the error message to match the original one.

Maniphest Tasks: T54643
Differential Revision: https://developer.blender.org/D3351
2018-05-24 19:34:22 +02:00
d209fa6e35 Fix T55184: Edge-loop select fails w/ vert/face modes 2018-05-24 19:31:07 +02:00
0983d97ab9 Fix T55186: Circle and Lasso select were not working on Pose Bones
These needed to be using the COW evaluated data, instead of the raw bone
positions.

All other datatypes still need converting to work with this though.
2018-05-24 19:13:15 +02:00
5e2f9c5c67 Cycles: Cleanup: Remove duplicated atan2f definition for OpenCL
Turns out that atan2f was already defined for OpenCL.
2018-05-24 19:08:06 +02:00
5db7f2c1ee Flatty Light
Add new Status Bar settings and minor tweaks to axis colors inspired by Andy's changes to the theme.
2018-05-24 18:50:02 +02:00
b4a8b81399 Cycles Denoising: Don't use atomics in the accumulation kernel on CPUs
The GPU kernel needs to use atomics for accumulation since all offsets are processed in
parallel, but on CPUs that's not the case, so we can disable them there for a considerable speedup.
2018-05-24 18:44:56 +02:00
b04b933acf UI: use icons in render menu 2018-05-24 18:43:16 +02:00
bef08e63d7 Keymap: remove Ctrl-Up/Down to toggle full-area
This is already accessible via Shift-Space which can be accessed
easily with one hand.
2018-05-24 18:39:05 +02:00
0864a4c1ea Always get a reference point when snapping with the projected elements option enabled. 2018-05-24 13:37:48 -03:00
8ea4539542 UI: View menu area operators now in submenu 2018-05-24 18:35:19 +02:00
f7c75e8bd7 COW Fix: Border selecting bones on rigs broke
Annoyingly, this was working as recently as yesterday...
2018-05-24 18:17:52 +02:00
12b261be41 UI: disable view context w/ OpenGL anim render
The 3D view menu can GL render from a single view
2018-05-24 18:16:06 +02:00
1cf17b257d UI: remove render panel, move operators to menu 2018-05-24 18:10:57 +02:00
132cda3925 Revert "UI: remove 'Render' top level menu"
This reverts commit 10e43c0aef.

After discussion, it's useful to have render menu
for more obscure render options.
2018-05-24 18:10:57 +02:00
7a88a7742b Drivers UI (Part of T55145) - WIP first steps towards getting a floating driver settings panel
This commit adds a new menu entry - "Edit Driver" - the RMB menu that
will show a popover panel displaying the settings for the driver you
activated the menu item on. This shows the popover panel defined in
yesterday's commit (GRAPH_PT_drivers_popover).

It is possible to edit the driver settings from this panel now.
However, do be warned that the functionality presented is highly
WIP still. There are some unresolved issues, such as:
 - The popover disappears too easily on any mouse movements/clicks
   on anything, making the panel less useful right now than it should.

 - The layout still needs refining. Currently the layout that's there
   is a bit of a placeholder until we can play around with it a bit
   more to see/feel what feels good/right or what is too much.

 - The "Open Drivers Editor" on the bottom of the panel doesn't work.
   There are some tricky context tricky things that need to happen here
   to make that case work, since the operator button won't have the necessary
   context info.
2018-05-24 18:10:21 +02:00
b2ee8e1cba Fix typo in editmesh edge delete 2018-05-24 17:49:44 +02:00
72f4bdf604 UI: add top-level 'Edit' menu
Use this for undo/redo, copy/paste & preferences.
2018-05-24 16:48:28 +02:00
6862762685 Cycles/Compositor: Add arctan2 operation to the Math node
The Math node currently has the normal atan() function, but for
actual angles this is fairly useless without additional nodes to handle the signs.

Since the node has two inputs anyways, it only makes sense to add an arctan2 option.

Reviewers: sergey, brecht

Differential Revision: https://developer.blender.org/D3430
2018-05-24 16:46:02 +02:00
d638ad3b20 Merge branch 'master' into blender2.8 2018-05-24 16:44:26 +02:00
5505ba8d47 Cycles/Eevee: Implement disk and ellipse shapes for area lamps
The implementation is pretty straightforward.

In Cycles, sampling the shapes is currently done w.r.t. area instead of solid angle.

There is a paper on solid angle sampling for disks [1], but the described algorithm is based on
simply sampling the enclosing square and rejecting samples outside of the disk, which is not exactly
great for Cycles' RNG (we'd need to setup a LCG for the repeated sampling) and for GPU divergence.

Even worse, the algorithm is only defined for disks. For ellipses, the basic idea still works, but a
way to analytically calculate the solid angle is required. This is technically possible [2], but the
calculation is extremely complex and still requires a lookup table for the Heuman Lambda function.

Therefore, I've decided to not implement that for now, we could still look into it later on.

In Eevee, the code uses the existing ltc_evaluate_disk to implement the lighting calculations.

[1]: "Solid Angle Sampling of Disk and Cylinder Lights"
[2]: "Analytical solution for the solid angle subtended at any point by an ellipse via a point source radiation vector potential"

Reviewers: sergey, brecht, fclem

Differential Revision: https://developer.blender.org/D3171
2018-05-24 16:43:47 +02:00
Dalai Felinto
e8c8ff4f86 Fix all modifiers that depended on BKE_modifier_get_evaluated_mesh_from_object
This fix applying the following modifiers:
* Boolean (working already)
* Array
* Mesh Deform
* Surface Deform
* Vertex Weight Proximity

This function was to return evaluated mesh. So it should get the evaluated
object at all times. So in this case it makes more sense to simply pass the
depsgraph (or in this case the ModifierEvalContext that contains both the
depsgraph and the flag.

Solution discussed with Bastien Montagne.
2018-05-24 16:43:21 +02:00
8d9faf840b 3D View: remove poll 3D view for copy/paste
These operators only need selected objects.
2018-05-24 16:40:33 +02:00
10e43c0aef UI: remove 'Render' top level menu
- Toggle render window is in the window menu.
- OpenGL render settings in the 3D View menu.
- Playback animation in the render panel.
2018-05-24 16:20:56 +02:00
58fadb379a Correct last commit 2018-05-24 16:09:20 +02:00
ad9278fdad UI: re-arrange 3D view menus
- Adjusted order and names for better consistency.
- Group add/edit/delete into menu sections.
- Move UV/Vertex color into 'Face Data' menu, matching 'Edge Data'.
- De-duplicate items between vertex/edge/face menu.
- Remove undo/redo menu (to be moved into 'Edit' menu).
- Remove Auto-Merge & Proportional Editing
  (already available from the 3D view).

Patch from @billreynish w/ edits
2018-05-24 16:00:11 +02:00
Dalai Felinto
ec809d0cbf Fix boolean modifier when objects have transformations
Follow up for 9406a1f195.
2018-05-24 15:56:50 +02:00
44bab06960 Fix: Name of selected object/bone + current frame in 3D view didn't take region overlap (for headers-on-bottom) into account 2018-05-24 15:43:46 +02:00
Dalai Felinto
9406a1f195 Fix cannot apply boolean modifier 2018-05-24 15:26:31 +02:00
d64fbe9456 Partial Fix for T55165: Camera manipulator was not updating when the focal length ("lens") parameter was changed directly 2018-05-24 15:26:19 +02:00
0d768cca65 Fix T55177: pose-mode manipulator placement w/ COW 2018-05-24 15:22:15 +02:00
40dfb3eed6 Oops... should rebuild before committing 2018-05-24 15:10:12 +02:00
72039cd7cc Multi Pose: Selecting a bone in one armature doesn't deselect bones in the other armatures
This was actually due to missing COW flushing of pose data on the "other"
objects (only the active object was getting tagged for updates).
2018-05-24 15:05:17 +02:00
c788bd0211 Fix: Several pose select operators were not in fact working with COW
The following operators are fixed in this commit
* POSE_OT_select_linked
* POSE_OT_select_grouped
* POSE_OT_select_mirror
2018-05-24 15:05:17 +02:00
fe820eba92 Cleanup: Some minor tweaks to code 2018-05-24 15:05:17 +02:00
dfb959b6c3 Fix missing ID pointers expansion for ID itself in readfile code.
Was breaking static override chaining (static override of a linked
datablock that is already a static override in it original lib file).

Dummy mistake, thanks to @dfelinto for finding the bug.
2018-05-24 14:56:39 +02:00
b4106ed170 Fix T55175: outliner "Show Active" not working. 2018-05-24 14:48:23 +02:00
39aea50155 Fix T55178: Cursor fails to restore on cancel
574c0fe38f caused complications
restoring the cursor.

Use WM_cursor_modal_set/restore which is intended for operator use,
calling ED_region_cursor_set after an operator runs isn't reliable.
2018-05-24 14:23:32 +02:00
Dalai Felinto
c1361d2651 Depsgraph: tag depsgraph for copy-on-write flush when RNA changes
Fixes bug with changes to properties not being flushed to the COW data.
It fixes T55144.

This is the part of rBb4b745b72064 that is required although slow.
Which was partially addressed but the rest of the commit, which in
turn broke things. So for now let's get RNA to flush slow cow, and
deal with the consequences.
2018-05-24 12:17:55 +02:00
cb3c9cba49 Fix T55171: crash with undo and linked collections.
Collections created in library file versioning need to be set as coming
from the library, otherwise they get freed on undo.
2018-05-24 12:02:56 +02:00
8766ab7526 Fix Lamps, Empties, Cameras and Speakers not using theme colors 2018-05-24 12:01:25 +02:00
b2a2983d14 Slightly smaller triangle collapse icon on panels 2018-05-24 11:23:00 +02:00
70a3b7e70c Fix T55170 and T55167: Crash adding new curve
We do the same solution as we have for mesh_evaluated.
2018-05-24 10:38:39 +02:00
Julian Eisel
2d05f91bea UI: Add theming support for the status-bar
For now not bumping subversion, even though I technically should. We can do if
needed, but would like to avoid bumping it every few days...
2018-05-24 10:26:22 +02:00
3820237ddb Workbench: in editmode the toggle xray option will be disabled
Z-Key was already taken by show hidden wires
2018-05-24 10:23:03 +02:00
7762522ecd Workbench: define to enable/disable revealage buffer. 2018-05-24 09:28:29 +02:00
e561eef3ff Workbench: Revealage buffer 2018-05-24 09:28:29 +02:00
a709e8d6bb Correct last commit 2018-05-24 09:27:13 +02:00
5df8a6eb94 Correct fix for view center
The view layers active object was not being copied.
2018-05-24 09:08:36 +02:00
153c7746ab Revert "Fix COW view center for pose mode"
This reverts commit 485990e4aa.
2018-05-24 09:08:36 +02:00
d7824de8e4 Merge branch 'master' into blender2.8 2018-05-24 09:03:07 +02:00
1318660b04 Fix T55034: Setting duplication group for multiple selected items only
affects one item

UI editing multiple selected items missed the case of PROP_POINTER
properties

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D3373
2018-05-24 09:02:17 +02:00
569a5e0d7c Merge branch 'master' into blender2.8 2018-05-24 08:48:40 +02:00
3e9b592b08 Fix Extend property of Lasso select tool in Mask editor not working
Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D3361
2018-05-24 08:41:13 +02:00
54f2e58452 Fix T54336: Extend property of Lasso select tool in Node editor does not
work

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D3360
2018-05-24 08:34:31 +02:00
5ee965eea5 Merge branch 'master' into blender2.8 2018-05-24 08:27:01 +02:00
d78894eb3e Fix T54336: Extend property of Lasso select tool in Node editor does not
work
2018-05-24 08:21:13 +02:00
176e18436c Fix T55137: Compilation failing on non-x86-64 architectures
Some conversion helper functions were (most likely by accident) contained
inside an ifdef for SSE2 support, so on e.g. ARM they would be undefined
and therefore cause compilation to fail.
2018-05-24 01:41:18 +02:00
Julian Eisel
6f20fcd598 UI: Global "Status-bar" Area (WIP)
* Add horizontal bar at bottom of all non-temp windows, similar to the Top-bar.
* Status-bar is hidden in UI-less fullscreen mode
* Current contents are preliminary and based on T54861:
** Left: Current file-path if needed. "(Modified)" note if file was changed.
** Center: Scene statistics (like in 2.7 Info Editor).
** Right: Progress-bars and reports
* Internally managed as own "STATUSBAR" editor-type (hidden in UI).
* Like with the Top-bar, Status-bar data and SDNA writing is disabled.
* Most changes in low-level screen/area code are to support layout bounds that differ from window bounds.

Design task: T54861
Main changes approved by @brecht.
2018-05-23 22:38:25 +02:00
7b58073dc0 Fix INFO_MT_surface_add
It was a copy of `INFO_MT_curve_add` (I'm sure it was not intentional).
2018-05-23 17:27:10 -03:00
67598d39b4 Revert "Depsgraph: refresh RNA that doesn't need a full rebuild"
This reverts commit b4b745b720.

This was causing a problem in 01_025_A.anim.blend from the Spring
production files, where selecting one of Autumn's bones would
result in character jumping back to the origin.
2018-05-23 20:30:17 +02:00
6955add502 Fix T55166: crash joining areas
Caused by own commit 6e40b2de7a,

Tested w/o this call and can't find any errors so commenting the call.
2018-05-23 20:25:55 +02:00
Dalai Felinto
401e975c61 Fix curve not updating when scaling Bevel Object
Note the relationship we need is from the geometry/object to the curve data,
not the curve object.

Related to T55167, though when copy-on-write is enabled, we still get a crash.
2018-05-23 20:05:17 +02:00
933a083587 UI: popup panel operator, as we have for menus 2018-05-23 19:48:28 +02:00
b642b510e1 Fix T55168: missing updates when switching particle system type. 2018-05-23 18:59:26 +02:00
b6725d3cbf Fix wrong object user count on duplicate. 2018-05-23 18:53:37 +02:00
e2a827c848 Fix crash loading without UI, after recent changes. 2018-05-23 18:32:04 +02:00
3fb38d664b Fix T55163: visibility not updated for instanced collections. 2018-05-23 18:32:04 +02:00
342d94c375 Fix compiler error: Stupid const vs non const 2018-05-23 18:29:52 +02:00
7e7680e33b Drivers UI (Part of T55145) - WIP work to prepare a panel we can shove into a popover
HINT: It's called GRAPH_PT_drivers_popover right now
2018-05-23 18:18:58 +02:00
84c3b175f6 Fix typo in header 2018-05-23 17:13:41 +02:00
485990e4aa Fix COW view center for pose mode 2018-05-23 16:45:07 +02:00
0cc2666605 Fix last usages of Scene.r.cfra in modifiers code.
Note that some modifiers-related code in BKE still uses that...
2018-05-23 16:37:36 +02:00
9cb2b9b523 Drivers UI (Part of T55145) - Show datablock that driven property belongs to instead of only the property
Otherwise, it's not clear where things are coming from.

FIXME: The icons for datablocks may not always be correct. It uses the
innermost struct's icon instead of the datablock's icon - e.g. Bone
vs Object/Armature. But, that may make more sense for users?
2018-05-23 16:32:46 +02:00
d185f5be09 Drivers UI (Part of T55145) - Refactor existing UI code to allow it to be reused
The idea is that we may be able to just take this code and put it into a
new popover panel that gets displayed when called from the UI. This should
at least work well for a first pass test of what we want this UI to look like.
2018-05-23 16:32:46 +02:00
d1e8d8f40f Drivers UI: Add the "Update Dependencies" logic into the callbacks that should be run on every button press
In theory, this should mean that we can get rid of the "Update Dependencies"
button. In practice, there may still be cases where it's still needed
(as somehow, it did end up being needed in the past, even though the RNA
calls should in theory be doing everything needed already).
2018-05-23 16:32:46 +02:00
a3ad55b346 Drivers UI: Get rid of dedicated button to remove active driver
There are multiple other ways to do it. Leaving this here just made it
easy (and dangerous) to accidentally remove the driver, and was causing
other problems with other layouts.
2018-05-23 16:32:46 +02:00
57b47ebb28 Drivers UI Cleanup (Part of T55145)
* Remove "Show Debug Info" option. Everyone has it turned on all the time,
  since it's just useful to have
* Make the "Remove Driver" button less prominent. It doesn't happen that much,
  so it shouldn't take up as much room
* Make "expressions" textbox wider (i.e. taking up the whole column width)
  by separating the label and textbox on separate lines.
* Rename "Add Variable" button to make it clearer to users what "variables"
  may be (i.e. they serve as a way to specify Inputs, just like adding a
  "Source Data" node in a nodetree)
* Regroup buttons
2018-05-23 16:32:46 +02:00
83ed0df1c2 Cleanup: Remove unused code 2018-05-23 16:32:46 +02:00
Dalai Felinto
ccabb26082 OpenGL: documentation for the builtin GPU shaders
This is intended to help developers to know how and when to use each shader.
There are plenty of undocumented shaders, but it's a matter of filling them in.

The script I used to quickly find the related shaders for a const is: P700

Original patch: D2318
2018-05-23 16:02:53 +02:00
4a2213dc9a Fix modifiers not using depsgraph time for texture evaluation.
Texture animation seems to be broken anyway currently, but at leat
modifier side it should now be OK.
2018-05-23 15:55:13 +02:00
a455e35343 UI: move vertex/edge/face into header
These are frequently accessed,
so use the newly freed space to make them more prominent.
2018-05-23 15:41:04 +02:00
Dalai Felinto
1ecfe42d37 Remove DEG_TAG_COPY_ON_WRITE tag on rna update for scene.render
This is no longer needed since rBb4b745b72064.
2018-05-23 15:34:48 +02:00
b4b745b720 Depsgraph: refresh RNA that doesn't need a full rebuild
Fixes bug with changes to properties not being flushed to the COW data.
2018-05-23 15:26:50 +02:00
6afccf6348 Workbench: Checkboard pattern for supporting objects 2018-05-23 15:22:51 +02:00
1c572b7412 Fix T55161: outliner Blender File with filter showing irrelevant libraries. 2018-05-23 14:43:24 +02:00
c44ccbc518 Cleanup: fix some weak assumptions in bone renaming code. 2018-05-23 14:23:29 +02:00
e71b12048c WM: add back Ctrl-Space to toggle full area 2018-05-23 14:11:39 +02:00
b4b569feeb Cleanup: rename idname -> name
This isn't for ID's
2018-05-23 14:11:39 +02:00
c0ac479134 Cleanup: shadow variable warning 2018-05-23 14:11:39 +02:00
7c5e174871 Fix T55160: crash renaming view layer. 2018-05-23 13:52:51 +02:00
37b947c7ef Cleanup: remove debug print. 2018-05-23 13:30:36 +02:00
07dee0f79c Fix missing autosmooth in Cycles after copy-on-write changes. 2018-05-23 13:25:06 +02:00
b20449cc08 Cycles/Render API: changes for better copy-on-write support.
Mainly just passing the depsgraph and evaluated scene and camera, instead of
the original one. Patch by Sergey, further modifications by Brecht.
2018-05-23 13:21:02 +02:00
d59b74adb3 Fix T53481: Linked scene crashes on load 2018-05-23 12:51:48 +02:00
858e8f453d Workbench: When in see through mode, only render depth of active object
in EDIT MODE
2018-05-23 12:30:42 +02:00
Julian Eisel
909d548d56 Fix T55072: Top bar disappears when loading factory settings (causing ASAN crash) 2018-05-23 12:06:38 +02:00
5667822876 Cycles: convert pointdensity from DerivedMesh to COW Mesh.
Fixes hang in regression tests.
2018-05-23 11:28:26 +02:00
8dc564096f Workbench: Renamed Object Outline to Outline.
So it fits in the pop-over
2018-05-23 10:57:50 +02:00
8d92873230 Workbench: See through
Unmultiplied the final color during compositing. Same as the revealage
buffer would do
Also use the DRW_STATE_ADDITION_FULL as it is aware of premultiplied
colors
2018-05-23 10:54:22 +02:00
e92baab348 Merge branch 'master' into blender2.8 2018-05-23 10:51:11 +02:00
d886e32270 Cleanup: strip trailing space from interface files 2018-05-23 10:48:50 +02:00
37b5c52f11 Workspace: remove deprecated view layer
Was removed in 2.80.4, this was not default and unsupported for linking.
2018-05-23 09:37:33 +02:00
8ac8ef8ec7 Workbench: Studiolights merge error? 2018-05-23 08:55:14 +02:00
44f78c95be Cleanup: move toolsystem into own include
Many files using the window manager don't access the tool-system.

This avoids rebuilding many files when the tool-system changes.
2018-05-23 08:23:16 +02:00
f5f66d4901 Workbench: Fixed Memory Leak 2018-05-23 08:20:25 +02:00
17aef80207 Multi-Object-Mode: EditCurve Subdivide
D3382 by @dgriffin91
2018-05-23 07:41:58 +02:00
647232f7f1 Multi-Object-Mode: EditCurve Select Linked
D3409 by @dgriffin91
2018-05-23 07:34:10 +02:00
504cbc1954 Merge branch 'master' into blender2.8 2018-05-23 07:30:50 +02:00
103a31f712 Fix incorrect size in aligned lockfree realloc
Thanks to @alikendarfen for finding.
2018-05-23 07:24:57 +02:00
062ee07b7f Fix some Cycles modifier stack issues with copy-on-write.
There's still many problems, but this avoids modifiers being applied twice,
subsurf render levels not being respected and hair render crashing.
2018-05-22 20:01:15 +02:00
78a26f28aa Fix own error using handler after freeing
Was introduced in e7895bac07
Only certain actions caused this, reported as T55155
2018-05-22 19:35:48 +02:00
e6c27b4dab Fix T55071: Brush preview fails 2018-05-22 19:23:06 +02:00
8aebcf8b7d Fix crash in modifier stack after recent changes. 2018-05-22 19:10:30 +02:00
2fb9a50a4f Fix T55146: hair + subsurf modifier not positioning hair correctly.
ORIGSPACE data was not being preserved correctly through subsurf.
2018-05-22 18:43:20 +02:00
c080c096ce Fix crash when HDR images are missing 2018-05-22 18:36:36 +02:00
6e8d4bcd01 Fix T55153: missing updates when changing simplify settings.
This line should not have been removed.
2018-05-22 18:17:28 +02:00
3ada840e65 blenderplayer: add stubs 2018-05-22 17:56:56 +02:00
3c44c67e96 Removed no-longer-required workaround for doubly-deformed meshes 2018-05-22 17:38:27 +02:00
66d18d93c4 Merge branch 'master' into blender2.8 2018-05-22 17:24:32 +02:00
76ece90d4a Fix T55093: Bisect + fill crash 2018-05-22 17:23:25 +02:00
f5d911f8b0 Modifiers: ported Cloth DerivedMesh → Mesh
The modifier is still quite slow; this could be due to caches being written
to a CoW datablock instead of the original one. More investigation is
needed.
2018-05-22 17:11:30 +02:00
e89fa4c85b Cloth Modifier: get time from depsgraph instead of scene 2018-05-22 17:08:57 +02:00
6953c57d2c Fix T55149: missing mesh custom data after modifier stack, after recent changes. 2018-05-22 17:07:59 +02:00
1b164cf81e Workbench: SeeThrough
added a fresnel effect

TODO: solve memory leak
2018-05-22 16:59:43 +02:00
8644eef5c3 COw operators: Fix VIEW3D_OT_snap_selected_to_grid 2018-05-22 16:44:34 +02:00
397665dea3 Fix: Deselecting bones using box select didn't work
Logic here was a bit broken.
1) We need to send updates even when deselecting bones, not only when we
   actually end up select then.
2) Also, when bones are locked for "selectability", they should not be able
   to be deselected.
2018-05-22 16:44:13 +02:00
6573af5211 Drivers Editor UI Tweaks (Part of T55145)
To bring the UI more in line with the proposed design in T54653 for the "Add Drivers"
popup panel (NOTE: this is separate from the "Drivers Editor", in previous commit!),
this commit adds a new panel - "Driven Property" to the Drivers Editor UI.

This basically duplicates the "Active F-Curve" panel (with less options)
to make it easier to see at a glance which property the Drivers Editor is
showing you.
2018-05-22 16:44:13 +02:00
c685c19df9 Drivers UI (Part of T55145): Add "Show Drivers Editor" entry to RMB menus
This commit adds an operator, "Show Drivers Editor", to the RMB menu when
clicking on properties.

As per T54653, this will open a new Graph Editor instance in a new/separate
window (much like how the User Preferences show up in a popup window now),
and will configure all the relevant panels so that you can see and edit the
driver settings immediately without doing a lot of the view configuration steps
that were previously needed.

When doing so on a property that is driven, the driver/fcurve for that property
will be made active in the editor, ready for you to start editing its settings
without having to hunt it down again first.
2018-05-22 16:44:13 +02:00
6f127b22e6 UI Tweak: Make User Preferences window slightly taller, to better fit the contents 2018-05-22 16:44:13 +02:00
6781fac42e Cleanup: warning 2018-05-22 16:12:41 +02:00
ab19609233 Fix T55069: 3D widget misses pivot-point refresh 2018-05-22 16:11:39 +02:00
53d1ec95ea Fix outliner incomplete collections right click menu in Blender File. 2018-05-22 15:49:50 +02:00
96a7ed8a15 Tool System: store operator properties in the tool
This replaces last-used property use which wasn't reliable since
properties were not considered 'set' - causing them to be ignored.
2018-05-22 15:31:06 +02:00
298f8042ef Cleanup: warning 2018-05-22 15:31:06 +02:00
cc9513d944 Fix outliner crashes when dragging elements in some cases.
Avoid rebuilding outliner tree in more cases, also helps performance.
2018-05-22 15:09:21 +02:00
d97471ddf7 Workbench: Fixed memory leak
ImBuf radiance buffers were freed incorrectly
2018-05-22 15:05:11 +02:00
dfe088c5d9 Workbench: SeeThrough draw option
Option to see through all meshes (transparency)

Works for OB_SOLID and OB_TEXTURED. Does not work for
V3D_SHADING_SHADOW.

TODO: Fresnel effect
2018-05-22 14:55:50 +02:00
ff19b527e8 Workbench: Calculate irradiance using radiance buffers 2018-05-22 14:55:50 +02:00
c7df618263 3D Cursor: Clip if behind near plane. 2018-05-22 14:33:07 +02:00
bc46034752 Cleanup: fix compiler warnings. 2018-05-22 14:17:52 +02:00
0d2aa1a7bb Cleanup: make group/collection versioning a bit more clear. 2018-05-22 14:17:51 +02:00
f99197fb2d Transform: Support mixed snap in 3d View.
Allows more than one snap mode to be enabled. So different combinations are possible.

Reviewers: campbellbarton

Reviewed By: campbellbarton

Subscribers: Christopher_Anderssarian, duarteframos

Tags: #bf_blender_2.8

Differential Revision: D3400
2018-05-22 08:58:56 -03:00
47b9d7494e Experimental Armature Drawing Tweak for Relationship Lines
Only show hierarchy relationship lines when bone or its parent is selected.
This cuts down the clutter visible in general when relationship lines are
enabled (currently they can't be disabled), which should make it more useful
to keep them on (e.g. constraint lines/hints can still be drawn this way).
2018-05-22 13:39:01 +02:00
e12df10120 COW Operators: Fix VIEW3D_OT_snap_cursor_to _active _selected _center and _grid
Reviewers: sergey, aligorith

Differential Revision: https://developer.blender.org/D3414
2018-05-22 12:20:59 +02:00
7f714fdbb2 Depsgraph: Enable copy on write by default
As was decided at today's dev kickoff, we're now moving to having
Copy-on-Write enabled by default, as 2.8 is barely functional with
it off.

To run Blender *without* COW (e.g. for testing), use:
--disable-copy-on-write
2018-05-22 12:00:23 +02:00
9fc5a0c95e Fix area tool getting out of sync w/ active tool 2018-05-22 09:41:41 +02:00
0c1676f388 WM: call keymap callback from manipulators
Not currently needed, add to avoid confusion later on.
2018-05-22 09:27:02 +02:00
6974afba82 WM: use keymap poll for manipulators 2018-05-22 09:22:20 +02:00
bb45381bc2 Merge branch 'master' into blender2.8 2018-05-22 08:49:24 +02:00
28c20fc393 Memory allocator: use lockfree calls internally
Was already used in some areas.
2018-05-22 08:45:47 +02:00
4e14437cb0 Multi-Object-Mode: EditCurve Select Random
D3405 by @dgriffin91
2018-05-22 08:25:05 +02:00
c7903f17a2 Fix memory leak in armature delete 2018-05-22 08:20:19 +02:00
ee1327a84c Multi-Object-Mode: EditLattice Select All
D3164 by @ranjian0
2018-05-22 08:11:13 +02:00
99f994e7ed Fix crash drawing edit-lattice
Edit-mode was never using batch cache.
2018-05-22 08:10:36 +02:00
17778ddeb7 Cleanup: naming
Use 'ob' prefix for objects, 'eval' suffix for evaluated data.
2018-05-22 07:48:12 +02:00
ac476375b1 Cleanup: style, whitespace 2018-05-22 07:39:16 +02:00
67cf4cb5ec Cleanup: replace MEM_SAFE_FREE -> MEM_freeN
No need to check for NULL in this case.
2018-05-22 07:28:14 +02:00
feabab6a9e Fix compilation with ndof code. 2018-05-21 21:18:12 +02:00
612364181a Static Override: Fix drivers' ID target overridability.
You need the whole chain of pointers... This was breaking static
overrides of any rig basically.

Note that this kills performances again (adding several hundreds of
thousands more stuff on a blendrig...), need a better way to handle RNA
override walking.
2018-05-21 21:14:54 +02:00
161ab6109e COW Operators: Fix VIEW3D_OT_ rotate move zoom dolly orbit roll pan smoothview and the ndof versions
Fixes camera view locking, camera related transitions and movements with the active object as pivot point
Note there can still be problems if the active object is not selectable
2018-05-21 20:33:12 +02:00
9f66d00287 CMake: only include licences for enabled libs 2018-05-21 18:41:59 +02:00
13d2df32c7 Fix broken draw code from last Thursday commit.
Seriously... Not all edges have faces!!!!!!!!

Quick fix to make it possible to load/use customshaped bones again, not
100% sure it is correct, but... At least it does not crash anymore!
2018-05-21 18:00:50 +02:00
f0fda91a55 Merge branch 'master' into blender2.8 2018-05-21 17:27:38 +02:00
20bafbd550 Cleanup: unused vars 2018-05-21 17:27:21 +02:00
605e184167 Cleanup: use const for transform internal API 2018-05-21 17:24:14 +02:00
08ba057eef Fix misuse of the use_occlusion_test parameter. 2018-05-21 11:17:19 -03:00
f14e4510ac Transform Snap: Fix normal in the wrong space. 2018-05-21 11:05:34 -03:00
575437ac90 3D View: fix scale of 3D cursor crosshair
Interface scale was applied twice.
2018-05-21 14:51:10 +02:00
fbe73d1f31 UI: fix error for tools w/o a keymap 2018-05-21 13:08:44 +02:00
3b1b625ead UI: use spacebar for toolbar
- This allows quick, consistent toolbar access
  w/o conflicting w/ the keymap.
  Where pressing space before a key activates that operator as a tool
  instead of running immediately.
- Search can still be accessed by pressing spacebar again.
- When there is no toolbar for a space, operator search still opens.
2018-05-21 12:46:26 +02:00
3102821c9c Revert "Fix/workaround RNA build error in C++ API."
This reverts commit 9f2ae547c0.

Args were reordered.
2018-05-21 12:38:52 +02:00
bdc3335016 Merge branch 'master' into blender2.8 2018-05-21 12:37:54 +02:00
882daeffc5 RNA: support for PARM_OUTPUT & PARM_RNAPTR 2018-05-21 12:34:11 +02:00
21777533fb Merge branch 'master' into blender2.8 2018-05-21 12:26:36 +02:00
6d8aa85051 Fix too much memory usage for Cycles attribute map.
Thanks to Thomas Krebs for identifying the problem and solution.
2018-05-21 11:14:59 +02:00
9f2ae547c0 Fix/workaround RNA build error in C++ API.
It seems output parameter needs to be the last one.
2018-05-21 11:13:56 +02:00
0e9605f44d Merge branch 'master' into blender2.8 2018-05-21 10:54:51 +02:00
4198c18f15 Cleanup: correct variable names 2018-05-21 10:53:50 +02:00
698dbd6500 UI: generate dynamic keymap for popup toolbar
Set keys for tools based on the current keymap.

This keeps consistency between tools immediate execution.
2018-05-21 10:46:27 +02:00
351c6d4346 Merge branch 'master' into blender2.8 2018-05-21 10:40:09 +02:00
12a60265cd WM: utility to find a keymap item from an operator
Also RNA access to WM_keyconfig_update,
needed when generating dynamic keymaps used in menus immediately after.
2018-05-21 10:35:44 +02:00
94fd828d75 Error in last commit 2018-05-21 08:22:08 +02:00
768a152883 UI: proof of concept keymap for the popup toolbar 2018-05-20 22:39:19 +02:00
e7895bac07 UI: support for custom keymaps for popovers 2018-05-20 22:39:14 +02:00
46514cf865 COW Operators: Fix VIEW3D_OT_view_all and camera mode of VIEW3D_OT_viewnumpad
Reviewers: sergey, aligorith

Maniphest Tasks: T54829

Differential Revision: https://developer.blender.org/D3314
2018-05-20 20:05:26 +02:00
8e0953eb49 COW Operators: Fix VIEW3D_OT_view_lock_to_active
Reviewers: aligorith, sergey

Maniphest Tasks: T54829

Differential Revision: https://developer.blender.org/D3365
2018-05-20 19:48:58 +02:00
d3def53be5 Workbench: Shadow: Add support for completly manifold geom.
If a mesh is known to be manifold, then it's not necessary to increment the
stencil buffer 2 times anymore. But we still need to account properly for
degenerate triangles.

In this case, only generate a quad if the tri is facing the lamp. If there
is a degenerate loop, the other edge will either cancel the increment (if
it is also facing the light) or not produce a quad (if not facing).

This will always give the correct count.
2018-05-20 19:17:11 +02:00
4bbb1d4e5e DRW: Rename some DRW_STATE_* for more consistency. 2018-05-20 19:17:11 +02:00
7a28dea1e1 Workbench: Shadow: Add Depth Fail method
Also add new debug visualisation.

Depth fail method is not used for the moment but has nice benefits. It will
be used efficiently in the future.
2018-05-20 19:14:22 +02:00
2c6106247b Workbench: Precompute light direction in object space.
Avoid 2 matrix multiplication in the shader.
2018-05-20 19:14:22 +02:00
ef90d46700 Workbench: Shadow: Add geometry instancing extension.
This give a very slight perf boost. (2ms gain over 67ms total in my test)
2018-05-20 19:14:22 +02:00
24cc976d55 Workbench: Shadows: Fix corner case with degenerate triangles.
Seems that degenerate tris are somewhat widely used in modeling. So we need
to fix this. Test the edges in the geom shader since the adjacency info is
only dependant on topology, not actual vertex placement.

This fixes most of the remaining noise issues. Only a few artifacts appear
on really weird models. So if you want to get rid of the artifacts, fix
your model!
2018-05-20 19:14:22 +02:00
687f09a8ad Workbench: Optimize Shadows.
This makes the shadows ~10 times faster in the general case.

This only create extrusion geometry on the outline edges. Also we increment
or decrement the stencil buffer by 2 for each manifold edge and only by 1
for non manifold. This make the algorithm robust yet less heavy than creating
one prism for each triangles.
2018-05-20 19:14:22 +02:00
883cb58355 GWN: Add Line Adjacency primitive support. 2018-05-20 19:14:22 +02:00
4308602d6a Fix: crash when rotating the view in pose mode 2018-05-20 17:44:50 +02:00
8cb6ede2bf UI: locate popover w/ active item under cursor
Use when popover has no parent, useful for accessing the toolbar.
2018-05-20 09:58:46 +02:00
7959617fb6 Cleanup: line length 2018-05-20 09:04:18 +02:00
12eb29fe35 Cleanup: whitespace, duplicate includes 2018-05-20 08:52:56 +02:00
96a3a62861 Hacky Fix: Changing frames by setting Scene.frame_current directly didn't update rigs in 3D viewport
Operators did not suffer from this problem as they were still just using notifiers
directly. The "proper" fix is to use the new message bus system. But, we've
got enough problems dealing with COW already as it is now... moving on.
2018-05-19 20:18:45 +02:00
0492e56fec Fix: When trying to transform animated bones, they would jump to and use random old values
The transform code needed to use data from the "_eval" copy of the posebone
instead of the main-db version, otherwise the initial/reset value would be
wrong, causing the jumping.
2018-05-19 19:54:47 +02:00
aca892832a Add back temporary exception for pose bones in DEG_get_evaluated_rna_pointer()
Without the exception, adding new poses to pose libraries took several seconds
with only <= 4 bones selected. While we may still need this for other cases too,
since bones are such a common use case, it makes sense to provide some level
of optimisation for them.
2018-05-19 19:54:47 +02:00
006b8e6092 Cleanup: Remove temporary debugging code 2018-05-19 19:54:47 +02:00
4a0dea88bf WIP: Improved implementation of DEG_get_evaluated_rna_pointer()
This now works by getting the RNA Path from the given PointerRNA to go from the
ID block to the data it points to, then uses this path to find the new data
relative to the COW ID.

Note: This currently still has all the debug prints left in - As can be seen,
I was testing this against the earlier PoseBone hack/special case. We may still
need to bring such special cases back in future, since looking up RNA Paths
like this can be slow.
2018-05-19 19:54:47 +02:00
6ba28ff8b1 WIP COW Fix: Insert keyframe operators/api now queries depsgraph for evaluated data
When using copy on write, insert keyframe operators were reading from old
bmain data instead of COW data. This meant that inserting keyframes would
often read old/stale data, resulting in invalid keyframes getting created
(e.g. from last transform operation, instead of actual current state).

This commit makes it so that keyframing operators will ask depsgraph for
the evaluated copy of the data, so that it can read values from that. It
introduces a new function - `DEG_get_evaluated_rna_pointer()`, which when
working correctly/fully, should work just like the other `DEG_get_evaluated_*()`
functions, except it lets you pass in an RNA Pointer.

However, currently, this is only done for Pose Bones (as a dirty hack, since this
is an important/pivotal requirement for production) and/or datablock
properties directly (since we can just use the DEG_get_evaluated_id() directly).
on the datablock.

Committing to a branch for now as this all needs more testing. More work to come
later at a more sane time of day!
2018-05-19 19:54:47 +02:00
06737a8258 UI: popover-once (click-drag for single actions)
Experimental support for using popovers like menus,
use this when the user hold the mouse down
(previously this did nothing).

This means turning frequently accessed menu items into
popovers doesn't add more clicks to the existing use case.
2018-05-19 19:16:47 +02:00
e65643b9a3 Cleanup: style
No need to use text keyword arg for labels
2018-05-19 16:25:40 +02:00
7cbf5db248 UI: don't disable snap popover in topbar
Snap settings still apply when transforming (holding Ctrl)

Also no need to prevent proportional edit menu from opening,
showing inactive is enough.
2018-05-19 16:23:54 +02:00
d3c89f50a0 UI: Use popover for toolbar popup operator
- Currently the popup closes immediately, could be made configurable.
- Support exiting popups when their submenu's are accessed.
2018-05-19 10:25:52 +02:00
671797e22e Correct last commit 2018-05-18 23:14:56 +02:00
ddebf1ea3b UI: Add menu to show the toolbar
For people who prefer to keep the toolbar hidden,
expose as a menu (currently Shift-Space).
2018-05-18 22:28:59 +02:00
e785048ef3 Fix snap with occlusion. 2018-05-18 17:26:22 -03:00
4df99bd601 Ruler: Fix mixed snap. 2018-05-18 17:12:20 -03:00
a0b03d3fb2 Tool System: use classmethod for drawing
Allows the toolbar to be included in a popup.
2018-05-18 21:18:33 +02:00
e7d2a4718d Fix popover args when called from Python 2018-05-18 21:00:16 +02:00
1fd11dd3ba Cleanup: comments, use negate_mat3_m4 2018-05-18 19:56:34 +02:00
ffaf55be94 Cycles/Eevee tests: add compare.html to see difference between the engines. 2018-05-18 18:08:01 +02:00
5528 changed files with 308042 additions and 312929 deletions

44
.editorconfig Normal file
View File

@@ -0,0 +1,44 @@
# C/C++
[*.{c,cc,h,hh,inl,glsl}]
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = tab
indent_size = 4
max_line_length = 120
# CMake & Text
[*.{cmake,txt}]
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = tab
indent_size = 4
max_line_length = 120
# Python
[*.py]
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = space
indent_size = 4
max_line_length = 120
# Shell
[*.sh]
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = tab
indent_size = 4
max_line_length = 120
# reStructuredText
[*.rst]
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = space
indent_size = 3
max_line_length = 120

2
.gitmodules vendored
View File

@@ -6,7 +6,7 @@
[submodule "release/scripts/addons_contrib"]
path = release/scripts/addons_contrib
url = ../blender-addons-contrib.git
branch = master
branch = blender2.8
ignore = all
[submodule "release/datafiles/locale"]
path = release/datafiles/locale

View File

@@ -62,6 +62,11 @@ if(NOT DEFINED CMAKE_BUILD_TYPE_INIT)
set(CMAKE_BUILD_TYPE_INIT "Release")
endif()
# Omit superfluous "Up-to-date" messages.
if(NOT DEFINED CMAKE_INSTALL_MESSAGE)
set(CMAKE_INSTALL_MESSAGE "LAZY")
endif()
# quiet output for Makefiles, 'make -s' helps too
# set_property(GLOBAL PROPERTY RULE_MESSAGES OFF)
@@ -110,7 +115,11 @@ enable_testing()
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE INTERNAL "" FORCE)
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE INTERNAL "" FORCE)
set(TESTS_OUTPUT_DIR ${EXECUTABLE_OUTPUT_PATH}/tests CACHE INTERNAL "" FORCE)
if(MSVC)
set(TESTS_OUTPUT_DIR ${EXECUTABLE_OUTPUT_PATH}/tests/$<CONFIG>/ CACHE INTERNAL "" FORCE)
else()
set(TESTS_OUTPUT_DIR ${EXECUTABLE_OUTPUT_PATH}/tests/ CACHE INTERNAL "" FORCE)
endif()
#-----------------------------------------------------------------------------
# Set default config options
@@ -196,11 +205,11 @@ mark_as_advanced(WITH_BLENDER)
option(WITH_INTERNATIONAL "Enable I18N (International fonts and text)" ON)
option(WITH_PYTHON "Enable Embedded Python API (only disable for development)" ON)
option(WITH_PYTHON_SECURITY "Disables execution of scripts within blend files by default" ON)
mark_as_advanced(WITH_PYTHON) # dont want people disabling this unless they really know what they are doing.
option(WITH_PYTHON_SECURITY "Disables execution of scripts within blend files by default" ON)
mark_as_advanced(WITH_PYTHON) # don't want people disabling this unless they really know what they are doing.
mark_as_advanced(WITH_PYTHON_SECURITY) # some distributions see this as a security issue, rather than have them patch it, make a build option.
option(WITH_PYTHON_SAFETY "Enable internal API error checking to track invalid data to prevent crash on access (at the expense of some effeciency, only enable for development)." OFF)
option(WITH_PYTHON_SAFETY "Enable internal API error checking to track invalid data to prevent crash on access (at the expense of some efficiency, only enable for development)." OFF)
mark_as_advanced(WITH_PYTHON_SAFETY)
option(WITH_PYTHON_MODULE "Enable building as a python module which runs without a user interface, like running regular blender in background mode (experimental, only enable for development), installs to PYTHON_SITE_PACKAGES (or CMAKE_INSTALL_PREFIX if WITH_INSTALL_PORTABLE is enabled)." OFF)
if(APPLE)
@@ -212,8 +221,8 @@ if(${CMAKE_VERSION} VERSION_LESS 2.8.8)
# add_library OBJECT arg unsupported
set(WITH_BUILDINFO OFF)
endif()
set(BUILDINFO_OVERRIDE_DATE "" CACHE STRING "Use instead of the current date for reproducable builds (empty string disables this option)")
set(BUILDINFO_OVERRIDE_TIME "" CACHE STRING "Use instead of the current time for reproducable builds (empty string disables this option)")
set(BUILDINFO_OVERRIDE_DATE "" CACHE STRING "Use instead of the current date for reproducible builds (empty string disables this option)")
set(BUILDINFO_OVERRIDE_TIME "" CACHE STRING "Use instead of the current time for reproducible builds (empty string disables this option)")
set(CPACK_OVERRIDE_PACKAGENAME "" CACHE STRING "Use instead of the standard packagename (empty string disables this option)")
mark_as_advanced(CPACK_OVERRIDE_PACKAGENAME)
mark_as_advanced(BUILDINFO_OVERRIDE_DATE)
@@ -227,13 +236,14 @@ option(WITH_SYSTEM_BULLET "Use the systems bullet library (currently unsupported
mark_as_advanced(WITH_SYSTEM_BULLET)
option(WITH_OPENCOLORIO "Enable OpenColorIO color management" ${_init_OPENCOLORIO})
option(WITH_CLAY_ENGINE "Enable Clay engine" ON)
# Compositor
option(WITH_COMPOSITOR "Enable the tile based nodal compositor" ON)
option(WITH_OPENSUBDIV "Enable OpenSubdiv for surface subdivision" _init_OPENSUBDIV)
option(WITH_OPENSUBDIV_MODIFIER "Use OpenSubdiv for CPU side of Subsurf/Multires modifiers" OFF)
mark_as_advanced(WITH_OPENSUBDIV_MODIFIER)
option(WITH_OPENVDB "Enable features relying on OpenVDB" OFF)
option(WITH_OPENVDB_BLOSC "Enable blosc compression for OpenVDB, only enable if OpenVDB was built with blosc support" OFF)
option(WITH_OPENVDB_3_ABI_COMPATIBLE "Assume OpenVDB library has been compiled with version 3 ABI compatibility" OFF)
@@ -286,9 +296,6 @@ else()
endif()
# (unix defaults to System OpenJPEG On)
option(WITH_SYSTEM_OPENJPEG "Use the operating systems OpenJPEG library" OFF)
if(UNIX AND NOT APPLE)
option(WITH_SYSTEM_EIGEN3 "Use the systems Eigen3 library" OFF)
endif()
@@ -372,7 +379,9 @@ if(UNIX AND NOT APPLE)
endif()
option(WITH_PYTHON_INSTALL "Copy system python into the blender install folder" ON)
if(WITH_PYTHON_INSTALL OR (WITH_AUDASPACE AND NOT WITH_SYSTEM_AUDASPACE))
if(WIN32 OR APPLE)
# Windows and macOS have this bundled with Python libraries.
elseif(WITH_PYTHON_INSTALL OR (WITH_AUDASPACE AND NOT WITH_SYSTEM_AUDASPACE))
set(PYTHON_NUMPY_PATH "" CACHE PATH "Path to python site-packages or dist-packages containing 'numpy' module")
mark_as_advanced(PYTHON_NUMPY_PATH)
set(PYTHON_NUMPY_INCLUDE_DIRS ${PYTHON_NUMPY_PATH}/numpy/core/include CACHE PATH "Path to the include directory of the numpy module")
@@ -396,9 +405,12 @@ option(WITH_CYCLES "Enable Cycles Render Engine" ON)
option(WITH_CYCLES_STANDALONE "Build Cycles standalone application" OFF)
option(WITH_CYCLES_STANDALONE_GUI "Build Cycles standalone with GUI" OFF)
option(WITH_CYCLES_OSL "Build Cycles with OSL support" ${_init_CYCLES_OSL})
option(WITH_CYCLES_EMBREE "Build Cycles with Embree support" OFF)
option(WITH_CYCLES_OPENSUBDIV "Build Cycles with OpenSubdiv support" ${_init_CYCLES_OPENSUBDIV})
option(WITH_CYCLES_CUDA_BINARIES "Build Cycles CUDA binaries" OFF)
option(WITH_CYCLES_CUBIN_COMPILER "Build cubins with nvrtc based compiler instead of nvcc" OFF)
option(WITH_CYCLES_CUDA_BUILD_SERIAL "Build cubins one after another (useful on machines with limited RAM)" OFF)
mark_as_advanced(WITH_CYCLES_CUDA_BUILD_SERIAL)
set(CYCLES_CUDA_BINARIES_ARCH sm_30 sm_35 sm_37 sm_50 sm_52 sm_60 sm_61 CACHE STRING "CUDA architectures to build binaries for")
mark_as_advanced(CYCLES_CUDA_BINARIES_ARCH)
unset(PLATFORM_DEFAULT)
@@ -441,7 +453,7 @@ mark_as_advanced(WITH_MEM_VALGRIND)
option(WITH_CXX_GUARDEDALLOC "Enable GuardedAlloc for C++ memory allocation tracking (only enable for development)" OFF)
mark_as_advanced(WITH_CXX_GUARDEDALLOC)
option(WITH_ASSERT_ABORT "Call abort() when raising an assertion through BLI_assert()" OFF)
option(WITH_ASSERT_ABORT "Call abort() when raising an assertion through BLI_assert()" ON)
mark_as_advanced(WITH_ASSERT_ABORT)
option(WITH_BOOST "Enable features depending on boost" ON)
@@ -460,11 +472,13 @@ endif()
# OpenGL
option(WITH_OPENGL "When off limits visibility of the opengl headers to just bf_gpu and gawain (temporary option for development purposes)" ON)
option(WITH_GLEW_ES "Switches to experimental copy of GLEW that has support for OpenGL ES. (temporary option for development purposes)" OFF)
option(WITH_GL_EGL "Use the EGL OpenGL system library instead of the platform specific OpenGL system library (CGL, glX, or WGL)" OFF)
option(WITH_GL_PROFILE_ES20 "Support using OpenGL ES 2.0. (thru either EGL or the AGL/WGL/XGL 'es20' profile)" OFF)
mark_as_advanced(
WITH_OPENGL
WITH_GLEW_ES
WITH_GL_EGL
WITH_GL_PROFILE_ES20
@@ -485,26 +499,6 @@ if(WIN32)
set(CPACK_INSTALL_PREFIX ${CMAKE_GENERIC_PROGRAM_FILES}/${})
endif()
# Experimental support of C11 and C++11
#
# We default options to whatever default standard in the current compiler.
if(APPLE)
set(_c11_init ON)
set(_cxx11_init ON)
set(WITH_C11 ON)
set(WITH_CXX11 ON)
elseif(CMAKE_COMPILER_IS_GNUCC AND (NOT "${CMAKE_C_COMPILER_VERSION}" VERSION_LESS "6.0") AND (NOT WITH_CXX11))
set(_c11_init ON)
else()
set(_c11_init OFF)
endif()
set(_cxx11_init ON)
option(WITH_C11 "Build with C11 standard enabled, for development use only!" ${_c11_init})
mark_as_advanced(WITH_C11)
option(WITH_CXX11 "Build with C++11 standard enabled, for development use only!" ${_cxx11_init})
mark_as_advanced(WITH_CXX11)
# Compiler toolchain
if(CMAKE_COMPILER_IS_GNUCC)
option(WITH_LINKER_GOLD "Use ld.gold linker which is usually faster than ld.bfd" ON)
@@ -523,9 +517,7 @@ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
-fsanitize=enum \
-fsanitize=float-cast-overflow \
-fsanitize=float-divide-by-zero \
-fsanitize=leak \
-fsanitize=nonnull-attribute \
-fsanitize=object-size \
-fsanitize=returns-nonnull-attribute \
-fsanitize=signed-integer-overflow \
-fsanitize=undefined \
@@ -533,6 +525,9 @@ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
-fno-sanitize=alignment \
")
if(NOT MSVC) # not all sanitizers are supported with clang-cl, these two however are very vocal about it
set(_asan_defaults "${_asan_defaults} -fsanitize=leak -fsanitize=object-size" )
endif()
set(COMPILER_ASAN_CFLAGS "${_asan_defaults}" CACHE STRING "C flags for address sanitizer")
mark_as_advanced(COMPILER_ASAN_CFLAGS)
set(COMPILER_ASAN_CXXFLAGS "${_asan_defaults}" CACHE STRING "C++ flags for address sanitizer")
@@ -540,9 +535,16 @@ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
unset(_asan_defaults)
find_library(COMPILER_ASAN_LIBRARY asan ${CMAKE_C_IMPLICIT_LINK_DIRECTORIES})
if(NOT MSVC)
find_library(COMPILER_ASAN_LIBRARY asan ${CMAKE_C_IMPLICIT_LINK_DIRECTORIES})
else()
find_library( COMPILER_ASAN_LIBRARY NAMES clang_rt.asan-x86_64
PATHS
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\LLVM\\LLVM;]/lib/clang/7.0.0/lib/windows
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\LLVM\\LLVM;]/lib/clang/6.0.0/lib/windows
)
endif()
mark_as_advanced(COMPILER_ASAN_LIBRARY)
endif()
endif()
@@ -566,6 +568,9 @@ if(WIN32)
option(WINDOWS_USE_VISUAL_STUDIO_FOLDERS "Organize the visual studio project according to source folders." ON)
mark_as_advanced(WINDOWS_USE_VISUAL_STUDIO_FOLDERS)
option(WINDOWS_PYTHON_DEBUG "Include the files needed for debugging python scripts with visual studio 2017+." OFF)
mark_as_advanced(WINDOWS_PYTHON_DEBUG)
endif()
# avoid using again
@@ -608,18 +613,14 @@ if(NOT WITH_BLENDER AND NOT WITH_CYCLES_STANDALONE)
)
endif()
if(NOT WITH_CXX11)
if(WITH_AUDASPACE AND NOT WITH_SYSTEM_AUDASPACE)
message(FATAL_ERROR "WITH_AUDASPACE requires WITH_CXX11")
endif()
endif()
if(NOT WITH_AUDASPACE)
if(WITH_OPENAL)
message(FATAL_ERROR "WITH_OPENAL requires WITH_AUDASPACE")
message(WARNING "WITH_OPENAL requires WITH_AUDASPACE which is disabled")
set(WITH_OPENAL OFF)
endif()
if(WITH_JACK)
message(FATAL_ERROR "WITH_JACK requires WITH_AUDASPACE")
message(WARNING "WITH_JACK requires WITH_AUDASPACE which is disabled")
set(WITH_JACK OFF)
endif()
endif()
@@ -662,11 +663,8 @@ elseif(WITH_CYCLES OR WITH_OPENIMAGEIO OR WITH_INTERNATIONAL OR
WITH_OPENVDB OR WITH_OPENCOLORIO)
# Keep enabled
else()
# New dependency graph needs either Boost or C++11 for function bindings.
if(NOT WITH_CXX11)
# Enabled but we don't need it
set(WITH_BOOST OFF)
endif()
# Disable boost if not needed.
set(WITH_BOOST OFF)
endif()
# auto enable openimageio for cycles
@@ -723,9 +721,6 @@ if(WITH_BUILDINFO)
endif()
endif()
TEST_SHARED_PTR_SUPPORT()
TEST_UNORDERED_MAP_SUPPORT()
if(WITH_AUDASPACE)
if(NOT WITH_SYSTEM_AUDASPACE)
set(AUDASPACE_C_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/extern/audaspace/bindings/C" "${CMAKE_BINARY_DIR}/extern/audaspace")
@@ -798,7 +793,8 @@ set(C_WARNINGS)
set(CXX_WARNINGS)
# for gcc -Wno-blah-blah
set(CC_REMOVE_STRICT_FLAGS)
set(C_REMOVE_STRICT_FLAGS)
set(CXX_REMOVE_STRICT_FLAGS)
# libraries to link the binary with passed to target_link_libraries()
# known as LLIBS to scons
@@ -810,14 +806,20 @@ set(PLATFORM_LINKLIBS "")
set(PLATFORM_LINKFLAGS "")
set(PLATFORM_LINKFLAGS_DEBUG "")
if(WITH_COMPILER_ASAN)
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${COMPILER_ASAN_CFLAGS}")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} ${COMPILER_ASAN_CFLAGS}")
if (NOT CMAKE_BUILD_TYPE MATCHES "Release")
if(WITH_COMPILER_ASAN)
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${COMPILER_ASAN_CFLAGS}")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} ${COMPILER_ASAN_CFLAGS}")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${COMPILER_ASAN_CXXFLAGS}")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${COMPILER_ASAN_CXXFLAGS}")
set(PLATFORM_LINKFLAGS_DEBUG "${COMPILER_ASAN_LIBRARY}")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${COMPILER_ASAN_CXXFLAGS}")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${COMPILER_ASAN_CXXFLAGS}")
if(MSVC)
set(COMPILER_ASAN_LINKER_FLAGS "/FUNCTIONPADMIN:6")
endif()
set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS};${COMPILER_ASAN_LIBRARY}")
set(PLATFORM_LINKFLAGS "${COMPILER_ASAN_LIBRARY} ${COMPILER_ASAN_LINKER_FLAGS}")
set(PLATFORM_LINKFLAGS_DEBUG "${COMPILER_ASAN_LIBRARY} ${COMPILER_ASAN_LINKER_FLAGS}")
endif()
endif()
#-----------------------------------------------------------------------------
@@ -840,7 +842,7 @@ if(WITH_X11)
endif()
if(WITH_X11_XF86VMODE)
# XXX, why dont cmake make this available?
# XXX, why doesn't cmake make this available?
find_library(X11_Xxf86vmode_LIB Xxf86vm ${X11_LIB_SEARCH_PATH})
mark_as_advanced(X11_Xxf86vmode_LIB)
if(X11_Xxf86vmode_LIB)
@@ -937,7 +939,7 @@ endif()
if(SUPPORT_SSE2_BUILD)
set(PLATFORM_CFLAGS " ${PLATFORM_CFLAGS} ${COMPILER_SSE2_FLAG}")
add_definitions(-D__SSE2__)
if(NOT SUPPORT_SSE_BUILD) # dont double up
if(NOT SUPPORT_SSE_BUILD) # don't double up
add_definitions(-D__MMX__)
endif()
endif()
@@ -950,7 +952,7 @@ if(MSVC)
# OSX-Note: as we do cross-compiling with specific set architecture,
# endianess-detection and auto-setting is counterproductive
# so we just set endianess according CMAKE_OSX_ARCHITECTURES
# so we just set endianness according CMAKE_OSX_ARCHITECTURES
elseif(CMAKE_OSX_ARCHITECTURES MATCHES i386 OR CMAKE_OSX_ARCHITECTURES MATCHES x86_64)
add_definitions(-D__LITTLE_ENDIAN__)
@@ -968,16 +970,11 @@ else()
unset(_SYSTEM_BIG_ENDIAN)
endif()
if(WITH_IMAGE_OPENJPEG)
if(WITH_SYSTEM_OPENJPEG)
# dealt with above
set(OPENJPEG_DEFINES "")
else()
set(OPENJPEG_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/extern/libopenjpeg")
set(OPENJPEG_DEFINES "-DOPJ_STATIC")
endif()
# Special handling of Windows platform where openjpeg is always static.
if(WIN32)
set(OPENJPEG_DEFINES "-DOPJ_STATIC")
else()
set(OPENJPEG_DEFINES "")
endif()
endif()
@@ -991,6 +988,10 @@ endif()
find_package(OpenGL)
blender_include_dirs_sys("${OPENGL_INCLUDE_DIR}")
if(WITH_OPENGL)
add_definitions(-DWITH_OPENGL)
endif()
if(WITH_SYSTEM_GLES)
find_package_wrapper(OpenGLES)
endif()
@@ -1193,7 +1194,7 @@ else()
list(APPEND GL_DEFINITIONS -DGLEW_STATIC)
# This won't affect the non-experimental glew library,
# This won't affect the non-experimental glew library,
# but is used for conditional compilation elsewhere.
list(APPEND GL_DEFINITIONS -DGLEW_NO_ES)
@@ -1271,42 +1272,8 @@ endif()
# Configure Ceres
if(WITH_LIBMV)
set(CERES_DEFINES)
if(WITH_CXX11)
# nothing to be done
elseif(SHARED_PTR_FOUND)
if(SHARED_PTR_TR1_MEMORY_HEADER)
list(APPEND CERES_DEFINES -DCERES_TR1_MEMORY_HEADER)
endif()
if(SHARED_PTR_TR1_NAMESPACE)
list(APPEND CERES_DEFINES -DCERES_TR1_SHARED_PTR)
endif()
else()
message(FATAL_ERROR "Ceres: Unable to find shared_ptr.")
endif()
if(WITH_CXX11)
list(APPEND CERES_DEFINES -DCERES_STD_UNORDERED_MAP)
elseif(HAVE_STD_UNORDERED_MAP_HEADER)
if(HAVE_UNORDERED_MAP_IN_STD_NAMESPACE)
list(APPEND CERES_DEFINES -DCERES_STD_UNORDERED_MAP)
else()
if(HAVE_UNORDERED_MAP_IN_TR1_NAMESPACE)
list(APPEND CERES_DEFINES -DCERES_STD_UNORDERED_MAP_IN_TR1_NAMESPACE)
else()
list(APPEND CERES_DEFINES -DCERES_NO_UNORDERED_MAP)
message(STATUS "Ceres: Replacing unordered_map/set with map/set (warning: slower!)")
endif()
endif()
else()
if(HAVE_UNORDERED_MAP_IN_TR1_NAMESPACE)
list(APPEND CERES_DEFINES -DCERES_TR1_UNORDERED_MAP)
else()
list(APPEND CERES_DEFINES -DCERES_NO_UNORDERED_MAP)
message(STATUS "Ceres: Replacing unordered_map/set with map/set (warning: slower!)")
endif()
endif()
# We always have C++11 which includes unordered_map.
set(CERES_DEFINES -DCERES_STD_UNORDERED_MAP)
endif()
#-----------------------------------------------------------------------------
@@ -1397,16 +1364,22 @@ if(CMAKE_COMPILER_IS_GNUCC)
endif()
# flags to undo strict flags
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_DEPRECATED_DECLARATIONS -Wno-deprecated-declarations)
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter)
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_FUNCTION -Wno-unused-function)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_DEPRECATED_DECLARATIONS -Wno-deprecated-declarations)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_FUNCTION -Wno-unused-function)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_TYPE_LIMITS -Wno-type-limits)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_INT_IN_BOOL_CONTEXT -Wno-int-in-bool-context)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_FORMAT -Wno-format)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_SWITCH -Wno-switch)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_CLASS_MEMACCESS -Wno-class-memaccess)
if(CMAKE_COMPILER_IS_GNUCC AND (NOT "${CMAKE_C_COMPILER_VERSION}" VERSION_LESS "7.0"))
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_IMPLICIT_FALLTHROUGH -Wno-implicit-fallthrough)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_IMPLICIT_FALLTHROUGH -Wno-implicit-fallthrough)
endif()
if(NOT APPLE)
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_ERROR_UNUSED_BUT_SET_VARIABLE -Wno-error=unused-but-set-variable)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_ERROR_UNUSED_BUT_SET_VARIABLE -Wno-error=unused-but-set-variable)
endif()
elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
@@ -1435,23 +1408,23 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
# ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNUSED_MACROS -Wunused-macros)
# flags to undo strict flags
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter)
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_MACROS -Wno-unused-macros)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_MACROS -Wno-unused-macros)
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_MISSING_VARIABLE_DECLARATIONS -Wno-missing-variable-declarations)
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_INCOMPAT_PTR_DISCARD_QUAL -Wno-incompatible-pointer-types-discards-qualifiers)
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_FUNCTION -Wno-unused-function)
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_INT_TO_VOID_POINTER_CAST -Wno-int-to-void-pointer-cast)
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_MISSING_PROTOTYPES -Wno-missing-prototypes)
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_DUPLICATE_ENUM -Wno-duplicate-enum)
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_UNDEF -Wno-undef)
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_MISSING_NORETURN -Wno-missing-noreturn)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_MISSING_VARIABLE_DECLARATIONS -Wno-missing-variable-declarations)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_INCOMPAT_PTR_DISCARD_QUAL -Wno-incompatible-pointer-types-discards-qualifiers)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_FUNCTION -Wno-unused-function)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_INT_TO_VOID_POINTER_CAST -Wno-int-to-void-pointer-cast)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_MISSING_PROTOTYPES -Wno-missing-prototypes)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_DUPLICATE_ENUM -Wno-duplicate-enum)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNDEF -Wno-undef)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_MISSING_NORETURN -Wno-missing-noreturn)
ADD_CHECK_CXX_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_PRIVATE_FIELD -Wno-unused-private-field)
ADD_CHECK_CXX_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS CXX_WARN_NO_CXX11_NARROWING -Wno-c++11-narrowing)
ADD_CHECK_CXX_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS CXX_WARN_NO_NON_VIRTUAL_DTOR -Wno-non-virtual-dtor)
ADD_CHECK_CXX_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_MACROS -Wno-unused-macros)
ADD_CHECK_CXX_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS CXX_WARN_NO_REORDER -Wno-reorder)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_PRIVATE_FIELD -Wno-unused-private-field)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_CXX11_NARROWING -Wno-c++11-narrowing)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_NON_VIRTUAL_DTOR -Wno-non-virtual-dtor)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_MACROS -Wno-unused-macros)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_REORDER -Wno-reorder)
elseif(CMAKE_C_COMPILER_ID MATCHES "Intel")
@@ -1472,6 +1445,7 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "MSVC")
# warning level:
"/W3"
"/w34062" # switch statement contains 'default' but no 'case' labels
"/w34189" # local variable is initialized but not referenced
# disable:
"/wd4018" # signed/unsigned mismatch
"/wd4146" # unary minus operator applied to unsigned type, result still unsigned
@@ -1483,7 +1457,8 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "MSVC")
"/wd4267" # conversion from 'size_t' to 'type', possible loss of data
"/wd4305" # truncation from 'type1' to 'type2'
"/wd4800" # forcing value to bool 'true' or 'false'
"/wd4828" # The file contains a character that is illegal
"/wd4828" # The file contains a character that is illegal
"/wd4996" # identifier was declared deprecated
# errors:
"/we4013" # 'function' undefined; assuming extern returning int
"/we4133" # incompatible pointer types
@@ -1509,14 +1484,14 @@ if(WITH_PYTHON)
)
endif()
if(WIN32)
# pass, we have this in an archive to extract
if(WIN32 OR APPLE)
# Windows and macOS have this bundled with Python libraries.
elseif((WITH_PYTHON_INSTALL AND WITH_PYTHON_INSTALL_NUMPY) OR (WITH_AUDASPACE AND NOT WITH_SYSTEM_AUDASPACE))
if(("${PYTHON_NUMPY_PATH}" STREQUAL "") OR (${PYTHON_NUMPY_PATH} MATCHES NOTFOUND))
find_python_package(numpy)
unset(PYTHON_NUMPY_INCLUDE_DIRS CACHE)
set(PYTHON_NUMPY_INCLUDE_DIRS ${PYTHON_NUMPY_PATH}/numpy/core/include CACHE PATH "Path to the include directory of the numpy module")
mark_as_advanced(PYTHON_NUMPY_INCLUDE_DIRS)
mark_as_advanced(PYTHON_NUMPY_INCLUDE_DIRS)
endif()
endif()
@@ -1527,34 +1502,28 @@ if(WITH_PYTHON)
endif()
endif()
if(WITH_CXX11)
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
# TODO(sergey): Do we want c++11 or gnu-c++11 here?
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
elseif(MSVC)
# Nothing special is needed, C++11 features are available by default.
else()
message(FATAL_ERROR "Compiler ${CMAKE_C_COMPILER_ID} is not supported for C++11 build yet")
endif()
if(
CMAKE_COMPILER_IS_GNUCC OR
CMAKE_C_COMPILER_ID MATCHES "Clang" OR
CMAKE_C_COMPILER_ID MATCHES "Intel"
)
# TODO(sergey): Do we want c++11 or gnu-c++11 here?
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
elseif(MSVC)
# Nothing special is needed, C++11 features are available by default.
else()
# GCC-6 switched to C++11 by default, which would break linking with existing libraries
# by default. So we explicitly disable C++11 for a new GCC so no linking issues happens.
if(CMAKE_COMPILER_IS_GNUCC AND (NOT "${CMAKE_C_COMPILER_VERSION}" VERSION_LESS "6.0"))
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++98")
# We also disable any of C++11 ABI from usage, so we wouldn't even try to
# link to stuff from std::__cxx11 namespace.
add_definitions("-D_GLIBCXX_USE_CXX11_ABI=0")
endif()
message(FATAL_ERROR "Unknown compiler ${CMAKE_C_COMPILER_ID}, can't enable C++11 build")
endif()
# Visual Studio has all standards it supports available by default
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang" OR CMAKE_C_COMPILER_ID MATCHES "Intel")
# Use C99 + GNU extensions, works with GCC, Clang, ICC
if(WITH_C11)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu11")
else()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
endif()
# Clang on windows copies this behavior and does not support these switches
if(
CMAKE_COMPILER_IS_GNUCC OR
(CMAKE_C_COMPILER_ID MATCHES "Clang" AND (NOT MSVC)) OR
(CMAKE_C_COMPILER_ID MATCHES "Intel")
)
# Use C11 + GNU extensions, works with GCC, Clang, ICC
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu11")
endif()
# Include warnings first, so its possible to disable them with user defined flags
@@ -1701,7 +1670,6 @@ if(FIRST_RUN)
info_cfg_option(WITH_MEM_JEMALLOC)
info_cfg_option(WITH_MEM_VALGRIND)
info_cfg_option(WITH_SYSTEM_GLEW)
info_cfg_option(WITH_SYSTEM_OPENJPEG)
info_cfg_text("Image Formats:")
info_cfg_option(WITH_OPENIMAGEIO)

View File

@@ -45,12 +45,18 @@ endif
# Dependencies DIR's
DEPS_SOURCE_DIR:=$(BLENDER_DIR)/build_files/build_environment
DEPS_BUILD_DIR:=$(BUILD_DIR)/deps
DEPS_INSTALL_DIR:=$(shell dirname "$(BLENDER_DIR)")/lib/$(OS_NCASE)
ifneq ($(OS_NCASE),darwin)
# Add processor type to directory name
DEPS_INSTALL_DIR:=$(DEPS_INSTALL_DIR)_$(shell uname -p)
ifndef DEPS_BUILD_DIR
DEPS_BUILD_DIR:=$(BUILD_DIR)/deps
endif
ifndef DEPS_INSTALL_DIR
DEPS_INSTALL_DIR:=$(shell dirname "$(BLENDER_DIR)")/lib/$(OS_NCASE)
ifneq ($(OS_NCASE),darwin)
# Add processor type to directory name
DEPS_INSTALL_DIR:=$(DEPS_INSTALL_DIR)_$(shell uname -p)
endif
endif
# Allow to use alternative binary (pypy3, etc)
@@ -89,6 +95,16 @@ ifneq "$(findstring bpy, $(MAKECMDGOALS))" ""
endif
# -----------------------------------------------------------------------------
# Blender binary path
ifeq ($(OS), Darwin)
BLENDER_BIN="$(BUILD_DIR)/bin/blender.app/Contents/MacOS/blender"
else
BLENDER_BIN="$(BUILD_DIR)/bin/blender"
endif
# -----------------------------------------------------------------------------
# Get the number of cores for threaded build
ifndef NPROCS
@@ -140,7 +156,7 @@ all: .FORCE
$(MAKE) -C "$(BUILD_DIR)" -s -j $(NPROCS) install
@echo
@echo edit build configuration with: "$(BUILD_DIR)/CMakeCache.txt" run make again to rebuild.
@echo Blender successfully built, run from: "$(BUILD_DIR)/bin/blender"
@echo Blender successfully built, run from: $(BLENDER_BIN)
@echo
debug: all
@@ -216,12 +232,12 @@ help: .FORCE
@echo " which are tagged to use the stricter formatting"
@echo " * test_deprecated - checks for deprecation tags in our code which may need to be removed"
@echo " * test_style_c - checks C/C++ conforms with blenders style guide:"
@echo " http://wiki.blender.org/index.php/Dev:Doc/CodeStyle"
@echo " https://wiki.blender.org/wiki/Source/Code_Style"
@echo " * test_style_c_qtc - same as test_style but outputs QtCreator tasks format"
@echo " * test_style_osl - checks OpenShadingLanguage conforms with blenders style guide:"
@echo " http://wiki.blender.org/index.php/Dev:Doc/CodeStyle"
@echo " https://wiki.blender.org/wiki/Source/Code_Style"
@echo " * test_style_osl_qtc - checks OpenShadingLanguage conforms with blenders style guide:"
@echo " http://wiki.blender.org/index.php/Dev:Doc/CodeStyle"
@echo " https://wiki.blender.org/wiki/Source/Code_Style"
@echo ""
@echo "Static Source Code Checking (not associated with building blender)"
@echo " * check_cppcheck - run blender source through cppcheck (C & C++)"
@@ -236,8 +252,12 @@ help: .FORCE
@echo " * check_descriptions - check for duplicate/invalid descriptions"
@echo ""
@echo "Utilities (not associated with building blender)"
@echo " * icons - updates PNG icons from SVG files."
@echo " * icons_geom - updates Geometry icons from BLEND file."
@echo " * icons - Updates PNG icons from SVG files."
@echo " Set environment variables 'BLENDER_BIN' and 'INKSCAPE_BIN'"
@echo " to define your own commands."
@echo " * icons_geom - Updates Geometry icons from BLEND file."
@echo " Set environment variable 'BLENDER_BIN'"
@echo " to define your own command."
@echo " * tgz - create a compressed archive of the source code."
@echo " * update - updates git and all submodules"
@echo ""
@@ -410,7 +430,7 @@ check_spelling_osl: .FORCE
"$(BLENDER_DIR)/intern/cycles/kernel/shaders"
check_descriptions: .FORCE
"$(BUILD_DIR)/bin/blender" --background -noaudio --factory-startup --python \
$(BLENDER_BIN) --background -noaudio --factory-startup --python \
"$(BLENDER_DIR)/source/tools/check_source/check_descriptions.py"
# -----------------------------------------------------------------------------
@@ -425,7 +445,7 @@ icons: .FORCE
"$(BLENDER_DIR)/release/datafiles/prvicons_update.py"
icons_geom: .FORCE
BLENDER_BIN="$(BUILD_DIR)/bin/blender" \
BLENDER_BIN=$(BLENDER_BIN) \
"$(BLENDER_DIR)/release/datafiles/blender_icons_geom_update.py"
update: .FORCE
@@ -438,8 +458,9 @@ update: .FORCE
fi
git pull --rebase
git submodule update --init --recursive
git submodule foreach git checkout master
git submodule foreach git pull --rebase origin master
# Use blender2.8 branch for submodules that have it.
git submodule foreach "git checkout blender2.8 || git checkout master"
git submodule foreach git pull --rebase origin
# -----------------------------------------------------------------------------
@@ -448,33 +469,26 @@ update: .FORCE
# Simple version of ./doc/python_api/sphinx_doc_gen.sh with no PDF generation.
doc_py: .FORCE
"$(BUILD_DIR)/bin/blender" --background -noaudio --factory-startup \
ASAN_OPTIONS=halt_on_error=0 \
$(BLENDER_BIN) --background -noaudio --factory-startup \
--python doc/python_api/sphinx_doc_gen.py
cd doc/python_api ; sphinx-build -b html sphinx-in sphinx-out
@echo "docs written into: '$(BLENDER_DIR)/doc/python_api/sphinx-out/contents.html'"
@echo "docs written into: '$(BLENDER_DIR)/doc/python_api/sphinx-out/index.html'"
doc_doxy: .FORCE
cd doc/doxygen; doxygen Doxyfile
@echo "docs written into: '$(BLENDER_DIR)/doc/doxygen/html/index.html'"
doc_dna: .FORCE
"$(BUILD_DIR)/bin/blender" --background -noaudio --factory-startup \
$(BLENDER_BIN) --background -noaudio --factory-startup \
--python doc/blender_file_format/BlendFileDnaExporter_25.py
@echo "docs written into: '$(BLENDER_DIR)/doc/blender_file_format/dna.html'"
doc_man: .FORCE
$(PYTHON) doc/manpage/blender.1.py "$(BUILD_DIR)/bin/blender"
$(PYTHON) doc/manpage/blender.1.py $(BLENDER_BIN) blender.1
help_features: .FORCE
@$(PYTHON) -c \
"import re; \
print('\n'.join([ \
w for l in open('"$(BLENDER_DIR)"/CMakeLists.txt', 'r').readlines() \
if not l.lstrip().startswith('#') \
for w in (re.sub(\
r'.*\boption\s*\(\s*(WITH_[a-zA-Z0-9_]+)\s+(\".*\")\s*.*', r'\g<1> - \g<2>', l).strip('() \n'),) \
if w.startswith('WITH_')]))" | uniq
@$(PYTHON) "$(BLENDER_DIR)/build_files/cmake/cmake_print_build_options.py" $(BLENDER_DIR)"/CMakeLists.txt"
clean: .FORCE
$(MAKE) -C "$(BUILD_DIR)" clean

View File

@@ -19,10 +19,10 @@
####################################################################################################
#
# This is a build system used by platform maintainers to build library dependencies on
# Windows and macOS. There is some support for Linux as well, but not ready for releases.
# Windows, macOS and Linux.
#
# Windows and macOS users should download the precompiled libraries in lib/, Linux users
# should run install_deps.sh for building dependencies.
# For users building Blender, we recommend using the precompiled libraries from lib/ on
# Windows and macOS, and install_deps.sh on Linux.
#
# WINDOWS USAGE:
# Don't call this cmake file your self, use build_deps.cmd
@@ -30,7 +30,7 @@
# build_deps 2015 x64 / build_deps 2015 x86
#
# MAC OS X USAGE:
# Install with homebrew: brew install autoconf automake libtool yasm openssl xz
# Install with homebrew: brew install autoconf automake libtool yasm nasm
# Run "make deps" from main Blender directory
#
# LINUX USAGE:
@@ -45,6 +45,17 @@ cmake_minimum_required(VERSION 3.5)
include(ExternalProject)
include(cmake/options.cmake)
include(cmake/versions.cmake)
if(ENABLE_MINGW64)
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
include(cmake/setup_mingw64.cmake)
else()
include(cmake/setup_mingw32.cmake)
endif()
else()
set(mingw_LIBDIR ${LIBDIR})
endif()
include(cmake/zlib.cmake)
include(cmake/blendthumb.cmake)
include(cmake/openal.cmake)
@@ -68,6 +79,9 @@ include(cmake/opencollada.cmake)
include(cmake/opencolorio.cmake)
include(cmake/llvm.cmake)
include(cmake/clang.cmake)
if(APPLE)
include(cmake/openmp.cmake)
endif()
include(cmake/openimageio.cmake)
include(cmake/tiff.cmake)
include(cmake/flexbison.cmake)
@@ -77,21 +91,25 @@ include(cmake/openvdb.cmake)
include(cmake/python.cmake)
include(cmake/python_site_packages.cmake)
include(cmake/numpy.cmake)
include(cmake/pugixml.cmake)
if(WITH_WEBP)
include(cmake/webp.cmake)
endif()
if(WIN32)
include(cmake/hidapi.cmake)
if(WITH_EMBREE)
include(cmake/embree.cmake)
endif()
if(ENABLE_MINGW64)
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
include(cmake/setup_mingw64.cmake)
else()
include(cmake/setup_mingw32.cmake)
endif()
else()
set(mingw_LIBDIR ${LIBDIR})
if(WIN32)
# HMD branch deps
include(cmake/hidapi.cmake)
# OCIO deps
include(cmake/tinyxml.cmake)
include(cmake/yamlcpp.cmake)
# LCMS is an OCIO dep, but only if you build the apps, leaving it here for convenience
#include(cmake/lcms.cmake)
endif()
if(NOT WIN32 OR ENABLE_MINGW64)
@@ -105,8 +123,6 @@ if(NOT WIN32 OR ENABLE_MINGW64)
include(cmake/vorbis.cmake)
include(cmake/theora.cmake)
include(cmake/vpx.cmake)
include(cmake/orc.cmake)
include(cmake/schroedinger.cmake)
include(cmake/x264.cmake)
include(cmake/xvidcore.cmake)
include(cmake/faad.cmake)
@@ -115,17 +131,24 @@ if(NOT WIN32 OR ENABLE_MINGW64)
include(cmake/sndfile.cmake)
if(WIN32)
include(cmake/iconv.cmake)
include(cmake/lapack.cmake)
endif()
if(UNIX)
include(cmake/flac.cmake)
include(cmake/xml2.cmake)
if(NOT APPLE)
include(cmake/spnav.cmake)
include(cmake/jemalloc.cmake)
include(cmake/xml2.cmake)
endif()
endif()
endif()
endif()
if(UNIX)
include(cmake/bzip2.cmake)
include(cmake/ffi.cmake)
include(cmake/lzma.cmake)
include(cmake/ssl.cmake)
include(cmake/sqlite.cmake)
endif()
include(cmake/harvest.cmake)

View File

@@ -26,6 +26,12 @@ if(ALEMBIC_HDF5)
endif()
endif()
if(WIN32)
set(ALEMBIC_ILMBASE ${LIBDIR}/openexr)
else()
set(ALEMBIC_ILMBASE ${LIBDIR}/ilmbase)
endif()
set(ALEMBIC_EXTRA_ARGS
-DBUILDSTATIC=ON
-DLINKSTATIC=ON
@@ -38,12 +44,13 @@ set(ALEMBIC_EXTRA_ARGS
-DBoost_DEBUG=ON
-DBOOST_ROOT=${LIBDIR}/boost
-DBoost_NO_SYSTEM_PATHS=ON
-DILMBASE_ROOT=${LIBDIR}/ilmbase
-DALEMBIC_ILMBASE_INCLUDE_DIRECTORY=${LIBDIR}/ilmbase/include/OpenEXR
-DALEMBIC_ILMBASE_HALF_LIB=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Half${LIBEXT}
-DALEMBIC_ILMBASE_IMATH_LIB=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Imath-2_2${LIBEXT}
-DALEMBIC_ILMBASE_ILMTHREAD_LIB=${LIBDIR}/ilmbase/lib/${LIBPREFIX}IlmThread-2_2${LIBEXT}
-DALEMBIC_ILMBASE_IEX_LIB=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Iex-2_2${LIBEXT}
-DILMBASE_ROOT=${ALEMBIC_ILMBASE}
-DALEMBIC_ILMBASE_INCLUDE_DIRECTORY=${ALEMBIC_ILMBASE}/include/OpenEXR
-DALEMBIC_ILMBASE_HALF_LIB=${ALEMBIC_ILMBASE}/lib/${LIBPREFIX}Half${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DALEMBIC_ILMBASE_IMATH_LIB=${ALEMBIC_ILMBASE}/lib/${LIBPREFIX}Imath${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DALEMBIC_ILMBASE_ILMTHREAD_LIB=${ALEMBIC_ILMBASE}/lib/${LIBPREFIX}IlmThread${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DALEMBIC_ILMBASE_IEX_LIB=${ALEMBIC_ILMBASE}/lib/${LIBPREFIX}Iex${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DALEMBIC_ILMBASE_IEXMATH_LIB=${ALEMBIC_ILMBASE}/lib/${LIBPREFIX}IexMath${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DUSE_PYILMBASE=0
-DUSE_PYALEMBIC=0
-DUSE_ARNOLD=0
@@ -72,9 +79,27 @@ ExternalProject_Add(external_alembic
INSTALL_DIR ${LIBDIR}/alembic
)
if(WIN32)
if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_alembic after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/alembic ${HARVEST_TARGET}/alembic
DEPENDEES install
)
endif()
if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_alembic after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/alembic/lib/alembic.lib ${HARVEST_TARGET}/alembic/lib/alembic_d.lib
DEPENDEES install
)
endif()
endif()
add_dependencies(
external_alembic
external_boost
external_zlib
external_ilmbase
external_openexr
)

View File

@@ -25,8 +25,18 @@ set(BLOSC_EXTRA_ARGS
-DThreads_FOUND=1
-DPTHREAD_LIBS=${LIBDIR}/pthreads/lib/pthreadVC2.lib
-DPTHREAD_INCLUDE_DIR=${LIBDIR}/pthreads/inc
-DDEACTIVATE_SNAPPY=ON
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
)
if(WIN32)
#prevent blosc from including it's own local copy of zlib in the object file
#and cause linker errors with everybody else
set(BLOSC_EXTRA_ARGS ${BLOSC_EXTRA_ARGS}
-DPREFER_EXTERNAL_ZLIB=ON
)
endif()
ExternalProject_Add(external_blosc
URL ${BLOSC_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
@@ -47,3 +57,19 @@ if(WIN32)
external_pthreads
)
endif()
if (WIN32)
if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_blosc after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/blosc/lib/libblosc.lib ${HARVEST_TARGET}/blosc/lib/libblosc.lib
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/blosc/include/ ${HARVEST_TARGET}/blosc/include/
DEPENDEES install
)
endif()
if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_blosc after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/blosc/lib/libblosc_d.lib ${HARVEST_TARGET}/blosc/lib/libblosc_d.lib
DEPENDEES install
)
endif()
endif()

View File

@@ -16,6 +16,8 @@
#
# ***** END GPL LICENSE BLOCK *****
set(BOOST_ADDRESS_MODEL 64)
if(WIN32)
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
set(PYTHON_ARCH x64)
@@ -25,16 +27,11 @@ if(WIN32)
set(PYTHON_ARCH x86)
set(PYTHON_ARCH2 win32)
set(PYTHON_OUTPUTDIR ${BUILD_DIR}/python/src/external_python/pcbuild/win32/)
endif()
if(MSVC12)
set(BOOST_TOOLSET toolset=msvc-12.0)
set(BOOST_COMPILER_STRING -vc120)
set(PYTHON_COMPILER_STRING v120)
set(BOOST_ADDRESS_MODEL 32)
endif()
if(MSVC14)
set(BOOST_TOOLSET toolset=msvc-14.0)
set(BOOST_COMPILER_STRING -vc140)
set(PYTHON_COMPILER_STRING v140)
endif()
set(JAM_FILE ${BUILD_DIR}/boost/src/external_boost/user-config.jam)
set(semi_path "${PATCH_DIR}/semi.txt")
@@ -51,22 +48,26 @@ if(WIN32)
#set(BOOST_WITH_PYTHON --with-python)
set(BOOST_HARVEST_CMD ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/boost/lib/ ${HARVEST_TARGET}/boost/lib/ )
if(BUILD_MODE STREQUAL Release)
set(BOOST_HARVEST_CMD ${BOOST_HARVEST_CMD} && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/boost/include/boost-1_60/ ${HARVEST_TARGET}/boost/include/)
set(BOOST_HARVEST_CMD ${BOOST_HARVEST_CMD} && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/boost/include/boost-1_68/ ${HARVEST_TARGET}/boost/include/)
endif()
set(BOOST_PATCH_COMMAND ${PATCH_CMD} --verbose -p 1 -N -d ${BUILD_DIR}/boost/src/external_boost < ${PATCH_DIR}/boost.diff)
elseif(APPLE)
set(BOOST_CONFIGURE_COMMAND ./bootstrap.sh)
set(BOOST_BUILD_COMMAND ./bjam)
set(BOOST_BUILD_OPTIONS toolset=clang cxxflags=${PLATFORM_CXXFLAGS} linkflags=${PLATFORM_LDFLAGS} --disable-icu boost.locale.icu=off)
set(BOOST_BUILD_COMMAND ./b2)
set(BOOST_BUILD_OPTIONS toolset=darwin cxxflags=${PLATFORM_CXXFLAGS} linkflags=${PLATFORM_LDFLAGS} --disable-icu boost.locale.icu=off)
set(BOOST_HARVEST_CMD echo .)
set(BOOST_PATCH_COMMAND echo .)
else()
set(BOOST_HARVEST_CMD echo .)
set(BOOST_CONFIGURE_COMMAND ./bootstrap.sh)
set(BOOST_BUILD_COMMAND ./bjam)
set(BOOST_BUILD_COMMAND ./b2)
set(BOOST_BUILD_OPTIONS cxxflags=${PLATFORM_CXXFLAGS} --disable-icu boost.locale.icu=off)
set(BOOST_PATCH_COMMAND echo .)
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
set(BOOST_ADDRESS_MODEL 64)
else()
set(BOOST_ADDRESS_MODEL 32)
endif()
endif()
set(BOOST_OPTIONS
@@ -85,23 +86,17 @@ set(BOOST_OPTIONS
${BOOST_TOOLSET}
)
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
set(BOOST_ADDRESS_MODEL 64)
else()
set(BOOST_ADDRESS_MODEL 32)
endif()
string(TOLOWER ${BUILD_MODE} BOOST_BUILD_TYPE)
ExternalProject_Add(external_boost
URL ${BOOST_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${BOOST_MD5}
URL_HASH MD5=${BOOST_HASH}
PREFIX ${BUILD_DIR}/boost
UPDATE_COMMAND ""
PATCH_COMMAND ${BOOST_PATCH_COMMAND}
CONFIGURE_COMMAND ${BOOST_CONFIGURE_COMMAND}
BUILD_COMMAND ${BOOST_BUILD_COMMAND} ${BOOST_BUILD_OPTIONS} -j${MAKE_THREADS} architecture=x86 address-model=${BOOST_ADDRESS_MODEL} variant=${BOOST_BUILD_TYPE} link=static threading=multi ${BOOST_OPTIONS} --prefix=${LIBDIR}/boost install
BUILD_COMMAND ${BOOST_BUILD_COMMAND} ${BOOST_BUILD_OPTIONS} -j${MAKE_THREADS} architecture=x86 address-model=${BOOST_ADDRESS_MODEL} link=static threading=multi ${BOOST_OPTIONS} --prefix=${LIBDIR}/boost install
BUILD_IN_SOURCE 1
INSTALL_COMMAND "${BOOST_HARVEST_CMD}"
)

View File

@@ -0,0 +1,39 @@
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ***** END GPL LICENSE BLOCK *****
set(BZIP2_PREFIX "${LIBDIR}/bzip2")
set(BZIP2_CONFIGURE_ENV echo .)
set(BZIP2_CONFIGURATION_ARGS)
if(UNIX AND NOT APPLE)
set(BZIP2_LDFLAGS "-Wl,--as-needed")
set(BZIP2_CFLAGS "-fPIC -Wall -Winline -O2 -g -D_FILE_OFFSET_BITS=64")
set(BZIP2_CONFIGURE_ENV ${BZIP2_CONFIGURE_ENV} && export LDFLAGS=${BZIP2_LDFLAGS} && export CFLAGS=${BZIP2_CFLAGS}
&& export PREFIX=${BZIP2_PREFIX})
endif()
ExternalProject_Add(external_bzip2
URL ${BZIP2_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH SHA256=${BZIP2_HASH}
PREFIX ${BUILD_DIR}/bzip2
CONFIGURE_COMMAND echo .
BUILD_COMMAND ${BZIP2_CONFIGURE_ENV} && cd ${BUILD_DIR}/bzip2/src/external_bzip2/ && make CFLAGS=${BZIP2_CFLAGS} LDFLAGS=${BZIP2_LDFLAGS} -j${MAKE_THREADS}
INSTALL_COMMAND ${BZIP2_CONFIGURE_ENV} && cd ${BUILD_DIR}/bzip2/src/external_bzip2/ && make CFLAGS=${BZIP2_CFLAGS} LDFLAGS=${BZIP2_LDFLAGS} PREFIX=${BZIP2_PREFIX} install
INSTALL_DIR ${LIBDIR}/bzip2
)

View File

@@ -21,13 +21,22 @@ set(CLANG_EXTRA_ARGS
-DCLANG_PATH_TO_LLVM_BUILD=${LIBDIR}/llvm
-DLLVM_USE_CRT_RELEASE=MT
-DLLVM_USE_CRT_DEBUG=MTd
-DLLVM_CONFIG=${LIBDIR}/llvm/bin/llvm-config
)
if(WIN32)
set(CLANG_GENERATOR "Ninja")
else()
set(CLANG_GENERATOR "Unix Makefiles")
endif()
ExternalProject_Add(external_clang
URL ${CLANG_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${CLANG_HASH}
PATCH_COMMAND ${PATCH_CMD} -p 2 -N -R -d ${BUILD_DIR}/clang/src/external_clang < ${PATCH_DIR}/clang.diff
PREFIX ${BUILD_DIR}/clang
CMAKE_GENERATOR ${CLANG_GENERATOR}
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/clang ${DEFAULT_CMAKE_FLAGS} ${CLANG_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/clang
)

View File

@@ -0,0 +1,69 @@
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ***** END GPL LICENSE BLOCK *****
# Note the utility apps may use png/tiff/gif system libraries, but the
# library itself does not depend on them, so should give no problems.
set(EMBREE_EXTRA_ARGS
-DEMBREE_ISPC_SUPPORT=OFF
-DEMBREE_TUTORIALS=OFF
-DEMBREE_STATIC_LIB=ON
-DEMBREE_RAY_MASK=ON
-DEMBREE_FILTER_FUNCTION=ON
-DEMBREE_BACKFACE_CULLING=OFF
-DEMBREE_TASKING_SYSTEM=INTERNAL
-DEMBREE_MAX_ISA=AVX2
)
if(WIN32)
set(EMBREE_BUILD_DIR ${BUILD_MODE}/)
else()
set(EMBREE_BUILD_DIR)
endif()
ExternalProject_Add(external_embree
URL ${EMBREE_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${EMBREE_HASH}
PREFIX ${BUILD_DIR}/embree
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/embree ${DEFAULT_CMAKE_FLAGS} ${EMBREE_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/embree
)
if(WIN32)
if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_embree after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/embree ${HARVEST_TARGET}/embree
DEPENDEES install
)
else()
ExternalProject_Add_Step(external_embree after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree3.lib ${HARVEST_TARGET}/embree/lib/embree3_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree_avx.lib ${HARVEST_TARGET}/embree/lib/embree_avx_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree_avx2.lib ${HARVEST_TARGET}/embree/lib/embree_avx2_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree_sse42.lib ${HARVEST_TARGET}/embree/lib/embree_sse42_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/lexers.lib ${HARVEST_TARGET}/embree/lib/lexers_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/math.lib ${HARVEST_TARGET}/embree/lib/math_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/simd.lib ${HARVEST_TARGET}/embree/lib/simd_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/sys.lib ${HARVEST_TARGET}/embree/lib/sys_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/tasking.lib ${HARVEST_TARGET}/embree/lib/tasking_d.lib
DEPENDEES install
)
endif()
endif()

View File

@@ -18,13 +18,18 @@
set(FAAD_EXTRA_ARGS)
if (WIN32)
set(FAAD_EXTRA_CONFIGURE "utils\\win32\\ac2ver.exe" "faad2" "configure.ac" > libfaad\\win32_ver.h)
else()
set(FAAD_EXTRA_CONFIGURE echo .)
endif()
ExternalProject_Add(external_faad
URL ${FAAD_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${FAAD_HASH}
PREFIX ${BUILD_DIR}/faad
PATCH_COMMAND ${PATCH_CMD} --verbose -p 0 -N -d ${BUILD_DIR}/faad/src/external_faad < ${PATCH_DIR}/libfaad.diff
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/faad/src/external_faad/ && ${CONFIGURE_COMMAND} --disable-shared --enable-static --prefix=${LIBDIR}/faad
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/faad/src/external_faad/ && ${FAAD_EXTRA_CONFIGURE} && ${CONFIGURE_COMMAND} --disable-shared --enable-static --prefix=${LIBDIR}/faad
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/faad/src/external_faad/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/faad/src/external_faad/ && make install
INSTALL_DIR ${LIBDIR}/faad

View File

@@ -0,0 +1,40 @@
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ***** END GPL LICENSE BLOCK *****
ExternalProject_Add(external_ffi
URL ${FFI_URI}
URL_HASH SHA256=${FFI_HASH}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
PREFIX ${BUILD_DIR}/ffi
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ffi/src/external_ffi/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/ffi
--enable-shared=no
--enable-static=yes
--with-pic
--libdir=${LIBDIR}/ffi/lib/
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ffi/src/external_ffi/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ffi/src/external_ffi/ && make install
PATCH_COMMAND ${PATCH_CMD} -p 0 -d ${BUILD_DIR}/ffi/src/external_ffi < ${PATCH_DIR}/ffi.diff
INSTALL_DIR ${LIBDIR}/ffi
)
if (UNIX AND NOT APPLE)
ExternalProject_Add_Step(external_ffi after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/ffi/lib/libffi.a ${LIBDIR}/ffi/lib/libffi_pic.a
DEPENDEES install
)
endif()

View File

@@ -16,10 +16,10 @@
#
# ***** END GPL LICENSE BLOCK *****
set(FFMPEG_CFLAGS "-I${mingw_LIBDIR}/lame/include -I${mingw_LIBDIR}/openjpeg/include/ -I${mingw_LIBDIR}/ogg/include -I${mingw_LIBDIR}/vorbis/include -I${mingw_LIBDIR}/theora/include -I${mingw_LIBDIR}/vpx/include -I${mingw_LIBDIR}/x264/include -I${mingw_LIBDIR}/xvidcore/include -I${mingw_LIBDIR}/dirac/include/dirac -I${mingw_LIBDIR}/schroedinger/include/schroedinger-1.0 -I${mingw_LIBDIR}/zlib/include")
set(FFMPEG_LDFLAGS "-L${mingw_LIBDIR}/lame/lib -L${mingw_LIBDIR}/openjpeg/lib -L${mingw_LIBDIR}/ogg/lib -L${mingw_LIBDIR}/vorbis/lib -L${mingw_LIBDIR}/theora/lib -L${mingw_LIBDIR}/vpx/lib -L${mingw_LIBDIR}/x264/lib -L${mingw_LIBDIR}/xvidcore/lib -L${mingw_LIBDIR}/dirac/lib -L${mingw_LIBDIR}/schroedinger/lib -L${mingw_LIBDIR}/orc/lib -L${mingw_LIBDIR}/zlib/lib")
set(FFMPEG_EXTRA_FLAGS --extra-cflags=${FFMPEG_CFLAGS} --extra-ldflags=${FFMPEG_LDFLAGS})
set(FFMPEG_ENV PKG_CONFIG_PATH=${mingw_LIBDIR}/schroedinger/lib/pkgconfig:${mingw_LIBDIR}/orc/lib/pkgconfig:${mingw_LIBDIR}/x264/lib/pkgconfig:${mingw_LIBDIR})
set(FFMPEG_CFLAGS "-I${mingw_LIBDIR}/lame/include -I${mingw_LIBDIR}/openjpeg/include/ -I${mingw_LIBDIR}/ogg/include -I${mingw_LIBDIR}/vorbis/include -I${mingw_LIBDIR}/theora/include -I${mingw_LIBDIR}/vpx/include -I${mingw_LIBDIR}/x264/include -I${mingw_LIBDIR}/xvidcore/include -I${mingw_LIBDIR}/zlib/include")
set(FFMPEG_LDFLAGS "-L${mingw_LIBDIR}/lame/lib -L${mingw_LIBDIR}/openjpeg/lib -L${mingw_LIBDIR}/ogg/lib -L${mingw_LIBDIR}/vorbis/lib -L${mingw_LIBDIR}/theora/lib -L${mingw_LIBDIR}/vpx/lib -L${mingw_LIBDIR}/x264/lib -L${mingw_LIBDIR}/xvidcore/lib -L${mingw_LIBDIR}/zlib/lib")
set(FFMPEG_EXTRA_FLAGS --pkg-config-flags=--static --extra-cflags=${FFMPEG_CFLAGS} --extra-ldflags=${FFMPEG_LDFLAGS})
set(FFMPEG_ENV PKG_CONFIG_PATH=${mingw_LIBDIR}/openjpeg/lib/pkgconfig:${mingw_LIBDIR}/x264/lib/pkgconfig:${mingw_LIBDIR}/vorbis/lib/pkgconfig:${mingw_LIBDIR}/ogg/lib/pkgconfig:${mingw_LIBDIR})
if(WIN32)
set(FFMPEG_ENV set ${FFMPEG_ENV} &&)
@@ -31,6 +31,12 @@ if(WIN32)
--disable-pthreads
--enable-libopenjpeg
)
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "4")
set(FFMPEG_EXTRA_FLAGS
${FFMPEG_EXTRA_FLAGS}
--x86asmexe=yasm
)
endif()
else()
set(FFMPEG_EXTRA_FLAGS
${FFMPEG_EXTRA_FLAGS}
@@ -51,6 +57,11 @@ ExternalProject_Add(external_ffmpeg
URL ${FFMPEG_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${FFMPEG_HASH}
# OpenJpeg is compiled with pthread support on Linux, which is all fine and is what we
# want for maximum runtime performance, but due to static nature of that library we
# need to force ffmpeg to link against pthread, otherwise test program used by autoconf
# will fail. This patch does that in a way that is compatible with multiple distributions.
PATCH_COMMAND ${PATCH_CMD} --verbose -p 1 -N -d ${BUILD_DIR}/ffmpeg/src/external_ffmpeg < ${PATCH_DIR}/ffmpeg.diff
PREFIX ${BUILD_DIR}/ffmpeg
CONFIGURE_COMMAND ${CONFIGURE_ENV_NO_PERL} &&
cd ${BUILD_DIR}/ffmpeg/src/external_ffmpeg/ &&
@@ -63,7 +74,6 @@ ExternalProject_Add(external_ffmpeg
--disable-libspeex
--enable-libvpx
--prefix=${LIBDIR}/ffmpeg
--enable-libschroedinger
--enable-libtheora
--enable-libvorbis
--enable-zlib
@@ -73,7 +83,6 @@ ExternalProject_Add(external_ffmpeg
--disable-nonfree
--enable-gpl
--disable-postproc
--disable-x11grab
--enable-libmp3lame
--disable-librtmp
--enable-libx264
@@ -91,9 +100,8 @@ ExternalProject_Add(external_ffmpeg
--disable-securetransport
--disable-indev=avfoundation
--disable-indev=qtkit
--disable-sdl
--disable-sdl2
--disable-gnutls
--disable-vda
--disable-videotoolbox
--disable-libxcb
--disable-xlib
@@ -104,7 +112,7 @@ ExternalProject_Add(external_ffmpeg
--disable-indev=alsa
--disable-outdev=alsa
--disable-crystalhd
PATCH_COMMAND ${PATCH_CMD} --verbose -p 0 -N -d ${BUILD_DIR}/ffmpeg/src/external_ffmpeg < ${PATCH_DIR}/ffmpeg.diff
--disable-sndio
BUILD_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/ffmpeg/src/external_ffmpeg/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/ffmpeg/src/external_ffmpeg/ && make install
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/ffmpeg ${DEFAULT_CMAKE_FLAGS}
@@ -122,7 +130,6 @@ add_dependencies(
external_openjpeg
external_xvidcore
external_x264
external_schroedinger
external_vpx
external_theora
external_vorbis
@@ -135,3 +142,11 @@ if(WIN32)
external_zlib_mingw
)
endif()
if(BUILD_MODE STREQUAL Release AND WIN32)
ExternalProject_Add_Step(external_ffmpeg after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/ffmpeg/include ${HARVEST_TARGET}/ffmpeg/include
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/ffmpeg/bin ${HARVEST_TARGET}/ffmpeg/lib
DEPENDEES install
)
endif()

View File

@@ -37,4 +37,11 @@ ExternalProject_Add(external_fftw3
if(MSVC)
set_target_properties(external_fftw3 PROPERTIES FOLDER Mingw)
if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_fftw3 after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/fftw3/lib/libfftw3.a ${HARVEST_TARGET}/fftw3/lib/libfftw.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/fftw3/include/fftw3.h ${HARVEST_TARGET}/fftw3/include/fftw3.h
DEPENDEES install
)
endif()
endif()

View File

@@ -16,7 +16,15 @@
#
# ***** END GPL LICENSE BLOCK *****
set(FREETYPE_EXTRA_ARGS -DCMAKE_RELEASE_POSTFIX:STRING=2ST -DCMAKE_DEBUG_POSTFIX:STRING=2ST_d -DWITH_BZip2=OFF -DWITH_HarfBuzz=OFF)
set(FREETYPE_EXTRA_ARGS
-DCMAKE_RELEASE_POSTFIX:STRING=2ST
-DCMAKE_DEBUG_POSTFIX:STRING=2ST_d
-DWITH_BZip2=OFF
-DWITH_HarfBuzz=OFF
-DFT_WITH_HARFBUZZ=OFF
-DFT_WITH_BZIP2=OFF
-DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE
-DCMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE)
ExternalProject_Add(external_freetype
URL ${FREETYPE_URI}
@@ -24,5 +32,13 @@ ExternalProject_Add(external_freetype
URL_HASH MD5=${FREETYPE_HASH}
PREFIX ${BUILD_DIR}/freetype
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/freetype ${DEFAULT_CMAKE_FLAGS} ${FREETYPE_EXTRA_ARGS}
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/freetype/src/external_freetype < ${PATCH_DIR}/freetype.diff
INSTALL_DIR ${LIBDIR}/freetype
)
if(BUILD_MODE STREQUAL Release AND WIN32)
ExternalProject_Add_Step(external_freetype after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/freetype ${HARVEST_TARGET}/freetype
DEPENDEES install
)
endif()

View File

@@ -28,43 +28,16 @@ message("HARVEST_TARGET = ${HARVEST_TARGET}")
if(WIN32)
if(BUILD_MODE STREQUAL Release)
add_custom_target(Harvest_Release_Results
# Zlib Rename the lib file and copy the include/bin folders
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/zlib/lib/zlibstatic.lib ${HARVEST_TARGET}/zlib/lib/libz_st.lib &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/zlib/include/ ${HARVEST_TARGET}/zlib/include/ &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/zlib/bin/ ${HARVEST_TARGET}/zlib/bin/ &&
# jpeg rename libfile + copy include
COMMAND # jpeg rename libfile + copy include
${CMAKE_COMMAND} -E copy ${LIBDIR}/jpg/lib/jpeg-static.lib ${HARVEST_TARGET}/jpeg/lib/libjpeg.lib &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/jpg/include/ ${HARVEST_TARGET}/jpeg/include/ &&
# FreeType, straight up copy
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/freetype ${HARVEST_TARGET}/freetype &&
# pthreads, rename include dir
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/pthreads/inc/ ${HARVEST_TARGET}/pthreads/include/ &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/pthreads/lib/ ${HARVEST_TARGET}/pthreads/lib &&
# ffmpeg copy include+bin
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/ffmpeg/include ${HARVEST_TARGET}/ffmpeg/include &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/ffmpeg/bin ${HARVEST_TARGET}/ffmpeg/lib &&
# sdl merge bin/lib folder, copy include
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/sdl/include/sdl2 ${HARVEST_TARGET}/sdl/include &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/sdl/lib ${HARVEST_TARGET}/sdl/lib &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/sdl/bin ${HARVEST_TARGET}/sdl/lib &&
# openal
${CMAKE_COMMAND} -E copy ${LIBDIR}/openal/lib/openal32.lib ${HARVEST_TARGET}/openal/lib/openal32.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/openal/bin/openal32.dll ${HARVEST_TARGET}/openal/lib/openal32.dll &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openal/include/ ${HARVEST_TARGET}/openal/include/ &&
# OpenImageIO
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/OpenImageIO/include ${HARVEST_TARGET}/OpenImageIO/include &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/OpenImageIO/lib ${HARVEST_TARGET}/OpenImageIO/lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/OpenImageIO/bin/idiff.exe ${HARVEST_TARGET}/OpenImageIO/bin/idiff.exe &&
# openEXR
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/ilmbase ${HARVEST_TARGET}/openexr &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openexr/lib ${HARVEST_TARGET}/openexr/lib &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openexr/include ${HARVEST_TARGET}/openexr/include &&
# png
${CMAKE_COMMAND} -E copy ${LIBDIR}/png/lib/libpng16_static.lib ${HARVEST_TARGET}/png/lib/libpng.lib &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/png/include/ ${HARVEST_TARGET}/png/include/ &&
# fftw3
${CMAKE_COMMAND} -E copy ${LIBDIR}/fftw3/lib/libfftw3.a ${HARVEST_TARGET}/fftw3/lib/libfftw.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/fftw3/include/fftw3.h ${HARVEST_TARGET}/fftw3/include/fftw3.h &&
# freeglut-> opengl
${CMAKE_COMMAND} -E copy ${LIBDIR}/freeglut/lib/freeglut_static.lib ${HARVEST_TARGET}/opengl/lib/freeglut_static.lib &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/freeglut/include/ ${HARVEST_TARGET}/opengl/include/ &&
@@ -78,41 +51,13 @@ if(BUILD_MODE STREQUAL Release)
# tiff
${CMAKE_COMMAND} -E copy ${LIBDIR}/tiff/lib/tiff.lib ${HARVEST_TARGET}/tiff/lib/libtiff.lib &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/tiff/include/ ${HARVEST_TARGET}/tiff/include/ &&
# iconv
${CMAKE_COMMAND} -E copy ${LIBDIR}/iconv/lib/libiconv.a ${HARVEST_TARGET}/iconv/lib/iconv.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/iconv/include/iconv.h ${HARVEST_TARGET}/iconv/include/iconv.h &&
# opencolorIO
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/OpenColorIO/ ${HARVEST_TARGET}/opencolorio &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/OpenColorIO/lib/OpenColorIO.dll ${HARVEST_TARGET}/opencolorio/bin/OpenColorIO.dll &&
# Osl
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/osl/ ${HARVEST_TARGET}/osl &&
# OpenVDB
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openVDB/ ${HARVEST_TARGET}/openVDB &&
# blosc
${CMAKE_COMMAND} -E copy ${LIBDIR}/blosc/lib/libblosc.lib ${HARVEST_TARGET}/blosc/lib/libblosc.lib &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/blosc/include/ ${HARVEST_TARGET}/blosc/include/ &&
# tbb
${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb_static.lib ${HARVEST_TARGET}/tbb/lib/tbb.lib &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/tbb/include/ ${HARVEST_TARGET}/tbb/include/ &&
# opencollada
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencollada/ ${HARVEST_TARGET}/opencollada/ &&
# opensubdiv
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opensubdiv ${HARVEST_TARGET}/opensubdiv &&
# python
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/python/ ${HARVEST_TARGET}/python/ &&
# alembic
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/alembic ${HARVEST_TARGET}/alembic &&
# BlendThumb
${CMAKE_COMMAND} -E copy ${LIBDIR}/BlendThumb64/bin/blendthumb.dll ${HARVEST_TARGET}/ThumbHandler/lib/BlendThumb64.dll &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/BlendThumb32/bin/blendthumb.dll ${HARVEST_TARGET}/ThumbHandler/lib/BlendThumb.dll &&
# python
${CMAKE_COMMAND} -E copy ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}.tar.gz ${HARVEST_TARGET}/Release/python${PYTHON_SHORT_VERSION_NO_DOTS}.tar.gz &&
# numpy
${CMAKE_COMMAND} -E copy ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}.tar.gz ${HARVEST_TARGET}/Release/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}.tar.gz &&
# hidapi
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/hidapi/ ${HARVEST_TARGET}/hidapi/ &&
# webp, straight up copy
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/webp ${HARVEST_TARGET}/webp
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/webp ${HARVEST_TARGET}/webp &&
DEPENDS
)
endif()
@@ -122,43 +67,8 @@ if(BUILD_MODE STREQUAL Debug)
# OpenImageIO
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_d.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO_Util.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_Util_d.lib &&
# ilmbase+openexr
${CMAKE_COMMAND} -E copy ${LIBDIR}/ilmbase/lib/Half.lib ${HARVEST_TARGET}/openexr/lib/Half_d.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/ilmbase/lib/Iex-2_2.lib ${HARVEST_TARGET}/openexr/lib/Iex-2_2_d.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/ilmbase/lib/IexMath-2_2.lib ${HARVEST_TARGET}/openexr/lib/IexMath-2_2_d.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/ilmbase/lib/IlmThread-2_2.lib ${HARVEST_TARGET}/openexr/lib/IlmThread-2_2_d.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/ilmbase/lib/Imath-2_2.lib ${HARVEST_TARGET}/openexr/lib/Imath-2_2_d.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/openexr/lib/IlmImf-2_2.lib ${HARVEST_TARGET}/openexr/lib/IlmImf-2_2_d.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/openexr/lib/IlmImfUtil-2_2.lib ${HARVEST_TARGET}/openexr/lib/IlmImfUtil-2_2_d.lib &&
# opencollada
${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/buffer.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/buffer_d.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/ftoa.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/ftoa_d.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/GeneratedSaxParser.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/GeneratedSaxParser_d.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/MathMLSolver.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/MathMLSolver_d.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADABaseUtils.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADABaseUtils_d.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADAFramework.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADAFramework_d.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADASaxFrameworkLoader.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADASaxFrameworkLoader_d.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADAStreamWriter.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADAStreamWriter_d.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/pcre.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/pcre_d.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/UTF.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/UTF_d.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/xml.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/xml_d.lib &&
# blosc
${CMAKE_COMMAND} -E copy ${LIBDIR}/blosc/lib/libblosc_d.lib ${HARVEST_TARGET}/blosc/lib/libblosc_d.lib &&
# osl
${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslcomp.lib ${HARVEST_TARGET}/osl/lib/oslcomp_d.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslexec.lib ${HARVEST_TARGET}/osl/lib/oslexec_d.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslquery.lib ${HARVEST_TARGET}/osl/lib/oslquery_d.lib &&
# opensubdiv
${CMAKE_COMMAND} -E copy ${LIBDIR}/opensubdiv/lib/osdCPU.lib ${HARVEST_TARGET}/opensubdiv/lib/osdCPU_d.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/opensubdiv/lib/osdGPU.lib ${HARVEST_TARGET}/opensubdiv/lib/osdGPU_d.lib &&
# tbb
${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb_static.lib ${HARVEST_TARGET}/tbb/lib/tbb_debug.lib &&
# openvdb
${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/openvdb.lib ${HARVEST_TARGET}/openvdb/lib/openvdb_d.lib &&
# python
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/python/ ${HARVEST_TARGET}/python/ &&
# alembic
${CMAKE_COMMAND} -E copy ${LIBDIR}/alembic/lib/alembic.lib ${HARVEST_TARGET}/alembic/lib/alembic_d.lib &&
# hdf5
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/hdf5/lib ${HARVEST_TARGET}/hdf5/lib &&
# numpy
@@ -201,7 +111,6 @@ endfunction()
harvest(alembic/include alembic/include "*.h")
harvest(alembic/lib/libAlembic.a alembic/lib/libAlembic.a)
harvest(alembic/bin alembic/bin "*")
harvest(blosc/lib openvdb/lib "*.a")
harvest(boost/include boost/include "*")
harvest(boost/lib boost/lib "*.a")
harvest(ffmpeg/include ffmpeg/include "*.h")
@@ -226,11 +135,24 @@ harvest(ogg/lib ffmpeg/lib "*.a")
harvest(openal/include openal/include "*.h")
if(UNIX AND NOT APPLE)
harvest(openal/lib openal/lib "*.a")
harvest(blosc/include blosc/include "*.h")
harvest(blosc/lib blosc/lib "*.a")
harvest(zlib/include zlib/include "*.h")
harvest(zlib/lib zlib/lib "*.a")
harvest(xml2/include xml2/include "*.h")
harvest(xml2/lib xml2/lib "*.a")
else()
harvest(blosc/lib openvdb/lib "*.a")
harvest(xml2/lib opencollada/lib "*.a")
endif()
harvest(opencollada/include/opencollada opencollada/include "*.h")
harvest(opencollada/lib/opencollada opencollada/lib "*.a")
harvest(opencolorio/include opencolorio/include "*.h")
harvest(opencolorio/lib opencolorio/lib "*.a")
harvest(opencolorio/lib/static opencolorio/lib "*.a")
harvest(openexr/include openexr/include "*.h")
harvest(openexr/lib openexr/lib "*.a")
harvest(openimageio/bin openimageio/bin "idiff")
@@ -238,13 +160,12 @@ harvest(openimageio/bin openimageio/bin "maketx")
harvest(openimageio/bin openimageio/bin "oiiotool")
harvest(openimageio/include openimageio/include "*")
harvest(openimageio/lib openimageio/lib "*.a")
harvest(openjpeg/include/openjpeg-1.5 openjpeg/include "*.h")
harvest(openjpeg/include/openjpeg-2.3 openjpeg/include "*.h")
harvest(openjpeg/lib openjpeg/lib "*.a")
harvest(opensubdiv/include opensubdiv/include "*.h")
harvest(opensubdiv/lib opensubdiv/lib "*.a")
harvest(openvdb/include/openvdb/openvdb openvdb/include/openvdb "*.h")
harvest(openvdb/include/openvdb openvdb/include/openvdb "*.h")
harvest(openvdb/lib openvdb/lib "*.a")
harvest(orc/lib/liborc-0.4.a ffmpeg/lib/liborc.a)
harvest(osl/bin osl/bin "oslc")
harvest(osl/include osl/include "*.h")
harvest(osl/lib osl/lib "*.a")
@@ -254,7 +175,6 @@ harvest(png/lib png/lib "*.a")
harvest(python/bin python/bin "python${PYTHON_SHORT_VERSION}m")
harvest(python/include python/include "*h")
harvest(python/lib python/lib "*")
harvest(schroedinger/lib/libschroedinger-1.0.a ffmpeg/lib/libschroedinger.a)
harvest(sdl/include/SDL2 sdl/include "*.h")
harvest(sdl/lib sdl/lib "libSDL2.a")
harvest(sndfile/include sndfile/include "*.h")
@@ -270,7 +190,8 @@ harvest(vorbis/lib ffmpeg/lib "*.a")
harvest(vpx/lib ffmpeg/lib "*.a")
harvest(webp/lib ffmpeg/lib "*.a")
harvest(x264/lib ffmpeg/lib "*.a")
harvest(xml2/lib opencollada/lib "*.a")
harvest(xvidcore/lib ffmpeg/lib "*.a")
harvest(embree/include embree/include "*.h")
harvest(embree/lib embree/lib "*.a")
endif()

View File

@@ -31,4 +31,11 @@ ExternalProject_Add(external_iconv
if(MSVC)
set_target_properties(external_iconv PROPERTIES FOLDER Mingw)
if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_iconv after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/iconv/lib/libiconv.a ${HARVEST_TARGET}/iconv/lib/iconv.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/iconv/include/iconv.h ${HARVEST_TARGET}/iconv/include/iconv.h
DEPENDEES install
)
endif()
endif()

View File

@@ -18,18 +18,41 @@
if(WIN32)
set(ILMBASE_CMAKE_CXX_STANDARD_LIBRARIES "kernel32${LIBEXT} user32${LIBEXT} gdi32${LIBEXT} winspool${LIBEXT} shell32${LIBEXT} ole32${LIBEXT} oleaut32${LIBEXT} uuid${LIBEXT} comdlg32${LIBEXT} advapi32${LIBEXT} psapi${LIBEXT}")
set(ILMBASE_EXTRA_ARGS
-DBUILD_SHARED_LIBS=OFF
-DCMAKE_CXX_STANDARD_LIBRARIES=${ILMBASE_CMAKE_CXX_STANDARD_LIBRARIES}
)
ExternalProject_Add(external_ilmbase
URL ${ILMBASE_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${ILMBASE_HASH}
PREFIX ${BUILD_DIR}/ilmbase
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/ilmbase ${DEFAULT_CMAKE_FLAGS} ${ILMBASE_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/openexr
)
if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_ilmbase after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/ilmbase ${HARVEST_TARGET}/openexr
DEPENDEES install
)
endif()
else()
set(ILMBASE_EXTRA_ARGS
--enable-static
--disable-shared
--enable-cxxstd=11
)
ExternalProject_Add(external_ilmbase
URL ${ILMBASE_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${ILMBASE_HASH}
PREFIX ${BUILD_DIR}/ilmbase
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ilmbase/src/external_ilmbase/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/ilmbase ${ILMBASE_EXTRA_ARGS}
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ilmbase/src/external_ilmbase/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ilmbase/src/external_ilmbase/ && make install
INSTALL_DIR ${LIBDIR}/openexr
)
endif()
set(ILMBASE_EXTRA_ARGS
-DBUILD_SHARED_LIBS=OFF
-DCMAKE_CXX_STANDARD_LIBRARIES=${ILMBASE_CMAKE_CXX_STANDARD_LIBRARIES}
)
ExternalProject_Add(external_ilmbase
URL ${ILMBASE_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${ILMBASE_HASH}
PREFIX ${BUILD_DIR}/ilmbase
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/ilmbase ${DEFAULT_CMAKE_FLAGS} ${ILMBASE_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/openexr
)

View File

@@ -18,7 +18,7 @@
if(WIN32)
# cmake for windows
set(JPEG_EXTRA_ARGS -DWITH_JPEG8=ON -DCMAKE_DEBUG_POSTFIX=d)
set(JPEG_EXTRA_ARGS -DNASM=${NASM_PATH} -DWITH_JPEG8=ON -DCMAKE_DEBUG_POSTFIX=d)
ExternalProject_Add(external_jpeg
URL ${JPEG_URI}

View File

@@ -36,7 +36,7 @@ ExternalProject_Add(external_lame
--disable-mp3x
--disable-mp3rtp
--disable-gtktest
--enable-export=full
--disable-frontend
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/lame/src/external_lame/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/lame/src/external_lame/ && make install
INSTALL_DIR ${LIBDIR}/lame

View File

@@ -1,43 +0,0 @@
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ***** END GPL LICENSE BLOCK *****
set(LAPACK_EXTRA_ARGS)
if(WIN32)
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
set(LAPACK_EXTRA_ARGS -G "MSYS Makefiles" -DCMAKE_Fortran_COMPILER=${DOWNLOAD_DIR}/mingw/mingw64/bin/gfortran.exe)
else()
set(LAPACK_EXTRA_ARGS -G "MSYS Makefiles" -DCMAKE_Fortran_COMPILER=${DOWNLOAD_DIR}/mingw/mingw32/bin/gfortran.exe)
endif()
endif()
ExternalProject_Add(external_lapack
URL ${LAPACK_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${LAPACK_HASH}
PREFIX ${BUILD_DIR}/lapack
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/lapack/src/external_lapack/ && ${CMAKE_COMMAND} ${LAPACK_EXTRA_ARGS} -DBUILD_TESTING=Off -DCMAKE_INSTALL_PREFIX=${LIBDIR}/lapack .
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/lapack/src/external_lapack/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/lapack/src/external_lapack/ && make install
INSTALL_DIR ${LIBDIR}/lapack
)
if(MSVC)
set_target_properties(external_lapack PROPERTIES FOLDER Mingw)
endif()

View File

@@ -16,17 +16,16 @@
#
# ***** END GPL LICENSE BLOCK *****
ExternalProject_Add(external_orc
URL ${ORC_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH SHA256=${ORC_HASH}
PREFIX ${BUILD_DIR}/orc
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/orc/src/external_orc/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/orc --disable-shared --enable-static
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/orc/src/external_orc/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/orc/src/external_orc/ && make install
INSTALL_DIR ${LIBDIR}/orc
set(LCMS_EXTRA_ARGS
)
if(MSVC)
set_target_properties(external_orc PROPERTIES FOLDER Mingw)
endif()
ExternalProject_Add(external_lcms
URL ${LCMS_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${LCMS_HASH}
PREFIX ${BUILD_DIR}/lcms
#patch taken from ocio
PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/cmakelists_lcms.txt ${BUILD_DIR}/lcms/src/external_lcms/CMakeLists.txt
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/lcms ${DEFAULT_CMAKE_FLAGS} ${LCMS_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/lcms
)

View File

@@ -26,7 +26,7 @@ set(LLVM_EXTRA_ARGS
)
if(WIN32)
set(LLVM_GENERATOR "NMake Makefiles")
set(LLVM_GENERATOR "Ninja")
else()
set(LLVM_GENERATOR "Unix Makefiles")
endif()
@@ -38,7 +38,6 @@ ExternalProject_Add(ll
URL_HASH MD5=${LLVM_HASH}
CMAKE_GENERATOR ${LLVM_GENERATOR}
PREFIX ${BUILD_DIR}/ll
PATCH_COMMAND ${PATCH_CMD} -p 0 -d ${BUILD_DIR}/ll/src/ll < ${PATCH_DIR}/llvm-alloca-fix.diff
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/llvm ${DEFAULT_CMAKE_FLAGS} ${LLVM_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/llvm
)
@@ -48,9 +47,7 @@ if(MSVC)
set(LLVM_HARVEST_COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/llvm/ ${HARVEST_TARGET}/llvm/ )
else()
set(LLVM_HARVEST_COMMAND
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/llvm/lib/ ${HARVEST_TARGET}/llvm/debug/lib/ &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/llvm/bin/ ${HARVEST_TARGET}/llvm/debug/bin/ &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/llvm/include/ ${HARVEST_TARGET}/llvm/debug/include/
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/llvm/lib/ ${HARVEST_TARGET}/llvm/debug/lib/
)
endif()
ExternalProject_Add_Step(ll after_install
@@ -58,4 +55,3 @@ if(MSVC)
DEPENDEES mkdir update patch download configure build install
)
endif()

View File

@@ -0,0 +1,32 @@
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ***** END GPL LICENSE BLOCK *****
set(LZMA_PATCH_CMD echo .)
ExternalProject_Add(external_lzma
URL ${LZMA_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH SHA256=${LZMA_HASH}
PREFIX ${BUILD_DIR}/lzma
PATCH_COMMAND ${LZMA_PATCH_CMD}
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/lzma/src/external_lzma/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/lzma
--disable-shared
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/lzma/src/external_lzma/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/lzma/src/external_lzma/ && make install
INSTALL_DIR ${LIBDIR}/lzma
)

View File

@@ -33,10 +33,9 @@ set(NUMPY_POSTFIX)
if(WIN32)
set(NUMPY_INSTALL
${CMAKE_COMMAND} -E copy_directory "${BUILD_DIR}/python/src/external_python/run/lib/site-packages/numpy/core/include/numpy" "${LIBDIR}/python/include/python${PYTHON_SHORT_VERSION}/numpy" &&
${CMAKE_COMMAND} -E chdir "${BUILD_DIR}/numpy/src/external_numpy/build/lib.${PYTHON_ARCH2}-${PYTHON_SHORT_VERSION}${NUMPY_DIR_POSTFIX}"
${CMAKE_COMMAND} -E tar "cfvz" "${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}${NUMPY_ARCHIVE_POSTFIX}.tar.gz" "."
${CMAKE_COMMAND} -E chdir "${BUILD_DIR}/numpy/src/external_numpy/build/lib.${PYTHON_ARCH2}-${PYTHON_SHORT_VERSION}${NUMPY_DIR_POSTFIX}"
${CMAKE_COMMAND} -E tar "cfvz" "${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}${NUMPY_ARCHIVE_POSTFIX}.tar.gz" "."
)
set(NUMPY_PATCH ${PATCH_CMD} --verbose -p 1 -N -d ${BUILD_DIR}/numpy/src/external_numpy < ${PATCH_DIR}/numpy.diff )
else()
set(NUMPY_INSTALL echo .)
set(NUMPY_PATCH echo .)
@@ -54,6 +53,13 @@ ExternalProject_Add(external_numpy
INSTALL_COMMAND ${NUMPY_INSTALL}
)
if(WIN32)
ExternalProject_Add_Step(external_numpy after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}${NUMPY_ARCHIVE_POSTFIX}.tar.gz ${HARVEST_TARGET}/Release/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}${NUMPY_ARCHIVE_POSTFIX}.tar.gz
DEPENDEES install
)
endif()
add_dependencies(
external_numpy
Make_Python_Environment

View File

@@ -39,5 +39,16 @@ if(BUILD_MODE STREQUAL Release)
PREFIX ${BUILD_DIR}/openal
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openal ${DEFAULT_CMAKE_FLAGS} ${OPENAL_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/openal
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/openal/src/external_openal < ${PATCH_DIR}/openal.diff
)
if(WIN32)
ExternalProject_Add_Step(external_openal after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openal/lib/openal32.lib ${HARVEST_TARGET}/openal/lib/openal32.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openal/bin/openal32.dll ${HARVEST_TARGET}/openal/lib/openal32.dll
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openal/include/ ${HARVEST_TARGET}/openal/include/
DEPENDEES install
)
endif()
endif()

View File

@@ -16,7 +16,7 @@
#
# ***** END GPL LICENSE BLOCK *****
if(UNIX AND NOT APPLE)
if(UNIX)
set(OPENCOLLADA_EXTRA_ARGS
-DLIBXML2_INCLUDE_DIR=${LIBDIR}/xml2/include/libxml2
-DLIBXML2_LIBRARIES=${LIBDIR}/xml2/lib/libxml2.a)
@@ -32,9 +32,34 @@ ExternalProject_Add(external_opencollada
INSTALL_DIR ${LIBDIR}/opencollada
)
if(UNIX AND NOT APPLE)
if(UNIX)
add_dependencies(
external_opencollada
external_xml2
)
endif()
if(WIN32)
if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_opencollada after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencollada/ ${HARVEST_TARGET}/opencollada/
DEPENDEES install
)
endif()
if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_opencollada after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/buffer.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/buffer_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/ftoa.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/ftoa_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/GeneratedSaxParser.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/GeneratedSaxParser_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/MathMLSolver.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/MathMLSolver_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADABaseUtils.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADABaseUtils_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADAFramework.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADAFramework_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADASaxFrameworkLoader.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADASaxFrameworkLoader_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADAStreamWriter.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADAStreamWriter_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/pcre.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/pcre_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/UTF.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/UTF_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/xml.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/xml_d.lib
DEPENDEES install
)
endif()
endif()

View File

@@ -17,34 +17,46 @@
# ***** END GPL LICENSE BLOCK *****
set(OPENCOLORIO_EXTRA_ARGS
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
-DBoost_USE_MULTITHREADED=ON
-DBoost_USE_STATIC_LIBS=ON
-DBoost_USE_STATIC_RUNTIME=ON
-DBOOST_ROOT=${LIBDIR}/boost
-DBOOST_INCLUDEDIR=${LIBDIR}/boost/include/boost_1_60/boost
-DBoost_NO_SYSTEM_PATHS=ON
-DBoost_DEBUG=ON
-DBoost_MAJOR_VERSION=1
-DBoost_MINOR_VERSION=60
-DOCIO_BUILD_APPS=OFF
-DOCIO_BUILD_PYGLUE=OFF
-DOCIO_BUILD_NUKE=OFF
-DOCIO_USE_BOOST_PTR=OFF
-DOCIO_BUILD_STATIC=ON
-DOCIO_BUILD_SHARED=OFF
-DOCIO_BUILD_TRUELIGHT=OFF
-DOCIO_BUILD_DOCS=OFF
-DOCIO_BUILD_PYGLUE=OFF
-DOCIO_BUILD_JNIGLUE=OFF
-DOCIO_STATIC_JNIGLUE=OFF
)
if(WIN32)
set(OCIO_PATCH opencolorio_win.diff)
set(OPENCOLORIO_EXTRA_ARGS
${OPENCOLORIO_EXTRA_ARGS}
-DOCIO_USE_BOOST_PTR=ON
-DOCIO_BUILD_STATIC=OFF
-DOCIO_BUILD_SHARED=ON
-DOCIO_BUILD_TESTS=OFF
-DOCIO_USE_SSE=ON
-DOCIO_INLINES_HIDDEN=OFF
-DOCIO_PYGLUE_LINK=OFF
-DOCIO_PYGLUE_RESPECT_ABI=OFF
-DOCIO_PYGLUE_SONAME=OFF
-DOCIO_PYGLUE_LIB_PREFIX=OFF
-DUSE_EXTERNAL_TINYXML=ON
-DTINYXML_INCLUDE_DIR=${LIBDIR}/tinyxml/include
-DTINYXML_LIBRARY=${LIBDIR}/tinyxml/lib/tinyxml${libext}
-DUSE_EXTERNAL_YAML=ON
-DYAML_CPP_FOUND=ON
-DYAML_CPP_VERSION=${YAMLCPP_VERSION}
-DUSE_EXTERNAL_LCMS=ON
-DINC_1=${LIBDIR}/tinyxml/include
-DINC_2=${LIBDIR}/yamlcpp/include
#lie because ocio cmake is demanding boost even though it is not needed
-DYAML_CPP_VERSION=0.5.0
)
else()
set(OCIO_PATCH opencolorio.diff)
set(OPENCOLORIO_EXTRA_ARGS
${OPENCOLORIO_EXTRA_ARGS}
-DOCIO_USE_BOOST_PTR=OFF
-DOCIO_BUILD_STATIC=ON
-DOCIO_BUILD_SHARED=OFF
)
endif()
@@ -53,7 +65,7 @@ ExternalProject_Add(external_opencolorio
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${OPENCOLORIO_HASH}
PREFIX ${BUILD_DIR}/opencolorio
PATCH_COMMAND ${PATCH_CMD} -p 0 -N -d ${BUILD_DIR}/opencolorio/src/external_opencolorio < ${PATCH_DIR}/opencolorio.diff
PATCH_COMMAND ${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/opencolorio/src/external_opencolorio < ${PATCH_DIR}/${OCIO_PATCH}
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/opencolorio ${DEFAULT_CMAKE_FLAGS} ${OPENCOLORIO_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/opencolorio
)
@@ -71,3 +83,30 @@ add_dependencies(
external_opencolorio
external_boost
)
if(WIN32)
add_dependencies(
external_opencolorio
external_tinyxml
external_yamlcpp
)
if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_opencolorio after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencolorio/include ${HARVEST_TARGET}/opencolorio/include
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencolorio/lib/static ${HARVEST_TARGET}/opencolorio/lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/yamlcpp/lib/libyaml-cppmt.lib ${HARVEST_TARGET}/opencolorio/lib/libyaml-cpp.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tinyxml/lib/tinyxml.lib ${HARVEST_TARGET}/opencolorio/lib/tinyxml.lib
DEPENDEES install
)
endif()
if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_opencolorio after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencolorio/lib/static/Opencolorio.lib ${HARVEST_TARGET}/opencolorio/lib/OpencolorIO_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/yamlcpp/lib/libyaml-cppmtd.lib ${HARVEST_TARGET}/opencolorio/lib/libyaml-cpp_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tinyxml/lib/tinyxml.lib ${HARVEST_TARGET}/opencolorio/lib/tinyxml_d.lib
DEPENDEES install
)
endif()
endif()

View File

@@ -18,26 +18,59 @@
if(WIN32)
set(OPENEXR_CMAKE_CXX_STANDARD_LIBRARIES "kernel32${LIBEXT} user32${LIBEXT} gdi32${LIBEXT} winspool${LIBEXT} shell32${LIBEXT} ole32${LIBEXT} oleaut32${LIBEXT} uuid${LIBEXT} comdlg32${LIBEXT} advapi32${LIBEXT} psapi${LIBEXT}")
set(OPENEXR_EXTRA_ARGS
-DCMAKE_CXX_STANDARD_LIBRARIES=${OPENEXR_CMAKE_CXX_STANDARD_LIBRARIES}
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
-DILMBASE_PACKAGE_PREFIX=${LIBDIR}/ilmbase
-DOPENEXR_BUILD_ILMBASE=On
-DOPENEXR_BUILD_OPENEXR=On
-DOPENEXR_BUILD_PYTHON_LIBS=Off
-DOPENEXR_BUILD_STATIC=On
-DOPENEXR_BUILD_SHARED=Off
-DOPENEXR_BUILD_TESTS=Off
-DOPENEXR_BUILD_VIEWERS=Off
-DOPENEXR_BUILD_UTILS=Off
-DOPENEXR_NAMESPACE_VERSIONING=Off
)
ExternalProject_Add(external_openexr
URL ${OPENEXR_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${OPENEXR_HASH}
PREFIX ${BUILD_DIR}/openexr
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openexr ${DEFAULT_CMAKE_FLAGS} ${OPENEXR_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/openexr
)
ExternalProject_Add_Step(external_openexr after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openexr/lib ${HARVEST_TARGET}/openexr/lib
#libs have moved between versions, just duplicate it for now.
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openexr/lib ${LIBDIR}/ilmbase/lib
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openexr/include ${HARVEST_TARGET}/openexr/include
DEPENDEES install
)
else()
set(OPENEXR_PKG_CONFIG_PATH ${LIBDIR}/zlib/share/pkgconfig)
set(OPENEXR_EXTRA_ARGS
--enable-static
--disable-shared
--enable-cxxstd=11
--with-ilmbase-prefix=${LIBDIR}/ilmbase
)
ExternalProject_Add(external_openexr
URL ${OPENEXR_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${OPENEXR_HASH}
PREFIX ${BUILD_DIR}/openexr
CONFIGURE_COMMAND ${CONFIGURE_ENV} && export PKG_CONFIG_PATH=${OPENEXR_PKG_CONFIG_PATH} && cd ${BUILD_DIR}/openexr/src/external_openexr/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/openexr ${OPENEXR_EXTRA_ARGS}
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openexr/src/external_openexr/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openexr/src/external_openexr/ && make install
INSTALL_DIR ${LIBDIR}/openexr
)
endif()
set(OPENEXR_EXTRA_ARGS
-DBUILD_SHARED_LIBS=OFF
-DCMAKE_CXX_STANDARD_LIBRARIES=${OPENEXR_CMAKE_CXX_STANDARD_LIBRARIES}
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
-DILMBASE_PACKAGE_PREFIX=${LIBDIR}/ilmbase
)
ExternalProject_Add(external_openexr
URL ${OPENEXR_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${OPENEXR_HASH}
PREFIX ${BUILD_DIR}/openexr
PATCH_COMMAND ${PATCH_CMD} -p 0 -d ${BUILD_DIR}/openexr/src/external_openexr < ${PATCH_DIR}/openexr.diff
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openexr ${DEFAULT_CMAKE_FLAGS} ${OPENEXR_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/openexr
)
add_dependencies(
external_openexr
external_zlib

View File

@@ -51,8 +51,8 @@ if(MSVC)
set(OPENJPEG_FLAGS
-DOPENJPEG_HOME=${LIBDIR}/openjpeg_msvc
-DOPENJPEG_INCLUDE_DIR=${LIBDIR}/openjpeg_msvc/include/openjpeg-${OPENJPEG_SHORT_VERSION}
-DOPENJPEG_LIBRARY=${LIBDIR}/openjpeg_msvc/lib/openjpeg${LIBEXT}
-DOPENJPEG_LIBRARY_DEBUG=${LIBDIR}/openjpeg_msvc/lib/openjpeg${LIBEXT}
-DOPENJPEG_LIBRARY=${LIBDIR}/openjpeg_msvc/lib/openjp2${LIBEXT}
-DOPENJPEG_LIBRARY_DEBUG=${LIBDIR}/openjpeg_msvc/lib/openjp2${LIBEXT}
)
else()
set(OPENJPEG_FLAGS
@@ -65,7 +65,7 @@ set(OPENIMAGEIO_EXTRA_ARGS
-DBUILDSTATIC=ON
${OPENIMAGEIO_LINKSTATIC}
-DOPENEXR_INCLUDE_DIR=${LIBDIR}/openexr/include/openexr/
-DOPENEXR_ILMIMF_LIBRARIES=${LIBDIR}/openexr/lib/IlmImf-2_2${LIBEXT}
-DOPENEXR_ILMIMF_LIBRARIES=${LIBDIR}/openexr/lib/IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
-DBoost_USE_MULTITHREADED=ON
-DBoost_USE_STATIC_LIBS=ON
@@ -109,12 +109,12 @@ set(OPENIMAGEIO_EXTRA_ARGS
-DILMBASE_INCLUDE_PATH=${LIBDIR}/ilmbase/
-DILMBASE_PACKAGE_PREFIX=${LIBDIR}/ilmbase/
-DILMBASE_INCLUDE_DIR=${LIBDIR}/ilmbase/include/
-DOPENEXR_HALF_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Half${LIBEXT}
-DOPENEXR_IMATH_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Imath-2_2${LIBEXT}
-DOPENEXR_ILMTHREAD_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}IlmThread-2_2${LIBEXT}
-DOPENEXR_IEX_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Iex-2_2${LIBEXT}
-DOPENEXR_HALF_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Half${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_IMATH_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Imath${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_ILMTHREAD_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}IlmThread${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_IEX_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Iex${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_INCLUDE_DIR=${LIBDIR}/openexr/include/
-DOPENEXR_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf-2_2${LIBEXT}
-DOPENEXR_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DSTOP_ON_WARNING=OFF
${WEBP_FLAGS}
${OIIO_SIMD_FLAGS}
@@ -127,7 +127,7 @@ ExternalProject_Add(external_openimageio
PREFIX ${BUILD_DIR}/openimageio
PATCH_COMMAND
${PATCH_CMD} -p 0 -N -d ${BUILD_DIR}/openimageio/src/external_openimageio/src/include < ${PATCH_DIR}/openimageio_gdi.diff &&
${PATCH_CMD} -p 0 -N -d ${BUILD_DIR}/openimageio/src/external_openimageio/ < ${PATCH_DIR}/openimageio_staticexr.diff
${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/openimageio/src/external_openimageio/ < ${PATCH_DIR}/openimageio_static_libs.diff
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openimageio ${DEFAULT_CMAKE_FLAGS} ${OPENIMAGEIO_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/openimageio
)

View File

@@ -22,7 +22,7 @@
set(OPENJPEG_EXTRA_ARGS -DBUILD_SHARED_LIBS=OFF)
if(WIN32)
set(OPENJPEG_EXTRA_ARGS -G "MSYS Makefiles")
set(OPENJPEG_EXTRA_ARGS -G "MSYS Makefiles" -DBUILD_PKGCONFIG_FILES=On)
else()
set(OPENJPEG_EXTRA_ARGS ${DEFAULT_CMAKE_FLAGS})
endif()
@@ -46,7 +46,7 @@ if(MSVC)
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH SHA256=${OPENJPEG_HASH}
PREFIX ${BUILD_DIR}/openjpeg_msvc
CMAKE_ARGS ${OPENJPEG_EXTRA_ARGS} -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openjpeg_msvc -DBUILD_SHARED_LIBS=Off -DBUILD_THIRDPARTY=OFF
CMAKE_ARGS ${OPENJPEG_EXTRA_ARGS} -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openjpeg_msvc -DBUILD_SHARED_LIBS=Off -DBUILD_THIRDPARTY=OFF
INSTALL_DIR ${LIBDIR}/openjpeg_msvc
)
if(BUILD_MODE STREQUAL Release)
@@ -58,7 +58,7 @@ if(MSVC)
endif()
endif()
set(OPENJPEG_LIBRARY libopenjpeg${LIBEXT})
set(OPENJPEG_LIBRARY libopenjp2${LIBEXT})
if(MSVC)
set_target_properties(external_openjpeg PROPERTIES FOLDER Mingw)
endif()

View File

@@ -0,0 +1,32 @@
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ***** END GPL LICENSE BLOCK *****
ExternalProject_Add(external_openmp
URL ${OPENMP_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${OPENMP_HASH}
PREFIX ${BUILD_DIR}/openmp
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openmp ${DEFAULT_CMAKE_FLAGS}
INSTALL_DIR ${LIBDIR}/clang
)
add_dependencies(
external_openmp
external_clang
)

View File

@@ -33,22 +33,28 @@ set(OPENSUBDIV_EXTRA_ARGS
)
if(WIN32)
#no cuda support for vc15 yet
if(msvc15)
set(OPENSUBDIV_CUDA ON)
else()
set(OPENSUBDIV_CUDA ON)
endif()
set(OPENSUBDIV_EXTRA_ARGS
${OPENSUBDIV_EXTRA_ARGS}
-DNO_CUDA=${OPENSUBDIV_CUDA}
-DTBB_INCLUDE_DIR=${LIBDIR}/tbb/include
-DTBB_LIBRARIES=${LIBDIR}/tbb/lib/tbb_static.lib
-DCLEW_INCLUDE_DIR=${LIBDIR}/clew/include/CL
-DCLEW_LIBRARY=${LIBDIR}/clew/lib/clew${LIBEXT}
-DCUEW_INCLUDE_DIR=${LIBDIR}/cuew/include
-DCUEW_LIBRARY=${LIBDIR}/cuew/lib/cuew${LIBEXT}
-DCMAKE_EXE_LINKER_FLAGS_RELEASE=libcmt.lib
)
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
set(OPENSUBDIV_EXTRA_ARGS
${OPENSUBDIV_EXTRA_ARGS}
-DNO_CUDA=OFF
)
else()
set(OPENSUBDIV_EXTRA_ARGS
${OPENSUBDIV_EXTRA_ARGS}
-DNO_CUDA=ON
)
endif()
else()
set(OPENSUBDIV_EXTRA_ARGS
${OPENSUBDIV_EXTRA_ARGS}
@@ -69,10 +75,28 @@ ExternalProject_Add(external_opensubdiv
INSTALL_DIR ${LIBDIR}/opensubdiv
)
if(WIN32)
if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_opensubdiv after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opensubdiv/lib ${HARVEST_TARGET}/opensubdiv/lib
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opensubdiv/include ${HARVEST_TARGET}/opensubdiv/include
DEPENDEES install
)
endif()
if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_opensubdiv after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opensubdiv/lib/osdCPU.lib ${HARVEST_TARGET}/opensubdiv/lib/osdCPU_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opensubdiv/lib/osdGPU.lib ${HARVEST_TARGET}/opensubdiv/lib/osdGPU_d.lib
DEPENDEES install
)
endif()
endif()
add_dependencies(
external_opensubdiv
external_glew
external_glfw
external_clew
external_cuew
external_tbb
)

View File

@@ -21,23 +21,6 @@ if(BUILD_MODE STREQUAL Debug)
endif()
set(OPENVDB_EXTRA_ARGS
-DILMBASE_HOME=${LIBDIR}/ilmbase/
-DILMBASE_CUSTOM=ON
-DILMBASE_CUSTOM_LIBRARIES=Half;Imath-2_2;IlmThread-2_2;Iex-2_2
-DILMBASE_INCLUDE_DIR=${LIBDIR}/ilmbase/include/
-DILMBASE_HALF_LIBRARIES=${LIBDIR}/ilmbase/lib/Half${LIBEXT}
-DILMBASE_IMATH_LIBRARIES=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Imath-2_2${LIBEXT}
-DILMBASE_ILMTHREAD_LIBRARIES=${LIBDIR}/ilmbase/lib/${LIBPREFIX}IlmThread-2_2${LIBEXT}
-DILMBASE_IEX_LIBRARIES=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Iex-2_2${LIBEXT}
-DOPENEXR_HOME=${LIBDIR}/openexr/
-DOPENEXR_USE_STATIC_LIBS=ON
-DOPENEXR_CUSTOM=ON
-DOPENEXR_CUSTOM_LIBRARY=IlmImf-2_2
-DOPENEXR_INCLUDE_DIR=${LIBDIR}/openexr/include/
-DOPENEXR_ILMIMF_LIBRARIES=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf-2_2${LIBEXT}
-DTBB_ROOT_DIR=${LIBDIR}/tbb/
-DTBB_INCLUDE_DIRS=${LIBDIR}/tbb/include
-DTBB_LIBRARY=${LIBDIR}/tbb/lib/tbb_static${LIBEXT}
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
-DBoost_USE_MULTITHREADED=ON
-DBoost_USE_STATIC_LIBS=ON
@@ -46,25 +29,48 @@ set(OPENVDB_EXTRA_ARGS
-DBoost_NO_SYSTEM_PATHS=ON
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
-DWITH_BLOSC=ON
-DBLOSC_INCLUDE_DIR=${LIBDIR}/blosc/include/
-DBLOSC_LIBRARY=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
-DBLOSC_blosc_LIBRARY=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
-DOPENVDB_ENABLE_3_ABI_COMPATIBLE=OFF
-DOPENVDB_BUILD_UNITTESTS=Off
-DOPENVDB_BUILD_PYTHON_MODULE=Off
-DGLEW_LOCATION=${LIBDIR}/glew/
-DBLOSC_LOCATION=${LIBDIR}/blosc/
-DTBB_LOCATION=${LIBDIR}/tbb/
-DTBB_ROOT=${LIBDIR}/tbb/
-DOPENEXR_LOCATION=${LIBDIR}/openexr
-DILMBASE_LOCATION=${LIBDIR}/ilmbase
-DIlmbase_HALF_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Half${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DIlmbase_IEX_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Iex${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DIlmbase_ILMTHREAD_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}IlmThread${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOpenexr_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DTBB_LIBRARYDIR=${LIBDIR}/tbb/lib
-DTbb_TBB_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb_static${LIBEXT}
-DTBB_LIBRARY_PATH=${LIBDIR}/tbb/lib
)
set(OPENVDB_EXTRA_ARGS ${OPENVDB_EXTRA_ARGS})
# CMake script for OpenVDB based on https://raw.githubusercontent.com/diekev/openvdb-cmake/master/CMakeLists.txt
# can't be in external_openvdb because of how the includes are setup.
if(WIN32)
# Namespaces seem to be buggy and cause linker errors due to things not
# being in the correct namespace
# needs to link pthreads due to it being a blosc dependency
set(OPENVDB_EXTRA_ARGS ${OPENVDB_EXTRA_ARGS}
-DOPENEXR_NAMESPACE_VERSIONING=OFF
-DEXTRA_LIBS:FILEPATH=${LIBDIR}/pthreads/lib/pthreadVC2.lib
)
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "4")
set(OPENVDB_EXTRA_ARGS ${OPENVDB_EXTRA_ARGS}
-DCMAKE_SHARED_LINKER_FLAGS="/safeseh:no"
-DCMAKE_EXE_LINKER_FLAGS="/safeseh:no"
)
endif()
endif()
ExternalProject_Add(openvdb
URL ${OPENVDB_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${OPENVDB_HASH}
PREFIX ${BUILD_DIR}/openvdb
PATCH_COMMAND COMMAND
${CMAKE_COMMAND} -E copy ${PATCH_DIR}/cmakelists_openvdb.txt ${BUILD_DIR}/openvdb/src/openvdb/CMakeLists.txt &&
${CMAKE_COMMAND} -E copy_directory ${PATCH_DIR}/cmake/ ${BUILD_DIR}/openvdb/src/openvdb/cmake/ &&
${PATCH_CMD} --verbose -p 0 -N -d ${BUILD_DIR}/openvdb/src/openvdb < ${PATCH_DIR}/openvdb_vc2013.diff
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/openvdb/src/openvdb < ${PATCH_DIR}/openvdb.diff
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openvdb ${DEFAULT_CMAKE_FLAGS} ${OPENVDB_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/openvdb
)
@@ -78,3 +84,19 @@ add_dependencies(
external_zlib
external_blosc
)
if(WIN32)
if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(openvdb after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openvdb/include ${HARVEST_TARGET}/openvdb/include
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/libopenvdb.lib ${HARVEST_TARGET}/openvdb/lib/openvdb.lib
DEPENDEES install
)
endif()
if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(openvdb after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/libopenvdb.lib ${HARVEST_TARGET}/openvdb/lib/openvdb_d.lib
DEPENDEES install
)
endif()
endif()

View File

@@ -20,6 +20,7 @@ if(WIN32)
option(ENABLE_MINGW64 "Enable building of ffmpeg/iconv/libsndfile/lapack/fftw3 by installing mingw64" ON)
endif()
option(WITH_WEBP "Enable building of oiio with webp support" OFF)
option(WITH_EMBREE "Enable building of Embree" OFF)
set(MAKE_THREADS 1 CACHE STRING "Number of threads to run make with")
if(NOT BUILD_MODE)
@@ -56,24 +57,27 @@ if(WIN32)
# For OIIO and OSL
set(COMMON_DEFINES /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS)
# TODO FIXME highly MSVC specific
if(WITH_OPTIMIZED_DEBUG)
set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MTd /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
else()
set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MTd /Zi /Ob0 /Od /RTC1 /D_DEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
if(MSVC_VERSION GREATER 1909)
set(COMMON_MSVC_FLAGS "/Wv:18") #some deps with warnings as error aren't quite ready for dealing with the new 2017 warnings.
endif()
set(BLENDER_CMAKE_C_FLAGS_MINSIZEREL "/MT /O1 /Ob1 /D NDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
set(BLENDER_CMAKE_C_FLAGS_RELEASE "/MT /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
set(BLENDER_CMAKE_C_FLAGS_RELWITHDEBINFO "/MT /Zi /O2 /Ob1 /D NDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
set(COMMON_MSVC_FLAGS "${COMMON_MSVC_FLAGS} /bigobj")
if(WITH_OPTIMIZED_DEBUG)
set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MTd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
else()
set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MTd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /D_DEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
endif()
set(BLENDER_CMAKE_C_FLAGS_MINSIZEREL "/MT ${COMMON_MSVC_FLAGS} /O1 /Ob1 /D NDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
set(BLENDER_CMAKE_C_FLAGS_RELEASE "/MT ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
set(BLENDER_CMAKE_C_FLAGS_RELWITHDEBINFO "/MT ${COMMON_MSVC_FLAGS} /Zi /O2 /Ob1 /D NDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
if(WITH_OPTIMIZED_DEBUG)
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/MTd /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/MTd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
else()
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /D PLATFORM_WINDOWS /MTd /Zi /Ob0 /Od /RTC1 /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /D PLATFORM_WINDOWS /MTd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
endif()
set(BLENDER_CMAKE_CXX_FLAGS_MINSIZEREL "/MT /O1 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
set(BLENDER_CMAKE_CXX_FLAGS_RELEASE "/MT /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
set(BLENDER_CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MT /Zi /O2 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
set(BLENDER_CMAKE_CXX_FLAGS_MINSIZEREL "/MT /${COMMON_MSVC_FLAGS} /O1 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
set(BLENDER_CMAKE_CXX_FLAGS_RELEASE "/MT ${COMMON_MSVC_FLAGS} /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
set(BLENDER_CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MT ${COMMON_MSVC_FLAGS} /Zi /O2 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
set(PLATFORM_FLAGS)
set(PLATFORM_CXX_FLAGS)
@@ -123,7 +127,7 @@ else()
)
set(OSX_ARCHITECTURES x86_64)
set(OSX_DEPLOYMENT_TARGET 10.9)
set(OSX_SDK_VERSION 10.12)
set(OSX_SDK_VERSION 10.13)
set(OSX_SYSROOT ${XCODE_DEV_PATH}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX${OSX_SDK_VERSION}.sdk)
set(PLATFORM_CFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET}")
@@ -140,17 +144,17 @@ else()
set(PLATFORM_CXXFLAGS "-std=c++11 -fPIC")
set(PLATFORM_LDFLAGS)
set(PLATFORM_BUILD_TARGET)
set(PLATFORM_CMAKE_FLAGS)
set(PLATFORM_CMAKE_FLAGS -DCMAKE_INSTALL_LIBDIR=lib)
endif()
if(WITH_OPTIMIZED_DEBUG)
set(BLENDER_CMAKE_C_FLAGS_DEBUG "-O2 -DNDEBUG")
set(BLENDER_CMAKE_C_FLAGS_DEBUG "-O2 -DNDEBUG ${PLATFORM_CFLAGS}")
else()
set(BLENDER_CMAKE_C_FLAGS_DEBUG "-g")
set(BLENDER_CMAKE_C_FLAGS_DEBUG "-g ${PLATFORM_CFLAGS}")
endif()
set(BLENDER_CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG")
set(BLENDER_CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG")
set(BLENDER_CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG")
set(BLENDER_CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG ${PLATFORM_CFLAGS}")
set(BLENDER_CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG ${PLATFORM_CFLAGS}")
set(BLENDER_CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG ${PLATFORM_CFLAGS}")
if(WITH_OPTIMIZED_DEBUG)
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "-O2 -DNDEBUG ${PLATFORM_CXXFLAGS}")
@@ -199,7 +203,11 @@ endif()
if(WIN32)
set(ZLIB_LIBRARY zlibstatic${LIBEXT})
if(BUILD_MODE STREQUAL Debug)
set(ZLIB_LIBRARY zlibstaticd${LIBEXT})
else()
set(ZLIB_LIBRARY zlibstatic${LIBEXT})
endif()
else()
set(ZLIB_LIBRARY libz${LIBEXT})
endif()

View File

@@ -19,20 +19,22 @@
if(WIN32)
set(OSL_CMAKE_CXX_STANDARD_LIBRARIES "kernel32${LIBEXT} user32${LIBEXT} gdi32${LIBEXT} winspool${LIBEXT} shell32${LIBEXT} ole32${LIBEXT} oleaut32${LIBEXT} uuid${LIBEXT} comdlg32${LIBEXT} advapi32${LIBEXT} psapi${LIBEXT}")
set(OSL_FLEX_BISON -DFLEX_EXECUTABLE=${LIBDIR}/flexbison/win_flex.exe -DFLEX_EXTRA_OPTIONS="--wincompat" -DBISON_EXECUTABLE=${LIBDIR}/flexbison/win_bison.exe)
set(OSL_OPENIMAGEIO_LIBRARY "${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO${LIBEXT};${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO_Util${LIBEXT};${LIBDIR}/png/lib/libpng16${LIBEXT};${LIBDIR}/jpg/lib/${LIBPREFIX}jpeg${LIBEXT};${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT};${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf-2_2${LIBEXT}")
set(OSL_OPENIMAGEIO_LIBRARY "${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO${LIBEXT};${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO_Util${LIBEXT};${LIBDIR}/png/lib/libpng16${LIBEXT};${LIBDIR}/jpg/lib/${LIBPREFIX}jpeg${LIBEXT};${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT};${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}")
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "4")
set(OSL_SIMD_FLAGS -DOIIO_NOSIMD=1 -DOIIO_SIMD=0)
else()
set(OSL_SIMD_FLAGS -DOIIO_NOSIMD=1 -DOIIO_SIMD=sse2)
endif()
SET(OSL_PLATFORM_FLAGS -DLINKSTATIC=ON)
else()
set(OSL_CMAKE_CXX_STANDARD_LIBRARIES)
set(OSL_FLEX_BISON)
set(OSL_OPENIMAGEIO_LIBRARY "${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO${LIBEXT};${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO_Util${LIBEXT};${LIBDIR}/png/lib/${LIBPREFIX}png16${LIBEXT};${LIBDIR}/jpg/lib/${LIBPREFIX}jpeg${LIBEXT};${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT};${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf-2_2${LIBEXT}")
set(OSL_OPENIMAGEIO_LIBRARY "${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO${LIBEXT};${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO_Util${LIBEXT};${LIBDIR}/png/lib/${LIBPREFIX}png16${LIBEXT};${LIBDIR}/jpg/lib/${LIBPREFIX}jpeg${LIBEXT};${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT};${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}")
SET(OSL_PLATFORM_FLAGS)
endif()
set(OSL_ILMBASE_CUSTOM_LIBRARIES "${LIBDIR}/ilmbase/lib/Imath-2_2.lib^^${LIBDIR}/ilmbase/lib/Half.lib^^${LIBDIR}/ilmbase/lib/IlmThread-2_2.lib^^${LIBDIR}/ilmbase/lib/Iex-2_2.lib")
set(OSL_LLVM_LIBRARY "${LIBDIR}/llvm/lib/LLVMAnalysis${LIBEXT};${LIBDIR}/llvm/lib/LLVMAsmParser${LIBEXT};${LIBDIR}/llvm/lib/LLVMAsmPrinter${LIBEXT};${LIBDIR}/llvm/lib/LLVMBitReader${LIBEXT};${LIBDIR}/llvm/lib/LLVMBitWriter${LIBEXT};${LIBDIR}/llvm/lib/LLVMCodeGen${LIBEXT};${LIBDIR}/llvm/lib/LLVMCore${LIBEXT};${LIBDIR}/llvm/lib/LLVMDebugInfo${LIBEXT};${LIBDIR}/llvm/lib/LLVMExecutionEngine${LIBEXT};${LIBDIR}/llvm/lib/LLVMInstCombine${LIBEXT};${LIBDIR}/llvm/lib/LLVMInstrumentation${LIBEXT};${LIBDIR}/llvm/lib/LLVMInterpreter${LIBEXT};${LIBDIR}/llvm/lib/LLVMJIT${LIBEXT};${LIBDIR}/llvm/lib/LLVMLinker${LIBEXT};${LIBDIR}/llvm/lib/LLVMMC${LIBEXT};${LIBDIR}/llvm/lib/LLVMMCDisassembler${LIBEXT};${LIBDIR}/llvm/lib/LLVMMCJIT${LIBEXT};${LIBDIR}/llvm/lib/LLVMMCParser${LIBEXT};${LIBDIR}/llvm/lib/LLVMObject${LIBEXT};${LIBDIR}/llvm/lib/LLVMRuntimeDyld${LIBEXT};${LIBDIR}/llvm/lib/LLVMScalarOpts${LIBEXT};${LIBDIR}/llvm/lib/LLVMSelectionDAG${LIBEXT};${LIBDIR}/llvm/lib/LLVMSupport${LIBEXT};${LIBDIR}/llvm/lib/LLVMTableGen${LIBEXT};${LIBDIR}/llvm/lib/LLVMTarget${LIBEXT};${LIBDIR}/llvm/lib/LLVMTransformUtils${LIBEXT};${LIBDIR}/llvm/lib/LLVMVectorize${LIBEXT};${LIBDIR}/llvm/lib/LLVMX86AsmParser${LIBEXT};${LIBDIR}/llvm/lib/LLVMX86AsmPrinter${LIBEXT};${LIBDIR}/llvm/lib/LLVMX86CodeGen${LIBEXT};${LIBDIR}/llvm/lib/LLVMX86Desc${LIBEXT};${LIBDIR}/llvm/lib/LLVMX86Disassembler${LIBEXT};${LIBDIR}/llvm/lib/LLVMX86Info${LIBEXT};${LIBDIR}/llvm/lib/LLVMX86Utils${LIBEXT};${LIBDIR}/llvm/lib/LLVMipa${LIBEXT};${LIBDIR}/llvm/lib/LLVMipo${LIBEXT}")
set(OSL_ILMBASE_CUSTOM_LIBRARIES "${LIBDIR}/ilmbase/lib/Imath${ILMBASE_VERSION_POSTFIX}.lib^^${LIBDIR}/ilmbase/lib/Half{ILMBASE_VERSION_POSTFIX}.lib^^${LIBDIR}/ilmbase/lib/IlmThread${ILMBASE_VERSION_POSTFIX}.lib^^${LIBDIR}/ilmbase/lib/Iex${ILMBASE_VERSION_POSTFIX}.lib")
set(OSL_LLVM_LIBRARY "${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMAnalysis${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMAsmParser${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMAsmPrinter${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMBitReader${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMBitWriter${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMCodeGen${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMCore${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMDebugInfo${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMExecutionEngine${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMInstCombine${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMInstrumentation${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMInterpreter${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMJIT${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMLinker${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMMC${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMMCDisassembler${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMMCJIT${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMMCParser${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMObject${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMRuntimeDyld${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMScalarOpts${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMSelectionDAG${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMSupport${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMTableGen${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMTarget${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMTransformUtils${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMVectorize${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86AsmParser${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86AsmPrinter${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86CodeGen${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86Desc${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86Disassembler${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86Info${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86Utils${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMipa${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMipo${LIBEXT}")
set(OSL_EXTRA_ARGS
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
@@ -50,11 +52,12 @@ set(OSL_EXTRA_ARGS
-DOPENEXR_HOME=${LIBDIR}/openexr/
-DILMBASE_HOME=${LIBDIR}/ilmbase/
-DILMBASE_INCLUDE_DIR=${LIBDIR}/ilmbase/include/
-DOPENEXR_IMATH_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Imath-2_2${LIBEXT}
-DOPENEXR_ILMTHREAD_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}IlmThread-2_2${LIBEXT}
-DOPENEXR_IEX_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Iex-2_2${LIBEXT}
-DOPENEXR_HALF_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Half${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_IMATH_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Imath${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_ILMTHREAD_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}IlmThread${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_IEX_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Iex${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_INCLUDE_DIR=${LIBDIR}/openexr/include/
-DOPENEXR_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf-2_2${LIBEXT}
-DOPENEXR_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DOSL_BUILD_TESTS=OFF
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
@@ -64,23 +67,36 @@ set(OSL_EXTRA_ARGS
${OSL_FLEX_BISON}
-DCMAKE_CXX_STANDARD_LIBRARIES=${OSL_CMAKE_CXX_STANDARD_LIBRARIES}
-DBUILDSTATIC=ON
-DLINKSTATIC=ON
${OSL_PLATFORM_FLAGS}
-DOSL_BUILD_PLUGINS=Off
-DSTOP_ON_WARNING=OFF
-DOSL_BUILD_CPP11=ON
-DUSE_LLVM_BITCODE=OFF
-DUSE_PARTIO=OFF
${OSL_SIMD_FLAGS}
-DPARTIO_LIBRARIES=
)
if(WIN32)
set(OSL_EXTRA_ARGS
${OSL_EXTRA_ARGS}
-DPUGIXML_HOME=${LIBDIR}/pugixml
)
elseif(APPLE)
# Make symbol hiding consistent with OIIO which defaults to OFF,
# avoids linker warnings on macOS
set(OSL_EXTRA_ARGS
${OSL_EXTRA_ARGS}
-DHIDE_SYMBOLS=OFF
)
endif()
ExternalProject_Add(external_osl
URL ${OSL_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
LIST_SEPARATOR ^^
URL_HASH MD5=${OSL_HASH}
PREFIX ${BUILD_DIR}/osl
PATCH_COMMAND
${PATCH_CMD} -p 3 -d ${BUILD_DIR}/osl/src/external_osl < ${PATCH_DIR}/osl.diff &&
${PATCH_CMD} -p 0 -d ${BUILD_DIR}/osl/src/external_osl < ${PATCH_DIR}/osl_simd_oiio.diff
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/osl/src/external_osl < ${PATCH_DIR}/osl.diff
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/osl -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} ${DEFAULT_CMAKE_FLAGS} ${OSL_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/osl
)
@@ -95,4 +111,22 @@ add_dependencies(
external_zlib
external_flexbison
external_openimageio
external_pugixml
)
if(WIN32)
if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_osl after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/osl/ ${HARVEST_TARGET}/osl
DEPENDEES install
)
endif()
if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_osl after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslcomp.lib ${HARVEST_TARGET}/osl/lib/oslcomp_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslexec.lib ${HARVEST_TARGET}/osl/lib/oslexec_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslquery.lib ${HARVEST_TARGET}/osl/lib/oslquery_d.lib
DEPENDEES install
)
endif()
endif()

View File

@@ -43,4 +43,13 @@ if(WIN32)
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/pthreads/src/external_pthreads/semaphore.h ${LIBDIR}/pthreads/inc/semaphore.h
INSTALL_DIR ${LIBDIR}/pthreads
)
if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_pthreads after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/pthreads/inc/ ${HARVEST_TARGET}/pthreads/include/
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/pthreads/lib/ ${HARVEST_TARGET}/pthreads/lib
DEPENDEES install
)
endif()
endif()

View File

@@ -0,0 +1,43 @@
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ***** END GPL LICENSE BLOCK *****
set(PUGIXML_EXTRA_ARGS
)
ExternalProject_Add(external_pugixml
URL ${PUGIXML_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${PUGIXML_HASH}
PREFIX ${BUILD_DIR}/pugixml
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/pugixml ${DEFAULT_CMAKE_FLAGS} ${PUGIXML_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/pugixml
)
if(WIN32)
if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_pugixml after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/pugixml/lib/pugixml.lib ${HARVEST_TARGET}/osl/lib/pugixml.lib
DEPENDEES install
)
endif()
if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_pugixml after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/pugixml/lib/pugixml.lib ${HARVEST_TARGET}/osl/lib/pugixml_d.lib
DEPENDEES install
)
endif()
endif()

View File

@@ -22,6 +22,12 @@ if(BUILD_MODE STREQUAL Debug)
endif()
if(WIN32)
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
set(SSL_POSTFIX -x64)
else()
set(SSL_POSTFIX)
endif()
set(PYTHON_BINARY ${BUILD_DIR}/python/src/external_python/run/python${PYTHON_POSTFIX}.exe)
macro(cmake_to_dos_path MsysPath ResultingPath)
@@ -46,13 +52,12 @@ if(WIN32)
PREFIX ${BUILD_DIR}/python
PATCH_COMMAND
echo mklink /D "${PYTHON_EXTERNALS_FOLDER_DOS}" "${DOWNLOADS_EXTERNALS_FOLDER_DOS}" &&
mklink /D "${PYTHON_EXTERNALS_FOLDER_DOS}" "${DOWNLOADS_EXTERNALS_FOLDER_DOS}" &&
${PATCH_CMD} --verbose -p 0 -d ${BUILD_DIR}/python/src/external_python < ${PATCH_DIR}/python.diff &&
${PATCH_CMD} --verbose -p 0 -d ${BUILD_DIR}/python/src/external_python/pc < ${PATCH_DIR}/pyshell.diff
mklink /D "${PYTHON_EXTERNALS_FOLDER_DOS}" "${DOWNLOADS_EXTERNALS_FOLDER_DOS}"
CONFIGURE_COMMAND ""
BUILD_COMMAND cd ${BUILD_DIR}/python/src/external_python/pcbuild/ && set IncludeTkinter=false && call build.bat -e -p ${PYTHON_ARCH} -c ${BUILD_MODE} -k ${PYTHON_COMPILER_STRING}
BUILD_COMMAND cd ${BUILD_DIR}/python/src/external_python/pcbuild/ && set IncludeTkinter=false && call build.bat -e -p ${PYTHON_ARCH} -c ${BUILD_MODE}
INSTALL_COMMAND COMMAND
${CMAKE_COMMAND} -E copy ${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.dll ${LIBDIR}/python/lib/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.dll &&
${CMAKE_COMMAND} -E copy ${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.pdb ${LIBDIR}/python/lib/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.pdb &&
${CMAKE_COMMAND} -E copy ${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib ${LIBDIR}/python/lib/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib &&
${CMAKE_COMMAND} -E copy ${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.exp ${LIBDIR}/python/lib/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.exp &&
${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/include ${LIBDIR}/python/include/Python${PYTHON_SHORT_VERSION} &&
@@ -62,24 +67,43 @@ if(WIN32)
message("POutput = ${PYTHON_OUTPUTDIR}")
else()
if(APPLE)
# we need to manually add homebrew headers to get ssl module building
set(PYTHON_CFLAGS "-I/usr/local/opt/openssl/include -I${OSX_SYSROOT}/usr/include ${PLATFORM_CFLAGS}")
set(PYTHON_LDFLAGS "-L/usr/local/opt/openssl/lib ${PLATFORM_LDFLAGS}")
set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV} && export CFLAGS=${PYTHON_CFLAGS} && export LDFLAGS=${PYTHON_LDFLAGS})
# disable functions that can be in 10.13 sdk but aren't available on 10.9 target
set(PYTHON_FUNC_CONFIGS
export ac_cv_func_futimens=no &&
export ac_cv_func_utimensat=no &&
export ac_cv_func_basename_r=no &&
export ac_cv_func_clock_getres=no &&
export ac_cv_func_clock_gettime=no &&
export ac_cv_func_clock_settime=no &&
export ac_cv_func_dirname_r=no &&
export ac_cv_func_getentropy=no &&
export ac_cv_func_mkostemp=no &&
export ac_cv_func_mkostemps=no &&
export ac_cv_func_timingsafe_bcmp=no)
set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV} && ${PYTHON_FUNC_CONFIGS})
set(PYTHON_BINARY ${BUILD_DIR}/python/src/external_python/python.exe)
set(PYTHON_PATCH ${PATCH_CMD} --verbose -p 0 -d ${BUILD_DIR}/python/src/external_python < ${PATCH_DIR}/python_apple.diff)
else()
set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV})
set(PYTHON_BINARY ${BUILD_DIR}/python/src/external_python/python)
endif()
set(PYTHON_CONFIGURE_EXTRA_ARGS "--with-openssl=${LIBDIR}/ssl")
set(PYTHON_CFLAGS "-I${LIBDIR}/sqlite/include -I${LIBDIR}/bzip2/include -I${LIBDIR}/lzma/include -I${LIBDIR}/zlib/include")
set(PYTHON_LDFLAGS "-L${LIBDIR}/ffi/lib -L${LIBDIR}/sqlite/lib -L${LIBDIR}/bzip2/lib -L${LIBDIR}/lzma/lib -L${LIBDIR}/zlib/lib")
set(PYTHON_CONFIGURE_EXTRA_ENV
export CFLAGS=${PYTHON_CFLAGS} &&
export CPPFLAGS=${PYTHON_CFLAGS} &&
export LDFLAGS=${PYTHON_LDFLAGS} &&
export PKG_CONFIG_PATH=${LIBDIR}/ffi/lib/pkgconfig)
set(PYTHON_PATCH ${PATCH_CMD} --verbose -p1 -d ${BUILD_DIR}/python/src/external_python < ${PATCH_DIR}/python_linux.diff)
ExternalProject_Add(external_python
URL ${PYTHON_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${PYTHON_HASH}
PREFIX ${BUILD_DIR}/python
PATCH_COMMAND ${PYTHON_PATCH}
CONFIGURE_COMMAND ${PYTHON_CONFIGURE_ENV} && cd ${BUILD_DIR}/python/src/external_python/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/python
CONFIGURE_COMMAND ${PYTHON_CONFIGURE_ENV} && ${PYTHON_CONFIGURE_EXTRA_ENV} && cd ${BUILD_DIR}/python/src/external_python/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/python ${PYTHON_CONFIGURE_EXTRA_ARGS}
BUILD_COMMAND ${PYTHON_CONFIGURE_ENV} && cd ${BUILD_DIR}/python/src/external_python/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${PYTHON_CONFIGURE_ENV} && cd ${BUILD_DIR}/python/src/external_python/ && make install
INSTALL_DIR ${LIBDIR}/python)
@@ -92,39 +116,44 @@ if(MSVC)
OUTPUT ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.tar.gz
OUTPUT ${BUILD_DIR}/python/src/external_python/redist/bin/python${PYTHON_POSTFIX}.exe
COMMAND ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/lib ${BUILD_DIR}/python/src/external_python/redist/lib
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/python${PYTHON_POSTFIX}.exe" ${BUILD_DIR}/python/src/external_python/redist/bin/python${PYTHON_POSTFIX}.exe
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_asyncio${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_asyncio${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_bz2${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_bz2${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_hashlib${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_hashlib${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_lzma${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_lzma${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_sqlite3${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_sqlite3${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_ssl${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_ssl${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/pyexpat${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/pyexpat${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/select${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/select${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/unicodedata${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/unicodedata${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/winsound${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/winsound${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_contextvars${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_contextvars${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_ctypes${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_ctypes${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_ctypes_test${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_ctypes_test${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_decimal${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_decimal${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_distutils_findvs${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_distutils_findvs${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_elementtree${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_elementtree${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_hashlib${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_hashlib${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_lzma${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_lzma${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_msi${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_msi${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_multiprocessing${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_multiprocessing${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_overlapped${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_overlapped${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_queue${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_queue${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_socket${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_socket${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_sqlite3${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_sqlite3${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_ssl${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_ssl${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_testbuffer${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_testbuffer${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_testcapi${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_testcapi${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_testimportmultiple${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_testimportmultiple${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_testmultiphase${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_testmultiphase${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/pyexpat${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/pyexpat${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/python${PYTHON_POSTFIX}.exe" ${BUILD_DIR}/python/src/external_python/redist/bin/python${PYTHON_POSTFIX}.exe
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/select${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/select${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/unicodedata${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/unicodedata${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/winsound${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/winsound${PYTHON_POSTFIX}.pyd
#xxlimited is an example extension module, we don't need to ship it and debug doesn't build it
#leaving it commented out, so I won't get confused again with the next update.
#COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/xxlimited${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/xxlimited${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/libssl-1_1${SSL_POSTFIX}.dll" ${BUILD_DIR}/python/src/external_python/redist/lib/libssl-1_1${SSL_POSTFIX}.dll
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/libcrypto-1_1${SSL_POSTFIX}.dll" ${BUILD_DIR}/python/src/external_python/redist/lib/libcrypto-1_1${SSL_POSTFIX}.dll
COMMAND ${CMAKE_COMMAND} -E chdir "${BUILD_DIR}/python/src/external_python/redist" ${CMAKE_COMMAND} -E tar "cfvz" "${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.tar.gz" "."
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/python/ ${HARVEST_TARGET}/python/
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.tar.gz ${HARVEST_TARGET}/Release/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.tar.gz
)
add_custom_target(Package_Python ALL DEPENDS external_python ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.tar.gz ${BUILD_DIR}/python/src/external_python/redist/bin/python${PYTHON_POSTFIX}.exe)
if(MSVC12)
set(PYTHON_DISTUTIL_PATCH ${PATCH_CMD} --verbose -p 0 -d ${BUILD_DIR}/python/src/external_python/run/lib/distutils < ${PATCH_DIR}/python_runtime_vc2013.diff)
else()
set(PYTHON_DISTUTIL_PATCH echo "No patch needed")
endif()
add_custom_command(OUTPUT ${BUILD_DIR}/python/src/external_python/run/python${PYTHON_POSTFIX}.exe
COMMAND ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/redist ${BUILD_DIR}/python/src/external_python/run
COMMAND ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/include ${BUILD_DIR}/python/src/external_python/run/include
@@ -134,7 +163,18 @@ if(MSVC)
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib" ${BUILD_DIR}/python/src/external_python/run/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib #other things like numpy still want it though.
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/python${PYTHON_POSTFIX}.exe" ${BUILD_DIR}/python/src/external_python/run/python${PYTHON_POSTFIX}.exe
COMMAND ${BUILD_DIR}/python/src/external_python/run/python${PYTHON_POSTFIX}.exe -m ensurepip --upgrade
COMMAND ${PYTHON_DISTUTIL_PATCH}
)
add_custom_target(Make_Python_Environment ALL DEPENDS ${BUILD_DIR}/python/src/external_python/run/python${PYTHON_POSTFIX}.exe Package_Python)
endif()
if(UNIX)
add_dependencies(
external_python
external_bzip2
external_ffi
external_lzma
external_ssl
external_sqlite
external_zlib
)
endif()

View File

@@ -0,0 +1,9 @@
{
global:
Py*;
_Py*;
_py*;
local:
*;
};

View File

@@ -1,48 +0,0 @@
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ***** END GPL LICENSE BLOCK *****
if(WIN32)
set(SCHROEDINGER_EXTRA_FLAGS "CFLAGS=-g -I./ -I${LIBDIR}/orc/include/orc-0.4" "LDFLAGS=-Wl,--as-needed -static-libgcc -L${LIBDIR}/orc/lib" ORC_CFLAGS=-I${LIBDIR}/orc/include/orc-0.4 ORC_LDFLAGS=-L${LIBDIR}/orc/lib ORC_LIBS=${LIBDIR}/orc/lib/liborc-0.4.a ORCC=${LIBDIR}/orc/bin/orcc.exe)
else()
set(SCHROEDINGER_CFLAGS "${PLATFORM_CFLAGS} -I./ -I${LIBDIR}/orc/include/orc-0.4")
set(SCHROEDINGER_LDFLAGS "${PLATFORM_LDFLAGS} -L${LIBDIR}/orc/lib")
set(SCHROEDINGER_EXTRA_FLAGS CFLAGS=${SCHROEDINGER_CFLAGS} LDFLAGS=${SCHROEDINGER_LDFLAGS} ORC_CFLAGS=-I${LIBDIR}/orc/include/orc-0.4 ORC_LDFLAGS=-L${LIBDIR}/orc/lib ORCC=${LIBDIR}/orc/bin/orcc) # ORC_LIBS=${LIBDIR}/orc/lib/liborc-0.4.a
endif()
ExternalProject_Add(external_schroedinger
URL ${SCHROEDINGER_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH SHA256=${SCHROEDINGER_HASH}
PREFIX ${BUILD_DIR}/schroedinger
PATCH_COMMAND ${PATCH_CMD} --verbose -p 0 -N -d ${BUILD_DIR}/schroedinger/src/external_schroedinger < ${PATCH_DIR}/schroedinger.diff
CONFIGURE_COMMAND ${CONFIGURE_ENV} &&
cd ${BUILD_DIR}/schroedinger/src/external_schroedinger/ &&
${CONFIGURE_COMMAND} --prefix=${LIBDIR}/schroedinger --disable-shared --enable-static ${SCHROEDINGER_EXTRA_FLAGS}
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/schroedinger/src/external_schroedinger/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/schroedinger/src/external_schroedinger/ && make install
INSTALL_DIR ${LIBDIR}/schroedinger
)
add_dependencies(
external_schroedinger
external_orc
)
if(MSVC)
set_target_properties(external_schroedinger PROPERTIES FOLDER Mingw)
endif()

View File

@@ -25,6 +25,7 @@ else()
-DSDL_STATIC=ON
-DSDL_SHARED=OFF
-DSDL_VIDEO=OFF
-DSNDIO=OFF
)
endif()
@@ -37,3 +38,12 @@ ExternalProject_Add(external_sdl
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/sdl ${DEFAULT_CMAKE_FLAGS} ${SDL_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/sdl
)
if(BUILD_MODE STREQUAL Release AND WIN32)
ExternalProject_Add_Step(external_sdl after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/sdl/include/sdl2 ${HARVEST_TARGET}/sdl/include
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/sdl/lib ${HARVEST_TARGET}/sdl/lib
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/sdl/bin ${HARVEST_TARGET}/sdl/lib
DEPENDEES install
)
endif()

View File

@@ -35,9 +35,9 @@ message("mingw_LIBDIR = ${mingw_LIBDIR}")
message("Checking for mingw32")
# download mingw32
if(NOT EXISTS "${DOWNLOAD_DIR}/i686-w64-mingw32-gcc-4.8.0-win32_rubenvb.7z")
if(NOT EXISTS "${DOWNLOAD_DIR}/i686-4.9.4-release-win32-sjlj-rt_v5-rev0.7z")
message("Downloading mingw32")
file(DOWNLOAD "https://nchc.dl.sourceforge.net/project/mingw-w64/Toolchains%20targetting%20Win32/Personal%20Builds/rubenvb/gcc-4.8-release/i686-w64-mingw32-gcc-4.8.0-win32_rubenvb.7z" "${DOWNLOAD_DIR}/i686-w64-mingw32-gcc-4.8.0-win32_rubenvb.7z")
file(DOWNLOAD "https://astuteinternet.dl.sourceforge.net/project/mingw-w64/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/4.9.4/threads-win32/sjlj/i686-4.9.4-release-win32-sjlj-rt_v5-rev0.7z" "${DOWNLOAD_DIR}/i686-4.9.4-release-win32-sjlj-rt_v5-rev0.7z")
endif()
# make mingw root directory
@@ -49,10 +49,10 @@ if(NOT EXISTS "${DOWNLOAD_DIR}/mingw")
endif()
# extract mingw32
if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/mingw32env.cmd") AND (EXISTS "${DOWNLOAD_DIR}/i686-w64-mingw32-gcc-4.8.0-win32_rubenvb.7z"))
if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/ming32sh.cmd") AND (EXISTS "${DOWNLOAD_DIR}/i686-4.9.4-release-win32-sjlj-rt_v5-rev0.7z"))
message("Extracting mingw32")
execute_process(
COMMAND ${CMAKE_COMMAND} -E tar jxf ${DOWNLOAD_DIR}/i686-w64-mingw32-gcc-4.8.0-win32_rubenvb.7z
COMMAND ${CMAKE_COMMAND} -E tar jxf ${DOWNLOAD_DIR}/i686-4.9.4-release-win32-sjlj-rt_v5-rev0.7z
WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw
)
endif()
@@ -78,24 +78,24 @@ if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/pkg-config.exe") AND (EXISTS "
endif()
message("Checking for nasm")
if(NOT EXISTS "${DOWNLOAD_DIR}/nasm-2.12.01-win32.zip")
if(NOT EXISTS "${DOWNLOAD_DIR}/nasm-2.13.02-win32.zip")
message("Downloading nasm")
file(DOWNLOAD "http://www.nasm.us/pub/nasm/releasebuilds/2.12.01/win32/nasm-2.12.01-win32.zip" "${DOWNLOAD_DIR}/nasm-2.12.01-win32.zip")
file(DOWNLOAD "http://www.nasm.us/pub/nasm/releasebuilds/2.13.02/win32/nasm-2.13.02-win32.zip" "${DOWNLOAD_DIR}/nasm-2.13.02-win32.zip")
endif()
# extract nasm
if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/nasm.exe") AND (EXISTS "${DOWNLOAD_DIR}/nasm-2.12.01-win32.zip"))
if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/nasm.exe") AND (EXISTS "${DOWNLOAD_DIR}/nasm-2.13.02-win32.zip"))
message("Extracting nasm")
execute_process(
COMMAND ${CMAKE_COMMAND} -E tar jxf "${DOWNLOAD_DIR}/nasm-2.12.01-win32.zip"
COMMAND ${CMAKE_COMMAND} -E tar jxf "${DOWNLOAD_DIR}/nasm-2.13.02-win32.zip"
WORKING_DIRECTORY ${DOWNLOAD_DIR}/
)
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/nasm-2.12.01/nasm.exe" "${DOWNLOAD_DIR}/mingw/mingw32/bin/nasm.exe"
COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/nasm-2.13.02/nasm.exe" "${DOWNLOAD_DIR}/mingw/mingw32/bin/nasm.exe"
)
endif()
SET(NASM_PATH ${DOWNLOAD_DIR}/mingw/mingw32/bin/nasm.exe)
message("Checking for mingwGet")
if(NOT EXISTS "${DOWNLOAD_DIR}/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip")
message("Downloading mingw-get")
@@ -119,6 +119,15 @@ if((EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/mingw-get.exe") AND (NOT EXISTS "$
)
endif()
if((EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/mingw-get.exe") AND (NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/msys/1.0/bin/mktemp.exe"))
message("Installing mktemp")
execute_process(
COMMAND ${DOWNLOAD_DIR}/mingw/mingw32/bin/mingw-get install msys msys-mktemp
WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw/mingw32/bin/
)
endif()
message("Checking for CoreUtils")
# download old core_utils for pr.exe (ffmpeg needs it to build)
if(NOT EXISTS "${DOWNLOAD_DIR}/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2")
@@ -216,4 +225,3 @@ if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-ranlib.exe")
COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/mingw/mingw32/bin/ranlib.exe" "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-ranlib.exe"
)
endif()

View File

@@ -35,9 +35,9 @@ message("mingw_LIBDIR = ${mingw_LIBDIR}")
message("Checking for mingw64")
# download ming64
if(NOT EXISTS "${DOWNLOAD_DIR}/x86_64-w64-mingw32-gcc-4.8.0-win64_rubenvb.7z")
if(NOT EXISTS "${DOWNLOAD_DIR}/x86_64-4.9.4-release-win32-seh-rt_v5-rev0.7z")
message("Downloading mingw64")
file(DOWNLOAD "https://nchc.dl.sourceforge.net/project/mingw-w64/Toolchains%20targetting%20Win64/Personal%20Builds/rubenvb/gcc-4.8-release/x86_64-w64-mingw32-gcc-4.8.0-win64_rubenvb.7z" "${DOWNLOAD_DIR}/x86_64-w64-mingw32-gcc-4.8.0-win64_rubenvb.7z")
file(DOWNLOAD "https://nchc.dl.sourceforge.net/project/mingw-w64/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/4.9.4/threads-win32/seh/x86_64-4.9.4-release-win32-seh-rt_v5-rev0.7z" "${DOWNLOAD_DIR}/x86_64-4.9.4-release-win32-seh-rt_v5-rev0.7z")
endif()
# make mingw root directory
@@ -49,10 +49,10 @@ if(NOT EXISTS "${DOWNLOAD_DIR}/mingw")
endif()
# extract mingw64
if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/mingw64env.cmd") AND (EXISTS "${DOWNLOAD_DIR}/x86_64-w64-mingw32-gcc-4.8.0-win64_rubenvb.7z"))
if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/ming64sh.cmd") AND (EXISTS "${DOWNLOAD_DIR}/x86_64-4.9.4-release-win32-seh-rt_v5-rev0.7z"))
message("Extracting mingw64")
execute_process(
COMMAND ${CMAKE_COMMAND} -E tar jxf ${DOWNLOAD_DIR}/x86_64-w64-mingw32-gcc-4.8.0-win64_rubenvb.7z
COMMAND ${CMAKE_COMMAND} -E tar jxf ${DOWNLOAD_DIR}/x86_64-4.9.4-release-win32-seh-rt_v5-rev0.7z
WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw
)
endif()
@@ -78,23 +78,24 @@ if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/pkg-config.exe") AND (EXISTS "
endif()
message("Checking for nasm")
if(NOT EXISTS "${DOWNLOAD_DIR}/nasm-2.12.01-win64.zip")
if(NOT EXISTS "${DOWNLOAD_DIR}/nasm-2.13.02-win64.zip")
message("Downloading nasm")
file(DOWNLOAD "http://www.nasm.us/pub/nasm/releasebuilds/2.12.01/win64/nasm-2.12.01-win64.zip" "${DOWNLOAD_DIR}/nasm-2.12.01-win64.zip")
file(DOWNLOAD "http://www.nasm.us/pub/nasm/releasebuilds/2.13.02/win64/nasm-2.13.02-win64.zip" "${DOWNLOAD_DIR}/nasm-2.13.02-win64.zip")
endif()
# extract nasm
if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/nasm.exe") AND (EXISTS "${DOWNLOAD_DIR}/nasm-2.12.01-win64.zip"))
if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/nasm.exe") AND (EXISTS "${DOWNLOAD_DIR}/nasm-2.13.02-win64.zip"))
message("Extracting nasm")
execute_process(
COMMAND ${CMAKE_COMMAND} -E tar jxf "${DOWNLOAD_DIR}/nasm-2.12.01-win64.zip"
COMMAND ${CMAKE_COMMAND} -E tar jxf "${DOWNLOAD_DIR}/nasm-2.13.02-win64.zip"
WORKING_DIRECTORY ${DOWNLOAD_DIR}/
)
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/nasm-2.12.01/nasm.exe" "${DOWNLOAD_DIR}/mingw/mingw64/bin/nasm.exe"
COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/nasm-2.13.02/nasm.exe" "${DOWNLOAD_DIR}/mingw/mingw64/bin/nasm.exe"
)
endif()
SET(NASM_PATH ${DOWNLOAD_DIR}/mingw/mingw64/bin/nasm.exe)
message("Checking for mingwGet")
if(NOT EXISTS "${DOWNLOAD_DIR}/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip")
@@ -119,6 +120,14 @@ if((EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/mingw-get.exe") AND (NOT EXISTS "$
)
endif()
if((EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/mingw-get.exe") AND (NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/mktemp.exe"))
message("Installing mktemp")
execute_process(
COMMAND ${DOWNLOAD_DIR}/mingw/mingw64/bin/mingw-get install msys msys-mktemp
WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw/mingw64/bin/
)
endif()
message("Checking for CoreUtils")
# download old core_utils for pr.exe (ffmpeg needs it to build)
if(NOT EXISTS "${DOWNLOAD_DIR}/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2")
@@ -216,4 +225,3 @@ if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/x86_64-w64-mingw32-ranlib.exe")
COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/mingw/mingw64/bin/ranlib.exe" "${DOWNLOAD_DIR}/mingw/mingw64/bin/x86_64-w64-mingw32-ranlib.exe"
)
endif()

View File

@@ -0,0 +1,57 @@
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ***** END GPL LICENSE BLOCK *****
set(SQLITE_CONFIGURE_ENV echo .)
set(SQLITE_CONFIGURATION_ARGS)
if(UNIX AND NOT APPLE)
set(SQLITE_LDFLAGS -Wl,--as-needed)
set(SQLITE_CFLAGS
"-DSQLITE_SECURE_DELETE -DSQLITE_ENABLE_COLUMN_METADATA \
-DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS \
-DSQLITE_ENABLE_RTREE=1 -DSQLITE_SOUNDEX=1 \
-DSQLITE_ENABLE_UNLOCK_NOTIFY \
-DSQLITE_OMIT_LOOKASIDE=1 -DSQLITE_ENABLE_DBSTAT_VTAB \
-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1 \
-DSQLITE_ENABLE_LOAD_EXTENSION \
-DSQLITE_ENABLE_JSON1 \
-DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
-DSQLITE_THREADSAFE=1 \
-DSQLITE_ENABLE_FTS3_TOKENIZER=1 \
-DSQLITE_MAX_SCHEMA_RETRY=25 \
-DSQLITE_ENABLE_PREUPDATE_HOOK \
-DSQLITE_ENABLE_SESSION \
-DSQLITE_ENABLE_STMTVTAB \
-DSQLITE_MAX_VARIABLE_NUMBER=250000 \
-fPIC")
set(SQLITE_CONFIGURE_ENV ${SQLITE_CONFIGURE_ENV} && export LDFLAGS=${SQLITE_LDFLAGS} && export CFLAGS=${SQLITE_CFLAGS})
set(SQLITE_CONFIGURATION_ARGS ${SQLITE_CONFIGURATION_ARGS} --enable-threadsafe --enable-load-extension --enable-json1 --enable-fts4 --enable-fts5
--enable-shared=no)
endif()
ExternalProject_Add(external_sqlite
URL ${SQLITE_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH SHA1=${SQLITE_HASH}
PREFIX ${BUILD_DIR}/sqlite
PATCH_COMMAND ${SQLITE_PATCH_CMD}
CONFIGURE_COMMAND ${SQLITE_CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/sqlite ${SQLITE_CONFIGURATION_ARGS}
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && make install
INSTALL_DIR ${LIBDIR}/sqlite
)

View File

@@ -0,0 +1,48 @@
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ***** END GPL LICENSE BLOCK *****
set(SSL_CONFIGURE_COMMAND ./Configure)
set(SSL_PATCH_CMD echo .)
if (APPLE)
set(SSL_OS_COMPILER "blender-darwin-x86_64")
else()
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
set(SSL_EXTRA_ARGS enable-ec_nistp_64_gcc_128)
set(SSL_OS_COMPILER "blender-linux-x86_64")
else()
set(SSL_OS_COMPILER "blender-linux-x86")
endif()
endif()
ExternalProject_Add(external_ssl
URL ${SSL_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH SHA256=${SSL_HASH}
PREFIX ${BUILD_DIR}/ssl
PATCH_COMMAND ${SSL_PATCH_CMD}
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ssl/src/external_ssl/ && ${SSL_CONFIGURE_COMMAND} --prefix=${LIBDIR}/ssl
--openssldir=${LIBDIR}/ssl
no-shared
no-idea no-mdc2 no-rc5 no-zlib no-ssl3 enable-unit-test no-ssl3-method enable-rfc3779 enable-cms
--config=${CMAKE_CURRENT_SOURCE_DIR}/cmake/ssl.conf
${SSL_OS_COMPILER}
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ssl/src/external_ssl/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ssl/src/external_ssl/ && make install
INSTALL_DIR ${LIBDIR}/ssl
)

View File

@@ -0,0 +1,15 @@
%targets = (
"blender-linux-x86" => {
inherit_from => [ "linux-x86" ],
cflags => add("-fPIC"),
},
"blender-linux-x86_64" => {
inherit_from => [ "linux-x86_64" ],
cflags => add("-fPIC"),
},
"blender-darwin-x86_64" => {
inherit_from => [ "darwin64-x86_64-cc" ],
cflags => add("-fPIC"),
},
);

View File

@@ -23,14 +23,6 @@ set(TBB_EXTRA_ARGS
-DTBB_BUILD_STATIC=On
)
if(TBB_VERSION MATCHES 2018)
set(TBB_VS_VERSION vs2013)
elseif(TBB_VERSION MATCHES 2017)
set(TBB_VS_VERSION vs2012)
else()
set(TBB_VS_VERSION vs2010)
endif()
# CMake script for TBB from https://github.com/wjakob/tbb/blob/master/CMakeLists.txt
ExternalProject_Add(external_tbb
URL ${TBB_URI}
@@ -38,7 +30,23 @@ ExternalProject_Add(external_tbb
URL_HASH MD5=${TBB_HASH}
PREFIX ${BUILD_DIR}/tbb
PATCH_COMMAND COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/cmakelists_tbb.txt ${BUILD_DIR}/tbb/src/external_tbb/CMakeLists.txt &&
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/tbb/src/external_tbb/build/${TBB_VS_VERSION}/version_string.ver ${BUILD_DIR}/tbb/src/external_tbb/src/tbb/version_string.ver
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/tbb/src/external_tbb/build/vs2013/version_string.ver ${BUILD_DIR}/tbb/src/external_tbb/src/tbb/version_string.ver
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/tbb ${DEFAULT_CMAKE_FLAGS} ${TBB_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/tbb
)
if (WIN32)
if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_tbb after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb_static.lib ${HARVEST_TARGET}/tbb/lib/tbb.lib
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/tbb/include/ ${HARVEST_TARGET}/tbb/include/
DEPENDEES install
)
endif()
if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_tbb after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb_static.lib ${HARVEST_TARGET}/tbb/lib/tbb_debug.lib
DEPENDEES install
)
endif()
endif()

View File

@@ -0,0 +1,31 @@
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ***** END GPL LICENSE BLOCK *****
set(TINYXML_EXTRA_ARGS
)
ExternalProject_Add(external_tinyxml
URL ${TINYXML_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${TINYXML_HASH}
PREFIX ${BUILD_DIR}/tinyxml
#patch taken from ocio
PATCH_COMMAND ${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/tinyxml/src/external_tinyxml < ${PATCH_DIR}/tinyxml.diff
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/tinyxml ${DEFAULT_CMAKE_FLAGS} ${TINYXML_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/tinyxml
)

View File

@@ -16,46 +16,63 @@
#
# ***** END GPL LICENSE BLOCK *****
set(ZLIB_VERSION 1.2.8)
set(ZLIB_URI https://netcologne.dl.sourceforge.net/project/libpng/zlib/${ZLIB_VERSION}/zlib-${ZLIB_VERSION}.tar.gz)
set(ZLIB_HASH 44d667c142d7cda120332623eab69f40)
set(ZLIB_VERSION 1.2.11)
set(ZLIB_URI https://zlib.net/zlib-${ZLIB_VERSION}.tar.gz)
set(ZLIB_HASH 1c9f62f0778697a09d36121ead88e08e)
set(OPENAL_VERSION 1.17.2)
set(OPENAL_URI http://kcat.strangesoft.net/openal-releases/openal-soft-${OPENAL_VERSION}.tar.bz2)
set(OPENAL_HASH 1764e0d8fec499589b47ebc724e0913d)
set(OPENAL_VERSION 1.18.2)
set(OPENAL_URI http://openal-soft.org/openal-releases/openal-soft-${OPENAL_VERSION}.tar.bz2)
set(OPENAL_HASH d4eeb0889812e2fdeaa1843523d76190)
set(PNG_VERSION 1.6.21)
set(PNG_URI http://prdownloads.sourceforge.net/libpng/libpng-${PNG_VERSION}.tar.gz)
set(PNG_HASH aca36ec8e0a3b406a5912243bc243717)
set(PNG_VERSION 1.6.35)
set(PNG_URI http://prdownloads.sourceforge.net/libpng/libpng-${PNG_VERSION}.tar.xz)
set(PNG_HASH 678b7e696a62a193ed3503b04bf449d6)
set(JPEG_VERSION 1.4.2)
set(JPEG_VERSION 1.5.3)
set(JPEG_URI https://github.com/libjpeg-turbo/libjpeg-turbo/archive/${JPEG_VERSION}.tar.gz)
set(JPEG_HASH f9804884c1c41eb7f4febb9353a2cb27)
set(JPEG_HASH 5b7549d440b86c98a517355c102d155e)
set(BOOST_VERSION 1.60.0)
set(BOOST_VERSION_NODOTS 1_60_0)
set(BOOST_URI http://sourceforge.net/projects/boost/files/boost/${BOOST_VERSION}/boost_${BOOST_VERSION_NODOTS}.tar.bz2/download)
set(BOOST_MD5 65a840e1a0b13a558ff19eeb2c4f0cbe)
set(BOOST_VERSION 1.68.0)
set(BOOST_VERSION_NODOTS 1_68_0)
set(BOOST_URI https://dl.bintray.com/boostorg/release/${BOOST_VERSION}/source/boost_${BOOST_VERSION_NODOTS}.tar.gz)
set(BOOST_HASH 5d8b4503582fffa9eefdb9045359c239)
set(BLOSC_VERSION 1.7.1)
set(BLOSC_URI https://github.com/Blosc/c-blosc/archive/v${BLOSC_VERSION}.zip)
set(BLOSC_HASH ff5cc729a5a25934ef714217218eed26)
set(BLOSC_VERSION 1.14.4)
set(BLOSC_URI https://github.com/Blosc/c-blosc/archive/v${BLOSC_VERSION}.tar.gz)
set(BLOSC_HASH e80dfc71e4cba03b8d01ed0876547ffe)
set(PTHREADS_VERSION 2-9-1)
set(PTHREADS_URI ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-${PTHREADS_VERSION}-release.tar.gz)
set(PTHREADS_SHA512 9c06e85310766834370c3dceb83faafd397da18a32411ca7645c8eb6b9495fea54ca2872f4a3e8d83cb5fdc5dea7f3f0464be5bb9af3222a6534574a184bd551)
set(ILMBASE_VERSION 2.2.0)
set(ILMBASE_URI http://download.savannah.nongnu.org/releases/openexr/ilmbase-${ILMBASE_VERSION}.tar.gz)
set(ILMBASE_HASH b540db502c5fa42078249f43d18a4652)
set(ILMBASE_VERSION 2.3.0)
if (WIN32)
if(BUILD_MODE STREQUAL Release)
set(ILMBASE_VERSION_POSTFIX _s)
set(OPENEXR_VERSION_POSTFIX _s)
else()
set(ILMBASE_VERSION_POSTFIX _s_d)
set(OPENEXR_VERSION_POSTFIX _s_d)
endif()
else()
set(ILMBASE_VERSION_POSTFIX)
endif()
set(ILMBASE_URI https://github.com/openexr/openexr/releases/download/v${ILMBASE_VERSION}/ilmbase-${ILMBASE_VERSION}.tar.gz)
set(ILMBASE_HASH 354bf86de3b930ab87ac63619d60c860)
set(OPENEXR_VERSION 2.2.0)
set(OPENEXR_URI http://download.savannah.nongnu.org/releases/openexr/openexr-2.2.0.tar.gz)
set(OPENEXR_HASH b64e931c82aa3790329c21418373db4e)
set(OPENEXR_VERSION 2.3.0)
if (WIN32) #release 2.3.0 tarball has broken cmake support
set(OPENEXR_URI https://github.com/openexr/openexr/archive/0ac2ea34c8f3134148a5df4052e40f155b76f6fb.tar.gz)
set(OPENEXR_HASH ed159435d508240712fbaaa21d94bafb)
else()
set(OPENEXR_VERSION_POSTFIX)
set(OPENEXR_URI https://github.com/openexr/openexr/releases/download/v${OPENEXR_VERSION}/openexr-${OPENEXR_VERSION}.tar.gz)
set(OPENEXR_HASH a157e8a46596bc185f2472a5a4682174)
endif()
set(FREETYPE_VERSION 263)
set(FREETYPE_URI http://download.savannah.gnu.org/releases/freetype/ft${FREETYPE_VERSION}.zip)
set(FREETYPE_HASH 0db2a43301572e5c2b4a0864f237aeeb)
set(FREETYPE_VERSION 2.9.1)
set(FREETYPE_URI http://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPE_VERSION}.tar.gz)
set(FREETYPE_HASH 3adb0e35d3c100c456357345ccfa8056)
set(GLEW_VERSION 1.13.0)
set(GLEW_URI http://prdownloads.sourceforge.net/glew/glew/${GLEW_VERSION}/glew-${GLEW_VERSION}.tgz)
@@ -69,9 +86,9 @@ set(HDF5_VERSION 1.8.17)
set(HDF5_URI https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-${HDF5_VERSION}/src/hdf5-${HDF5_VERSION}.tar.gz)
set(HDF5_HASH 7d572f8f3b798a628b8245af0391a0ca)
set(ALEMBIC_VERSION 1.7.1)
set(ALEMBIC_URI https://github.com/alembic/alembic/archive/${ALEMBIC_VERSION}.zip)
set(ALEMBIC_MD5 cf7705055501d5ea0cb8256866496f79)
set(ALEMBIC_VERSION 1.7.8)
set(ALEMBIC_URI https://github.com/alembic/alembic/archive/${ALEMBIC_VERSION}.tar.gz)
set(ALEMBIC_MD5 d095c2feb5e183b824904db7b63c1d30)
## hash is for 3.1.2
set(GLFW_GIT_UID 30306e54705c3adae9fe082c816a3be71963485c)
@@ -88,141 +105,122 @@ set(CUEW_GIT_UID 1744972026de9cf27c8a7dc39cf39cd83d5f922f)
set(CUEW_URI https://github.com/CudaWrangler/cuew/archive/${CUEW_GIT_UID}.zip)
set(CUEW_HASH 86760d62978ebfd96cd93f5aa1abaf4a)
set(OPENSUBDIV_VERSION v3_1_1)
set(OPENSUBDIV_Hash 25a9a6a94136b0eb85ce69e9c8cb6ab3)
set(OPENSUBDIV_URI https://github.com/PixarAnimationStudios/OpenSubdiv/archive/${OPENSUBDIV_VERSION}.zip)
set(OPENSUBDIV_VERSION v3_3_3)
set(OPENSUBDIV_Hash 29c79dc01ef616aab02670bed5544ddd)
set(OPENSUBDIV_URI https://github.com/PixarAnimationStudios/OpenSubdiv/archive/${OPENSUBDIV_VERSION}.tar.gz)
set(SDL_VERSION 2.0.4)
set(SDL_VERSION 2.0.8)
set(SDL_URI https://www.libsdl.org/release/SDL2-${SDL_VERSION}.tar.gz)
set(SDL_HASH 44fc4a023349933e7f5d7a582f7b886e)
set(SDL_HASH 3800d705cef742c6a634f202c37f263f)
set(OPENCOLLADA_VERSION v1.6.51)
set(OPENCOLLADA_VERSION v1.6.63)
set(OPENCOLLADA_URI https://github.com/KhronosGroup/OpenCOLLADA/archive/${OPENCOLLADA_VERSION}.tar.gz)
set(OPENCOLLADA_HASH 23db5087faed4bc4cc1dfe456c0d4701)
set(OPENCOLLADA_HASH e937c3897b86fc0da53cde97257f5156)
set(OPENCOLORIO_URI https://github.com/imageworks/OpenColorIO/archive/6de971097c7f552300f669ed69ca0b6cf5a70843.zip)
set(OPENCOLORIO_HASH c9de0fd98f26ce6f2e08d617ca68b8e4)
set(OPENCOLORIO_VERSION 1.1.0)
set(OPENCOLORIO_URI https://github.com/imageworks/OpenColorIO/archive/v${OPENCOLORIO_VERSION}.tar.gz)
set(OPENCOLORIO_HASH 802d8f5b1d1fe316ec5f76511aa611b8)
set(LLVM_VERSION 3.4.2)
set(LLVM_URI http://releases.llvm.org/${LLVM_VERSION}/llvm-${LLVM_VERSION}.src.tar.gz)
set(LLVM_HASH a20669f75967440de949ac3b1bad439c)
set(LLVM_VERSION 6.0.1)
set(LLVM_URI http://releases.llvm.org/${LLVM_VERSION}/llvm-${LLVM_VERSION}.src.tar.xz)
set(LLVM_HASH c88c98709300ce2c285391f387fecce0)
set(CLANG_URI http://releases.llvm.org/${LLVM_VERSION}/cfe-${LLVM_VERSION}.src.tar.gz)
set(CLANG_HASH 87945973b7c73038871c5f849a818588)
set(CLANG_URI http://releases.llvm.org/${LLVM_VERSION}/cfe-${LLVM_VERSION}.src.tar.xz)
set(CLANG_HASH 4e419bd4e3b55aa06d872320f754bd85)
set(OPENIMAGEIO_VERSION 1.7.15)
set(OPENIMAGEIO_URI https://github.com/OpenImageIO/oiio/archive/Release-${OPENIMAGEIO_VERSION}.zip)
set(OPENIMAGEIO_HASH_178 e156e3669af0e1373142ab5e8f13de66)
set(OPENIMAGEIO_HASH_179 4121cb0e0433bda6a7ef32c8628a149f)
set(OPENIMAGEIO_HASH_1713 42a662775b834161ba88c6abdb299360)
set(OPENIMAGEIO_HASH_1715 e2ece0f62c013d64c478f82265988b0b)
set(OPENIMAGEIO_HASH ${OPENIMAGEIO_HASH_1715})
set(OPENMP_URI http://releases.llvm.org/${LLVM_VERSION}/openmp-${LLVM_VERSION}.src.tar.xz)
set(OPENMP_HASH 4826402ae3633c36c51ba4d0e5527d30)
set(OPENIMAGEIO_VERSION 1.8.13)
set(OPENIMAGEIO_URI https://github.com/OpenImageIO/oiio/archive/Release-${OPENIMAGEIO_VERSION}.tar.gz)
set(OPENIMAGEIO_HASH f5526c3c9878029ee900d84856683f93)
set(TIFF_VERSION 4.0.6)
set(TIFF_VERSION 4.0.9)
set(TIFF_URI http://download.osgeo.org/libtiff/tiff-${TIFF_VERSION}.tar.gz)
set(TIFF_HASH d1d2e940dea0b5ad435f21f03d96dd72)
set(TIFF_HASH 54bad211279cc93eb4fca31ba9bfdc79)
set(FLEXBISON_VERSION 2.5.5)
set(FLEXBISON_URI http://prdownloads.sourceforge.net/winflexbison//win_flex_bison-2.5.5.zip)
set(FLEXBISON_HASH d87a3938194520d904013abef3df10ce)
set(OSL_VERSION 1.9.9)
set(OSL_URI https://github.com/imageworks/OpenShadingLanguage/archive/Release-${OSL_VERSION}.tar.gz)
set(OSL_HASH 44ad511e424965a10fce051a053b0605)
set(OSL_VERSION 1.7.5)
set(OSL_URI https://github.com/imageworks/OpenShadingLanguage/archive/Release-${OSL_VERSION}.zip)
set(OSL_HASH 6924dd5d453159e7b6eb106a08c358cf)
set(PYTHON_VERSION 3.6.2)
set(PYTHON_SHORT_VERSION 3.6)
set(PYTHON_SHORT_VERSION_NO_DOTS 36)
set(PYTHON_VERSION 3.7.0)
set(PYTHON_SHORT_VERSION 3.7)
set(PYTHON_SHORT_VERSION_NO_DOTS 37)
set(PYTHON_URI https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tar.xz)
set(PYTHON_HASH 2c68846471994897278364fc18730dd9)
set(PYTHON_HASH eb8c2a6b1447d50813c02714af4681f3)
if(UNIX AND NOT APPLE)
# Needed to be compatible with GCC 7, other platforms can upgrade later
set(TBB_VERSION 2017_U7)
set(TBB_URI https://github.com/01org/tbb/archive/${TBB_VERSION}.tar.gz)
set(TBB_HASH 364f2a4b80e978f38a69cbf7c466b898)
else()
set(TBB_VERSION 44_20160128)
set(TBB_URI https://www.threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb${TBB_VERSION}oss_src_0.tgz)
set(TBB_HASH 9d8a4cdf43496f1b3f7c473a5248e5cc)
endif()
set(TBB_VERSION 2018_U5)
set(TBB_URI https://github.com/01org/tbb/archive/${TBB_VERSION}.tar.gz)
set(TBB_HASH ff3ae09f8c23892fbc3008c39f78288f)
set(OPENVDB_VERSION 3.1.0)
set(OPENVDB_VERSION 5.1.0)
set(OPENVDB_URI https://github.com/dreamworksanimation/openvdb/archive/v${OPENVDB_VERSION}.tar.gz)
set(OPENVDB_HASH 30a7e9571a03ab7bcf1a39fb62aa436f)
set(OPENVDB_HASH 5310101f874dcfd2165f9cee68c22624)
set(IDNA_VERSION 2.6)
set(CHARDET_VERSION 3.0.2)
set(URLLIB3_VERSION 1.22)
set(CERTIFI_VERSION 2017.7.27.1)
set(REQUESTS_VERSION 2.18.4)
set(IDNA_VERSION 2.7)
set(CHARDET_VERSION 3.0.4)
set(URLLIB3_VERSION 1.23)
set(CERTIFI_VERSION 2018.8.13)
set(REQUESTS_VERSION 2.19.1)
set(NUMPY_VERSION v1.13.1)
set(NUMPY_SHORT_VERSION 1.13)
set(NUMPY_URI https://pypi.python.org/packages/c0/3a/40967d9f5675fbb097ffec170f59c2ba19fc96373e73ad47c2cae9a30aed/numpy-1.13.1.zip)
set(NUMPY_HASH 2c3c0f4edf720c3a7b525dacc825b9ae)
set(NUMPY_VERSION v1.15.0)
set(NUMPY_SHORT_VERSION 1.15)
set(NUMPY_URI https://files.pythonhosted.org/packages/3a/20/c81632328b1a4e1db65f45c0a1350a9c5341fd4bbb8ea66cdd98da56fe2e/numpy-1.15.0.zip)
set(NUMPY_HASH 20e13185089011116a98e11c9bf8aa07)
set(LAME_VERSION 3.99.5)
set(LAME_URI http://downloads.sourceforge.net/project/lame/lame/3.99/lame-${LAME_VERSION}.tar.gz)
set(LAME_HASH 84835b313d4a8b68f5349816d33e07ce)
set(LAME_VERSION 3.100)
set(LAME_URI http://downloads.sourceforge.net/project/lame/lame/3.100/lame-${LAME_VERSION}.tar.gz)
set(LAME_HASH 83e260acbe4389b54fe08e0bdbf7cddb)
set(OGG_VERSION 1.3.2)
set(OGG_VERSION 1.3.3)
set(OGG_URI http://downloads.xiph.org/releases/ogg/libogg-${OGG_VERSION}.tar.gz)
set(OGG_HASH e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692)
set(OGG_HASH c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985)
set(VORBIS_VERSION 1.3.5)
set(VORBIS_VERSION 1.3.6)
set(VORBIS_URI http://downloads.xiph.org/releases/vorbis/libvorbis-${VORBIS_VERSION}.tar.gz)
set(VORBIS_HASH 6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce)
set(VORBIS_HASH 6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb)
set(THEORA_VERSION 1.1.1)
set(THEORA_URI http://downloads.xiph.org/releases/theora/libtheora-${THEORA_VERSION}.tar.bz2)
set(THEORA_HASH b6ae1ee2fa3d42ac489287d3ec34c5885730b1296f0801ae577a35193d3affbc)
set(FLAC_VERSION 1.3.1)
set(FLAC_VERSION 1.3.2)
set(FLAC_URI http://downloads.xiph.org/releases/flac/flac-${FLAC_VERSION}.tar.xz)
set(FLAC_HASH 4773c0099dba767d963fd92143263be338c48702172e8754b9bc5103efe1c56c)
set(FLAC_HASH 91cfc3ed61dc40f47f050a109b08610667d73477af6ef36dcad31c31a4a8d53f)
set(VPX_VERSION 1.5.0)
set(VPX_URI http://storage.googleapis.com/downloads.webmproject.org/releases/webm/libvpx-${VPX_VERSION}.tar.bz2)
set(VPX_HASH 306d67908625675f8e188d37a81fbfafdf5068b09d9aa52702b6fbe601c76797)
set(VPX_VERSION 1.7.0)
set(VPX_URI https://github.com/webmproject/libvpx/archive/v${VPX_VERSION}/libvpx-v${VPX_VERSION}.tar.gz)
set(VPX_HASH 1fec931eb5c94279ad219a5b6e0202358e94a93a90cfb1603578c326abfc1238)
set(ORC_VERSION 0.4.25)
set(ORC_URI https://gstreamer.freedesktop.org/src/orc/orc-${ORC_VERSION}.tar.xz)
set(ORC_HASH c1b1d54a58f26d483f0b3881538984789fe5d5460ab8fab74a1cacbd3d1c53d1)
set(X264_URI http://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20180811-2245-stable.tar.bz2)
set(X264_HASH ae8a868a0e236a348b35d79f3ee80294b169d1195408b689f9851383661ed7aa)
set(SCHROEDINGER_VERSION 1.0.11)
set(SCHROEDINGER_URI https://download.videolan.org/contrib/schroedinger/schroedinger-${SCHROEDINGER_VERSION}.tar.gz)
set(SCHROEDINGER_HASH 1e572a0735b92aca5746c4528f9bebd35aa0ccf8619b22fa2756137a8cc9f912)
set(X264_URI http://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20160401-2245-stable.tar.bz2)
set(X264_HASH 1e9a7b835e80313aade53a9b6ff353e099de3856bf5f30a4d8dfc91281f786f5)
set(XVIDCORE_VERSION 1.3.4)
set(XVIDCORE_VERSION 1.3.5)
set(XVIDCORE_URI http://downloads.xvid.org/downloads/xvidcore-${XVIDCORE_VERSION}.tar.gz)
set(XVIDCORE_HASH 4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f)
set(XVIDCORE_HASH 165ba6a2a447a8375f7b06db5a3c91810181f2898166e7c8137401d7fc894cf0)
#this has to be in sync with the version in blenders /extern folder
set(OPENJPEG_VERSION 1.5.2)
set(OPENJPEG_SHORT_VERSION 1.5)
set(OPENJPEG_URI https://github.com/uclouvain/openjpeg/archive/version.${OPENJPEG_VERSION}.tar.gz)
set(OPENJPEG_HASH 3734e95edd0bef6e056815591755efd822228dc3cd866894e00a2c929026b16d)
set(OPENJPEG_VERSION 2.3.0)
set(OPENJPEG_SHORT_VERSION 2.3)
# Use slightly newer commit after release which includes a cmake fix
set(OPENJPEG_URI https://github.com/uclouvain/openjpeg/archive/66297f07a43.zip)
set(OPENJPEG_HASH 8242b18d908c7c42174e4231a741cfa7ce7c26b6ed5c9644feb9df7b3054310b)
set(FAAD_VERSION 2-2.7)
set(FAAD_URI http://downloads.sourceforge.net/faac/faad${FAAD_VERSION}.tar.bz2)
set(FAAD_HASH 4c332fa23febc0e4648064685a3d4332)
set(FAAD_VERSION 2-2.8.8)
set(FAAD_URI http://downloads.sourceforge.net/faac/faad${FAAD_VERSION}.tar.gz)
set(FAAD_HASH 28f6116efdbe9378269f8a6221767d1f)
set(FFMPEG_VERSION 3.2.1)
set(FFMPEG_VERSION 4.0.2)
set(FFMPEG_URI http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2)
set(FFMPEG_HASH cede174178e61f882844f5870c35ce72)
set(FFMPEG_HASH 5576e8a22f80b6a336db39808f427cfb)
set(FFTW_VERSION 3.3.4)
set(FFTW_VERSION 3.3.8)
set(FFTW_URI http://www.fftw.org/fftw-${FFTW_VERSION}.tar.gz)
set(FFTW_HASH 2edab8c06b24feeb3b82bbb3ebf3e7b3)
set(FFTW_HASH 8aac833c943d8e90d51b697b27d4384d)
set(ICONV_VERSION 1.14)
set(ICONV_VERSION 1.15)
set(ICONV_URI http://ftp.gnu.org/pub/gnu/libiconv/libiconv-${ICONV_VERSION}.tar.gz)
set(ICONV_HASH e34509b1623cec449dfeb73d7ce9c6c6)
set(ICONV_HASH ace8b5f2db42f7b3b3057585e80d9808)
set(LAPACK_VERSION 3.6.0)
set(LAPACK_URI http://www.netlib.org/lapack/lapack-${LAPACK_VERSION}.tgz)
@@ -240,9 +238,9 @@ set(HIDAPI_UID 89a6c75dc6f45ecabd4ddfbd2bf5ba6ad8ba38b5)
set(HIDAPI_URI https://github.com/TheOnlyJoey/hidapi/archive/${HIDAPI_UID}.zip)
set(HIDAPI_HASH b6e22f6b514f8bcf594989f20ffc46fb)
set(WEBP_VERSION 0.5.1)
set(WEBP_VERSION 0.6.1)
set(WEBP_URI https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz)
set(WEBP_HASH 3d7db92ebba5b4f679413d25c6040881)
set(WEBP_HASH b49ce9c3e3e9acae4d91bca44bb85a72)
set(SPNAV_VERSION 0.2.3)
set(SPNAV_URI http://downloads.sourceforge.net/project/spacenav/spacenav%20library%20%28SDK%29/libspnav%20${SPNAV_VERSION}/libspnav-${SPNAV_VERSION}.tar.gz)
@@ -255,3 +253,52 @@ set(JEMALLOC_HASH 507f7b6b882d868730d644510491d18f)
set(XML2_VERSION 2.9.4)
set(XML2_URI ftp://xmlsoft.org/libxml2/libxml2-${XML2_VERSION}.tar.gz)
set(XML2_HASH ae249165c173b1ff386ee8ad676815f5)
set(TINYXML_VERSION 2_6_2)
set(TINYXML_VERSION_DOTS 2.6.2)
set(TINYXML_URI https://nchc.dl.sourceforge.net/project/tinyxml/tinyxml/${TINYXML_VERSION_DOTS}/tinyxml_${TINYXML_VERSION}.tar.gz)
set(TINYXML_HASH c1b864c96804a10526540c664ade67f0)
set(YAMLCPP_VERSION 0.6.2)
set(YAMLCPP_URI https://codeload.github.com/jbeder/yaml-cpp/tar.gz/yaml-cpp-${YAMLCPP_VERSION})
set(YAMLCPP_HASH 5b943e9af0060d0811148b037449ef82)
set(LCMS_VERSION 2.9)
set(LCMS_URI https://nchc.dl.sourceforge.net/project/lcms/lcms/${LCMS_VERSION}/lcms2-${LCMS_VERSION}.tar.gz)
set(LCMS_HASH 8de1b7724f578d2995c8fdfa35c3ad0e)
set(PUGIXML_VERSION 1.9)
set(PUGIXML_URI https://github.com/zeux/pugixml/archive/v1.9.tar.gz)
set(PUGIXML_HASH 9346ca1dce2c48f1748c12fdac41a714)
set(FLEXBISON_VERSION 2.5.5)
set(FLEXBISON_URI http://prdownloads.sourceforge.net/winflexbison//win_flex_bison-2.5.5.zip)
set(FLEXBISON_HASH d87a3938194520d904013abef3df10ce)
# Libraries to keep Python modules static on Linux.
# NOTE: bzip.org domain does no longer belong to BZip 2 project, so we download
# sources from Debian packaging.
set(BZIP2_VERSION 1.0.6)
set(BZIP2_URI http://http.debian.net/debian/pool/main/b/bzip2/bzip2_${BZIP2_VERSION}.orig.tar.bz2)
set(BZIP2_HASH d70a9ccd8bdf47e302d96c69fecd54925f45d9c7b966bb4ef5f56b770960afa7)
set(FFI_VERSION 3.2.1)
set(FFI_URI ftp://sourceware.org/pub/libffi/libffi-${FFI_VERSION}.tar.gz)
set(FFI_HASH d06ebb8e1d9a22d19e38d63fdb83954253f39bedc5d46232a05645685722ca37)
set(LZMA_VERSION 5.2.4)
set(LZMA_URI https://tukaani.org/xz/xz-${LZMA_VERSION}.tar.bz2)
set(LZMA_HASH 3313fd2a95f43d88e44264e6b015e7d03053e681860b0d5d3f9baca79c57b7bf)
set(SSL_VERSION 1.1.0i)
set(SSL_URI https://www.openssl.org/source/openssl-${SSL_VERSION}.tar.gz)
set(SSL_HASH ebbfc844a8c8cc0ea5dc10b86c9ce97f401837f3fa08c17b2cdadc118253cf99)
set(SQLITE_VERSION 3.24.0)
set(SQLITE_URI https://www.sqlite.org/2018/sqlite-src-3240000.zip)
set(SQLITE_HASH fb558c49ee21a837713c4f1e7e413309aabdd9c7)
set(EMBREE_VERSION 3.2.4)
set(EMBREE_URI https://github.com/embree/embree/archive/v${EMBREE_VERSION}.zip)
set(EMBREE_HASH 3d4a1147002ff43939d45140aa9d6fb8)

View File

@@ -18,9 +18,9 @@
if(WIN32)
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
set(VPX_EXTRA_FLAGS --target=x86_64-win64-gcc)
set(VPX_EXTRA_FLAGS --target=x86_64-win64-gcc --disable-multithread)
else()
set(VPX_EXTRA_FLAGS --target=x86-win32-gcc)
set(VPX_EXTRA_FLAGS --target=x86-win32-gcc --disable-multithread)
endif()
else()
if(APPLE)

View File

@@ -37,14 +37,5 @@ ExternalProject_Add(external_webp
URL_HASH MD5=${WEBP_HASH}
PREFIX ${BUILD_DIR}/webp
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/webp -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${WEBP_EXTRA_ARGS}
INSTALL_COMMAND COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/webp/src/external_webp-build/${WEBP_BUILD_DIR}${LIBPREFIX}webp${LIBEXT} ${LIBDIR}/webp/lib/${LIBPREFIX}webp${LIBEXT} &&
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/webp/src/external_webp/src/webp/decode.h ${LIBDIR}/webp/include/webp/decode.h &&
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/webp/src/external_webp/src/webp/encode.h ${LIBDIR}/webp/include/webp/encode.h &&
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/webp/src/external_webp/src/webp/demux.h ${LIBDIR}/webp/include/webp/demux.h &&
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/webp/src/external_webp/src/webp/extras.h ${LIBDIR}/webp/include/webp/extras.h &&
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/webp/src/external_webp/src/webp/format_constants.h ${LIBDIR}/webp/include/webp/format_constants.h &&
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/webp/src/external_webp/src/webp/mux.h ${LIBDIR}/webp/include/webp/mux.h &&
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/webp/src/external_webp/src/webp/mux_types.h ${LIBDIR}/webp/include/webp/mux_types.h &&
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/webp/src/external_webp/src/webp/types.h ${LIBDIR}/webp/include/webp/types.h
INSTALL_DIR ${LIBDIR}/webp
)

View File

@@ -18,14 +18,19 @@
if(WIN32)
set(X264_EXTRA_ARGS --enable-win32thread --cross-prefix=${MINGW_HOST}- --host=${MINGW_HOST})
set(X264_PATCH_CMD ${PATCH_CMD} --verbose -p 1 -N -d ${BUILD_DIR}/x264/src/external_x264 < ${PATCH_DIR}/x264.diff)
else()
set(X264_PATCH_CMD echo .)
endif()
ExternalProject_Add(external_x264
URL ${X264_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH SHA256=${X264_HASH}
PREFIX ${BUILD_DIR}/x264
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/x264/src/external_x264/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/x264
PATCH_COMMAND ${X264_PATCH_CMD}
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/x264/src/external_x264/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/x264
--enable-static
--enable-pic
--disable-lavf

View File

@@ -0,0 +1,34 @@
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ***** END GPL LICENSE BLOCK *****
set(YAMLCPP_EXTRA_ARGS
-DBUILD_GMOCK=OFF
-DYAML_CPP_BUILD_TESTS=OFF
-DYAML_CPP_BUILD_TOOLS=OFF
-DYAML_CPP_BUILD_CONTRIB=OFF
-DMSVC_SHARED_RT=OFF
)
ExternalProject_Add(external_yamlcpp
URL ${YAMLCPP_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${YAMLCPP_HASH}
PREFIX ${BUILD_DIR}/yamlcpp
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/yamlcpp ${DEFAULT_CMAKE_FLAGS} ${YAMLCPP_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/yamlcpp
)

View File

@@ -25,9 +25,31 @@ ExternalProject_Add(external_zlib
INSTALL_DIR ${LIBDIR}/zlib
)
if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_zlib after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/zlib/lib/zlibstaticd${LIBEXT} ${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
if (WIN32)
if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_zlib after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/zlib/lib/zlibstatic${LIBEXT} ${HARVEST_TARGET}/zlib/lib/libz_st${LIBEXT}
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/zlib/include/ ${HARVEST_TARGET}/zlib/include/
DEPENDEES install
)
endif()
if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_zlib after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/zlib/lib/zlibstaticd${LIBEXT} ${HARVEST_TARGET}/zlib/lib/libz_st_d${LIBEXT}
DEPENDEES install
)
)
endif()
else()
if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_zlib after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/zlib/lib/zlibstaticd${LIBEXT} ${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
DEPENDEES install
)
endif()
if (UNIX)
ExternalProject_Add_Step(external_zlib after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/zlib/lib/libz.a ${LIBDIR}/zlib/lib/libz_pic.a
DEPENDEES install
)
endif()
endif()

View File

@@ -37,4 +37,3 @@ endif()
if(MSVC)
set_target_properties(external_zlib_mingw PROPERTIES FOLDER Mingw)
endif()

View File

@@ -26,17 +26,17 @@ ARGS=$( \
getopt \
-o s:i:t:h \
--long source:,install:,tmp:,info:,threads:,help,show-deps,no-sudo,no-build,no-confirm,\
with-all,with-opencollada,with-jack,\
with-all,with-opencollada,with-jack,with-embree,\
ver-ocio:,ver-oiio:,ver-llvm:,ver-osl:,ver-osd:,ver-openvdb:,\
force-all,force-python,force-numpy,force-boost,\
force-ocio,force-openexr,force-oiio,force-llvm,force-osl,force-osd,force-openvdb,\
force-ffmpeg,force-opencollada,force-alembic,\
force-ffmpeg,force-opencollada,force-alembic,force-embree,\
build-all,build-python,build-numpy,build-boost,\
build-ocio,build-openexr,build-oiio,build-llvm,build-osl,build-osd,build-openvdb,\
build-ffmpeg,build-opencollada,build-alembic,\
build-ffmpeg,build-opencollada,build-alembic,build-embree,\
skip-python,skip-numpy,skip-boost,\
skip-ocio,skip-openexr,skip-oiio,skip-llvm,skip-osl,skip-osd,skip-openvdb,\
skip-ffmpeg,skip-opencollada,skip-alembic \
skip-ffmpeg,skip-opencollada,skip-alembic,skip-embree \
-- "$@" \
)
@@ -54,8 +54,9 @@ SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
# Do not install some optional, potentially conflicting libs by default...
WITH_ALL=false
# Do not yet enable opencollada, use --with-opencollada (or --with-all) option to try it.
# Do not yet enable opencollada or embree, use --with-opencollada/--with-embree (or --with-all) option to try it.
WITH_OPENCOLLADA=false
WITH_EMBREE=false
THREADS=$(nproc)
@@ -67,6 +68,7 @@ or use --source/--install options, if you want to use other paths!
Number of threads for building: \$THREADS (automatically detected, use --threads=<nbr> to override it).
Full install: \$WITH_ALL (use --with-all option to enable it).
Building OpenCOLLADA: \$WITH_OPENCOLLADA (use --with-opencollada option to enable it).
Building Embree: \$WITH_EMBREE (use --with-embree option to enable it).
Example:
Full install without OpenCOLLADA: --with-all --skip-opencollada
@@ -113,6 +115,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
--with-opencollada
Build and install the OpenCOLLADA libraries.
--with-embree
Build and install the Embree libraries.
--with-jack
Install the jack libraries.
@@ -177,6 +182,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
--build-opencollada
Force the build of OpenCOLLADA.
--build-embree
Force the build of Embree.
--build-ffmpeg
Force the build of FFMpeg.
@@ -229,6 +237,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
--force-opencollada
Force the rebuild of OpenCOLLADA.
--force-embree
Force the rebuild of Embree.
--force-ffmpeg
Force the rebuild of FFMpeg.
@@ -274,6 +285,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
--skip-opencollada
Unconditionally skip OpenCOLLADA installation/building.
--skip-Embree
Unconditionally skip Embree installation/building.
--skip-ffmpeg
Unconditionally skip FFMpeg installation/building.\""
@@ -285,91 +299,97 @@ SUDO="sudo"
NO_BUILD=false
NO_CONFIRM=false
USE_CXX11=true # Mandatory in blender2.8
USE_CXX11=true
PYTHON_VERSION="3.6.2"
PYTHON_VERSION_MIN="3.6"
PYTHON_VERSION="3.7.0"
PYTHON_VERSION_MIN="3.7"
PYTHON_FORCE_BUILD=false
PYTHON_FORCE_REBUILD=false
PYTHON_SKIP=false
NUMPY_VERSION="1.13.1"
NUMPY_VERSION="1.15.0"
NUMPY_VERSION_MIN="1.8"
NUMPY_FORCE_BUILD=false
NUMPY_FORCE_REBUILD=false
NUMPY_SKIP=false
BOOST_VERSION="1.60.0"
BOOST_VERSION="1.68.0"
BOOST_VERSION_MIN="1.49"
BOOST_FORCE_BUILD=false
BOOST_FORCE_REBUILD=false
BOOST_SKIP=false
OCIO_VERSION="1.0.9"
OCIO_VERSION="1.1.0"
OCIO_VERSION_MIN="1.0"
OCIO_FORCE_BUILD=false
OCIO_FORCE_REBUILD=false
OCIO_SKIP=false
OPENEXR_VERSION="2.2.0"
OPENEXR_VERSION="2.3.0"
OPENEXR_VERSION_MIN="2.0.1"
ILMBASE_VERSION="2.2.0"
ILMBASE_VERSION_MIN="2.2"
ILMBASE_VERSION="2.3.0"
ILMBASE_VERSION_MIN="2.3"
OPENEXR_FORCE_BUILD=false
OPENEXR_FORCE_REBUILD=false
OPENEXR_SKIP=false
_with_built_openexr=false
OIIO_VERSION="1.7.15"
OIIO_VERSION_MIN="1.7.15"
OIIO_VERSION_MAX="1.9.0" # UNKNOWN currently # Not supported by current OSL...
OIIO_VERSION="1.8.13"
OIIO_VERSION_MIN="1.8.13"
OIIO_VERSION_MAX="99.99.0" # UNKNOWN currently # Not supported by current OSL...
OIIO_FORCE_BUILD=false
OIIO_FORCE_REBUILD=false
OIIO_SKIP=false
LLVM_VERSION="3.4"
LLVM_VERSION_MIN="3.4"
LLVM_VERSION="6.0.1"
LLVM_VERSION_MIN="6.0"
LLVM_VERSION_FOUND=""
LLVM_FORCE_BUILD=false
LLVM_FORCE_REBUILD=false
LLVM_SKIP=false
# OSL needs to be compiled for now!
OSL_VERSION="1.7.5"
OSL_VERSION="1.9.9"
OSL_VERSION_MIN=$OSL_VERSION
OSL_FORCE_BUILD=false
OSL_FORCE_REBUILD=false
OSL_SKIP=false
# OpenSubdiv needs to be compiled for now
OSD_VERSION="3.1.1"
OSD_VERSION="3.3.3"
OSD_VERSION_MIN=$OSD_VERSION
OSD_FORCE_BUILD=false
OSD_FORCE_REBUILD=false
OSD_SKIP=false
# OpenVDB needs to be compiled for now
OPENVDB_BLOSC_VERSION="1.7.0"
OPENVDB_BLOSC_VERSION="1.14.4"
OPENVDB_VERSION="3.1.0"
OPENVDB_VERSION="5.1.0"
OPENVDB_VERSION_MIN=$OPENVDB_VERSION
OPENVDB_FORCE_BUILD=false
OPENVDB_FORCE_REBUILD=false
OPENVDB_SKIP=false
# Alembic needs to be compiled for now
ALEMBIC_VERSION="1.7.1"
ALEMBIC_VERSION="1.7.8"
ALEMBIC_VERSION_MIN=$ALEMBIC_VERSION
ALEMBIC_FORCE_BUILD=false
ALEMBIC_FORCE_REBUILD=false
ALEMBIC_SKIP=false
OPENCOLLADA_VERSION="1.6.51"
OPENCOLLADA_VERSION="1.6.63"
OPENCOLLADA_FORCE_BUILD=false
OPENCOLLADA_FORCE_REBUILD=false
OPENCOLLADA_SKIP=false
FFMPEG_VERSION="3.2.1"
EMBREE_VERSION="3.2.4"
EMBREE_FORCE_BUILD=false
EMBREE_FORCE_REBUILD=false
EMBREE_SKIP=false
FFMPEG_VERSION="4.0.2"
FFMPEG_VERSION_MIN="2.8.4"
FFMPEG_FORCE_BUILD=false
FFMPEG_FORCE_REBUILD=false
@@ -502,6 +522,9 @@ while true; do
--with-opencollada)
WITH_OPENCOLLADA=true; shift; continue
;;
--with-embree)
WITH_EMBREE=true; shift; continue
;;
--with-jack)
WITH_JACK=true; shift; continue;
;;
@@ -547,6 +570,7 @@ while true; do
OSD_FORCE_BUILD=true
OPENVDB_FORCE_BUILD=true
OPENCOLLADA_FORCE_BUILD=true
EMBREE_FORCE_BUILD=true
FFMPEG_FORCE_BUILD=true
ALEMBIC_FORCE_BUILD=true
shift; continue
@@ -588,6 +612,9 @@ while true; do
--build-opencollada)
OPENCOLLADA_FORCE_BUILD=true; shift; continue
;;
--build-embree)
EMBREE_FORCE_BUILD=true; shift; continue
;;
--build-ffmpeg)
FFMPEG_FORCE_BUILD=true; shift; continue
;;
@@ -606,6 +633,7 @@ while true; do
OSD_FORCE_REBUILD=true
OPENVDB_FORCE_REBUILD=true
OPENCOLLADA_FORCE_REBUILD=true
EMBREE_FORCE_REBUILD=true
FFMPEG_FORCE_REBUILD=true
ALEMBIC_FORCE_REBUILD=true
shift; continue
@@ -645,6 +673,9 @@ while true; do
--force-opencollada)
OPENCOLLADA_FORCE_REBUILD=true; shift; continue
;;
--force-embree)
EMBREE_FORCE_REBUILD=true; shift; continue
;;
--force-ffmpeg)
FFMPEG_FORCE_REBUILD=true; shift; continue
;;
@@ -684,6 +715,9 @@ while true; do
--skip-opencollada)
OPENCOLLADA_SKIP=true; shift; continue
;;
--skip-embree)
EMBREE_SKIP=true; shift; continue
;;
--skip-ffmpeg)
FFMPEG_SKIP=true; shift; continue
;;
@@ -708,6 +742,9 @@ done
if [ "$WITH_ALL" = true -a "$OPENCOLLADA_SKIP" = false ]; then
WITH_OPENCOLLADA=true
fi
if [ "$WITH_ALL" = true -a "$EMBREE_SKIP" = false ]; then
WITH_EMBREE=true
fi
if [ "$WITH_ALL" = true ]; then
WITH_JACK=true
fi
@@ -737,43 +774,45 @@ _boost_version_nodots=`echo "$BOOST_VERSION" | sed -r 's/\./_/g'`
BOOST_SOURCE=( "http://sourceforge.net/projects/boost/files/boost/$BOOST_VERSION/boost_$_boost_version_nodots.tar.bz2/download" )
BOOST_BUILD_MODULES="--with-system --with-filesystem --with-thread --with-regex --with-locale --with-date_time --with-wave --with-iostreams --with-python --with-program_options"
OCIO_USE_REPO=true
OCIO_SOURCE=( "https://github.com/imageworks/OpenColorIO/tarball/v$OCIO_VERSION" )
OCIO_SOURCE_REPO=( "https://github.com/imageworks/OpenColorIO.git" )
OCIO_SOURCE_REPO_UID="6de971097c7f552300f669ed69ca0b6cf5a70843"
OCIO_USE_REPO=false
OCIO_SOURCE=( "https://github.com/imageworks/OpenColorIO/archive/v$OCIO_VERSION.tar.gz")
#~ OCIO_SOURCE_REPO=( "https://github.com/imageworks/OpenColorIO.git" )
#~ OCIO_SOURCE_REPO_UID="6de971097c7f552300f669ed69ca0b6cf5a70843"
OPENEXR_USE_REPO=false
OPENEXR_SOURCE=( "http://download.savannah.nongnu.org/releases/openexr/openexr-$OPENEXR_VERSION.tar.gz" )
OPENEXR_SOURCE_REPO=( "https://github.com/mont29/openexr.git" )
OPENEXR_SOURCE_REPO_UID="2787aa1cf652d244ed45ae124eb1553f6cff11ee"
ILMBASE_SOURCE=( "http://download.savannah.nongnu.org/releases/openexr/ilmbase-$ILMBASE_VERSION.tar.gz" )
#~ OPENEXR_SOURCE=( "https://github.com/openexr/openexr/releases/download/v$OPENEXR_VERSION/openexr-$OPENEXR_VERSION.tar.gz" )
OPENEXR_SOURCE_REPO_UID="0ac2ea34c8f3134148a5df4052e40f155b76f6fb"
OPENEXR_SOURCE=( "https://github.com/openexr/openexr/archive/$OPENEXR_SOURCE_REPO_UID.tar.gz" )
#~ OPENEXR_SOURCE_REPO=( "https://github.com/mont29/openexr.git" )
ILMBASE_SOURCE=( "https://github.com/openexr/openexr/releases/download/v$ILMBASE_VERSION/ilmbase-$ILMBASE_VERSION.tar.gz" )
OIIO_USE_REPO=false
OIIO_SOURCE=( "https://github.com/OpenImageIO/oiio/archive/Release-$OIIO_VERSION.tar.gz" )
OIIO_SOURCE_REPO=( "https://github.com/OpenImageIO/oiio.git" )
OIIO_SOURCE_REPO_UID="c9e67275a0b248ead96152f6d2221cc0c0f278a4"
#~ OIIO_SOURCE_REPO=( "https://github.com/OpenImageIO/oiio.git" )
#~ OIIO_SOURCE_REPO_UID="c9e67275a0b248ead96152f6d2221cc0c0f278a4"
LLVM_SOURCE=( "http://releases.llvm.org/$LLVM_VERSION/llvm-$LLVM_VERSION.src.tar.gz" )
LLVM_CLANG_SOURCE=( "http://releases.llvm.org/$LLVM_VERSION/clang-$LLVM_VERSION.src.tar.gz" "http://llvm.org/releases/$LLVM_VERSION/cfe-$LLVM_VERSION.src.tar.gz" )
LLVM_SOURCE=( "http://releases.llvm.org/$LLVM_VERSION/llvm-$LLVM_VERSION.src.tar.xz" )
LLVM_CLANG_SOURCE=( "http://releases.llvm.org/$LLVM_VERSION/clang-$LLVM_VERSION.src.tar.xz" "http://llvm.org/releases/$LLVM_VERSION/cfe-$LLVM_VERSION.src.tar.xz" )
OSL_USE_REPO=false
OSL_SOURCE=( "https://github.com/imageworks/OpenShadingLanguage/archive/Release-$OSL_VERSION.tar.gz" )
#~ OSL_SOURCE=( "https://github.com/Nazg-Gul/OpenShadingLanguage/archive/Release-1.5.11.tar.gz" )
#~ OSL_SOURCE_REPO=( "https://github.com/imageworks/OpenShadingLanguage.git" )
#~ OSL_SOURCE_REPO_BRANCH="master"
#~ OSL_SOURCE_REPO_UID="85179714e1bc69cd25ecb6bb711c1a156685d395"
#~ OSL_SOURCE=( "https://github.com/Nazg-Gul/OpenShadingLanguage/archive/Release-1.5.11.tar.gz" )
#~ OSL_SOURCE_REPO=( "https://github.com/mont29/OpenShadingLanguage.git" )
#~ OSL_SOURCE_REPO_UID="85179714e1bc69cd25ecb6bb711c1a156685d395"
#~ OSL_SOURCE_REPO_BRANCH="master"
OSL_SOURCE_REPO=( "https://github.com/Nazg-Gul/OpenShadingLanguage.git" )
OSL_SOURCE_REPO_UID="7d40ff5fe8e47b030042afb92d0e955f5aa96f48"
OSL_SOURCE_REPO_BRANCH="blender-fixes"
#~ OSL_SOURCE_REPO=( "https://github.com/Nazg-Gul/OpenShadingLanguage.git" )
#~ OSL_SOURCE_REPO_UID="7d40ff5fe8e47b030042afb92d0e955f5aa96f48"
#~ OSL_SOURCE_REPO_BRANCH="blender-fixes"
OSD_USE_REPO=false
# Script foo to make the version string compliant with the archive name:
# ${Varname//SearchForThisChar/ReplaceWithThisChar}
OSD_SOURCE=( "https://github.com/PixarAnimationStudios/OpenSubdiv/archive/v${OSD_VERSION//./_}.tar.gz" )
OSD_SOURCE_REPO=( "https://github.com/PixarAnimationStudios/OpenSubdiv.git" )
OSD_SOURCE_REPO_UID="404659fffa659da075d1c9416e4fc939139a84ee"
OSD_SOURCE_REPO_BRANCH="dev"
#~ OSD_SOURCE_REPO=( "https://github.com/PixarAnimationStudios/OpenSubdiv.git" )
#~ OSD_SOURCE_REPO_UID="404659fffa659da075d1c9416e4fc939139a84ee"
#~ OSD_SOURCE_REPO_BRANCH="dev"
OPENVDB_USE_REPO=false
OPENVDB_BLOSC_SOURCE=( "https://github.com/Blosc/c-blosc/archive/v${OPENVDB_BLOSC_VERSION}.tar.gz" )
@@ -788,26 +827,25 @@ ALEMBIC_SOURCE=( "https://github.com/alembic/alembic/archive/${ALEMBIC_VERSION}.
# ALEMBIC_SOURCE_REPO_UID="e6c90d4faa32c4550adeaaf3f556dad4b73a92bb"
# ALEMBIC_SOURCE_REPO_BRANCH="master"
OPENCOLLADA_SOURCE=( "https://github.com/KhronosGroup/OpenCOLLADA.git" )
OPENCOLLADA_REPO_UID="0c2cdc17c22cf42050e4d42154bed2176363549c"
OPENCOLLADA_REPO_BRANCH="master"
OPENCOLLADA_USE_REPO=false
OPENCOLLADA_SOURCE=( "https://github.com/KhronosGroup/OpenCOLLADA/archive/v${OPENCOLLADA_VERSION}.tar.gz" )
#~ OPENCOLLADA_SOURCE_REPO=( "https://github.com/KhronosGroup/OpenCOLLADA.git" )
#~ OPENCOLLADA_REPO_UID="e937c3897b86fc0da53cde97257f5156"
#~ OPENCOLLADA_REPO_BRANCH="master"
EMBREE_USE_REPO=false
EMBREE_SOURCE=( "https://github.com/embree/embree/archive/v${EMBREE_VERSION}.tar.gz" )
#~ EMBREE_SOURCE_REPO=( "https://github.com/embree/embree.git" )
#~ EMBREE_REPO_UID="4a12bfed63c90e85b6eab98b8cdd8dd2a3ba5809"
#~ EMBREE_REPO_BRANCH="master"
FFMPEG_SOURCE=( "http://ffmpeg.org/releases/ffmpeg-$FFMPEG_VERSION.tar.bz2" )
# C++11 is required now
CXXFLAGS_BACK=$CXXFLAGS
if [ "$USE_CXX11" = true ]; then
WARNING "C++11 is now mandatory for blender2.8, this *should* go smoothly with any very recent distribution.
However, if you are experiencing linking errors (also when building Blender itself), please try the following:
* Re-run this script with '--build-all --force-all' options.
* Ensure your gcc version is at the very least 4.8, if possible you should really rather use gcc-5.1 or above.
Please note that until the transition to C++11-built libraries if completed in your distribution, situation will
remain fuzzy and incompatibilities may happen..."
PRINT ""
PRINT ""
CXXFLAGS="$CXXFLAGS -std=c++11"
export CXXFLAGS
fi
CXXFLAGS="$CXXFLAGS -std=c++11"
export CXXFLAGS
#### Show Dependencies ####
@@ -817,7 +855,7 @@ DEPS_COMMON_INFO="\"COMMON DEPENDENCIES:
Those libraries should be available as packages in all recent distributions (optional ones are [between brackets]):
* Basics of dev environment (cmake, gcc, svn , git, ...).
* libjpeg, libpng, libtiff, [libopenjpeg], [libopenal].
* libjpeg, libpng, libtiff, [openjpeg2], [libopenal].
* libx11, libxcursor, libxi, libxrandr, libxinerama (and other libx... as needed).
* libsqlite3, libbz2, libssl, libfftw3, libxml2, libtinyxml, yasm, libyaml-cpp.
* libsdl1.2, libglew, [libglewmx].\""
@@ -841,7 +879,8 @@ You may also want to build them yourself (optional ones are [between brackets]):
* [OpenShadingLanguage $OSL_VERSION_MIN] (from $OSL_SOURCE_REPO, branch $OSL_SOURCE_REPO_BRANCH, commit $OSL_SOURCE_REPO_UID).
* [OpenSubDiv $OSD_VERSION_MIN] (from $OSD_SOURCE_REPO, branch $OSD_SOURCE_REPO_BRANCH, commit $OSD_SOURCE_REPO_UID).
* [OpenVDB $OPENVDB_VERSION_MIN] (from $OPENVDB_SOURCE), [Blosc $OPENVDB_BLOSC_VERSION] (from $OPENVDB_BLOSC_SOURCE).
* [OpenCollada] (from $OPENCOLLADA_SOURCE, branch $OPENCOLLADA_REPO_BRANCH, commit $OPENCOLLADA_REPO_UID).
* [OpenCollada $OPENCOLLADA_VERSION] (from $OPENCOLLADA_SOURCE).
* [Embree $EMBREE_VERSION] (from $EMBREE_SOURCE).
* [Alembic $ALEMBIC_VERSION] (from $ALEMBIC_SOURCE).\""
if [ "$DO_SHOW_DEPS" = true ]; then
@@ -1206,7 +1245,7 @@ compile_Boost() {
if [ ! -d $_inst ]; then
INFO "Building Boost-$BOOST_VERSION"
# Rebuild dependecies as well!
# Rebuild dependencies as well!
OIIO_FORCE_BUILD=true
OIIO_FORCE_REBUILD=true
OSL_FORCE_BUILD=true
@@ -1325,12 +1364,14 @@ compile_OCIO() {
cmake_d="$cmake_d -D CMAKE_INSTALL_PREFIX=$_inst"
cmake_d="$cmake_d -D OCIO_BUILD_APPS=OFF"
cmake_d="$cmake_d -D OCIO_BUILD_PYGLUE=OFF"
cmake_d="$cmake_d -D STOP_ON_WARNING=OFF"
if file /bin/cp | grep -q '32-bit'; then
cflags="-fPIC -m32 -march=i686"
else
cflags="-fPIC"
fi
cflags="$cflags -Wno-error=unused-function -Wno-error=deprecated-declarations"
cmake $cmake_d -D CMAKE_CXX_FLAGS="$cflags" -D CMAKE_EXE_LINKER_FLAGS="-lgcc_s -lgcc" ..
@@ -1397,7 +1438,7 @@ compile_ILMBASE() {
if [ ! -d $_openexr_inst ]; then
INFO "Building ILMBase-$ILMBASE_VERSION"
# Rebuild dependecies as well!
# Rebuild dependencies as well!
OPENEXR_FORCE_BUILD=true
OPENEXR_FORCE_REBUILD=true
@@ -1493,7 +1534,7 @@ compile_OPENEXR() {
if [ ! -d $_inst ]; then
INFO "Building OpenEXR-$OPENEXR_VERSION"
# Rebuild dependecies as well!
# Rebuild dependencies as well!
OIIO_FORCE_BUILD=true
OIIO_FORCE_REBUILD=true
@@ -1607,7 +1648,7 @@ compile_OIIO() {
if [ ! -d $_inst ]; then
INFO "Building OpenImageIO-$OIIO_VERSION"
# Rebuild dependecies as well!
# Rebuild dependencies as well!
OSL_FORCE_BUILD=true
OSL_FORCE_REBUILD=true
@@ -1665,6 +1706,7 @@ compile_OIIO() {
cmake_d="$cmake_d -D USE_QT=OFF"
cmake_d="$cmake_d -D USE_PYTHON=OFF"
cmake_d="$cmake_d -D USE_FFMPEG=OFF"
cmake_d="$cmake_d -D USE_OPENCV=OFF"
cmake_d="$cmake_d -D BUILD_TESTING=OFF"
cmake_d="$cmake_d -D OIIO_BUILD_TESTS=OFF"
cmake_d="$cmake_d -D OIIO_BUILD_TOOLS=OFF"
@@ -1682,9 +1724,7 @@ compile_OIIO() {
# fi
cmake_d="$cmake_d -D USE_OCIO=OFF"
if [ "$USE_CXX11" = true ]; then
cmake_d="$cmake_d -D OIIO_BUILD_CPP11=ON"
fi
cmake_d="$cmake_d -D OIIO_BUILD_CPP11=ON"
if file /bin/cp | grep -q '32-bit'; then
cflags="-fPIC -m32 -march=i686"
@@ -1750,7 +1790,7 @@ compile_LLVM() {
if [ ! -d $_inst ]; then
INFO "Building LLVM-$LLVM_VERSION (CLANG included!)"
# Rebuild dependecies as well!
# Rebuild dependencies as well!
OSL_FORCE_BUILD=true
OSL_FORCE_REBUILD=true
@@ -1758,23 +1798,20 @@ compile_LLVM() {
if [ ! -d $_src -o true ]; then
mkdir -p $SRC
download LLVM_SOURCE[@] "$_src.tar.gz"
download LLVM_CLANG_SOURCE[@] "$_src_clang.tar.gz"
download LLVM_SOURCE[@] "$_src.tar.xz"
download LLVM_CLANG_SOURCE[@] "$_src_clang.tar.xz"
INFO "Unpacking LLVM-$LLVM_VERSION"
tar -C $SRC --transform "s,([^/]*/?)llvm-[^/]*(.*),\1LLVM-$LLVM_VERSION\2,x" \
-xf $_src.tar.gz
-xf $_src.tar.xz
INFO "Unpacking CLANG-$LLVM_VERSION to $_src/tools/clang"
# Stupid clang guys renamed 'clang' to 'cfe' for now handle both cases... :(
tar -C $_src/tools \
--transform "s,([^/]*/?)(clang|cfe)-[^/]*(.*),\1clang\3,x" \
-xf $_src_clang.tar.gz
-xf $_src_clang.tar.xz
cd $_src
# XXX Ugly patching hack!
patch -p1 -i "$SCRIPT_DIR/patches/install_deps_llvm.diff"
cd $CWD
fi
@@ -1877,9 +1914,6 @@ compile_OSL() {
# Stick to same rev as windows' libs...
git checkout $OSL_SOURCE_REPO_UID
git reset --hard
# XXX Ugly patching hack!
patch -p1 -i "$SCRIPT_DIR/patches/install_deps_osl.diff"
fi
# Always refresh the whole build!
@@ -1897,9 +1931,7 @@ compile_OSL() {
cmake_d="$cmake_d -D OSL_BUILD_PLUGINS=OFF"
cmake_d="$cmake_d -D OSL_BUILD_TESTS=OFF"
cmake_d="$cmake_d -D USE_SIMD=sse2"
if [ "$USE_CXX11" = true ]; then
cmake_d="$cmake_d -D OSL_BUILD_CPP11=1"
fi
cmake_d="$cmake_d -D OSL_BUILD_CPP11=1"
#~ cmake_d="$cmake_d -D ILMBASE_VERSION=$ILMBASE_VERSION"
@@ -2084,7 +2116,7 @@ compile_BLOSC() {
if [ ! -d $_inst ]; then
INFO "Building Blosc-$OPENVDB_BLOSC_VERSION"
# Rebuild dependecies as well!
# Rebuild dependencies as well!
OPENVDB_FORCE_BUILD=true
OPENVDB_FORCE_REBUILD=true
@@ -2285,12 +2317,6 @@ compile_ALEMBIC() {
cmake_d="-D CMAKE_INSTALL_PREFIX=$_inst"
# Without Boost or TR1, Alembic requires C++11.
if [ "$USE_CXX11" != true ]; then
cmake_d="$cmake_d -D ALEMBIC_LIB_USES_BOOST=ON"
cmake_d="$cmake_d -D ALEMBIC_LIB_USES_TR1=OFF"
fi
if [ -d $INST/boost ]; then
if [ -d $INST/boost ]; then
cmake_d="$cmake_d -D BOOST_ROOT=$INST/boost"
@@ -2374,17 +2400,24 @@ compile_OpenCOLLADA() {
if [ ! -d $_src ]; then
mkdir -p $SRC
git clone $OPENCOLLADA_SOURCE $_src
if [ "$OPENCOLLADA_USE_REPO" = true ]; then
git clone $OPENCOLLADA_SOURCE_REPO $_src
else
download OPENCOLLADA_SOURCE[@] "$_src.tar.gz"
INFO "Unpacking OpenCOLLADA-$OPENCOLLADA_VERSION"
tar -C $SRC -xf $_src.tar.gz
fi
fi
cd $_src
# XXX For now, always update from latest repo...
git pull origin $OPENCOLLADA_REPO_BRANCH
if [ "$OPENCOLLADA_USE_REPO" = true ]; then
git pull origin $OPENCOLLADA_REPO_BRANCH
# Stick to same rev as windows' libs...
git checkout $OPENCOLLADA_REPO_UID
git reset --hard
# Stick to same rev as windows' libs...
git checkout $OPENCOLLADA_REPO_UID
git reset --hard
fi
# Always refresh the whole build!
if [ -d build ]; then
@@ -2423,6 +2456,101 @@ compile_OpenCOLLADA() {
fi
}
#### Build Embree ####
_init_embree() {
_src=$SRC/embree-$EMBREE_VERSION
_git=true
_inst=$INST/embree-$EMBREE_VERSION
_inst_shortcut=$INST/embree
}
clean_Embree() {
_init_embree
_clean
}
compile_Embree() {
if [ "$NO_BUILD" = true ]; then
WARNING "--no-build enabled, Embree will not be compiled!"
return
fi
# To be changed each time we make edits that would modify the compiled results!
embree_magic=9
_init_embree
# Clean install if needed!
magic_compile_check embree-$EMBREE_VERSION $embree_magic
if [ $? -eq 1 -o "$EMBREE_FORCE_REBUILD" = true ]; then
clean_Embree
fi
if [ ! -d $_inst ]; then
INFO "Building Embree-$EMBREE_VERSION"
prepare_opt
if [ ! -d $_src ]; then
mkdir -p $SRC
if [ "EMBREE_USE_REPO" = true ]; then
git clone $EMBREE_SOURCE_REPO $_src
else
download EMBREE_SOURCE[@] "$_src.tar.gz"
INFO "Unpacking Embree-$EMBREE_VERSION"
tar -C $SRC -xf $_src.tar.gz
fi
fi
cd $_src
if [ "$EMBREE_USE_REPO" = true ]; then
git pull origin $EMBREE_REPO_BRANCH
# Stick to same rev as windows' libs...
git checkout $EMBREE_REPO_UID
git reset --hard
fi
# Always refresh the whole build!
if [ -d build ]; then
rm -rf build
fi
mkdir build
cd build
cmake_d="-D CMAKE_BUILD_TYPE=Release"
cmake_d="$cmake_d -D CMAKE_INSTALL_PREFIX=$_inst"
cmake_d="$cmake_d -D EMBREE_ISPC_SUPPORT=OFF"
cmake_d="$cmake_d -D EMBREE_TUTORIALS=OFF"
cmake_d="$cmake_d -D EMBREE_STATIC_LIB=ON"
cmake_d="$cmake_d -D EMBREE_RAY_MASK=ON"
cmake_d="$cmake_d -D EMBREE_FILTER_FUNCTION=ON"
cmake_d="$cmake_d -D EMBREE_BACKFACE_CULLING=OFF"
cmake_d="$cmake_d -D EMBREE_TASKING_SYSTEM=INTERNAL"
cmake_d="$cmake_d -D EMBREE_MAX_ISA=AVX2"
cmake $cmake_d ../
make -j$THREADS && make install
make clean
if [ -d $_inst ]; then
_create_inst_shortcut
else
ERROR "Embree-$EMBREE_VERSION failed to compile, exiting"
exit 1
fi
magic_compile_set embree-$EMBREE_VERSION $embree_magic
cd $CWD
INFO "Done compiling Embree-$EMBREE_VERSION!"
else
INFO "Own Embree-$EMBREE_VERSION is up to date, nothing to do!"
INFO "If you want to force rebuild of this lib, use the --force-embree option."
fi
}
#### Build FFMPEG ####
_init_ffmpeg() {
_src=$SRC/ffmpeg-$FFMPEG_VERSION
@@ -2640,8 +2768,8 @@ install_DEB() {
THEORA_USE=true
PRINT ""
# New Ubuntu crap (17.04 and more) have no openjpeg lib!
OPENJPEG_DEV="libopenjpeg-dev"
# We need openjp2, libopenjpeg is an old version
OPENJPEG_DEV="libopenjp2-7-dev"
check_package_DEB $OPENJPEG_DEV
if [ $? -eq 0 ]; then
_packages="$_packages $OPENJPEG_DEV"
@@ -2786,6 +2914,7 @@ install_DEB() {
fi
if $_do_compile_python; then
install_packages_DEB libffi-dev
compile_Python
PRINT ""
if [ "$NUMPY_SKIP" = true ]; then
@@ -2882,11 +3011,11 @@ install_DEB() {
INFO "Forced LLVM building, as requested..."
_do_compile_llvm=true
else
check_package_DEB clang-$LLVM_VERSION
check_package_DEB clang-$LLVM_VERSION_MIN
if [ $? -eq 0 ]; then
install_packages_DEB llvm-$LLVM_VERSION-dev clang-$LLVM_VERSION
install_packages_DEB llvm-$LLVM_VERSION_MIN-dev clang-$LLVM_VERSION_MIN
have_llvm=true
LLVM_VERSION_FOUND=$LLVM_VERSION
LLVM_VERSION_FOUND=$LLVM_VERSION_MIN
clean_LLVM
else
_do_compile_llvm=true
@@ -2989,6 +3118,23 @@ install_DEB() {
fi
fi
if [ "$WITH_EMBREE" = true ]; then
_do_compile_embree=false
PRINT ""
if [ "$EMBREE_SKIP" = true ]; then
WARNING "Skipping Embree installation, as requested..."
elif [ "$EMBREE_FORCE_BUILD" = true ]; then
INFO "Forced Embree building, as requested..."
_do_compile_embree=true
else
# No package currently!
_do_compile_embree=true
fi
if [ "$_do_compile_embree" = true ]; then
compile_Embree
fi
fi
PRINT ""
if [ "$FFMPEG_SKIP" = true ]; then
@@ -3177,7 +3323,7 @@ install_RPM() {
fi
# These libs should always be available in fedora/suse official repository...
OPENJPEG_DEV="openjpeg-devel"
OPENJPEG_DEV="openjpeg2-devel"
VORBIS_DEV="libvorbis-devel"
OGG_DEV="libogg-devel"
THEORA_DEV="libtheora-devel"
@@ -3324,6 +3470,7 @@ install_RPM() {
fi
if [ "$_do_compile_python" = true ]; then
install_packages_RPM libffi-devel
compile_Python
PRINT ""
if [ "$NUMPY_SKIP" = true ]; then
@@ -3434,16 +3581,15 @@ install_RPM() {
else
CLANG_DEV="clang-devel"
fi
# XXX RHEL has 3.4 in repo but OSL complains about not finding MCJIT_LIBRARY, so compile for now...
#check_package_version_match_RPM $CLANG_DEV $LLVM_VERSION
#if [ $? -eq 0 ]; then
# install_packages_RPM llvm-devel $CLANG_DEV
# have_llvm=true
# LLVM_VERSION_FOUND=$LLVM_VERSION
# clean_LLVM
#else
check_package_version_match_RPM $CLANG_DEV $LLVM_VERSION
if [ $? -eq 0 ]; then
install_packages_RPM llvm-devel $CLANG_DEV
have_llvm=true
LLVM_VERSION_FOUND=$LLVM_VERSION
clean_LLVM
else
_do_compile_llvm=true
#fi
fi
fi
if [ "$_do_compile_llvm" = true ]; then
@@ -3536,6 +3682,23 @@ install_RPM() {
fi
fi
if [ "$WITH_EMBREE" = true ]; then
PRINT ""
_do_compile_embree=false
if [ "$OPENCOLLADA_SKIP" = true ]; then
WARNING "Skipping Embree installation, as requested..."
elif [ "$EMBREE_FORCE_BUILD" = true ]; then
INFO "Forced Embree building, as requested..."
_do_compile_embree=true
else
# No package...
_do_compile_embree=true
fi
if [ "$_do_compile_embree" = true ]; then
compile_Embree
fi
fi
PRINT ""
if [ "$FFMPEG_SKIP" = true ]; then
@@ -3647,7 +3810,7 @@ install_ARCH() {
fi
# These libs should always be available in arch official repository...
OPENJPEG_DEV="openjpeg"
OPENJPEG_DEV="openjpeg2"
VORBIS_DEV="libvorbis"
OGG_DEV="libogg"
THEORA_DEV="libtheora"
@@ -3753,6 +3916,7 @@ install_ARCH() {
fi
if [ "$_do_compile_python" = true ]; then
install_packages_ARCH libffi
compile_Python
PRINT ""
if [ "$NUMPY_SKIP" = true ]; then
@@ -3843,11 +4007,11 @@ install_ARCH() {
INFO "Forced LLVM building, as requested..."
_do_compile_llvm=true
else
check_package_version_match_ARCH llvm35 $LLVM_VERSION_MIN
check_package_version_match_ARCH llvm $LLVM_VERSION_MIN
if [ $? -eq 0 ]; then
install_packages_ARCH llvm35 clang35
install_packages_ARCH llvm clang
have_llvm=true
LLVM_VERSION=`get_package_version_ARCH llvm35`
LLVM_VERSION=`get_package_version_ARCH llvm`
LLVM_VERSION_FOUND=$LLVM_VERSION
clean_LLVM
else
@@ -3965,6 +4129,28 @@ install_ARCH() {
fi
fi
if [ "$WITH_EMBREE" = true ]; then
PRINT ""
_do_compile_embree=false
if [ "$EMBREE_SKIP" = true ]; then
WARNING "Skipping Embree installation, as requested..."
elif [ "$EMBREE_FORCE_BUILD" = true ]; then
INFO "Forced Embree building, as requested..."
_do_compile_embree=true
else
check_package_ARCH embree
if [ $? -eq 0 ]; then
install_packages_ARCH embree
clean_Embree
else
_do_compile_embree=true
fi
fi
if [ "$_do_compile_embree" = true ]; then
compile_Embree
fi
fi
PRINT ""
if [ "$FFMPEG_SKIP" = true ]; then
@@ -4136,6 +4322,21 @@ install_OTHER() {
fi
fi
if [ "$WITH_EMBREE" = true ]; then
_do_compile_embree=false
PRINT ""
if [ "$EMBREE_SKIP" = true ]; then
WARNING "Skipping Embree installation, as requested..."
elif [ "$EMBREE_FORCE_BUILD" = true ]; then
INFO "Forced Embree building, as requested..."
_do_compile_embree=true
fi
if [ "$_do_compile_embree" = true ]; then
PRINT ""
compile_Embree
fi
fi
PRINT ""
if [ "$FFMPEG_SKIP" = true ]; then
@@ -4227,12 +4428,6 @@ print_info() {
_buildargs="$_buildargs -U *OPENCOLORIO* -U *OPENEXR* -U *OPENIMAGEIO* -U *LLVM* -U *CYCLES*"
_buildargs="$_buildargs -U *OPENSUBDIV* -U *OPENVDB* -U *COLLADA* -U *FFMPEG* -U *ALEMBIC*"
if [ "$USE_CXX11" = true ]; then
_1="-D WITH_CXX11=ON"
PRINT " $_1"
_buildargs="$_buildargs $_1"
fi
_1="-D WITH_CODEC_SNDFILE=ON"
PRINT " $_1"
_buildargs="$_buildargs $_1"
@@ -4337,6 +4532,12 @@ print_info() {
_buildargs="$_buildargs $_1"
fi
if [ "$WITH_EMBREE" = true ]; then
_1="-D WITH_CYCLES_EMBREE=ON"
PRINT " $_1"
_buildargs="$_buildargs $_1"
fi
if [ "$WITH_JACK" = true ]; then
_1="-D WITH_JACK=ON"
_2="-D WITH_JACK_DYNLOAD=ON"
@@ -4378,6 +4579,10 @@ print_info() {
PRINT ""
PRINT "Or even simpler, just run (in your blender-source dir):"
PRINT " make -j$THREADS BUILD_CMAKE_ARGS=\"$_buildargs\""
PRINT ""
PRINT "Or in all your build directories:"
PRINT " cmake $_buildargs ."
}
#### "Main" ####

View File

@@ -1,35 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3e09c57..26565ae 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -116,7 +116,7 @@ IF (NOT ${ALEMBIC_LIB_USES_TR1} AND NOT ${ALEMBIC_LIB_USES_BOOST})
INCLUDE(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
- IF (COMPILER_SUPPORTS_CXX1X)
+ IF (COMPILER_SUPPORTS_CXX11)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
ELSEIF (COMPILER_SUPPORTS_CXX0X)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
--- a/lib/Alembic/AbcCoreOgawa/StreamManager.cpp
+++ b/lib/Alembic/AbcCoreOgawa/StreamManager.cpp
@@ -47,7 +47,18 @@
#define COMPARE_EXCHANGE( V, COMP, EXCH ) V.compare_exchange_weak( COMP, EXCH, std::memory_order_seq_cst, std::memory_order_seq_cst )
// Windows
#elif defined( _MSC_VER )
-#define COMPARE_EXCHANGE( V, COMP, EXCH ) InterlockedCompareExhange64( &V, EXCH, COMP ) == COMP
+#define COMPARE_EXCHANGE( V, COMP, EXCH ) InterlockedCompareExchange64( &V, EXCH, COMP ) == COMP
+int ffsll(long long value)
+{
+ if (!value)
+ return 0;
+
+ for (int bit = 0; bit < 63; bit++)
+ {
+ if (value & (1 << bit))
+ return bit + 1;
+ }
+}
// gcc 4.8 and above not using C++11
#elif defined(__GNUC__) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 8
#define COMPARE_EXCHANGE( V, COMP, EXCH ) __atomic_compare_exchange_n( &V, &COMP, EXCH, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST )

View File

@@ -10,24 +10,22 @@ diff -Naur src/blosc/CMakeLists.txt external_blosc/blosc/CMakeLists.txt
endif(NOT Threads_FOUND)
else(WIN32)
find_package(Threads REQUIRED)
diff -Naur src/blosc/blosc.c external_blosc/blosc/blosc.c
--- src/blosc/blosc.c 2016-02-03 10:26:28 -0700
+++ external_blosc/blosc/blosc.c 2017-03-03 09:01:50 -0700
@@ -49,12 +49,12 @@
diff -Naur external_blosc.orig/blosc/blosc.c external_blosc/blosc/blosc.c
--- external_blosc.orig/blosc/blosc.c 2018-07-30 04:56:38 -0600
+++ external_blosc/blosc/blosc.c 2018-08-11 15:27:26 -0600
@@ -56,14 +56,7 @@
#include <inttypes.h>
#endif /* _WIN32 */
-#if defined(_WIN32) && !defined(__GNUC__)
-/* Include the win32/pthread.h library for all the Windows builds. See #224. */
-#if defined(_WIN32)
- #include "win32/pthread.h"
- #include "win32/pthread.c"
-#else
+//#if defined(_WIN32) && !defined(__GNUC__)
+// #include "win32/pthread.h"
+ //#include "win32/pthread.c"
+//#else
#include <pthread.h>
- #include <pthread.h>
-#endif
+//#endif
/* If C11 is supported, use it's built-in aligned allocation. */
#if __STDC_VERSION__ >= 201112L
-
+#include <pthread.h>
/* Some useful units */
#define KB 1024

View File

@@ -1,15 +0,0 @@
--- a/boost/config/compiler/visualc.hpp 2015-12-08 11:55:19 -0700
+++ b/boost/config/compiler/visualc.hpp 2018-03-17 10:29:52 -0600
@@ -287,12 +287,3 @@
# define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
#endif
-//
-// last known and checked version is 19.00.23026 (VC++ 2015 RTM):
-#if (_MSC_VER > 1900)
-# if defined(BOOST_ASSERT_CONFIG)
-# error "Unknown compiler version - please run the configure tests and report the results"
-# else
-# pragma message("Unknown compiler version - please run the configure tests and report the results")
-# endif
-#endif

View File

@@ -1,127 +0,0 @@
--- cfe/trunk/lib/Serialization/ASTWriter.cpp
+++ cfe/trunk/lib/Serialization/ASTWriter.cpp
@@ -56,14 +56,14 @@
using namespace clang::serialization;
template <typename T, typename Allocator>
-static StringRef bytes(const std::vector<T, Allocator> &v) {
+static StringRef data(const std::vector<T, Allocator> &v) {
if (v.empty()) return StringRef();
return StringRef(reinterpret_cast<const char*>(&v[0]),
sizeof(T) * v.size());
}
template <typename T>
-static StringRef bytes(const SmallVectorImpl<T> &v) {
+static StringRef data(const SmallVectorImpl<T> &v) {
return StringRef(reinterpret_cast<const char*>(v.data()),
sizeof(T) * v.size());
}
@@ -1385,7 +1385,7 @@
Record.push_back(INPUT_FILE_OFFSETS);
Record.push_back(InputFileOffsets.size());
Record.push_back(UserFilesNum);
- Stream.EmitRecordWithBlob(OffsetsAbbrevCode, Record, bytes(InputFileOffsets));
+ Stream.EmitRecordWithBlob(OffsetsAbbrevCode, Record, data(InputFileOffsets));
}
//===----------------------------------------------------------------------===//
@@ -1771,7 +1771,7 @@
Record.push_back(SOURCE_LOCATION_OFFSETS);
Record.push_back(SLocEntryOffsets.size());
Record.push_back(SourceMgr.getNextLocalOffset() - 1); // skip dummy
- Stream.EmitRecordWithBlob(SLocOffsetsAbbrev, Record, bytes(SLocEntryOffsets));
+ Stream.EmitRecordWithBlob(SLocOffsetsAbbrev, Record, data(SLocEntryOffsets));
// Write the source location entry preloads array, telling the AST
// reader which source locations entries it should load eagerly.
@@ -2087,7 +2087,7 @@
Record.push_back(MacroOffsets.size());
Record.push_back(FirstMacroID - NUM_PREDEF_MACRO_IDS);
Stream.EmitRecordWithBlob(MacroOffsetAbbrev, Record,
- bytes(MacroOffsets));
+ data(MacroOffsets));
}
void ASTWriter::WritePreprocessorDetail(PreprocessingRecord &PPRec) {
@@ -2185,7 +2185,7 @@
Record.push_back(PPD_ENTITIES_OFFSETS);
Record.push_back(FirstPreprocessorEntityID - NUM_PREDEF_PP_ENTITY_IDS);
Stream.EmitRecordWithBlob(PPEOffsetAbbrev, Record,
- bytes(PreprocessedEntityOffsets));
+ data(PreprocessedEntityOffsets));
}
}
@@ -2548,7 +2548,7 @@
Record.push_back(CXX_BASE_SPECIFIER_OFFSETS);
Record.push_back(CXXBaseSpecifiersOffsets.size());
Stream.EmitRecordWithBlob(BaseSpecifierOffsetAbbrev, Record,
- bytes(CXXBaseSpecifiersOffsets));
+ data(CXXBaseSpecifiersOffsets));
}
//===----------------------------------------------------------------------===//
@@ -2623,7 +2623,7 @@
Decls.push_back(std::make_pair((*D)->getKind(), GetDeclRef(*D)));
++NumLexicalDeclContexts;
- Stream.EmitRecordWithBlob(DeclContextLexicalAbbrev, Record, bytes(Decls));
+ Stream.EmitRecordWithBlob(DeclContextLexicalAbbrev, Record, data(Decls));
return Offset;
}
@@ -2642,7 +2642,7 @@
Record.push_back(TYPE_OFFSET);
Record.push_back(TypeOffsets.size());
Record.push_back(FirstTypeID - NUM_PREDEF_TYPE_IDS);
- Stream.EmitRecordWithBlob(TypeOffsetAbbrev, Record, bytes(TypeOffsets));
+ Stream.EmitRecordWithBlob(TypeOffsetAbbrev, Record, data(TypeOffsets));
// Write the declaration offsets array
Abbrev = new BitCodeAbbrev();
@@ -2655,7 +2655,7 @@
Record.push_back(DECL_OFFSET);
Record.push_back(DeclOffsets.size());
Record.push_back(FirstDeclID - NUM_PREDEF_DECL_IDS);
- Stream.EmitRecordWithBlob(DeclOffsetAbbrev, Record, bytes(DeclOffsets));
+ Stream.EmitRecordWithBlob(DeclOffsetAbbrev, Record, data(DeclOffsets));
}
void ASTWriter::WriteFileDeclIDsMap() {
@@ -2680,7 +2680,7 @@
unsigned AbbrevCode = Stream.EmitAbbrev(Abbrev);
Record.push_back(FILE_SORTED_DECLS);
Record.push_back(FileSortedIDs.size());
- Stream.EmitRecordWithBlob(AbbrevCode, Record, bytes(FileSortedIDs));
+ Stream.EmitRecordWithBlob(AbbrevCode, Record, data(FileSortedIDs));
}
void ASTWriter::WriteComments() {
@@ -2893,7 +2893,7 @@
Record.push_back(SelectorOffsets.size());
Record.push_back(FirstSelectorID - NUM_PREDEF_SELECTOR_IDS);
Stream.EmitRecordWithBlob(SelectorOffsetAbbrev, Record,
- bytes(SelectorOffsets));
+ data(SelectorOffsets));
}
}
@@ -3253,7 +3253,7 @@
Record.push_back(IdentifierOffsets.size());
Record.push_back(FirstIdentID - NUM_PREDEF_IDENT_IDS);
Stream.EmitRecordWithBlob(IdentifierOffsetAbbrev, Record,
- bytes(IdentifierOffsets));
+ data(IdentifierOffsets));
}
//===----------------------------------------------------------------------===//
@@ -4046,7 +4046,7 @@
Record.clear();
Record.push_back(TU_UPDATE_LEXICAL);
Stream.EmitRecordWithBlob(TuUpdateLexicalAbbrev, Record,
- bytes(NewGlobalDecls));
+ data(NewGlobalDecls));
// And a visible updates block for the translation unit.
Abv = new llvm::BitCodeAbbrev();

View File

@@ -75,7 +75,7 @@ macro(PREFIX_FIND_LIB prefix libname libpath_var liblist_var cachelist_var)
# Handle new library names for OpenEXR 2.1 build via cmake
string(REPLACE "." "_" _ILMBASE_VERSION ${ILMBASE_VERSION})
string(SUBSTRING ${_ILMBASE_VERSION} 0 3 _ILMBASE_VERSION )
find_library(${tmp_prefix}_LIBRARY_RELEASE
NAMES ${libname} ${libname}-${_ILMBASE_VERSION}
HINTS ${${libpath_var}}
@@ -177,7 +177,7 @@ if(ILMBASE_INCLUDE_DIR)
"\\1" XYZ ${ILMBASE_BUILD_SPECIFICATION})
set("ILMBASE_VERSION" ${XYZ} CACHE STRING "Version of ILMBase lib")
else()
# Old versions (before 2.0?) do not have any version string, just assuming 2.0 should be fine though.
# Old versions (before 2.0?) do not have any version string, just assuming 2.0 should be fine though.
message(WARNING "Could not determine ILMBase library version, assuming 2.0.")
set("ILMBASE_VERSION" "2.0" CACHE STRING "Version of ILMBase lib")
endif()

View File

@@ -175,7 +175,7 @@ if(OPENEXR_INCLUDE_DIR)
"\\1" XYZ ${OPENEXR_BUILD_SPECIFICATION})
set("OPENEXR_VERSION" ${XYZ} CACHE STRING "Version of OpenEXR lib")
else()
# Old versions (before 2.0?) do not have any version string, just assuming 2.0 should be fine though.
# Old versions (before 2.0?) do not have any version string, just assuming 2.0 should be fine though.
message(WARNING "Could not determine ILMBase library version, assuming 2.0.")
set("OPENEXR_VERSION" "2.0" CACHE STRING "Version of OpenEXR lib")
endif()

View File

@@ -6,7 +6,7 @@
# basename_LIBRARY_RELEASE is defined, basename_LIBRARY, basename_LIBRARY_DEBUG,
# and basename_LIBRARY_RELEASE will be set to the release value. If only
# basename_LIBRARY_DEBUG is defined, then basename_LIBRARY,
# basename_LIBRARY_DEBUG and basename_LIBRARY_RELEASE will take the debug value.
# basename_LIBRARY_DEBUG and basename_LIBRARY_RELEASE will take the debug value.
#
# If the generator supports configuration types, then basename_LIBRARY and
# basename_LIBRARIES will be set with debug and optimized flags specifying the
@@ -53,10 +53,10 @@ macro( select_library_configurations basename )
# if the generator supports configuration types or CMAKE_BUILD_TYPE
# is set, then set optimized and debug options.
if( CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE )
set( ${basename}_LIBRARY
set( ${basename}_LIBRARY
optimized ${${basename}_LIBRARY_RELEASE}
debug ${${basename}_LIBRARY_DEBUG} )
set( ${basename}_LIBRARIES
set( ${basename}_LIBRARIES
optimized ${${basename}_LIBRARY_RELEASE}
debug ${${basename}_LIBRARY_DEBUG} )
else( CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE )
@@ -67,16 +67,15 @@ macro( select_library_configurations basename )
endif( CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE )
endif( ${basename}_LIBRARY_DEBUG AND ${basename}_LIBRARY_RELEASE )
set( ${basename}_LIBRARY ${${basename}_LIBRARY} CACHE FILEPATH
set( ${basename}_LIBRARY ${${basename}_LIBRARY} CACHE FILEPATH
"The ${basename} library" )
if( ${basename}_LIBRARY )
set( ${basename}_FOUND TRUE )
endif( ${basename}_LIBRARY )
mark_as_advanced( ${basename}_LIBRARY
mark_as_advanced( ${basename}_LIBRARY
${basename}_LIBRARY_RELEASE
${basename}_LIBRARY_DEBUG
)
endmacro( select_library_configurations )

View File

@@ -0,0 +1,51 @@
project(lcms2)
cmake_minimum_required(VERSION 2.8)
include_directories(include)
set(HEADERS
include/lcms2.h
include/lcms2_plugin.h
)
set(SOURCES
src/cmscam02.c
src/cmscgats.c
src/cmscnvrt.c
src/cmserr.c
src/cmsgamma.c
src/cmsgmt.c
src/cmsintrp.c
src/cmsio0.c
src/cmsio1.c
src/cmslut.c
src/cmsmd5.c
src/cmsmtrx.c
src/cmsnamed.c
src/cmsopt.c
src/cmspack.c
src/cmspcs.c
src/cmsplugin.c
src/cmsps2.c
src/cmssamp.c
src/cmssm.c
src/cmstypes.c
src/cmsvirt.c
src/cmswtpnt.c
src/cmsxform.c
src/lcms2_internal.h
)
add_library(${PROJECT_NAME} STATIC ${HEADERS} ${SOURCES})
set_target_properties(${PROJECT_NAME} PROPERTIES
LIBRARY_OUTPUT_NAME "${PROJECT_NAME}"
PUBLIC_HEADER "${HEADERS}"
)
install(TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
PUBLIC_HEADER DESTINATION include
)

View File

@@ -1,398 +0,0 @@
# --------------------------------------------------------------------------------
cmake_minimum_required(VERSION 2.8)
# --------------------------------------------------------------------------------
project(OpenVDB)
# --------------------------------------------------------------------------------
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")
# --------------------------------------------------------------------------------
set(CMAKE_BUILD_TYPE_INIT "Release")
# --------------------------------------------------------------------------------
# Options
option(WITH_BLOSC "Enable Blosc support for compression" OFF)
option(WITH_LOGC4PLUS "Enable logging" OFF)
option(WITH_OPENVDB_2_ABI "Enable building the library to be compability with the OpenVDB 2 ABI" OFF)
option(WITH_PRINTER "Enable building the OpenVDB print executable" OFF)
option(WITH_PYTHON "Enable building the OpenVDB python API" OFF)
option(WITH_RENDERER "Enable building the OpenVDB render executable" OFF)
option(WITH_UNITTEST "Enable building the unit tests" OFF)
option(WITH_VIEWER "Enable building the OpenVDB viewer executable" OFF)
# --------------------------------------------------------------------------------
# Find packages
#set(BOOST_LIBRARIES boost_iostreams boost_system boost_thread)
find_package(IlmBase)
find_package(OpenEXR)
find_package(TBB)
find_package(Boost)
if(WITH_BLOSC)
find_package(Blosc)
if(NOT BLOSC_FOUND)
set(WITH_BLOSC OFF)
endif()
endif()
# todo
if(WITH_VIEWER)
set(GLFW_INCLUDE_DIRS ${GLFW_INCLUDE_PATH})
set(GLFW_LIBRARY_DIRS ${GLFW_LIBRARY_PATH})
endif()
if(WITH_LOGC4PLUS)
find_package(LogC4Plus)
if(NOT LOGC4PLUS_FOUND)
set(WITH_LOGC4PLUS OFF)
endif()
endif()
# todo
if(WITH_PYTHON)
set(PYTHON_INCLUDE_DIRS ${PYTHON_INCLUDE_PATH})
set(PYTHON_LIBRARY_DIRS ${PYTHON_LIBRARY_PATH})
endif()
if(WITH_UNITTEST)
find_package(CppUnit)
if(NOT CPPUNIT_FOUND)
set(WITH_UNITTEST OFF)
endif()
endif()
# --------------------------------------------------------------------------------
message (STATUS "BOOST_ROOT ${BOOST_ROOT}")
message (STATUS "Boost found ${Boost_FOUND} ")
message (STATUS "Boost version ${Boost_VERSION}")
message (STATUS "Boost include dirs ${Boost_INCLUDE_DIRS}")
message (STATUS "Boost library dirs ${Boost_LIBRARY_DIRS}")
message (STATUS "Boost libraries ${Boost_LIBRARIES}")
message (STATUS "ILMBase found ${ILMBASE_FOUND} ")
message (STATUS "ILMBase include dir ${ILMBASE_INCLUDE_DIR}")
message (STATUS "ILMBase libraries ${ILMBASE_LIBRARIES}")
message (STATUS "TBB found ${TBB_FOUND} ")
message (STATUS "TBB include dir ${TBB_INCLUDE_DIR}")
message (STATUS "TBB libraries ${TBB_LIBRARIES}")
if(MSVC)
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj" )
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /bigobj" )
endif()
set(OPENVDB_LIBRARIES ${BLOSC_LIBRARIES} ${BOOST_LIBRARIES} ${OPENEXR_LIBRARIES} ${ILMBASE_LIBRARIES} ${TBB_LIBRARIES} ${ZLIB_LIBRARY} )
include_directories(. ${CMAKE_CURRENT_SOURCE_DIR}/../ ${Boost_INCLUDE_DIRS} ${ILMBASE_INCLUDE_DIR} ${OPENEXR_INCLUDE_DIR} ${TBB_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIR})
link_directories(${Boost_LIBRARY_DIRS} ${OPENEXR_LIBRARY_DIRS} ${TBB_INCLUDE_DIRS})
add_definitions(-DNOMINMAX -D__TBB_NO_IMPLICIT_LINKAGE -DOPENVDB_STATICLIB -DOPENVDB_OPENEXR_STATICLIB)
if(WITH_BLOSC)
add_definitions(-DOPENVDB_USE_BLOSC)
include_directories(${BLOSC_INCLUDE_DIRS})
link_directories(${BLOSC_LIBRARY_DIRS})
endif()
if(WITH_LOGC4PLUS)
add_definitions(-DOPENVDB_USE_LOG4CPLUS)
include_directories(${LOG4CPLUS_INCLUDE_DIRS})
link_directories(${LOG4CPLUS_LIBRARY_DIRS})
endif()
if(WITH_OPENVDB_2_ABI)
add_definitions(-DOPENVDB_2_ABI_COMPATIBLE)
endif()
# todo
if(WITH_OPENVDB_USE_GLFW_3)
add_definitions(-DOPENVDB_USE_GLFW_3)
endif()
if(WITH_UNITTEST)
include_directories(${CPPUNIT_INCLUDE_DIRS})
link_directories(${CPPUNIT_LIBRARY_DIRS})
endif()
# --------------------------------------------------------------------------------
set(SRC_FILES
openvdb/openvdb.cc
openvdb/io/Compression.cc
openvdb/io/File.cc
openvdb/io/Queue.cc
openvdb/io/Stream.cc
openvdb/io/TempFile.cc
openvdb/io/GridDescriptor.cc
openvdb/io/Archive.cc
openvdb/metadata/MetaMap.cc
openvdb/metadata/Metadata.cc
openvdb/math/Maps.cc
openvdb/math/Transform.cc
openvdb/math/QuantizedUnitVec.cc
openvdb/math/Proximity.cc
openvdb/Grid.cc
openvdb/util/Formats.cc
openvdb/util/Util.cc
)
set(HEADER_FILES
openvdb/openvdb.h
openvdb/version.h
openvdb/PlatformConfig.h
openvdb/Metadata.h
openvdb/Exceptions.h
openvdb/Grid.h
openvdb/Types.h
openvdb/Platform.h
openvdb/tree/ValueAccessor.h
openvdb/tree/NodeUnion.h
openvdb/tree/Tree.h
openvdb/tree/Iterator.h
openvdb/tree/LeafNodeBool.h
openvdb/tree/TreeIterator.h
openvdb/tree/LeafNode.h
openvdb/tree/NodeManager.h
openvdb/tree/LeafManager.h
openvdb/tree/InternalNode.h
openvdb/tree/RootNode.h
openvdb/tools/PointScatter.h
openvdb/tools/VolumeAdvect.h
openvdb/tools/LevelSetTracker.h
openvdb/tools/Composite.h
openvdb/tools/Morphology.h
openvdb/tools/ValueTransformer.h
openvdb/tools/ChangeBackground.h
openvdb/tools/GridTransformer.h
openvdb/tools/Prune.h
openvdb/tools/LevelSetUtil.h
openvdb/tools/VolumeToSpheres.h
openvdb/tools/LevelSetAdvect.h
openvdb/tools/Statistics.h
openvdb/tools/LevelSetMeasure.h
openvdb/tools/VectorTransformer.h
openvdb/tools/RayIntersector.h
openvdb/tools/PointPartitioner.h
openvdb/tools/Interpolation.h
openvdb/tools/VelocityFields.h
openvdb/tools/PointIndexGrid.h
openvdb/tools/LevelSetRebuild.h
openvdb/tools/Clip.h
openvdb/tools/SignedFloodFill.h
openvdb/tools/MeshToVolume.h
openvdb/tools/Dense.h
openvdb/tools/Filter.h
openvdb/tools/RayTracer.h
openvdb/tools/Diagnostics.h
openvdb/tools/VolumeToMesh.h
openvdb/tools/PoissonSolver.h
openvdb/tools/LevelSetFracture.h
openvdb/tools/GridOperators.h
openvdb/tools/DenseSparseTools.h
openvdb/tools/ParticlesToLevelSet.h
openvdb/tools/LevelSetSphere.h
openvdb/tools/LevelSetMorph.h
openvdb/tools/LevelSetFilter.h
openvdb/tools/PointAdvect.h
openvdb/io/Queue.h
openvdb/io/TempFile.h
openvdb/io/Stream.h
openvdb/io/GridDescriptor.h
openvdb/io/Archive.h
openvdb/io/io.h
openvdb/io/Compression.h
openvdb/io/File.h
openvdb/metadata/StringMetadata.h
openvdb/metadata/MetaMap.h
openvdb/metadata/Metadata.h
openvdb/math/DDA.h
openvdb/math/Vec2.h
openvdb/math/FiniteDifference.h
openvdb/math/Stencils.h
openvdb/math/BBox.h
openvdb/math/Mat3.h
openvdb/math/Mat.h
openvdb/math/Proximity.h
openvdb/math/Ray.h
openvdb/math/ConjGradient.h
openvdb/math/Quat.h
openvdb/math/Vec3.h
openvdb/math/Vec4.h
openvdb/math/QuantizedUnitVec.h
openvdb/math/Coord.h
openvdb/math/Operators.h
openvdb/math/Stats.h
openvdb/math/Math.h
openvdb/math/Tuple.h
openvdb/math/LegacyFrustum.h
openvdb/math/Mat4.h
openvdb/math/Maps.h
openvdb/math/Transform.h
openvdb/util/PagedArray.h
openvdb/util/CpuTimer.h
openvdb/util/Formats.h
openvdb/util/NullInterrupter.h
openvdb/util/Util.h
openvdb/util/Name.h
openvdb/util/MapsUtil.h
openvdb/util/NodeMasks.h
openvdb/util/logging.h
)
add_library(openvdb STATIC ${SRC_FILES} ${HEADER_FILES})
# --------------------------------------------------------------------------------
target_link_libraries(openvdb ${OPENVDB_LIBRARIES})
set(OPENVDB_VERSION_MAJOR 3)
set(OPENVDB_VERSION_MINOR 1)
set(OPENVDB_VERSION_PATCH 0)
set(OPENVDB_VERSION_STRING ${OPENVDB_VERSION_MAJOR}.${OPENVDB_VERSION_MINOR}.${OPENVDB_VERSION_PATCH})
set_target_properties(openvdb PROPERTIES VERSION ${OPENVDB_VERSION_STRING} SOVERSION ${OPENVDB_VERSION_MAJOR})
install(TARGETS openvdb DESTINATION lib)
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DESTINATION include COMPONENT Development FILES_MATCHING PATTERN "*.h"
PATTERN ".git" EXCLUDE PATTERN "build" EXCLUDE PATTERN "cmake" EXCLUDE)
# --------------------------------------------------------------------------------
if(WITH_PRINTER)
set(PRINT_SRC
openvdb/cmd/openvdb_print/main.cc
)
add_executable(vdb_print ${PRINT_SRC})
target_link_libraries(vdb_print openvdb)
install(TARGETS vdb_print RUNTIME DESTINATION bin)
endif()
if(WITH_RENDER)
set(RENDER_SRC
openvdb/cmd/openvdb_render/main.cc
)
add_executable(vdb_render ${RENDER_SRC})
target_link_libraries(vdb_render openvdb)
install(TARGETS vdb_render RUNTIME DESTINATION bin)
endif()
# todo
if(WITH_VIEWER)
set(VIEWER_SRC
openvdb/viewer/Camera.cc
openvdb/viewer/ClipBox.cc
openvdb/viewer/Font.cc
openvdb/viewer/RenderModules.cc
openvdb/viewer/Viewer.cc
openvdb/viewer/Camera.h
openvdb/viewer/ClipBox.h
openvdb/viewer/Font.h
openvdb/viewer/RenderModules.h
openvdb/viewer/Viewer.h
openvdb/cmd/openvdb_viewer/main.cc
)
include_directories(${GLFW_INCLUDE_DIRS})
link_directories(${GLFW_LIBRARY_DIRS})
add_executable(vdb_viewer ${VIEWER_SRC})
target_link_libraries(vdb_viewer openvdb)
install(TARGETS vdb_viewer RUNTIME DESTINATION bin)
endif()
# todo
if(WITH_PYTHON)
# add_library(pyopenvdb SHARED )
endif()
set(UNITTEST_SRC
openvdb/unittest/main.cc
openvdb/unittest/TestBBox.cc
openvdb/unittest/TestConjGradient.cc
openvdb/unittest/TestCoord.cc
openvdb/unittest/TestCpt.cc
openvdb/unittest/TestCurl.cc
openvdb/unittest/TestDense.cc
openvdb/unittest/TestDenseSparseTools.cc
openvdb/unittest/TestDiagnostics.cc
openvdb/unittest/TestDivergence.cc
openvdb/unittest/TestDoubleMetadata.cc
openvdb/unittest/TestExceptions.cc
openvdb/unittest/TestFile.cc
openvdb/unittest/TestFloatMetadata.cc
openvdb/unittest/TestGradient.cc
openvdb/unittest/TestGrid.cc
openvdb/unittest/TestGridBbox.cc
openvdb/unittest/TestGridDescriptor.cc
openvdb/unittest/TestGridIO.cc
openvdb/unittest/TestGridTransformer.cc
openvdb/unittest/TestInit.cc
openvdb/unittest/TestInt32Metadata.cc
openvdb/unittest/TestInt64Metadata.cc
openvdb/unittest/TestInternalOrigin.cc
openvdb/unittest/TestLaplacian.cc
openvdb/unittest/TestLeaf.cc
openvdb/unittest/TestLeafBool.cc
openvdb/unittest/TestLeafIO.cc
openvdb/unittest/TestLeafOrigin.cc
openvdb/unittest/TestLevelSetRayIntersector.cc
openvdb/unittest/TestLevelSetUtil.cc
openvdb/unittest/TestLinearInterp.cc
openvdb/unittest/TestMaps.cc
openvdb/unittest/TestMat4Metadata.cc
openvdb/unittest/TestMath.cc
openvdb/unittest/TestMeanCurvature.cc
openvdb/unittest/TestMeshToVolume.cc
openvdb/unittest/TestMetadata.cc
openvdb/unittest/TestMetadataIO.cc
openvdb/unittest/TestMetaMap.cc
openvdb/unittest/TestName.cc
openvdb/unittest/TestNodeIterator.cc
openvdb/unittest/TestNodeMask.cc
openvdb/unittest/TestParticlesToLevelSet.cc
openvdb/unittest/TestPointIndexGrid.cc
openvdb/unittest/TestPointPartitioner.cc
openvdb/unittest/TestPoissonSolver.cc
openvdb/unittest/TestPrePostAPI.cc
openvdb/unittest/TestQuadraticInterp.cc
openvdb/unittest/TestQuantizedUnitVec.cc
openvdb/unittest/TestQuat.cc
openvdb/unittest/TestRay.cc
openvdb/unittest/TestStats.cc
openvdb/unittest/TestStream.cc
openvdb/unittest/TestStringMetadata.cc
openvdb/unittest/TestTools.cc
openvdb/unittest/TestTransform.cc
openvdb/unittest/TestTree.cc
openvdb/unittest/TestTreeCombine.cc
openvdb/unittest/TestTreeGetSetValues.cc
openvdb/unittest/TestTreeIterators.cc
openvdb/unittest/TestTreeVisitor.cc
openvdb/unittest/TestUtil.cc
openvdb/unittest/TestValueAccessor.cc
openvdb/unittest/TestVec2Metadata.cc
openvdb/unittest/TestVec3Metadata.cc
openvdb/unittest/TestVolumeRayIntersector.cc
openvdb/unittest/TestVolumeToMesh.cc
)
# todo
if(WITH_UNITTEST)
add_executable(test ${UNITTEST_SRC} ${HEADER_FILES})
target_link_libraries(test openvdb ${CPPUNIT_LIBRARIES})
endif()

View File

@@ -1,11 +0,0 @@
--- _msvccompiler.py.orig 2017-01-17 00:57:48 -0700
+++ _msvccompiler.py 2017-05-20 09:47:26 -0600
@@ -237,7 +237,7 @@
ldflags.extend(('/nodefaultlib:libucrt.lib', 'ucrt.lib'))
ldflags_debug = [
- '/nologo', '/INCREMENTAL:NO', '/LTCG', '/DEBUG:FULL'
+ '/nologo', '/INCREMENTAL:NO', '/LTCG'
]
self.ldflags_exe = [*ldflags, '/MANIFEST:EMBED,ID=1']

View File

@@ -0,0 +1,11 @@
--- Makefile.in 2014-11-12 06:59:58.000000000 -0500
+++ Makefile.in 2018-09-17 13:36:10.974086554 -0400
@@ -600,7 +600,7 @@
target_os = @target_os@
target_vendor = @target_vendor@
toolexecdir = @toolexecdir@
-toolexeclibdir = @toolexeclibdir@
+toolexeclibdir = $(libdir)
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@

View File

@@ -1,32 +1,11 @@
--- libavutil/common.h 2016-02-14 19:29:42 -0700
+++ libavutil/common.h 2016-03-30 09:50:29 -0600
@@ -99,6 +99,11 @@
#define FFSWAP(type,a,b) do{type SWAP_tmp= b; b= a; a= SWAP_tmp;}while(0)
#define FF_ARRAY_ELEMS(a) (sizeof(a) / sizeof((a)[0]))
+//msvc helper
+#ifdef _MSC_VER
+#define inline __inline
+#endif
+
/* misc math functions */
#ifdef HAVE_AV_CONFIG_H
--- configure 2016-11-26 03:12:05.000000000 +0100
+++ configure 2017-04-05 03:24:35.000000000 +0200
@@ -1899,7 +1899,6 @@
access
aligned_malloc
arc4random
- clock_gettime
closesocket
CommandLineToArgvW
CoTaskMemFree
@@ -5494,7 +5493,6 @@
check_func access
check_func_headers stdlib.h arc4random
-check_func_headers time.h clock_gettime || { check_func_headers time.h clock_gettime -lrt && add_extralibs -lrt && LIBRT="-lrt"; }
check_func fcntl
check_func fork
check_func gethrtime
--- a/configure 2018-08-27 13:46:41.071106150 +0200
+++ b/configure 2018-08-27 13:46:28.162765762 +0200
@@ -6013,7 +6013,7 @@
require_pkg_config libopencv opencv opencv/cxcore.h cvCreateImageHeader; }
enabled libopenh264 && require_pkg_config libopenh264 openh264 wels/codec_api.h WelsGetCodecVersion
enabled libopenjpeg && { check_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version ||
- { require_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } }
+ { require_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version "-DOPJ_STATIC $pthreads_extralibs $libm_extralibs" && add_cppflags "-DOPJ_STATIC $pthreads_extralibs $libm_extralibs"; } }
enabled libopenmpt && require_pkg_config libopenmpt "libopenmpt >= 0.2.6557" libopenmpt/libopenmpt.h openmpt_module_create -lstdc++ && append libopenmpt_extralibs "-lstdc++"
enabled libopus && {
enabled libopus_decoder && {

View File

@@ -0,0 +1,18 @@
diff -NaurBb b/CMakeLists.txt a/CMakeLists.txt
--- b/CMakeLists.txt 2018-05-01 12:45:46 -0600
+++ a/CMakeLists.txt 2018-08-08 13:03:22 -0600
@@ -229,9 +229,12 @@
endif ()
string(REPLACE "/undef " "#undef "
FTCONFIG_H "${FTCONFIG_H}")
- file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h"
- "${FTCONFIG_H}")
+else()
+ file(READ "${PROJECT_SOURCE_DIR}/include/freetype/config/ftconfig.h"
+ FTCONFIG_H)
endif ()
+file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h"
+ "${FTCONFIG_H}")
# Create the options file

View File

@@ -1,11 +0,0 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -14,7 +14,7 @@
set(LLVM_VERSION_MINOR 4)
if (NOT PACKAGE_VERSION)
- set(PACKAGE_VERSION "${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}svn")
+ set(PACKAGE_VERSION "${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}")
endif()
option(LLVM_INSTALL_TOOLCHAIN_ONLY "Only include toolchain files in the 'install' target." OFF)

View File

@@ -1,12 +0,0 @@
--- a/src/shaders/CMakeLists.txt
+++ b/src/shaders/CMakeLists.txt
@@ -27,7 +27,7 @@ macro (osl_compile oslsrc objlist headers)
message (STATUS "cmd: ${CMAKE_CURRENT_BINARY_DIR}/../oslc/oslc ${oslsrc}")
endif ()
add_custom_command (OUTPUT ${osofile}
- COMMAND "${CMAKE_CURRENT_BINARY_DIR}/../oslc/oslc" ${oslsrc}
+ COMMAND "${CMAKE_CURRENT_BINARY_DIR}/../oslc/oslc" "-o" ${osofile} ${oslsrc}
MAIN_DEPENDENCY ${oslsrc}
DEPENDS ${${headers}} ${oslsrc} "${CMAKE_CURRENT_BINARY_DIR}/stdosl.h" "${CMAKE_CURRENT_BINARY_DIR}/../oslc/oslc"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})

View File

@@ -1,10 +0,0 @@
--- frontend/main.c 2008-09-22 11:55:09 -0600
+++ frontend/main.c 2016-04-06 15:20:36 -0600
@@ -31,7 +31,6 @@
#ifdef _WIN32
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
-#define off_t __int64
#else
#include <time.h>
#endif

View File

@@ -1,111 +0,0 @@
Index: lib/Target/X86/X86ISelLowering.cpp
===================================================================
--- lib/Target/X86/X86ISelLowering.cpp 2014-04-11 23:04:44.000000000 +0200
+++ lib/Target/X86/X86ISelLowering.cpp (working copy)
@@ -15493,12 +15493,36 @@
// non-trivial part is impdef of ESP.
if (Subtarget->isTargetWin64()) {
+ const char *StackProbeSymbol =
+ Subtarget->isTargetCygMing() ? "___chkstk" : "__chkstk";
+
+ MachineInstrBuilder MIB;
+
+ if (getTargetMachine().getCodeModel() == CodeModel::Large) {
+ // For large code model we need to do indirect call to __chkstk.
+
+ // R11 will be used to contain the address of __chkstk.
+ // R11 is a volotiale register and assumed to be destoyed by the callee,
+ // so there is no need to save and restore it.
+ BuildMI(*BB, MI, DL, TII->get(X86::MOV64ri), X86::R11)
+ .addExternalSymbol(StackProbeSymbol);
+ // Create a call to __chkstk function which address contained in R11.
+ MIB = BuildMI(*BB, MI, DL, TII->get(X86::CALL64r))
+ .addReg(X86::R11, RegState::Kill);
+
+ } else {
+
+ // For non-large code model we can do direct call to __chkstk.
+
+ MIB = BuildMI(*BB, MI, DL, TII->get(X86::W64ALLOCA))
+ .addExternalSymbol(StackProbeSymbol);
+ }
+
if (Subtarget->isTargetCygMing()) {
// ___chkstk(Mingw64):
// Clobbers R10, R11, RAX and EFLAGS.
// Updates RSP.
- BuildMI(*BB, MI, DL, TII->get(X86::W64ALLOCA))
- .addExternalSymbol("___chkstk")
+ MIB
.addReg(X86::RAX, RegState::Implicit)
.addReg(X86::RSP, RegState::Implicit)
.addReg(X86::RAX, RegState::Define | RegState::Implicit)
@@ -15507,8 +15531,7 @@
} else {
// __chkstk(MSVCRT): does not update stack pointer.
// Clobbers R10, R11 and EFLAGS.
- BuildMI(*BB, MI, DL, TII->get(X86::W64ALLOCA))
- .addExternalSymbol("__chkstk")
+ MIB
.addReg(X86::RAX, RegState::Implicit)
.addReg(X86::EFLAGS, RegState::Define | RegState::Implicit);
// RAX has the offset to be subtracted from RSP.
Index: lib/Target/X86/X86FrameLowering.cpp
===================================================================
--- lib/Target/X86/X86FrameLowering.cpp 2013-10-24 01:37:01.000000000 +0200
+++ lib/Target/X86/X86FrameLowering.cpp (working copy)
@@ -635,25 +635,49 @@
.addReg(X86::EAX, RegState::Kill)
.setMIFlag(MachineInstr::FrameSetup);
}
+
+ MachineInstrBuilder MIB;
if (Is64Bit) {
+
// Handle the 64-bit Windows ABI case where we need to call __chkstk.
// Function prologue is responsible for adjusting the stack pointer.
BuildMI(MBB, MBBI, DL, TII.get(X86::MOV64ri), X86::RAX)
.addImm(NumBytes)
.setMIFlag(MachineInstr::FrameSetup);
+
+ if (TM.getCodeModel() == CodeModel::Large) {
+ // For large code model we need to do indirect call to __chkstk.
+
+
+ // R11 will be used to contain the address of __chkstk.
+ // R11 is a volotiale register and assumed to be destoyed by the callee,
+ // so there is no need to save and restore it.
+ BuildMI(MBB, MBBI, DL, TII.get(X86::MOV64ri), X86::R11)
+ .addExternalSymbol(StackProbeSymbol);
+ // Create a call to __chkstk function which address contained in R11.
+ MIB = BuildMI(MBB, MBBI, DL, TII.get(X86::CALL64r))
+ .addReg(X86::R11, RegState::Kill);
+ } else {
+
+ // For non-large code model we can do direct call to __chkstk.
+
+ MIB = BuildMI(MBB, MBBI, DL, TII.get(X86::W64ALLOCA))
+ .addExternalSymbol(StackProbeSymbol);
+ }
} else {
// Allocate NumBytes-4 bytes on stack in case of isEAXAlive.
// We'll also use 4 already allocated bytes for EAX.
BuildMI(MBB, MBBI, DL, TII.get(X86::MOV32ri), X86::EAX)
.addImm(isEAXAlive ? NumBytes - 4 : NumBytes)
.setMIFlag(MachineInstr::FrameSetup);
+
+ MIB = BuildMI(MBB, MBBI, DL, TII.get(X86::CALLpcrel32))
+ .addExternalSymbol(StackProbeSymbol);
}
- BuildMI(MBB, MBBI, DL,
- TII.get(Is64Bit ? X86::W64ALLOCA : X86::CALLpcrel32))
- .addExternalSymbol(StackProbeSymbol)
- .addReg(StackPtr, RegState::Define | RegState::Implicit)
+
+ MIB.addReg(StackPtr, RegState::Define | RegState::Implicit)
.addReg(X86::EFLAGS, RegState::Define | RegState::Implicit)
.setMIFlag(MachineInstr::FrameSetup);

View File

@@ -1,23 +0,0 @@
diff -Naur numpy-1.11.1/numpy/distutils/ccompiler.py numpy-1.11.1/numpy/distutils/ccompiler.py
--- numpy-1.11.1/numpy/distutils/ccompiler.py 2016-06-25 08:38:34 -0600
+++ numpy-1.11.1/numpy/distutils/ccompiler.py 2016-08-04 12:33:43 -0600
@@ -29,6 +29,7 @@
# Using customized CCompiler.spawn.
def CCompiler_spawn(self, cmd, display=None):
+ cmd = quote_args(cmd)
"""
Execute a command in a sub-process.
diff -Naur numpy-1.11.1/numpy/distutils/misc_util.py numpy-1.11.1/numpy/distutils/misc_util.py
--- numpy-1.11.1/numpy/distutils/misc_util.py 2016-06-25 08:38:34 -0600
+++ numpy-1.11.1/numpy/distutils/misc_util.py 2016-08-04 12:34:56 -0600
@@ -116,7 +116,7 @@
args = list(args)
for i in range(len(args)):
a = args[i]
- if ' ' in a and a[0] not in '"\'':
+ if ' ' in a and a[0] not in '"\'' and a[len(a)-1] not in '"\'':
args[i] = '"%s"' % (a)
return args

View File

@@ -0,0 +1,13 @@
diff -Naur external_openal_original/CMakeLists.txt external_openal/CMakeLists.txt
--- external_openal_original/CMakeLists.txt 2016-01-24 20:12:39 -0700
+++ external_openal/CMakeLists.txt 2018-06-02 12:16:52 -0600
@@ -885,7 +885,8 @@
OPTION(ALSOFT_REQUIRE_MMDEVAPI "Require MMDevApi backend" OFF)
IF(HAVE_WINDOWS_H)
# Check MMSystem backend
- CHECK_INCLUDE_FILES("windows.h;mmsystem.h" HAVE_MMSYSTEM_H -D_WIN32_WINNT=0x0502)
+ set(CMAKE_REQUIRED_FLAGS "-D_WIN32_WINNT=0x0502")
+ CHECK_INCLUDE_FILES("windows.h;mmsystem.h" HAVE_MMSYSTEM_H)
IF(HAVE_MMSYSTEM_H)
CHECK_SHARED_FUNCTION_EXISTS(waveOutOpen "windows.h;mmsystem.h" winmm "" HAVE_LIBWINMM)
IF(HAVE_LIBWINMM)

View File

@@ -1,8 +1,8 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3fc9be5..5112ce6 100644
index 95abbe2..4f14f30 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -254,11 +254,11 @@
@@ -254,11 +254,11 @@ if(USE_STATIC_MSVC_RUNTIME)
endif()
#adding PCRE
@@ -16,10 +16,10 @@ index 3fc9be5..5112ce6 100644
message("WARNING: Native PCRE not found, taking PCRE from ./Externals")
add_definitions(-DPCRE_STATIC)
add_subdirectory(${EXTERNAL_LIBRARIES}/pcre)
diff --git a/DAEValidator/library/include/no_warning_begin.orig b/DAEValidator/library/include/no_warning_begin
index 3fc9be5..5112ce6 100644
--- a/DAEValidator/library/include/no_warning_begin.orig 2017-05-31 16:56:39 -0600
+++ b/DAEValidator/library/include/no_warning_begin 2017-06-07 10:18:45 -0600
diff --git a/DAEValidator/library/include/no_warning_begin b/DAEValidator/library/include/no_warning_begin
index 7a69c32..defb315 100644
--- a/DAEValidator/library/include/no_warning_begin
+++ b/DAEValidator/library/include/no_warning_begin
@@ -2,6 +2,9 @@
#if defined(_WIN32)
# pragma warning(push)
@@ -30,3 +30,16 @@ index 3fc9be5..5112ce6 100644
# if defined(_MSC_VER) && defined(_DEBUG)
# pragma warning(disable:4548)
# endif
diff --git a/GeneratedSaxParser/src/GeneratedSaxParserUtils.cpp b/GeneratedSaxParser/src/GeneratedSaxParserUtils.cpp
index 1f9a3ee..d151e9a 100644
--- a/GeneratedSaxParser/src/GeneratedSaxParserUtils.cpp
+++ b/GeneratedSaxParser/src/GeneratedSaxParserUtils.cpp
@@ -1553,7 +1553,7 @@ namespace GeneratedSaxParser
#if defined(COLLADABU_OS_WIN) && !defined(__MINGW32__)
return _isnan( value ) ? true : false;
#else
-#ifdef isnan
+#if defined(isnan) || defined(__APPLE__)
return isnan( value );
#else
return std::isnan(value);

View File

@@ -1,21 +1,33 @@
diff -ru ./CMakeLists.txt ./CMakeLists.txt
--- ./CMakeLists.txt 2014-09-11 21:08:18.000000000 +0200
+++ ./CMakeLists.txt 2016-05-15 17:17:01.000000000 +0200
@@ -186,7 +186,7 @@
PATCH_COMMAND patch -f -p1 < ${CMAKE_SOURCE_DIR}/ext/tinyxml_${TINYXML_VERSION}.patch
BINARY_DIR ext/build/tinyxml
INSTALL_DIR ext/dist
- CMAKE_ARGS ${TINYXML_CMAKE_ARGS}
+ CMAKE_ARGS ${TINYXML_CMAKE_ARGS} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} -DCMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT} -DCMAKE_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG} -DCMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE} -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG} -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
)
if(WIN32)
set(TINYXML_STATIC_LIBRARIES ${PROJECT_BINARY_DIR}/ext/dist/lib/tinyxml.lib)
@@ -254,7 +254,7 @@
BINARY_DIR ext/build/yaml-cpp
PATCH_COMMAND patch -p1 < ${CMAKE_SOURCE_DIR}/ext/yaml-cpp-${YAML_CPP_VERSION}.patch
INSTALL_DIR ext/dist
- CMAKE_ARGS ${YAML_CPP_CMAKE_ARGS}
+ CMAKE_ARGS ${YAML_CPP_CMAKE_ARGS} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} -DCMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT} -DCMAKE_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG} -DCMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE} -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG} -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
)
set(YAML_CPP_INCLUDE_DIRS ${PROJECT_BINARY_DIR}/ext/dist/include)
set(YAML_CPP_LIBRARY_DIRS ${PROJECT_BINARY_DIR}/ext/dist/lib)
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index 1eb691b..cff9bd8 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -23,8 +23,6 @@ if(WIN32)
if("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(EXTERNAL_COMPILE_FLAGS "${EXTERNAL_COMPILE_FLAGS} /WX")
endif()
-else()
- set(EXTERNAL_COMPILE_FLAGS "${EXTERNAL_COMPILE_FLAGS} -Werror")
endif()
# SHARED
--- a/CMakeLists.txt 2018-09-10 22:15:29.000000000 +0200
+++ b/CMakeLists.txt 2018-09-10 22:17:40.000000000 +0200
@@ -229,7 +229,7 @@
PATCH_COMMAND ${GIT_EXECUTABLE} apply --ignore-whitespace ${TINYXML_PATCHFILE}
BINARY_DIR ext/build/tinyxml
INSTALL_DIR ext/dist
- CMAKE_ARGS ${TINYXML_CMAKE_ARGS}
+ CMAKE_ARGS ${TINYXML_CMAKE_ARGS} -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} -DCMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT} -DCMAKE_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG} -DCMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE} -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG} -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
)
if(WIN32)
set(TINYXML_STATIC_LIBRARIES ${PROJECT_BINARY_DIR}/ext/dist/lib/tinyxml.lib)
@@ -343,7 +343,7 @@
PATCH_COMMAND ${GIT_EXECUTABLE} apply --ignore-whitespace ${YAML_CPP_PATCHFILE}
BINARY_DIR ext/build/yaml-cpp
INSTALL_DIR ext/dist
- CMAKE_ARGS ${YAML_CPP_CMAKE_ARGS}
+ CMAKE_ARGS ${YAML_CPP_CMAKE_ARGS} -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} -DCMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT} -DCMAKE_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG} -DCMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE} -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG} -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
)
set(YAML_CPP_INCLUDE_DIRS ${PROJECT_BINARY_DIR}/ext/dist/include)
set(YAML_CPP_LIBRARY_DIRS ${PROJECT_BINARY_DIR}/ext/dist/lib)

View File

@@ -0,0 +1,51 @@
diff -Naur external_opencolorio/CMakeLists.txt external_opencolorio.patched/CMakeLists.txt
--- external_opencolorio/CMakeLists.txt 2018-01-04 18:38:27 -0700
+++ external_opencolorio.patched/CMakeLists.txt 2018-08-15 11:46:53 -0600
@@ -251,25 +251,30 @@
if(USE_EXTERNAL_YAML)
# Set minimum yaml version for non-patched sources.
set(YAML_VERSION_MIN "0.3.0")
- include(FindPkgConfig)
- pkg_check_modules(PC_YAML_CPP REQUIRED QUIET yaml-cpp)
- find_path(YAML_CPP_INCLUDE_DIR yaml-cpp/yaml.h
- HINTS ${PC_YAML_CPP_INCLUDEDIR} ${PC_YAML_CPP_INCLUDE_DIRS} )
- find_library(YAML_CPP_LIBRARY LIBRARY_NAMES yaml-cpp libyaml-cpp
- HINTS ${PC_YAML_CPP_LIBRARY_DIRS} )
- set(YAML_CPP_LIBRARIES ${YAML_CPP_LIBRARY})
- set(YAML_CPP_INCLUDE_DIRS ${YAML_CPP_INCLUDE_DIR})
- set(YAML_CPP_VERSION ${PC_YAML_CPP_VERSION})
+ if(NOT WIN32)
+ include(FindPkgConfig)
+ pkg_check_modules(PC_YAML_CPP REQUIRED QUIET yaml-cpp)
+ find_path(YAML_CPP_INCLUDE_DIR yaml-cpp/yaml.h
+ HINTS ${PC_YAML_CPP_INCLUDEDIR} ${PC_YAML_CPP_INCLUDE_DIRS} )
+ find_library(YAML_CPP_LIBRARY LIBRARY_NAMES yaml-cpp libyaml-cpp
+ HINTS ${PC_YAML_CPP_LIBRARY_DIRS} )
+ set(YAML_CPP_LIBRARIES ${YAML_CPP_LIBRARY})
+ set(YAML_CPP_INCLUDE_DIRS ${YAML_CPP_INCLUDE_DIR})
+ set(YAML_CPP_VERSION ${PC_YAML_CPP_VERSION})
- if(YAML_CPP_VERSION VERSION_LESS ${YAML_VERSION_MIN})
- message(FATAL_ERROR "ERROR: yaml-cpp ${YAML_VERSION_MIN} or greater is required.")
- endif()
-
- find_package_handle_standard_args(yaml-cpp
- REQUIRED_VARS YAML_CPP_LIBRARIES YAML_CPP_INCLUDE_DIRS )
- set(YAML_CPP_FOUND ${YAML-CPP_FOUND})
- mark_as_advanced(YAML_CPP_INCLUDE_DIR YAML_CPP_LIBRARY YAML-CPP_FOUND)
+ if(YAML_CPP_VERSION VERSION_LESS ${YAML_VERSION_MIN})
+ message(FATAL_ERROR "ERROR: yaml-cpp ${YAML_VERSION_MIN} or greater is required.")
+ endif()
+ find_package_handle_standard_args(yaml-cpp
+ REQUIRED_VARS YAML_CPP_LIBRARIES YAML_CPP_INCLUDE_DIRS )
+ set(YAML_CPP_FOUND ${YAML-CPP_FOUND})
+ mark_as_advanced(YAML_CPP_INCLUDE_DIR YAML_CPP_LIBRARY YAML-CPP_FOUND)
+ else()
+ set(EXTERNAL_INCLUDE_DIRS ${EXTERNAL_INCLUDE_DIRS} ${INC_1})
+ set(EXTERNAL_INCLUDE_DIRS ${EXTERNAL_INCLUDE_DIRS} ${INC_2})
+ message("INCLUDE DIRS = i:${EXTERNAL_INCLUDE_DIRS} |1:${INC_1} |2:${INC_2}")
+ endif()
if(YAML_CPP_FOUND)
if(YAML_CPP_VERSION VERSION_GREATER "0.5.0")
# Need to also get the boost headers here, as yaml-cpp 0.5.0+ requires them.

View File

@@ -1,33 +0,0 @@
--- IlmImf/CMakeLists.txt 2014-08-10 06:23:56.000000000 +0200
+++ IlmImf/CMakeLists.txt 2017-01-08 04:06:04.931723800 +0100
@@ -8,8 +8,8 @@
TARGET_LINK_LIBRARIES ( b44ExpLogTable
Half
- Iex${ILMBASE_LIBSUFFIX}
IlmThread${ILMBASE_LIBSUFFIX}
+ Iex${ILMBASE_LIBSUFFIX}
${PTHREAD_LIB}
)
@@ -25,8 +25,8 @@
TARGET_LINK_LIBRARIES ( dwaLookups
Half
- Iex${ILMBASE_LIBSUFFIX}
IlmThread${ILMBASE_LIBSUFFIX}
+ Iex${ILMBASE_LIBSUFFIX}
${PTHREAD_LIB}
)
@@ -138,9 +138,9 @@
TARGET_LINK_LIBRARIES ( IlmImf
Half
- Iex${ILMBASE_LIBSUFFIX}
Imath${ILMBASE_LIBSUFFIX}
IlmThread${ILMBASE_LIBSUFFIX}
+ Iex${ILMBASE_LIBSUFFIX}
${PTHREAD_LIB} ${ZLIB_LIBRARIES}
)

View File

@@ -0,0 +1,22 @@
diff -Naur external_openimageio.orig/src/cmake/compiler.cmake external_openimageio/src/cmake/compiler.cmake
--- external_openimageio.orig/src/cmake/compiler.cmake 2018-07-31 23:45:19 -0600
+++ external_openimageio/src/cmake/compiler.cmake 2018-08-16 12:50:12 -0600
@@ -152,6 +152,7 @@
add_definitions (-D_CRT_NONSTDC_NO_WARNINGS)
add_definitions (-D_SCL_SECURE_NO_WARNINGS)
add_definitions (-DJAS_WIN_MSVC_BUILD)
+ add_definitions (-DOPJ_STATIC)
endif (MSVC)
# Use ccache if found
--- external_openimageio.orig/CMakeLists.txt 2018-07-31 23:45:19 -0600
+++ external_openimageio/CMakeLists.txt 2018-08-17 15:22:56 -0600
@@ -169,7 +169,7 @@
add_subdirectory (src/iinfo)
add_subdirectory (src/maketx)
add_subdirectory (src/oiiotool)
- add_subdirectory (src/testtex)
+# add_subdirectory (src/testtex)
add_subdirectory (src/iv)
endif ()

View File

@@ -1,11 +0,0 @@
--- CMakeLists.txt 2016-11-01 01:03:44 -0600
+++ CMakeLists.txt 2016-12-01 09:20:12 -0700
@@ -454,7 +454,7 @@
add_definitions (-D_CRT_NONSTDC_NO_WARNINGS)
add_definitions (-D_SCL_SECURE_NO_WARNINGS)
add_definitions (-DJAS_WIN_MSVC_BUILD)
- add_definitions (-DOPENEXR_DLL)
+ add_definitions (-DOPJ_STATIC)
if (LINKSTATIC)
add_definitions (-DBoost_USE_STATIC_LIBS=1)
else ()

View File

@@ -1,16 +1,13 @@
opensubdiv/osd/d3d11VertexBuffer.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/opensubdiv/osd/d3d11VertexBuffer.cpp b/opensubdiv/osd/d3d11VertexBuffer.cpp
index 603cbf4..07e7e0a 100644
--- a/opensubdiv/osd/d3d11VertexBuffer.cpp
+++ b/opensubdiv/osd/d3d11VertexBuffer.cpp
@@ -81,7 +81,7 @@ D3D11VertexBuffer::UpdateData(const float *src, int startVertex, int numVertices
diff --git a/opensubdiv/far/topologyRefiner.cpp b/opensubdiv/far/topologyRefiner.cpp
index 3754b36e..7fe42bcc 100644
--- a/opensubdiv/far/topologyRefiner.cpp
+++ b/opensubdiv/far/topologyRefiner.cpp
@@ -263,7 +263,7 @@ namespace internal {
bool IsEmpty() const { return *((int_type*)this) == 0; }
deviceContext->Unmap(_uploadBuffer, 0);
FeatureMask() { Clear(); }
- FeatureMask(Options const & options, Sdc::SchemeType sType) { InitializeFeatures(options, sType); }
+ FeatureMask(Options const & options, Sdc::SchemeType sType) { Clear(); InitializeFeatures(options, sType); }
- D3D11_BOX srcBox = { 0, 0, 0, size, 1, 1 };
+ D3D11_BOX srcBox = { 0, 0, 0, (UINT) size, 1, 1 };
deviceContext->CopySubresourceRegion(_buffer, 0, 0, 0, 0,
_uploadBuffer, 0, &srcBox);
}
// These are the two primary methods intended for use -- intialization via a set of Options
// and reduction of the subsequent feature set (which presumes prior initialization with the

View File

@@ -1,11 +1,102 @@
diff -Naur k:\BlenderDev\lib\win64_vc12_Harvest\openVDB\/include/openvdb/math/Coord.h .\openVDB/include/openvdb/math/Coord.h
--- k:\BlenderDev\lib\win64_vc12_Harvest\openVDB\/include/openvdb/math/Coord.h 2016-03-30 15:09:49 -0600
+++ .\openVDB/include/openvdb/math/Coord.h 2016-04-01 06:53:47 -0600
@@ -34,6 +34,7 @@
diff -Naur openvdb.orig/openvdb/CMakeLists.txt openvdb/openvdb/CMakeLists.txt
--- openvdb.orig/openvdb/CMakeLists.txt 2018-04-10 12:22:17 -0600
+++ openvdb/openvdb/CMakeLists.txt 2018-08-15 19:04:52 -0600
@@ -82,6 +82,9 @@
IF (WIN32 AND OPENVDB_DISABLE_BOOST_IMPLICIT_LINKING)
ADD_DEFINITIONS ( -DBOOST_ALL_NO_LIB )
ENDIF ()
+if(WIN32)
+ADD_DEFINITIONS ( -D__TBB_NO_IMPLICIT_LINKAGE )
+endif()
FIND_PACKAGE ( Blosc REQUIRED )
FIND_PACKAGE ( TBB REQUIRED )
@@ -195,6 +198,7 @@
${Ilmbase_HALF_LIBRARY}
${ZLIB_LIBRARY}
${BLOSC_blosc_LIBRARY}
+ ${EXTRA_LIBS}
)
IF (WIN32)
@@ -225,13 +228,16 @@
${VDB_PRINT_SOURCE_FILES}
)
+if(NOT WIN32)
+ set(EXTRA_LIBS m stdc++ dl)
+endif()
+
TARGET_LINK_LIBRARIES ( vdb_print
openvdb_shared
${CMAKE_THREAD_LIBS_INIT}
${BLOSC_blosc_LIBRARY}
- m
- stdc++
- )
+ ${EXTRA_LIBS}
+)
SET ( VDB_RENDER_SOURCE_FILES cmd/openvdb_render/main.cc )
SET_SOURCE_FILES_PROPERTIES ( ${VDB_RENDER_SOURCE_FILES}
@@ -249,8 +255,7 @@
${Openexr_ILMIMF_LIBRARY}
${Ilmbase_ILMTHREAD_LIBRARY}
${Ilmbase_IEX_LIBRARY}
- m
- stdc++
+ ${EXTRA_LIBS}
)
SET ( VDB_VIEW_SOURCE_FILES
@@ -270,7 +270,7 @@
PROPERTIES
COMPILE_FLAGS "-DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG} -DGL_GLEXT_PROTOTYPES=1"
)
-IF (NOT WIN32)
+IF (FALSE)
ADD_EXECUTABLE ( vdb_view
${VDB_VIEW_SOURCE_FILES}
)
@@ -283,9 +288,8 @@
${GLFW_LINK_LIBRARY}
${GLFW_DEPENDENT_LIBRARIES}
${GLEW_GLEW_LIBRARY}
- m
- stdc++
- )
+ ${EXTRA_LIBS}
+ )
ENDIF ()
SET ( UNITTEST_SOURCE_FILES
@@ -392,8 +396,7 @@
TARGET_LINK_LIBRARIES ( vdb_test
${CPPUnit_cppunit_LIBRARY}
openvdb_shared
- m
- stdc++
+ ${EXTRA_LIBS}
)
ADD_TEST ( vdb_unit_test vdb_test )
@@ -422,7 +422,7 @@
ENDIF ()
# Installation
-IF ( NOT WIN32 )
+IF ( FALSE )
INSTALL ( TARGETS
vdb_view
DESTINATION
diff -Naur openvdb.orig/openvdb/math/Coord.h openvdb/openvdb/math/Coord.h
--- openvdb.orig/openvdb/math/Coord.h 2018-04-10 12:22:17 -0600
+++ openvdb/openvdb/math/Coord.h 2018-08-15 20:32:43 -0600
@@ -35,6 +35,7 @@
#include <array> // for std::array
#include <iostream>
#include <limits>
+#define NOMINMAX
#include <openvdb/Platform.h>
#include "Math.h"
#include "Vec3.h"
+#define NOMINMAX
namespace tbb { class split; } // forward declaration

View File

@@ -1,35 +0,0 @@
--- openvdb/tree/LeafNode.h 2015-10-01 15:55:33 -0600
+++ openvdb/tree/LeafNode.h 2016-03-26 13:12:22 -0600
@@ -70,13 +70,14 @@
typedef boost::shared_ptr<LeafNode> Ptr;
typedef util::NodeMask<Log2Dim> NodeMaskType;
- static const Index
- LOG2DIM = Log2Dim, // needed by parent nodes
- TOTAL = Log2Dim, // needed by parent nodes
- DIM = 1 << TOTAL, // dimension along one coordinate direction
- NUM_VALUES = 1 << 3 * Log2Dim,
- NUM_VOXELS = NUM_VALUES, // total number of voxels represented by this node
- SIZE = NUM_VALUES,
+ static const Index
+ LOG2DIM = Log2Dim, // needed by parent nodes
+ TOTAL = Log2Dim, // needed by parent nodes
+ DIM = 1 << TOTAL, // dimension along one coordinate direction
+ NUM_VALUES = 1 << 3 * Log2Dim,
+ NUM_VOXELS = NUM_VALUES; // total number of voxels represented by this node
+ static const Index
+ SIZE = NUM_VALUES,
LEVEL = 0; // level 0 = leaf
/// @brief ValueConverter<T>::Type is the type of a LeafNode having the same
--- openvdb/PlatformConfig.h 2016-03-30 15:09:49 -0600
+++ openvdb/PlatformConfig.h 2016-04-01 07:00:38 -0600
@@ -47,7 +47,7 @@
#if !defined(OPENVDB_OPENEXR_STATICLIB) && !defined(OPENEXR_DLL)
#define OPENEXR_DLL
#endif
-
+ #define NOMINMAX
#endif // _WIN32
#endif // OPENVDB_PLATFORMCONFIG_HAS_BEEN_INCLUDED

View File

@@ -1,6 +1,6 @@
diff -Naur osl/src/external_osl/src/cmake/flexbison.cmake osl_bak/src/external_osl/src/cmake/flexbison.cmake
--- osl/src/external_osl//src/cmake/flexbison.cmake 2016-01-29 11:15:22 -0700
+++ osl_bak/src/external_osl/src/cmake/flexbison.cmake 2016-02-29 21:26:26 -0700
diff -Naur OpenShadingLanguage-Release-1.9.9/src/cmake/flexbison.cmake external_osl/src/cmake/flexbison.cmake
--- OpenShadingLanguage-Release-1.9.9/src/cmake/flexbison.cmake 2018-05-01 16:39:02 -0600
+++ external_osl/src/cmake/flexbison.cmake 2018-08-23 15:42:27 -0600
@@ -77,7 +77,7 @@
DEPENDS ${${compiler_headers}}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
@@ -10,3 +10,65 @@ diff -Naur osl/src/external_osl/src/cmake/flexbison.cmake osl_bak/src/external_o
MAIN_DEPENDENCY ${flexsrc}
DEPENDS ${${compiler_headers}}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
diff -Naur OpenShadingLanguage-Release-1.9.9/src/cmake/flexbison.cmake.rej external_osl/src/cmake/flexbison.cmake.rej
--- OpenShadingLanguage-Release-1.9.9/src/cmake/flexbison.cmake.rej 1969-12-31 17:00:00 -0700
+++ external_osl/src/cmake/flexbison.cmake.rej 2018-08-24 17:42:11 -0600
@@ -0,0 +1,11 @@
+--- src/cmake/flexbison.cmake 2018-05-01 16:39:02 -0600
++++ src/cmake/flexbison.cmake 2018-08-24 10:24:03 -0600
+@@ -77,7 +77,7 @@
+ DEPENDS ${${compiler_headers}}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
+ ADD_CUSTOM_COMMAND ( OUTPUT ${flexoutputcxx}
+- COMMAND ${FLEX_EXECUTABLE} -o ${flexoutputcxx} "${CMAKE_CURRENT_SOURCE_DIR}/${flexsrc}"
++ COMMAND ${FLEX_EXECUTABLE} ${FLEX_EXTRA_OPTIONS} -o ${flexoutputcxx} "${CMAKE_CURRENT_SOURCE_DIR}/${flexsrc}"
+ MAIN_DEPENDENCY ${flexsrc}
+ DEPENDS ${${compiler_headers}}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
diff -Naur OpenShadingLanguage-Release-1.9.9/src/include/OSL/llvm_util.h external_osl/src/include/OSL/llvm_util.h
--- OpenShadingLanguage-Release-1.9.9/src/include/OSL/llvm_util.h 2018-05-01 16:39:02 -0600
+++ external_osl/src/include/OSL/llvm_util.h 2018-08-25 14:05:00 -0600
@@ -33,6 +33,8 @@
#include <vector>
+#define OSL_HAS_BLENDER_CLEANUP_FIX
+
#ifdef LLVM_NAMESPACE
namespace llvm = LLVM_NAMESPACE;
#endif
@@ -487,6 +489,7 @@
std::string func_name (llvm::Function *f);
static size_t total_jit_memory_held ();
+ static void Cleanup ();
private:
class MemoryManager;
diff -Naur OpenShadingLanguage-Release-1.9.9/src/include/OSL/oslnoise.h external_osl/src/include/OSL/oslnoise.h
--- OpenShadingLanguage-Release-1.9.9/src/include/OSL/oslnoise.h 2018-05-01 16:39:02 -0600
+++ external_osl/src/include/OSL/oslnoise.h 2018-08-24 17:42:11 -0600
@@ -762,7 +762,7 @@
// packed into a float4. We assume T is float and VECTYPE is float4,
// but it also works if T is Dual2<float> and VECTYPE is Dual2<float4>.
template<typename T, typename VECTYPE>
-OIIO_FORCEINLINE T bilerp (VECTYPE abcd, T u, T v) {
+OIIO_FORCEINLINE T bilerp (VECTYPE& abcd, T u, T v) {
VECTYPE xx = OIIO::lerp (abcd, OIIO::simd::shuffle<1,1,3,3>(abcd), u);
return OIIO::simd::extract<0>(OIIO::lerp (xx,OIIO::simd::shuffle<2>(xx), v));
}
diff -Naur OpenShadingLanguage-Release-1.9.9/src/liboslexec/llvm_util.cpp external_osl/src/liboslexec/llvm_util.cpp
--- OpenShadingLanguage-Release-1.9.9/src/liboslexec/llvm_util.cpp 2018-05-01 16:39:02 -0600
+++ external_osl/src/liboslexec/llvm_util.cpp 2018-08-25 14:04:27 -0600
@@ -140,7 +140,10 @@
};
-
+void LLVM_Util::Cleanup ()
+{
+ jitmm_hold.clear();
+}
size_t
LLVM_Util::total_jit_memory_held ()

View File

@@ -1,14 +0,0 @@
--- CMakeLists.txt 2016-10-31 16:48:19 -0600
+++ CMakeLists.txt 2017-04-10 10:38:48 -0600
@@ -269,6 +269,11 @@
add_definitions ("-DOIIO_STATIC_BUILD=1")
endif ()
+set (OIIO_NOSIMD OFF CACHE BOOL "Disable simd support in oiio")
+if (OIIO_NOSIMD)
+ add_definitions ("-DOIIO_NO_SSE=1")
+endif ()
+
if (OSL_NO_DEFAULT_TEXTURESYSTEM)
add_definitions ("-DOSL_NO_DEFAULT_TEXTURESYSTEM=1")
endif ()

View File

@@ -1,12 +0,0 @@
--- pyshellext.cpp.orig 2017-01-17 00:57:53 -0700
+++ pyshellext.cpp 2017-05-20 15:21:51 -0600
@@ -13,6 +13,9 @@
#include <strsafe.h>
#include "pyshellext_h.h"
+#if _MSC_VER < 1900
+#include "pyshellext_i.c"
+#endif
#define DDWM_UPDATEWINDOW (WM_USER+3)

View File

@@ -1,82 +0,0 @@
--- Include/Python.h 2017-07-07 21:33:27 -0600
+++ Include/Python.h 2017-09-19 10:36:10 -0600
@@ -2,6 +2,10 @@
#define Py_PYTHON_H
/* Since this is a "meta-include" file, no #ifdef __cplusplus / extern "C" { */
+#if _MSC_VER < 1900
+#define inline __inline
+#endif
+
/* Include nearly all Python header files */
#include "patchlevel.h"
--- Include/pydtrace.h 2017-07-07 21:33:27 -0600
+++ Include/pydtrace.h 2017-09-19 10:32:31 -0600
@@ -2,6 +2,11 @@
#ifndef Py_DTRACE_H
#define Py_DTRACE_H
+
+#if _MSC_VER < 1900
+#define inline __inline
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
--- Modules/_blake2/impl/blake2.h 2017-07-07 21:33:27 -0600
+++ Modules/_blake2/impl/blake2.h 2017-09-19 10:22:41 -0600
@@ -19,6 +19,10 @@
#include <stddef.h>
#include <stdint.h>
+#if _MSC_VER < 1900
+#define inline __inline
+#endif
+
#ifdef BLAKE2_NO_INLINE
#define BLAKE2_LOCAL_INLINE(type) static type
#endif
--- pcbuild/build.bat 2016-05-21 09:53:55 -0600
+++ pcbuild/build.bat 2016-05-21 09:56:16 -0600
@@ -59,6 +59,7 @@
if "%~1"=="-h" goto Usage
if "%~1"=="-c" (set conf=%2) & shift & shift & goto CheckOpts
if "%~1"=="-p" (set platf=%2) & shift & shift & goto CheckOpts
+if "%~1"=="-k" (set vs_toolset=%2) & shift & shift & goto CheckOpts
if "%~1"=="-r" (set target=Rebuild) & shift & goto CheckOpts
if "%~1"=="-t" (set target=%2) & shift & shift & goto CheckOpts
if "%~1"=="-d" (set conf=Debug) & shift & goto CheckOpts
@@ -120,7 +120,7 @@
:Kill
echo on
-%MSBUILD% "%dir%\pythoncore.vcxproj" /t:KillPython %verbose%^
+%MSBUILD% "%dir%\pythoncore.vcxproj" /t:KillPython %verbose% /p:PlatformToolset=%vs_toolset%^
/p:Configuration=%conf% /p:Platform=%platf%^
/p:KillPython=true
@@ -130,7 +130,7 @@
rem batch is, shall we say, "lackluster"
echo on
%MSBUILD% "%dir%pcbuild.proj" /t:%target% %parallel% %verbose%^
- /p:Configuration=%conf% /p:Platform=%platf%^
+ /p:Configuration=%conf% /p:Platform=%platf% /p:PlatformToolset=%vs_toolset%^
/p:IncludeExternals=%IncludeExternals%^
/p:IncludeSSL=%IncludeSSL% /p:IncludeTkinter=%IncludeTkinter%^
/p:UseTestMarker=%UseTestMarker%^
--- pcbuild/sqlite3.vcxproj 2015-12-06 18:39:10 -0700
+++ pcbuild/sqlite3.vcxproj 2016-11-02 09:25:56 -0600
@@ -43,7 +43,7 @@
<Import Project="python.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

View File

@@ -1,25 +0,0 @@
--- pyconfig.h.in 2017-09-19 14:41:01.000000000 +0300
+++ pyconfig.h.in 2017-09-19 14:43:18.000000000 +0300
@@ -119,12 +119,6 @@
/* Define to 1 if you have the `clock' function. */
#undef HAVE_CLOCK
-/* Define to 1 if you have the `clock_getres' function. */
-#undef HAVE_CLOCK_GETRES
-
-/* Define to 1 if you have the `clock_gettime' function. */
-#undef HAVE_CLOCK_GETTIME
-
/* Define to 1 if you have the `clock_settime' function. */
#undef HAVE_CLOCK_SETTIME
@@ -369,9 +363,6 @@
/* Define this if you have flockfile(), getc_unlocked(), and funlockfile() */
#undef HAVE_GETC_UNLOCKED
-/* Define to 1 if you have the `getentropy' function. */
-#undef HAVE_GETENTROPY
-
/* Define to 1 if you have the `getgrouplist' function. */
#undef HAVE_GETGROUPLIST

View File

@@ -0,0 +1,38 @@
diff --git a/setup.py.orig b/setup.py
index a97a755..07ce853 100644
--- a/setup.py.orig
+++ b/setup.py
@@ -1422,13 +1422,13 @@ class PyBuildExt(build_ext):
version = line.split()[2]
break
if version >= version_req:
- if (self.compiler.find_library_file(lib_dirs, 'z')):
+ if (self.compiler.find_library_file(lib_dirs, 'z_pic')):
if host_platform == "darwin":
zlib_extra_link_args = ('-Wl,-search_paths_first',)
else:
zlib_extra_link_args = ()
exts.append( Extension('zlib', ['zlibmodule.c'],
- libraries = ['z'],
+ libraries = ['z_pic'],
extra_link_args = zlib_extra_link_args))
have_zlib = True
else:
@@ -1442,7 +1442,7 @@ class PyBuildExt(build_ext):
# crc32 if we have it. Otherwise binascii uses its own.
if have_zlib:
extra_compile_args = ['-DUSE_ZLIB_CRC32']
- libraries = ['z']
+ libraries = ['z_pic']
extra_link_args = zlib_extra_link_args
else:
extra_compile_args = []
@@ -1991,7 +1991,7 @@ class PyBuildExt(build_ext):
print('Header file {} does not exist'.format(ffi_h))
ffi_lib = None
if ffi_inc is not None:
- for lib_name in ('ffi', 'ffi_pic'):
+ for lib_name in ('ffi_pic', ):
if (self.compiler.find_library_file(lib_dirs, lib_name)):
ffi_lib = lib_name
break

View File

@@ -1,29 +0,0 @@
--- _msvccompiler.py.orig 2017-05-20 19:31:45 -0600
+++ _msvccompiler.py 2017-06-10 10:05:38 -0600
@@ -222,9 +222,9 @@
# use /MT[d] to build statically, then switch from libucrt[d].lib to ucrt[d].lib
# later to dynamically link to ucrtbase but not vcruntime.
self.compile_options = [
- '/nologo', '/Ox', '/W3', '/GL', '/DNDEBUG'
+ '/nologo', '/Ox', '/W3', '/GL', '/DNDEBUG' , '/MD'
]
- self.compile_options.append('/MD' if self._vcruntime_redist else '/MT')
+ #self.compile_options.append('/MD' if self._vcruntime_redist else '/MT')
self.compile_options_debug = [
'/nologo', '/Od', '/MDd', '/Zi', '/W3', '/D_DEBUG'
@@ -233,11 +233,11 @@
ldflags = [
'/nologo', '/INCREMENTAL:NO', '/LTCG'
]
- if not self._vcruntime_redist:
- ldflags.extend(('/nodefaultlib:libucrt.lib', 'ucrt.lib'))
+ #if not self._vcruntime_redist:
+ # ldflags.extend(('/nodefaultlib:libucrt.lib', 'ucrt.lib'))
ldflags_debug = [
- '/nologo', '/INCREMENTAL:NO', '/LTCG', '/DEBUG:FULL'
+ '/nologo', '/INCREMENTAL:NO', '/LTCG'
]
self.ldflags_exe = [*ldflags, '/MANIFEST:EMBED,ID=1']

View File

@@ -1,54 +0,0 @@
--- configure.orig 2012-01-22 19:06:43 -0700
+++ configure 2016-04-06 20:00:50 -0600
@@ -16492,10 +16492,10 @@
HAVE_ORC=yes
fi
if test "x${HAVE_ORC}" != xyes ; then
- as_fn_error $? "orc-0.4 >= $ORC_VER is required" "$LINENO" 5
+ $as_echo "orc-0.4 >= $ORC_VER is required"
fi
SCHRO_PKG_DEPS="$SCHRO_PKG_DEPS orc-0.4 >= $ORC_VER"
-ORCC=`$PKG_CONFIG --variable=orcc orc-0.4`
+#ORCC=`$PKG_CONFIG --variable=orcc orc-0.4`
if test "x$cross_compiling" != xyes; then
HAVE_ORCC_TRUE=
--- Makefile.in 2012-01-22 18:06:42 -0700
+++ Makefile.in 2016-04-06 20:30:09 -0600
@@ -291,7 +291,7 @@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AUTOMAKE_OPTIONS = foreign
-SUBDIRS = schroedinger doc tools testsuite
+SUBDIRS = schroedinger doc tools
DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc
DIST_SUBDIRS = schroedinger doc tools testsuite
EXTRA_DIST = COPYING COPYING.GPL COPYING.LGPL COPYING.MIT COPYING.MPL \
--- schroedinger.pc.in 2011-03-21 17:08:39 -0600
+++ schroedinger.pc.in 2016-04-08 13:30:42 -0600
@@ -7,9 +7,9 @@
Name: schroedinger-@SCHRO_MAJORMINOR@
Description: Dirac codec library
-Requires.private: @SCHRO_PKG_DEPS@
+Requires: @SCHRO_PKG_DEPS@
Version: @VERSION@
-Libs: -L${libdir} -lschroedinger-@SCHRO_MAJORMINOR@
+Libs: -L${libdir} -lschroedinger-@SCHRO_MAJORMINOR@ -lorc-0.4
Libs.private: @PTHREAD_LIBS@ @LIBM@
Cflags: -I${includedir}
--- ./schroedinger/schrodecoder.c 2012-01-23 00:38:57.000000000 +0100
+++ ./schroedinger/schrodecoder.c 2016-05-15 06:07:24.000000000 +0200
@@ -70,8 +70,8 @@
};
-int _schro_decode_prediction_only;
-int _schro_telemetry;
+int _schro_decode_prediction_only = 0;
+int _schro_telemetry = 0;
static void schro_decoder_x_decode_motion (SchroAsyncStage * stage);
static void schro_decoder_x_render_motion (SchroAsyncStage * stage);

View File

@@ -1,33 +1,4 @@
diff -ru /Users/brecht/dev/lib/deps/Downloads/SDL2-2.0.4/src/video/SDL_video.c ./src/video/SDL_video.c
--- /Users/brecht/dev/lib/deps/Downloads/SDL2-2.0.4/src/video/SDL_video.c 2016-01-02 20:56:31.000000000 +0100
+++ ./src/video/SDL_video.c 2016-05-15 02:58:27.000000000 +0200
@@ -137,7 +137,7 @@
#define FULLSCREEN_MASK (SDL_WINDOW_FULLSCREEN_DESKTOP | SDL_WINDOW_FULLSCREEN)
-#ifdef __MACOSX__
+#if SDL_VIDEO_DRIVER_COCOA
/* Support for Mac OS X fullscreen spaces */
extern SDL_bool Cocoa_IsWindowInFullscreenSpace(SDL_Window * window);
extern SDL_bool Cocoa_SetWindowFullscreenSpace(SDL_Window * window, SDL_bool state);
@@ -1141,7 +1141,7 @@
if ( window->is_hiding && fullscreen )
return 0;
-#ifdef __MACOSX__
+#if SDL_VIDEO_DRIVER_COCOA
/* if the window is going away and no resolution change is necessary,
do nothing, or else we may trigger an ugly double-transition
*/
@@ -2365,7 +2365,7 @@
return SDL_FALSE;
}
-#ifdef __MACOSX__
+#if SDL_VIDEO_DRIVER_COCOA
if (Cocoa_IsWindowInFullscreenSpace(window)) {
return SDL_FALSE;
}
diff -ru ./src/video/SDL_video.c ./src/video/SDL_video.c
--- CMakeLists.txt.old 2016-01-02 12:56:31 -0700
+++ CMakeLists.txt 2016-10-03 11:24:24 -0600
@@ -609,7 +609,7 @@
@@ -39,12 +10,23 @@ diff -ru /Users/brecht/dev/lib/deps/Downloads/SDL2-2.0.4/src/video/SDL_video.c .
if(HAVE_LIBICONV)
list(APPEND EXTRA_LIBS iconv)
set(HAVE_ICONV 1)
@@ -1455,7 +1455,7 @@
set(_INSTALL_LIBS "SDL2main")
--- src/video/SDL_video.c 2018-09-10 23:27:57.000000000 +0200
+++ src/video/SDL_video.c 2018-09-10 23:28:09.000000000 +0200
@@ -1176,7 +1176,7 @@
return 0;
}
if(SDL_SHARED)
- add_library(SDL2 SHARED ${SOURCE_FILES})
+ add_library(SDL2 SHARED ${SOURCE_FILES} ${VERSION_SOURCES})
if(UNIX)
set_target_properties(SDL2 PROPERTIES
VERSION ${LT_VERSION}
-#ifdef __MACOSX__
+#if defined(__MACOSX__) && SDL_VIDEO_DRIVER_COCOA
/* if the window is going away and no resolution change is necessary,
do nothing, or else we may trigger an ugly double-transition
*/
@@ -2563,7 +2563,7 @@
return SDL_FALSE;
}
-#ifdef __MACOSX__
+#if defined(__MACOSX__) && SDL_VIDEO_DRIVER_COCOA
if (SDL_strcmp(_this->name, "cocoa") == 0) { /* don't do this for X11, etc */
if (Cocoa_IsWindowInFullscreenSpace(window)) {
return SDL_FALSE;

View File

@@ -0,0 +1,34 @@
diff -Naur tinyxml.orig/CMakeLists.txt tinyxml/CMakeLists.txt
--- tinyxml.orig/CMakeLists.txt 1969-12-31 16:00:00.000000000 -0800
+++ tinyxml/CMakeLists.txt 2013-06-18 17:10:59.000000000 -0700
@@ -0,0 +1,30 @@
+project(tinyxml)
+
+cmake_minimum_required(VERSION 2.8)
+
+add_library(tinyxml
+ STATIC
+ tinystr.cpp
+ tinyxml.cpp
+ tinyxmlerror.cpp
+ tinyxmlparser.cpp)
+
+set(TINYXML_COMPILE_FLAGS "-DTIXML_USE_STL")
+
+if(UNIX)
+ set(TINYXML_COMPILE_FLAGS "${TINYXML_COMPILE_FLAGS} -fPIC -fvisibility=hidden")
+endif()
+
+if(OCIO_INLINES_HIDDEN AND UNIX)
+ set(TINYXML_COMPILE_FLAGS "${TINYXML_COMPILE_FLAGS} -fvisibility-inlines-hidden")
+endif()
+
+set_target_properties(tinyxml PROPERTIES
+ COMPILE_FLAGS "${TINYXML_COMPILE_FLAGS}")
+
+install(TARGETS
+ tinyxml
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
+install(FILES
+ tinyxml.h tinystr.h
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/include)

View File

@@ -0,0 +1,22 @@
--- x264-snapshot-20180811-2245-stable\configure 2018-08-11 14:45:05 -0600
+++ external_x264\configure 2018-08-11 23:51:35 -0600
@@ -396,7 +396,7 @@
# list of all preprocessor HAVE values we can define
CONFIG_HAVE="MALLOC_H ALTIVEC ALTIVEC_H MMX ARMV6 ARMV6T2 NEON BEOSTHREAD POSIXTHREAD WIN32THREAD THREAD LOG2F SWSCALE \
LAVF FFMS GPAC AVS GPL VECTOREXT INTERLACED CPU_COUNT OPENCL THP LSMASH X86_INLINE_ASM AS_FUNC INTEL_DISPATCHER \
- MSA MMAP WINRT VSX ARM_INLINE_ASM STRTOK_R BITDEPTH8 BITDEPTH10"
+ MSA MMAP WINRT VSX ARM_INLINE_ASM BITDEPTH8 BITDEPTH10"
# parse options
@@ -1071,10 +1071,6 @@
define HAVE_LOG2F
fi
-if cc_check 'string.h' '' 'strtok_r(0, 0, 0);' ; then
- define HAVE_STRTOK_R
-fi
-
if [ "$SYS" != "WINDOWS" ] && cpp_check "sys/mman.h unistd.h" "" "defined(MAP_PRIVATE)"; then
define HAVE_MMAP
fi

View File

@@ -14,10 +14,18 @@ if NOT "%1" == "" (
set BuildDir=VS14
goto par2
)
if "%1" == "2017" (
echo "Building for VS2017"
set VSVER=15.0
set VSVER_SHORT=15
set BuildDir=VS15
goto par2
)
)
:usage
Echo Usage build_deps 2013/2015 x64/x86
Echo Usage build_deps 2013/2015/2017 x64/x86
goto exit
:par2
if NOT "%2" == "" (
@@ -31,6 +39,10 @@ if NOT "%2" == "" (
if "%1" == "2015" (
set CMAKE_BUILDER=Visual Studio 14 2015
)
if "%1" == "2017" (
set CMAKE_BUILDER=Visual Studio 15 2017
)
goto start
)
if "%2" == "x64" (
@@ -43,6 +55,10 @@ if NOT "%2" == "" (
if "%1" == "2015" (
set CMAKE_BUILDER=Visual Studio 14 2015 Win64
)
if "%1" == "2017" (
set CMAKE_BUILDER=Visual Studio 15 2017 Win64
)
goto start
)
)
@@ -52,6 +68,8 @@ goto usage
setlocal ENABLEEXTENSIONS
set CMAKE_DEBUG_OPTIONS=-DWITH_OPTIMIZED_DEBUG=On
if "%3" == "debug" set CMAKE_DEBUG_OPTIONS=-DWITH_OPTIMIZED_DEBUG=Off
set dobuild=1
if "%4" == "nobuild" set dobuild=0
set SOURCE_DIR=%~dp0\..
set BUILD_DIR=%cd%\build
@@ -101,20 +119,24 @@ cd %Staging%\%BuildDir%%ARCH%R
echo %DATE% %TIME% : Start > %StatusFile%
cmake -G "%CMAKE_BUILDER%" %SOURCE_DIR% -DDOWNLOAD_DIR=%BUILD_DIR%/downloads -DBUILD_MODE=Release -DHARVEST_TARGET=%HARVEST_DIR%/%HARVESTROOT%%VSVER_SHORT%/
echo %DATE% %TIME% : Release Configuration done >> %StatusFile%
msbuild /m "ll.vcxproj" /p:Configuration=Release /fl /flp:logfile=BlenderDeps_llvm.log;Verbosity=normal
msbuild /m "BlenderDependencies.sln" /p:Configuration=Release /fl /flp:logfile=BlenderDeps.log;Verbosity=minimal /verbosity:minimal
echo %DATE% %TIME% : Release Build done >> %StatusFile%
cmake --build . --target Harvest_Release_Results > Harvest_Release.txt
if "%dobuild%" == "1" (
msbuild /m "ll.vcxproj" /p:Configuration=Release /fl /flp:logfile=BlenderDeps_llvm.log;Verbosity=normal
msbuild /m "BlenderDependencies.sln" /p:Configuration=Release /fl /flp:logfile=BlenderDeps.log;Verbosity=minimal /verbosity:minimal
echo %DATE% %TIME% : Release Build done >> %StatusFile%
cmake --build . --target Harvest_Release_Results > Harvest_Release.txt
)
echo %DATE% %TIME% : Release Harvest done >> %StatusFile%
cd %BUILD_DIR%
mkdir %STAGING%\%BuildDir%%ARCH%D
cd %Staging%\%BuildDir%%ARCH%D
cmake -G "%CMAKE_BUILDER%" %SOURCE_DIR% -DDOWNLOAD_DIR=%BUILD_DIR%/downloads -DCMAKE_BUILD_TYPE=Debug -DBUILD_MODE=Debug -DHARVEST_TARGET=%HARVEST_DIR%/%HARVESTROOT%%VSVER_SHORT%/ %CMAKE_DEBUG_OPTIONS%
echo %DATE% %TIME% : Debug Configuration done >> %StatusFile%
msbuild /m "ll.vcxproj" /p:Configuration=Debug /fl /flp:logfile=BlenderDeps_llvm.log;;Verbosity=normal
msbuild /m "BlenderDependencies.sln" /p:Configuration=Debug /verbosity:n /fl /flp:logfile=BlenderDeps.log;;Verbosity=normal
echo %DATE% %TIME% : Debug Build done >> %StatusFile%
cmake --build . --target Harvest_Debug_Results> Harvest_Debug.txt
if "%dobuild%" == "1" (
msbuild /m "ll.vcxproj" /p:Configuration=Debug /fl /flp:logfile=BlenderDeps_llvm.log;;Verbosity=normal
msbuild /m "BlenderDependencies.sln" /p:Configuration=Debug /verbosity:n /fl /flp:logfile=BlenderDeps.log;;Verbosity=normal
echo %DATE% %TIME% : Debug Build done >> %StatusFile%
cmake --build . --target Harvest_Debug_Results> Harvest_Debug.txt
)
echo %DATE% %TIME% : Debug Harvest done >> %StatusFile%
cd %BUILD_DIR%

View File

@@ -1,11 +1,21 @@
# ######## Global feature set settings ########
include("${CMAKE_CURRENT_LIST_DIR}/../../cmake/config/blender_full.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/../../cmake/config/blender_release.cmake")
# Detect which libc we'll be linking against.
# Some of the paths will depend on this
if(EXISTS "/lib/x86_64-linux-gnu/libc-2.19.so")
if(EXISTS "/lib/x86_64-linux-gnu/libc-2.24.so")
message(STATUS "Building in GLibc-2.24 environment")
set(GLIBC "2.24")
set(MULTILIB "/x86_64-linux-gnu")
set(LIBDIR_NAME "linux_x86_64")
elseif(EXISTS "/lib/i386-linux-gnu//libc-2.24.so")
message(STATUS "Building in GLibc-2.24 environment")
set(GLIBC "2.24")
set(MULTILIB "/i386-linux-gnu")
set(LIBDIR_NAME "linux_i686")
elseif(EXISTS "/lib/x86_64-linux-gnu/libc-2.19.so")
message(STATUS "Building in GLibc-2.19 environment")
set(GLIBC "2.19")
set(MULTILIB "/x86_64-linux-gnu")
@@ -40,7 +50,10 @@ set(WITH_PYTHON_INSTALL_NUMPY ON CACHE BOOL "" FORCE)
set(WITH_PYTHON_INSTALL_REQUESTS ON CACHE BOOL "" FORCE)
# ######## Release environment specific settings ########
# All the hardcoded libraru paths and such
if (NOT ${GLIBC} STREQUAL "2.24")
# All the hardcoded library paths and such
# LLVM libraries
set(LLVM_VERSION "3.4" CACHE STRING "" FORCE)
@@ -147,5 +160,24 @@ set(BLOSC_LIBRARY
CACHE BOOL "" FORCE
)
else()
set(LIBDIR "/opt/blender-deps/${LIBDIR_NAME}" CACHE BOOL "" FORCE)
# TODO(sergey): Remove once Python is oficially bumped to 3.7.
set(PYTHON_VERSION 3.7 CACHE BOOL "" FORCE)
# Platform specific configuration, to ensure static linking against everything.
set(Boost_USE_STATIC_LIBS ON CACHE BOOL "" FORCE)
# We need to link OpenCOLLADA against PCRE library. Even though it is not installed
# on /usr, we do not really care -- all we care is PCRE_FOUND be TRUE and its
# library pointing to a valid one.
set(PCRE_INCLUDE_DIR "/usr/include" CACHE STRING "" FORCE)
set(PCRE_LIBRARY "${LIBDIR}/opencollada/lib/libpcre.a" CACHE STRING "" FORCE)
endif()
# Additional linking libraries
set(CMAKE_EXE_LINKER_FLAGS "-lrt -static-libstdc++" CACHE STRING "" FORCE)
set(CMAKE_EXE_LINKER_FLAGS "-lrt -static-libstdc++ -no-pie" CACHE STRING "" FORCE)

View File

@@ -48,7 +48,7 @@ if 'cmake' in builder:
# cmake
# Some fine-tuning configuration
blender_dir = os.path.join('..', blender_dir)
blender_dir = os.path.abspath(blender_dir)
build_dir = os.path.abspath(os.path.join('..', 'build', builder))
install_dir = os.path.abspath(os.path.join('..', 'install', builder))
targets = ['blender']
@@ -59,7 +59,7 @@ if 'cmake' in builder:
bits = 64
# Config file to be used (relative to blender's sources root)
cmake_config_file = "build_files/cmake/config/blender_full.cmake"
cmake_config_file = "build_files/cmake/config/blender_release.cmake"
cmake_cuda_config_file = None
# Set build options.
@@ -77,7 +77,13 @@ if 'cmake' in builder:
# cmake_extra_options.append('-DCUDA_NVCC_EXECUTABLE=/usr/local/cuda-hack/nvcc')
elif builder.startswith('win'):
if builder.endswith('_vc2015'):
if builder.endswith('_vs2017'):
if builder.startswith('win64'):
cmake_options.extend(['-G', 'Visual Studio 15 2017 Win64'])
elif builder.startswith('win32'):
bits = 32
cmake_options.extend(['-G', 'Visual Studio 15 2017'])
elif builder.endswith('_vc2015'):
if builder.startswith('win64'):
cmake_options.extend(['-G', 'Visual Studio 14 2015 Win64'])
elif builder.startswith('win32'):
@@ -95,7 +101,9 @@ if 'cmake' in builder:
elif builder.startswith('linux'):
tokens = builder.split("_")
glibc = tokens[1]
if glibc == 'glibc219':
if glibc == 'glibc224':
deb_name = "stretch"
elif glibc == 'glibc219':
deb_name = "jessie"
elif glibc == 'glibc211':
deb_name = "squeeze"
@@ -107,8 +115,9 @@ if 'cmake' in builder:
bits = 32
chroot_name = 'buildbot_' + deb_name + '_i686'
targets = ['blender']
cmake_extra_options.extend(["-DCMAKE_C_COMPILER=/usr/bin/gcc-7",
"-DCMAKE_CXX_COMPILER=/usr/bin/g++-7"])
if deb_name != "stretch":
cmake_extra_options.extend(["-DCMAKE_C_COMPILER=/usr/bin/gcc-7",
"-DCMAKE_CXX_COMPILER=/usr/bin/g++-7"])
cmake_options.append("-C" + os.path.join(blender_dir, cmake_config_file))
@@ -151,10 +160,6 @@ if 'cmake' in builder:
if target != 'blender':
target_build_dir += '_' + target
target_name = 'install'
# Make sure build directory exists and enter it
if not os.path.isdir(target_build_dir):
os.mkdir(target_build_dir)
os.chdir(target_build_dir)
# Tweaking CMake options to respect the target
target_cmake_options = cmake_options[:]
if target == 'cuda':
@@ -165,6 +170,19 @@ if 'cmake' in builder:
# other targets don't compile cuda binaries.
if 'cuda' in targets and target != 'cuda':
target_cmake_options.append("-DWITH_CYCLES_CUDA_BINARIES=OFF")
# Do extra git fetch because not all platform/git/buildbot combinations
# update the origin remote, causing buildinfo to detect local changes.
os.chdir(blender_dir)
print("Fetching remotes")
command = ['git', 'fetch', '--all']
print(command)
retcode = subprocess.call(target_chroot_prefix + command)
if retcode != 0:
sys.exit(retcode)
# Make sure build directory exists and enter it
if not os.path.isdir(target_build_dir):
os.mkdir(target_build_dir)
os.chdir(target_build_dir)
# Configure the build
print("CMake options:")
print(target_cmake_options)
@@ -179,11 +197,11 @@ if 'cmake' in builder:
if 'win32' in builder or 'win64' in builder:
command = ['cmake', '--build', '.', '--target', target_name, '--config', 'Release']
else:
command = target_chroot_prefix + ['make', '-s', '-j2', target_name]
command = ['make', '-s', '-j2', target_name]
print("Executing command:")
print(command)
retcode = subprocess.call(command)
retcode = subprocess.call(target_chroot_prefix + command)
if retcode != 0:
sys.exit(retcode)

Some files were not shown because too many files have changed in this diff Show More