Compare commits

...

2977 Commits

Author SHA1 Message Date
ab62b7e971 Merge branch 'origin/blender2.8' into temp-ui-layout-2.8 2018-10-13 19:49:26 +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
cc8424e733 UI: tweak individual panels 2018-10-13 18:41:21 +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
a53a0f5278 UI: Changes to the 'single-column' layout to have left-aligned labels on top of the values 2018-10-13 13:47:01 +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
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
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
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
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
909556aa26 Fix wrong RNA Api parameter definition 2018-08-02 17:45: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
75d0830dc0 Cleanup: use dictionary for icon lookup 2018-08-02 22:28:48 +10: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
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
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
e8a1b4d645 Change bitmap to GHash in bevel_harden_normals_mode 2018-06-25 13:47:46 +05:30
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
c73a6b0d42 Merge branch 'blender2.8' into soc-2018-bevel 2018-06-20 22:29:44 +05:30
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
e5880eb1ff Fix exception in superellipse where precision_reached is used
with proper initialization
2018-06-13 21:56:15 +05:30
2922131971 Corrected bevel of vertex by using profiles for curve of bevel 2018-06-13 21:53:15 +05:30
b5f67bfd83 Merge branch 'blender2.8' into soc-2018-bevel 2018-06-11 21:24:51 +05:30
1255129932 Merge branch 'blender2.8' into soc-2018-bevel 2018-06-11 21:03:07 +05:30
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
18a8bb5c16 Fix compilation error due to different params
in freeCustomNormalArray declaration and definition
2018-06-05 23:21:08 +05:30
2903146826 Added UI support for seams and sharp edges and cleanup 2018-06-04 15:13:54 +05:30
79c0ac7c78 Added support for extending sharp edges with bevel 2018-06-03 22:50:35 +05:30
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
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
842245ac55 Merge branch 'blender2.8' into soc-2018-bevel 2018-05-29 11:10:54 +05:30
5d2d36b068 Applied soc-2017-normal-tools 2018-05-25 22:24:24 +05:30
4252 changed files with 193530 additions and 209181 deletions

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
@@ -197,10 +206,10 @@ 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.
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)
@@ -232,6 +241,9 @@ 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)
@@ -284,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()
@@ -370,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")
@@ -397,6 +408,8 @@ option(WITH_CYCLES_OSL "Build Cycles with OSL support" ${_init_CYCLES_OSL})
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)
@@ -485,26 +498,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)
@@ -616,18 +609,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()
@@ -670,11 +659,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
@@ -731,9 +717,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")
@@ -855,7 +838,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)
@@ -952,7 +935,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()
@@ -965,7 +948,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__)
@@ -983,16 +966,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()
@@ -1290,42 +1268,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()
#-----------------------------------------------------------------------------
@@ -1497,6 +1441,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
@@ -1509,6 +1454,7 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "MSVC")
"/wd4305" # truncation from 'type1' to 'type2'
"/wd4800" # forcing value to bool 'true' or 'false'
"/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
@@ -1534,14 +1480,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()
@@ -1552,24 +1498,17 @@ 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
@@ -1579,12 +1518,8 @@ if(
(CMAKE_C_COMPILER_ID MATCHES "Clang" AND (NOT MSVC)) 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()
# 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
@@ -1731,7 +1666,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
@@ -448,33 +468,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,21 @@ 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)
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 +119,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 +127,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

@@ -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,37 +51,9 @@ 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
@@ -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,6 @@ 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")
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

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

@@ -36,7 +36,6 @@ if(WIN32)
${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

@@ -41,4 +41,14 @@ if(BUILD_MODE STREQUAL Release)
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()
@@ -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

@@ -59,7 +59,7 @@ if(WIN32)
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(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()
@@ -126,7 +126,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}")
@@ -143,17 +143,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}")
@@ -202,7 +202,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")

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")

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_VERSION 1.18.2)
set(OPENAL_URI http://kcat.strangesoft.net/openal-releases/openal-soft-${OPENAL_VERSION}.tar.bz2)
set(OPENAL_HASH 1764e0d8fec499589b47ebc724e0913d)
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,48 @@ 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)

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,13 +18,18 @@
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
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

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

@@ -285,91 +285,91 @@ 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"
FFMPEG_VERSION="4.0.2"
FFMPEG_VERSION_MIN="2.8.4"
FFMPEG_FORCE_BUILD=false
FFMPEG_FORCE_REBUILD=false
@@ -737,43 +737,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 +790,18 @@ 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"
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 +811,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 +835,7 @@ 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).
* [Alembic $ALEMBIC_VERSION] (from $ALEMBIC_SOURCE).\""
if [ "$DO_SHOW_DEPS" = true ]; then
@@ -1206,7 +1200,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 +1319,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 +1393,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 +1489,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 +1603,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 +1661,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 +1679,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 +1745,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 +1753,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 +1869,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 +1886,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 +2071,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 +2272,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 +2355,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
@@ -2640,8 +2628,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 +2774,7 @@ install_DEB() {
fi
if $_do_compile_python; then
install_packages_DEB libffi-dev
compile_Python
PRINT ""
if [ "$NUMPY_SKIP" = true ]; then
@@ -2882,11 +2871,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
@@ -3177,7 +3166,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 +3313,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 +3424,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
@@ -3647,7 +3636,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 +3742,7 @@ install_ARCH() {
fi
if [ "$_do_compile_python" = true ]; then
install_packages_ARCH libffi
compile_Python
PRINT ""
if [ "$NUMPY_SKIP" = true ]; then
@@ -3843,11 +3833,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
@@ -4227,12 +4217,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"
@@ -4378,6 +4362,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,37 +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
--- a/boost/type_traits/has_nothrow_assign.hpp 2015-12-13 05:49:42 -0700
+++ b/boost/type_traits/has_nothrow_assign.hpp 2018-05-27 11:11:02 -0600
@@ -24,7 +24,7 @@
#include <boost/type_traits/remove_reference.hpp>
#endif
#endif
-#if defined(__GNUC__) || defined(__SUNPRO_CC)
+#if defined(__GNUC__) || defined(__SUNPRO_CC) || defined(__clang__)
#include <boost/type_traits/is_const.hpp>
#include <boost/type_traits/is_volatile.hpp>
#include <boost/type_traits/is_assignable.hpp>
--- a/boost/type_traits/has_nothrow_constructor.hpp 2015-12-13 05:49:42 -0700
+++ b/boost/type_traits/has_nothrow_constructor.hpp 2018-05-27 11:11:02 -0600
@@ -17,7 +17,7 @@
#if defined(BOOST_MSVC) || defined(BOOST_INTEL)
#include <boost/type_traits/has_trivial_constructor.hpp>
#endif
-#if defined(__GNUC__ ) || defined(__SUNPRO_CC)
+#if defined(__GNUC__ ) || defined(__SUNPRO_CC) || defined(__clang__)
#include <boost/type_traits/is_default_constructible.hpp>
#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

@@ -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

@@ -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,29 +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} )
--- osl/src/external_osl/src/include/OSL/oslconfig.h 2016-10-31 16:48:19 -0600
+++ osl/src/external_osl/src/include/OSL/oslconfig.h 2018-05-27 11:18:08 -0600
@@ -44,12 +44,18 @@
// same if another packages is compiling against OSL and using these headers
// (OSL may be C++11 but the client package may be older, or vice versa --
// use these two symbols to differentiate these cases, when important).
-#if (__cplusplus >= 201402L)
-# define OSL_CPLUSPLUS_VERSION 14
-#elif (__cplusplus >= 201103L)
-# define OSL_CPLUSPLUS_VERSION 11
+
+// Force C++03 for MSVC in blender since svn the libraries are build with that
+#if !defined(_MSC_VER)
+ #if (__cplusplus >= 201402L)
+ # define OSL_CPLUSPLUS_VERSION 14
+ #elif (__cplusplus >= 201103L)
+ # define OSL_CPLUSPLUS_VERSION 11
+ #else
+ # define OSL_CPLUSPLUS_VERSION 3 /* presume C++03 */
+ #endif
#else
-# define OSL_CPLUSPLUS_VERSION 3 /* presume C++03 */
+ # define OSL_CPLUSPLUS_VERSION 3 /* presume C++03 */
#endif
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 @@
// Symbol export defines
#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

@@ -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)

View File

@@ -53,6 +53,15 @@ FIND_LIBRARY(JEMALLOC_LIBRARY
lib64 lib
)
if(JEMALLOC_INCLUDE_DIR)
SET(_version_regex "^#define[ \t]+JEMALLOC_VERSION[ \t]+\"([^\"]+)\".*")
file(STRINGS "${JEMALLOC_INCLUDE_DIR}/jemalloc.h"
JEMALLOC_VERSION REGEX "${_version_regex}")
string(REGEX REPLACE "${_version_regex}" "\\1"
JEMALLOC_VERSION "${JEMALLOC_VERSION}")
unset(_version_regex)
endif()
# handle the QUIETLY and REQUIRED arguments and set JEMALLOC_FOUND to TRUE if
# all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)

View File

@@ -60,7 +60,7 @@ FOREACH(COMPONENT ${_opencolorio_FIND_COMPONENTS})
HINTS
${_opencolorio_SEARCH_DIRS}
PATH_SUFFIXES
lib64 lib
lib64 lib lib64/static lib/static
)
IF(OPENCOLORIO_${UPPERCOMPONENT}_LIBRARY)
LIST(APPEND _opencolorio_LIBRARIES "${OPENCOLORIO_${UPPERCOMPONENT}_LIBRARY}")

View File

@@ -41,12 +41,22 @@ FIND_PATH(OPENJPEG_INCLUDE_DIR
${_openjpeg_SEARCH_DIRS}
PATH_SUFFIXES
include
include/openjpeg-1.5
# Support future versions
openjpeg-2.9
openjpeg-2.8
openjpeg-2.7
openjpeg-2.6
openjpeg-2.5
openjpeg-2.4
openjpeg-2.3
openjpeg-2.2
openjpeg-2.1
openjpeg-2.0
)
FIND_LIBRARY(OPENJPEG_LIBRARY
NAMES
openjpeg
openjp2
HINTS
${_openjpeg_SEARCH_DIRS}
PATH_SUFFIXES

View File

@@ -56,8 +56,13 @@ INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(PCRE DEFAULT_MSG
PCRE_LIBRARY PCRE_INCLUDE_DIR)
# With 'make deps' precompiled libs, opencollada ships with a copy of libpcre
# but not the headers, ${PCRE_LIBRARY} will be valid in this case
# but PCRE_FOUND will be FALSE. So we set this variable outside of
# the IF(PCRE_FOUND) below to allow blender to successfully link.
SET(PCRE_LIBRARIES ${PCRE_LIBRARY})
IF(PCRE_FOUND)
SET(PCRE_LIBRARIES ${PCRE_LIBRARY})
SET(PCRE_INCLUDE_DIRS ${PCRE_INCLUDE_DIR})
ENDIF(PCRE_FOUND)

View File

@@ -38,7 +38,7 @@ IF(NOT PYTHON_ROOT_DIR AND NOT $ENV{PYTHON_ROOT_DIR} STREQUAL "")
SET(PYTHON_ROOT_DIR $ENV{PYTHON_ROOT_DIR})
ENDIF()
SET(PYTHON_VERSION 3.6 CACHE STRING "Python Version (major and minor only)")
SET(PYTHON_VERSION 3.7 CACHE STRING "Python Version (major and minor only)")
MARK_AS_ADVANCED(PYTHON_VERSION)
@@ -75,7 +75,7 @@ SET(_python_SEARCH_DIRS
"/opt/lib/python-${PYTHON_VERSION}"
)
# only search for the dirs if we havn't already
# only search for the dirs if we haven't already
IF((NOT _IS_INC_DEF) OR (NOT _IS_INC_CONF_DEF) OR (NOT _IS_LIB_DEF) OR (NOT _IS_LIB_PATH_DEF))
SET(_PYTHON_ABI_FLAGS_TEST
"m;mu;u; " # release

View File

@@ -130,7 +130,7 @@ def function_parm_wash_tokens(parm):
)
"""
Return tolens without trailing commads and 'const'
Return tolens without trailing commands and 'const'
"""
tokens = [t for t in parm.get_tokens()]

View File

@@ -285,7 +285,7 @@ def main():
ignore_used = [False] * len(IGNORE)
# now check on files not accounted for.
print("\nC/C++ Files CMake doesnt know about...")
print("\nC/C++ Files CMake does not know about...")
for cf in sorted(source_list(SOURCE_DIR, is_c)):
if not is_ignore(cf, ignore_used):
if cf not in global_c:
@@ -302,7 +302,7 @@ def main():
print("bad_c: ", cf)
'''
print("\nC/C++ Headers CMake doesnt know about...")
print("\nC/C++ Headers CMake does not know about...")
for hf in sorted(source_list(SOURCE_DIR, is_c_header)):
if not is_ignore(hf, ignore_used):
if hf not in global_h:

View File

@@ -71,7 +71,7 @@ def create_nb_project_main():
if (includes, defines) == (None, None):
return
# for some reason it doesnt give all internal includes
# for some reason it doesn't give all internal includes
includes = list(set(includes) | set(dirname(f) for f in files if is_c_header(f)))
includes.sort()

View File

@@ -0,0 +1,25 @@
# Apache License, Version 2.0
# Simple utility that prints all WITH_* options in a CMakeLists.txt
# Called by 'make help_features'
import re
import sys
cmakelists_file = sys.argv[-1]
def main():
options = []
for l in open(cmakelists_file, 'r').readlines():
if not l.lstrip().startswith('#'):
l_option = re.sub(r'.*\boption\s*\(\s*(WITH_[a-zA-Z0-9_]+)\s+\"(.*)\"\s*.*', r'\g<1> - \g<2>', l)
if l_option != l:
l_option = l_option.strip()
if l_option.startswith('WITH_'):
options.append(l_option)
print('\n'.join(options))
if __name__ == "__main__":
main()

Some files were not shown because too many files have changed in this diff Show More