[Bf-blender-cvs] [02226ef653e] master: Code_Cleanup_Day/Windows: Clean-up windows API Level.

2020-02-05 Thread Ray Molenkamp
Commit: 02226ef653e1e871be6004a51f08b74c0c9dd8e4
Author: Ray Molenkamp
Date:   Wed Feb 5 20:03:06 2020 -0700
Branches: master
https://developer.blender.org/rB02226ef653e1e871be6004a51f08b74c0c9dd8e4

Code_Cleanup_Day/Windows: Clean-up windows API Level.

Not sure when this happened but apparently the lower bar is now windows 7 [1]

This patch bumps to API version to 0x0601 (Win7) and cleans up any uses that
worked around the globally set API version.

[1] https://www.blender.org/download/requirements/

Reviewed By: brecht

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

===

M   build_files/cmake/platform/platform_win32.cmake
M   intern/cycles/device/device_optix.cpp
M   source/blender/blenlib/intern/dynlib.c
M   source/blender/blenlib/intern/time.c

===

diff --git a/build_files/cmake/platform/platform_win32.cmake 
b/build_files/cmake/platform/platform_win32.cmake
index b228930bfb1..04e5848dcfe 100644
--- a/build_files/cmake/platform/platform_win32.cmake
+++ b/build_files/cmake/platform/platform_win32.cmake
@@ -131,8 +131,8 @@ add_definitions(
 # MSVC11 needs _ALLOW_KEYWORD_MACROS to build
 add_definitions(-D_ALLOW_KEYWORD_MACROS)
 
-# We want to support Vista level ABI
-add_definitions(-D_WIN32_WINNT=0x600)
+# We want to support Windows 7 level ABI
+add_definitions(-D_WIN32_WINNT=0x601)
 include(build_files/cmake/platform/platform_win32_bundle_crt.cmake)
 remove_cc_flag("/MDd" "/MD")
 
diff --git a/intern/cycles/device/device_optix.cpp 
b/intern/cycles/device/device_optix.cpp
index c1106b367ca..f479cbd7414 100644
--- a/intern/cycles/device/device_optix.cpp
+++ b/intern/cycles/device/device_optix.cpp
@@ -31,9 +31,6 @@
 #  include "util/util_debug.h"
 #  include "util/util_logging.h"
 
-#  undef _WIN32_WINNT  // Need minimum API support for Windows 7
-#  define _WIN32_WINNT _WIN32_WINNT_WIN7
-
 #  ifdef WITH_CUDA_DYNLOAD
 #include 
 // Do not use CUDA SDK headers when using CUEW
diff --git a/source/blender/blenlib/intern/dynlib.c 
b/source/blender/blenlib/intern/dynlib.c
index c648a212fef..2aceff45b3e 100644
--- a/source/blender/blenlib/intern/dynlib.c
+++ b/source/blender/blenlib/intern/dynlib.c
@@ -34,9 +34,6 @@ struct DynamicLibrary {
 };
 
 #ifdef WIN32
-#  ifndef _WIN32_WINNT
-#define _WIN32_WINNT 0x501 /* Windows XP or newer */
-#  endif
 #  define WIN32_LEAN_AND_MEAN
 #  include 
 #  include "utf_winfunc.h"
diff --git a/source/blender/blenlib/intern/time.c 
b/source/blender/blenlib/intern/time.c
index f7bcf303b4b..81b079a1f77 100644
--- a/source/blender/blenlib/intern/time.c
+++ b/source/blender/blenlib/intern/time.c
@@ -24,9 +24,6 @@
 #include "PIL_time.h"
 
 #ifdef WIN32
-#  ifndef _WIN32_WINNT
-#define _WIN32_WINNT 0x501 /* Windows XP or newer */
-#  endif
 #  define WIN32_LEAN_AND_MEAN
 #  include 

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [dc1db0791ec] master: Cycles: Track specular throughput to account for reflection color in denoising albedo pass

2020-02-05 Thread Lukas Stockner
Commit: dc1db0791ec3b2d52e6734054a001814cd6998ee
Author: Lukas Stockner
Date:   Tue Jan 21 04:45:51 2020 +0100
Branches: master
https://developer.blender.org/rBdc1db0791ec3b2d52e6734054a001814cd6998ee

Cycles: Track specular throughput to account for reflection color in denoising 
albedo pass

To determine the albedo pass, Cycles currently follows the path until a 
predominantly
diffuse-ish material is hit and then takes the albedo there.
This works fine for normal mirrors, but as it completely ignores the color of 
the bounces
before that diffuse-ish material, it also means that any textures that are 
applied to the
specular-ish BSDFs won't affect the albedo pass at all.

Therefore, this patch changes that behaviour so that Cycles also keeps track of 
the
throughput of all specular-ish closures along the path so far and includes that 
in
the albedo pass.

This fixes part of the issue described in T73043. However, since it has an 
effect on the
albedo pass in most scenes, it could cause cause regressions, which is why I'm 
uploading
it as a patch instead of just committing as a fix.

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

===

M   intern/cycles/kernel/kernel_accumulate.h
M   intern/cycles/kernel/kernel_passes.h
M   intern/cycles/kernel/kernel_path_state.h
M   intern/cycles/kernel/kernel_types.h

===

diff --git a/intern/cycles/kernel/kernel_accumulate.h 
b/intern/cycles/kernel/kernel_accumulate.h
index 606c288649a..9ea75d54c5d 100644
--- a/intern/cycles/kernel/kernel_accumulate.h
+++ b/intern/cycles/kernel/kernel_accumulate.h
@@ -528,7 +528,8 @@ ccl_device_inline void 
path_radiance_accum_background(KernelGlobals *kg,
   }
 
 #ifdef __DENOISING_FEATURES__
-  L->denoising_albedo += state->denoising_feature_weight * value;
+  L->denoising_albedo += state->denoising_feature_weight * 
state->denoising_feature_throughput *
+ value;
 #endif /* __DENOISING_FEATURES__ */
 }
 
diff --git a/intern/cycles/kernel/kernel_passes.h 
b/intern/cycles/kernel/kernel_passes.h
index 7345e9ee5bb..e50fa07a885 100644
--- a/intern/cycles/kernel/kernel_passes.h
+++ b/intern/cycles/kernel/kernel_passes.h
@@ -58,7 +58,8 @@ ccl_device_inline void 
kernel_update_denoising_features(KernelGlobals *kg,
   }
 
   float3 normal = make_float3(0.0f, 0.0f, 0.0f);
-  float3 albedo = make_float3(0.0f, 0.0f, 0.0f);
+  float3 diffuse_albedo = make_float3(0.0f, 0.0f, 0.0f);
+  float3 specular_albedo = make_float3(0.0f, 0.0f, 0.0f);
   float sum_weight = 0.0f, sum_nonspecular_weight = 0.0f;
 
   for (int i = 0; i < sd->num_closure; i++) {
@@ -70,24 +71,28 @@ ccl_device_inline void 
kernel_update_denoising_features(KernelGlobals *kg,
 /* All closures contribute to the normal feature, but only diffuse-like 
ones to the albedo. */
 normal += sc->N * sc->sample_weight;
 sum_weight += sc->sample_weight;
-if (bsdf_get_specular_roughness_squared(sc) > sqr(0.075f)) {
-  float3 closure_albedo = sc->weight;
-  /* Closures that include a Fresnel term typically have weights close to 
1 even though their
-   * actual contribution is significantly lower.
-   * To account for this, we scale their weight by the average fresnel 
factor (the same is also
-   * done for the sample weight in the BSDF setup, so we don't need to 
scale that here). */
-  if (CLOSURE_IS_BSDF_MICROFACET_FRESNEL(sc->type)) {
-MicrofacetBsdf *bsdf = (MicrofacetBsdf *)sc;
-closure_albedo *= bsdf->extra->fresnel_color;
-  }
-  else if (sc->type == CLOSURE_BSDF_PRINCIPLED_SHEEN_ID) {
-PrincipledSheenBsdf *bsdf = (PrincipledSheenBsdf *)sc;
-closure_albedo *= bsdf->avg_value;
-  }
 
-  albedo += closure_albedo;
+float3 closure_albedo = sc->weight;
+/* Closures that include a Fresnel term typically have weights close to 1 
even though their
+ * actual contribution is significantly lower.
+ * To account for this, we scale their weight by the average fresnel 
factor (the same is also
+ * done for the sample weight in the BSDF setup, so we don't need to scale 
that here). */
+if (CLOSURE_IS_BSDF_MICROFACET_FRESNEL(sc->type)) {
+  MicrofacetBsdf *bsdf = (MicrofacetBsdf *)sc;
+  closure_albedo *= bsdf->extra->fresnel_color;
+}
+else if (sc->type == CLOSURE_BSDF_PRINCIPLED_SHEEN_ID) {
+  PrincipledSheenBsdf *bsdf = (PrincipledSheenBsdf *)sc;
+  closure_albedo *= bsdf->avg_value;
+}
+
+if (bsdf_get_specular_roughness_squared(sc) > sqr(0.075f)) {
+  diffuse_albedo += closure_albedo;
   sum_nonspecular_weight += sc->sample_weight;
 }
+else {
+  specular_albedo += closure_albedo;
+}
   }
 
   /* Wait for next bounce if 75% or more sample weight belongs to 
specular-like closures. */
@@ -101,10 +106,14 @@ ccl_device_inline void 

[Bf-blender-cvs] [8c353931afe] master: Merge branch 'blender-v2.82-release'

2020-02-05 Thread Lukas Stockner
Commit: 8c353931afe1ac8969bcf7cdadc056f322cb2af8
Author: Lukas Stockner
Date:   Thu Feb 6 03:36:46 2020 +0100
Branches: master
https://developer.blender.org/rB8c353931afe1ac8969bcf7cdadc056f322cb2af8

Merge branch 'blender-v2.82-release'

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [462d566485d] blender-v2.82-release: Fix unreported: Trying to create invalid UDIM tiles failed without error

2020-02-05 Thread Lukas Stockner
Commit: 462d566485d91afa1537ba4770829e0e43bc759b
Author: Lukas Stockner
Date:   Thu Feb 6 03:02:29 2020 +0100
Branches: blender-v2.82-release
https://developer.blender.org/rB462d566485d91afa1537ba4770829e0e43bc759b

Fix unreported: Trying to create invalid UDIM tiles failed without error

Thanks to @dfelinto for spotting this!

===

M   source/blender/editors/space_image/image_ops.c

===

diff --git a/source/blender/editors/space_image/image_ops.c 
b/source/blender/editors/space_image/image_ops.c
index 17c6f76a1d9..a2977b6ab90 100644
--- a/source/blender/editors/space_image/image_ops.c
+++ b/source/blender/editors/space_image/image_ops.c
@@ -4346,7 +4346,13 @@ static int tile_add_exec(bContext *C, wmOperator *op)
   Image *ima = CTX_data_edit_image(C);
 
   int start_tile = RNA_int_get(op->ptr, "number");
-  int end_tile = min_ii(start_tile + RNA_int_get(op->ptr, "count"), 
IMA_UDIM_MAX);
+  int end_tile = start_tile + RNA_int_get(op->ptr, "count");
+
+  if (start_tile < 1001 || end_tile > IMA_UDIM_MAX) {
+BKE_report(op->reports, RPT_ERROR, "Invalid UDIM index range was 
specified");
+return OPERATOR_CANCELLED;
+  }
+
   bool fill_tile = RNA_boolean_get(op->ptr, "fill");
   char *label = RNA_string_get_alloc(op->ptr, "label", NULL, 0);
 
@@ -4442,8 +4448,15 @@ void IMAGE_OT_tile_add(wmOperatorType *ot)
   /* flags */
   ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 
-  RNA_def_int(
-  ot->srna, "number", 1002, 1001, INT_MAX, "Number", "UDIM number of the 
tile", 1001, 1099);
+  RNA_def_int(ot->srna,
+  "number",
+  1002,
+  1001,
+  IMA_UDIM_MAX,
+  "Number",
+  "UDIM number of the tile",
+  1001,
+  1099);
   RNA_def_int(ot->srna, "count", 1, 1, INT_MAX, "Count", "How many tiles to 
add", 1, 1000);
   RNA_def_string(ot->srna, "label", NULL, 0, "Label", "Optional tile label");
   RNA_def_boolean(ot->srna, "fill", true, "Fill", "Fill new tile with a 
generated image");

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [3caefc89ee1] blender-v2.82-release: Fix unreported: View All in the Image Editor ignores UDIM tiles

2020-02-05 Thread Lukas Stockner
Commit: 3caefc89ee1afc20c5ee46c0ddf538213d802819
Author: Lukas Stockner
Date:   Thu Feb 6 03:23:01 2020 +0100
Branches: blender-v2.82-release
https://developer.blender.org/rB3caefc89ee1afc20c5ee46c0ddf538213d802819

Fix unreported: View All in the Image Editor ignores UDIM tiles

Thanks to @dfelinto for spotting this!

===

M   source/blender/editors/space_image/image_ops.c

===

diff --git a/source/blender/editors/space_image/image_ops.c 
b/source/blender/editors/space_image/image_ops.c
index a2977b6ab90..e6bd563b02f 100644
--- a/source/blender/editors/space_image/image_ops.c
+++ b/source/blender/editors/space_image/image_ops.c
@@ -781,6 +781,29 @@ static int image_view_all_exec(bContext *C, wmOperator *op)
   w = width * aspx;
   h = height * aspy;
 
+  float xof = 0.0f, yof = 0.0f;
+  if ((sima->image == NULL) || (sima->image->source == IMA_SRC_TILED)) {
+/* Extend the shown area to cover all UDIM tiles. */
+int x_tiles, y_tiles;
+if (sima->image == NULL) {
+  x_tiles = sima->tile_grid_shape[0];
+  y_tiles = sima->tile_grid_shape[1];
+}
+else {
+  x_tiles = y_tiles = 1;
+  LISTBASE_FOREACH (ImageTile *, tile, >image->tiles) {
+int tile_x = (tile->tile_number - 1001) % 10;
+int tile_y = (tile->tile_number - 1001) / 10;
+x_tiles = max_ii(x_tiles, tile_x + 1);
+y_tiles = max_ii(y_tiles, tile_y + 1);
+  }
+}
+xof = 0.5f * (x_tiles - 1.0f) * w;
+yof = 0.5f * (y_tiles - 1.0f) * h;
+w *= x_tiles;
+h *= y_tiles;
+  }
+
   /* check if the image will fit in the image with (zoom == 1) */
   width = BLI_rcti_size_x(>winrct) + 1;
   height = BLI_rcti_size_y(>winrct) + 1;
@@ -806,7 +829,8 @@ static int image_view_all_exec(bContext *C, wmOperator *op)
 }
   }
 
-  sima->xof = sima->yof = 0.0f;
+  sima->xof = xof;
+  sima->yof = yof;
 
   ED_region_tag_redraw(ar);

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [d1112ae0d0e] master: Merge branch 'blender-v2.82-release'

2020-02-05 Thread mano-wii
Commit: d1112ae0d0e602fcba58c39147cbcd66fe624564
Author: mano-wii
Date:   Wed Feb 5 22:59:29 2020 -0300
Branches: master
https://developer.blender.org/rBd1112ae0d0e602fcba58c39147cbcd66fe624564

Merge branch 'blender-v2.82-release'

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [b4f8e3f01bc] blender-v2.82-release: Fix T69776: Error with complex Eevee noise texture in some drivers

2020-02-05 Thread Patrick Bender
Commit: b4f8e3f01bc91c98cc8b37f9a6f4ab8378e807eb
Author: Patrick Bender
Date:   Wed Feb 5 22:53:53 2020 -0300
Branches: blender-v2.82-release
https://developer.blender.org/rBb4f8e3f01bc91c98cc8b37f9a6f4ab8378e807eb

Fix T69776: Error with complex Eevee noise texture in some drivers

Apparently the compiled shader bump into some register limit and
the compiler instead of giving an error, does something incorrectly.

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

===

M   source/blender/gpu/intern/gpu_material_library.h
M   source/blender/gpu/shaders/material/gpu_shader_material_math_util.glsl
M   source/blender/gpu/shaders/material/gpu_shader_material_noise.glsl

===

diff --git a/source/blender/gpu/intern/gpu_material_library.h 
b/source/blender/gpu/intern/gpu_material_library.h
index 08c36e24920..0d697a31c35 100644
--- a/source/blender/gpu/intern/gpu_material_library.h
+++ b/source/blender/gpu/intern/gpu_material_library.h
@@ -139,9 +139,7 @@ static GPUMaterialLibrary gpu_shader_material_hash_library 
= {
 
 static GPUMaterialLibrary gpu_shader_material_noise_library = {
 .code = datatoc_gpu_shader_material_noise_glsl,
-.dependencies = {_shader_material_math_util_library,
- _shader_material_hash_library,
- NULL},
+.dependencies = {_shader_material_hash_library, NULL},
 };
 
 static GPUMaterialLibrary gpu_shader_material_fractal_noise_library = {
diff --git 
a/source/blender/gpu/shaders/material/gpu_shader_material_math_util.glsl 
b/source/blender/gpu/shaders/material/gpu_shader_material_math_util.glsl
index e8487fb5d42..5c1ee05f094 100644
--- a/source/blender/gpu/shaders/material/gpu_shader_material_math_util.glsl
+++ b/source/blender/gpu/shaders/material/gpu_shader_material_math_util.glsl
@@ -48,13 +48,6 @@ int quick_floor(float x)
   return int(x) - ((x < 0) ? 1 : 0);
 }
 
-float floorfrac(float x, out int i)
-{
-  float x_floor = floor(x);
-  i = int(x_floor);
-  return x - x_floor;
-}
-
 /* Vector Math */
 
 vec2 safe_divide(vec2 a, vec2 b)
diff --git a/source/blender/gpu/shaders/material/gpu_shader_material_noise.glsl 
b/source/blender/gpu/shaders/material/gpu_shader_material_noise.glsl
index c184c61c269..cc65b1eb57c 100644
--- a/source/blender/gpu/shaders/material/gpu_shader_material_noise.glsl
+++ b/source/blender/gpu/shaders/material/gpu_shader_material_noise.glsl
@@ -1,3 +1,7 @@
+/* clang-format off */
+#define FLOORFRAC(x, x_int, x_fract) { float x_floor = floor(x); x_int = 
int(x_floor); x_fract = x - x_floor; }
+/* clang-format on */
+
 /* Bilinear Interpolation:
  *
  * v2  v3
@@ -124,7 +128,10 @@ float noise_grad(uint hash, float x, float y, float z, 
float w)
 float noise_perlin(float x)
 {
   int X;
-  float fx = floorfrac(x, X);
+  float fx;
+
+  FLOORFRAC(x, X, fx);
+
   float u = fade(fx);
 
   float r = mix(noise_grad(hash_int(X), fx), noise_grad(hash_int(X + 1), fx - 
1.0), u);
@@ -134,11 +141,11 @@ float noise_perlin(float x)
 
 float noise_perlin(vec2 vec)
 {
-  int X;
-  int Y;
+  int X, Y;
+  float fx, fy;
 
-  float fx = floorfrac(vec.x, X);
-  float fy = floorfrac(vec.y, Y);
+  FLOORFRAC(vec.x, X, fx);
+  FLOORFRAC(vec.y, Y, fy);
 
   float u = fade(fx);
   float v = fade(fy);
@@ -155,13 +162,12 @@ float noise_perlin(vec2 vec)
 
 float noise_perlin(vec3 vec)
 {
-  int X;
-  int Y;
-  int Z;
+  int X, Y, Z;
+  float fx, fy, fz;
 
-  float fx = floorfrac(vec.x, X);
-  float fy = floorfrac(vec.y, Y);
-  float fz = floorfrac(vec.z, Z);
+  FLOORFRAC(vec.x, X, fx);
+  FLOORFRAC(vec.y, Y, fy);
+  FLOORFRAC(vec.z, Z, fz);
 
   float u = fade(fx);
   float v = fade(fy);
@@ -184,15 +190,13 @@ float noise_perlin(vec3 vec)
 
 float noise_perlin(vec4 vec)
 {
-  int X;
-  int Y;
-  int Z;
-  int W;
-
-  float fx = floorfrac(vec.x, X);
-  float fy = floorfrac(vec.y, Y);
-  float fz = floorfrac(vec.z, Z);
-  float fw = floorfrac(vec.w, W);
+  int X, Y, Z, W;
+  float fx, fy, fz, fw;
+
+  FLOORFRAC(vec.x, X, fx);
+  FLOORFRAC(vec.y, Y, fy);
+  FLOORFRAC(vec.z, Z, fz);
+  FLOORFRAC(vec.w, W, fw);
 
   float u = fade(fx);
   float v = fade(fy);

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [742c5a0018b] greasepencil-refactor: GPencil: Initial implementation of the layer mask relationship

2020-02-05 Thread Antonio Vazquez
Commit: 742c5a0018bd7d2df53d12ceeeba038450eaabae
Author: Antonio Vazquez
Date:   Wed Feb 5 19:46:21 2020 +0100
Branches: greasepencil-refactor
https://developer.blender.org/rB742c5a0018bd7d2df53d12ceeeba038450eaabae

GPencil: Initial implementation of the layer mask relationship

Now, there is a new parameter to define the mask used by layer.

Still pending to remove old `use_mask` property in C and python (not removed 
yet to keep running the masking UI).

===

M   release/scripts/startup/bl_ui/properties_data_gpencil.py
M   source/blender/blenkernel/intern/gpencil.c
M   source/blender/makesdna/DNA_gpencil_types.h
M   source/blender/makesrna/intern/rna_gpencil.c

===

diff --git a/release/scripts/startup/bl_ui/properties_data_gpencil.py 
b/release/scripts/startup/bl_ui/properties_data_gpencil.py
index 192b68e6c10..02745874283 100644
--- a/release/scripts/startup/bl_ui/properties_data_gpencil.py
+++ b/release/scripts/startup/bl_ui/properties_data_gpencil.py
@@ -174,6 +174,8 @@ class DATA_PT_gpencil_layers(DataButtonsPanel, Panel):
 if not gpl.mask_layer:
 col = layout.row(align=True)
 col.prop(gpl, "blend_mode", text="Blend")
+col = layout.row(align=True)
+col.prop_search(gpl, "mask_layer_name", gpd, "layers", 
icon='GREASEPENCIL')
 
 col = layout.row(align=True)
 col.prop(gpl, "opacity", text="Opacity", slider=True)
diff --git a/source/blender/blenkernel/intern/gpencil.c 
b/source/blender/blenkernel/intern/gpencil.c
index ee674001caf..5ec6c81080b 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -397,7 +397,7 @@ bGPDlayer *BKE_gpencil_layer_addnew(bGPdata *gpd, const 
char *name, bool setacti
 
   /* Enable always affected by scene lights. */
   gpl->flag |= GP_LAYER_USE_LIGHTS;
-
+  gpl->mask_layer[0] = '\0';
   /* make this one the active one */
   if (setactive) {
 BKE_gpencil_layer_active_set(gpd, gpl);
diff --git a/source/blender/makesdna/DNA_gpencil_types.h 
b/source/blender/makesdna/DNA_gpencil_types.h
index 3a012ce0949..409b758d570 100644
--- a/source/blender/makesdna/DNA_gpencil_types.h
+++ b/source/blender/makesdna/DNA_gpencil_types.h
@@ -403,6 +403,9 @@ typedef struct bGPDlayer {
   float gcolor_next[3];
   char _pad1[4];
 
+  /** Mask Layer name. */
+  char mask_layer[64];
+
   bGPDlayer_Runtime runtime;
 } bGPDlayer;
 
@@ -431,7 +434,7 @@ typedef enum eGPDlayer_Flag {
   /* Unlock color */
   GP_LAYER_UNLOCK_COLOR = (1 << 12),
   /* Mask Layer */
-  GP_LAYER_USE_MASK = (1 << 13),
+  GP_LAYER_USE_MASK = (1 << 13), /*TODO: DEPRECATED */
   /* Ruler Layer */
   GP_LAYER_IS_RULER = (1 << 14),
   /* Invert masking behavior */
diff --git a/source/blender/makesrna/intern/rna_gpencil.c 
b/source/blender/makesrna/intern/rna_gpencil.c
index ec344d99414..ffe8845b6d5 100644
--- a/source/blender/makesrna/intern/rna_gpencil.c
+++ b/source/blender/makesrna/intern/rna_gpencil.c
@@ -1477,6 +1477,11 @@ static void rna_def_gpencil_layer(BlenderRNA *brna)
   RNA_def_property_ui_text(prop, "Blend Mode", "Blend mode");
   RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
 
+  prop = RNA_def_property(srna, "mask_layer_name", PROP_STRING, PROP_NONE);
+  RNA_def_property_string_sdna(prop, NULL, "mask_layer");
+  RNA_def_property_ui_text(prop, "Mask", "Name of the masking layer");
+  RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
+
   /* Flags */
   prop = RNA_def_property(srna, "hide", PROP_BOOLEAN, PROP_NONE);
   RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_LAYER_HIDE);
@@ -1512,13 +1517,14 @@ static void rna_def_gpencil_layer(BlenderRNA *brna)
   prop, "Disallow Locked Materials Editing", "Avoids editing locked 
materials in the layer");
   RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, NULL);
 
+#  /* TODO: Deprecated */
   prop = RNA_def_property(srna, "mask_layer", PROP_BOOLEAN, PROP_NONE);
   RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_LAYER_USE_MASK);
   RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
   RNA_def_property_boolean_funcs(prop, NULL, "rna_GPencil_layer_mask_set");
   RNA_def_property_ui_text(prop, "Mask Layer", "Mask pixels from underlying 
layers drawing");
   RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
-
+#
   prop = RNA_def_property(srna, "invert_mask", PROP_BOOLEAN, PROP_NONE);
   RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_LAYER_MASK_INVERT);
   RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [cad09e5227d] master: Merge branch 'blender-v2.82-release'

2020-02-05 Thread Clément Foucault
Commit: cad09e5227df3261662cba4a912605b6ffc671c1
Author: Clément Foucault
Date:   Wed Feb 5 19:32:51 2020 +0100
Branches: master
https://developer.blender.org/rBcad09e5227df3261662cba4a912605b6ffc671c1

Merge branch 'blender-v2.82-release'

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [092deb88b07] blender-v2.82-release: Fix T73127 EEVEE: Reflection plane not visible in lookdev without scene world

2020-02-05 Thread Clément Foucault
Commit: 092deb88b074848c5b252ba6b7bb2d9890c8a2cc
Author: Clément Foucault
Date:   Wed Feb 5 19:32:16 2020 +0100
Branches: blender-v2.82-release
https://developer.blender.org/rB092deb88b074848c5b252ba6b7bb2d9890c8a2cc

Fix T73127 EEVEE: Reflection plane not visible in lookdev without scene world

===

M   source/blender/draw/engines/eevee/eevee_lightprobes.c

===

diff --git a/source/blender/draw/engines/eevee/eevee_lightprobes.c 
b/source/blender/draw/engines/eevee/eevee_lightprobes.c
index 4b0af273f7f..7da9af55330 100644
--- a/source/blender/draw/engines/eevee/eevee_lightprobes.c
+++ b/source/blender/draw/engines/eevee/eevee_lightprobes.c
@@ -382,70 +382,74 @@ void EEVEE_lightprobes_cache_init(EEVEE_ViewLayerData 
*sldata, EEVEE_Data *vedat
 }
   }
 
-  if (DRW_state_draw_support() && 
!LOOK_DEV_STUDIO_LIGHT_ENABLED(draw_ctx->v3d)) {
+  if (DRW_state_draw_support()) {
 DRWState state = DRW_STATE_WRITE_COLOR | DRW_STATE_WRITE_DEPTH | 
DRW_STATE_DEPTH_LESS_EQUAL |
  DRW_STATE_CULL_BACK;
 DRW_PASS_CREATE(psl->probe_display, state);
 
-/* Cube Display */
-if (scene_eval->eevee.flag & SCE_EEVEE_SHOW_CUBEMAPS && lcache->cube_len > 
1) {
-  int cube_len = lcache->cube_len - 1; /* don't count the world. */
-  DRWShadingGroup *grp = 
DRW_shgroup_create(EEVEE_shaders_probe_cube_display_sh_get(),
-psl->probe_display);
-
-  DRW_shgroup_uniform_texture_ref(grp, "probeCubes", >cube_tx.tex);
-  DRW_shgroup_uniform_block(grp, "probe_block", sldata->probe_ubo);
-  DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
-  DRW_shgroup_uniform_vec3(grp, "screen_vecs[0]", 
DRW_viewport_screenvecs_get(), 2);
-  DRW_shgroup_uniform_float_copy(
-  grp, "sphere_size", scene_eval->eevee.gi_cubemap_draw_size * 0.5f);
-  /* TODO (fclem) get rid of those UBO. */
-  DRW_shgroup_uniform_block(grp, "planar_block", sldata->planar_ubo);
-  DRW_shgroup_uniform_block(grp, "grid_block", sldata->grid_ubo);
-
-  DRW_shgroup_call_procedural_triangles(grp, NULL, cube_len * 2);
-}
-
-/* Grid Display */
-if (scene_eval->eevee.flag & SCE_EEVEE_SHOW_IRRADIANCE) {
-  EEVEE_LightGrid *egrid = lcache->grid_data + 1;
-  for (int p = 1; p < lcache->grid_len; p++, egrid++) {
-DRWShadingGroup *shgrp = 
DRW_shgroup_create(EEVEE_shaders_probe_grid_display_sh_get(),
-psl->probe_display);
-
-DRW_shgroup_uniform_int(shgrp, "offset", >offset, 1);
-DRW_shgroup_uniform_ivec3(shgrp, "grid_resolution", egrid->resolution, 
1);
-DRW_shgroup_uniform_vec3(shgrp, "corner", egrid->corner, 1);
-DRW_shgroup_uniform_vec3(shgrp, "increment_x", egrid->increment_x, 1);
-DRW_shgroup_uniform_vec3(shgrp, "increment_y", egrid->increment_y, 1);
-DRW_shgroup_uniform_vec3(shgrp, "increment_z", egrid->increment_z, 1);
-DRW_shgroup_uniform_vec3(shgrp, "screen_vecs[0]", 
DRW_viewport_screenvecs_get(), 2);
-DRW_shgroup_uniform_texture_ref(shgrp, "irradianceGrid", 
>grid_tx.tex);
+if (!LOOK_DEV_STUDIO_LIGHT_ENABLED(draw_ctx->v3d)) {
+  /* Cube Display */
+  if (scene_eval->eevee.flag & SCE_EEVEE_SHOW_CUBEMAPS && lcache->cube_len 
> 1) {
+int cube_len = lcache->cube_len - 1; /* don't count the world. */
+DRWShadingGroup *grp = 
DRW_shgroup_create(EEVEE_shaders_probe_cube_display_sh_get(),
+  psl->probe_display);
+
+DRW_shgroup_uniform_texture_ref(grp, "probeCubes", 
>cube_tx.tex);
+DRW_shgroup_uniform_block(grp, "probe_block", sldata->probe_ubo);
+DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
+DRW_shgroup_uniform_vec3(grp, "screen_vecs[0]", 
DRW_viewport_screenvecs_get(), 2);
 DRW_shgroup_uniform_float_copy(
-shgrp, "sphere_size", scene_eval->eevee.gi_irradiance_draw_size * 
0.5f);
+grp, "sphere_size", scene_eval->eevee.gi_cubemap_draw_size * 0.5f);
 /* TODO (fclem) get rid of those UBO. */
-DRW_shgroup_uniform_block(shgrp, "probe_block", sldata->probe_ubo);
-DRW_shgroup_uniform_block(shgrp, "planar_block", sldata->planar_ubo);
-DRW_shgroup_uniform_block(shgrp, "grid_block", sldata->grid_ubo);
-DRW_shgroup_uniform_block(shgrp, "common_block", sldata->common_ubo);
-int tri_count = egrid->resolution[0] * egrid->resolution[1] * 
egrid->resolution[2] * 2;
-DRW_shgroup_call_procedural_triangles(shgrp, NULL, tri_count);
+DRW_shgroup_uniform_block(grp, "planar_block", sldata->planar_ubo);
+DRW_shgroup_uniform_block(grp, "grid_block", sldata->grid_ubo);
+
+DRW_shgroup_call_procedural_triangles(grp, NULL, cube_len * 2);
+  }
+
+  /* 

[Bf-blender-cvs] [8725d1252ea] new-object-types: Volume: initial support for frame sequences

2020-02-05 Thread Brecht Van Lommel
Commit: 8725d1252ea3b2161eb84ed6162456b0d17d0ce7
Author: Brecht Van Lommel
Date:   Wed Feb 5 11:25:21 2020 +0100
Branches: new-object-types
https://developer.blender.org/rB8725d1252ea3b2161eb84ed6162456b0d17d0ce7

Volume: initial support for frame sequences

There is frame duration/start/offset just like images. A difference is
that there are more playback modes: clip, extend, repeat, ping-pong.

Still missing is auto detect of frame sequences, the duration has to be
manually entered now.

===

M   intern/cycles/blender/blender_mesh.cpp
M   intern/cycles/blender/blender_sync.cpp
M   release/scripts/startup/bl_ui/properties_data_volume.py
M   source/blender/blenkernel/BKE_volume.h
M   source/blender/blenkernel/intern/volume.cc
M   source/blender/blenloader/intern/readfile.c
M   source/blender/depsgraph/CMakeLists.txt
M   source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
M   source/blender/depsgraph/intern/builder/deg_builder_relations.cc
M   source/blender/depsgraph/intern/eval/deg_eval_runtime_backup.cc
M   source/blender/depsgraph/intern/eval/deg_eval_runtime_backup.h
A   source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_volume.cc
A   source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_volume.h
M   source/blender/makesdna/DNA_volume_types.h
M   source/blender/makesrna/intern/rna_volume.c

===

diff --git a/intern/cycles/blender/blender_mesh.cpp 
b/intern/cycles/blender/blender_mesh.cpp
index 86be9ee9a0f..40fe139c9b6 100644
--- a/intern/cycles/blender/blender_mesh.cpp
+++ b/intern/cycles/blender/blender_mesh.cpp
@@ -370,7 +370,7 @@ static void create_volume_object(BL::BlendData _data, 
BL::Object _ob, Scene
   VoxelAttribute *volume_data = attr->data_voxel();
   ImageMetaData metadata;
   const bool animated = false;
-  const float frame = 0.0f;
+  const float frame = b_volume.grids.frame();
 
   volume_data->manager = scene->image_manager;
   volume_data->slot = scene->image_manager->add_image(name.c_str(),
diff --git a/intern/cycles/blender/blender_sync.cpp 
b/intern/cycles/blender/blender_sync.cpp
index 20dbe23cdb7..9e89d36a380 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -173,6 +173,11 @@ void BlenderSync::sync_recalc(BL::Depsgraph _depsgraph, 
BL::SpaceView3D _v3d
 world_recalc = true;
   }
 }
+/* Volume */
+else if (b_id.is_a(_Volume)) {
+  BL::Volume b_volume(b_id);
+  mesh_map.set_recalc(b_volume);
+}
   }
 
   BlenderViewportParameters new_viewport_parameters(b_v3d);
diff --git a/release/scripts/startup/bl_ui/properties_data_volume.py 
b/release/scripts/startup/bl_ui/properties_data_volume.py
index e95aee645ae..ae68123f3de 100644
--- a/release/scripts/startup/bl_ui/properties_data_volume.py
+++ b/release/scripts/startup/bl_ui/properties_data_volume.py
@@ -51,8 +51,8 @@ class DATA_PT_context_volume(DataButtonsPanel, Panel):
 layout.template_ID(space, "pin_id")
 
 
-class DATA_PT_volume(DataButtonsPanel, Panel):
-bl_label = "Volume"
+class DATA_PT_volume_file(DataButtonsPanel, Panel):
+bl_label = "OpenVDB File"
 COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_WORKBENCH'}
 
 def draw(self, context):
@@ -63,8 +63,21 @@ class DATA_PT_volume(DataButtonsPanel, Panel):
 
 layout.prop(volume, "filepath", text="")
 
+if len(volume.filepath):
+layout.use_property_split = True
+layout.use_property_decorate = False
+
+col = layout.column(align=True)
+col.prop(volume, "is_sequence")
+if volume.is_sequence:
+col.prop(volume, "frame_duration", text="Frames")
+col.prop(volume, "frame_start", text="Start")
+col.prop(volume, "frame_offset", text="Offset")
+col.prop(volume, "sequence_mode", text="Mode")
+
 error_msg = volume.grids.error_message
 if len(error_msg):
+  layout.separator()
   col = layout.column(align=True)
   col.label(text="Failed to load volume:")
   col.label(text=error_msg)
@@ -96,8 +109,8 @@ class DATA_PT_custom_props_volume(DataButtonsPanel, 
PropertyPanel, Panel):
 
 classes = (
 DATA_PT_context_volume,
-DATA_PT_volume,
 DATA_PT_volume_grids,
+DATA_PT_volume_file,
 DATA_PT_custom_props_volume,
 VOLUME_UL_grids,
 )
diff --git a/source/blender/blenkernel/BKE_volume.h 
b/source/blender/blenkernel/BKE_volume.h
index 9224e95327b..7e0e47be5e8 100644
--- a/source/blender/blenkernel/BKE_volume.h
+++ b/source/blender/blenkernel/BKE_volume.h
@@ -62,6 +62,7 @@ struct BoundBox *BKE_volume_boundbox_get(struct Object *ob);
 struct Volume *BKE_volume_new_for_eval(const struct Volume *volume_src);
 struct Volume 

[Bf-blender-cvs] [713b5a862ab] new-object-types: Volumes: debug logging for grid file load/unload

2020-02-05 Thread Brecht Van Lommel
Commit: 713b5a862abad459b183d1d7c2c640a02f3cfa3e
Author: Brecht Van Lommel
Date:   Wed Feb 5 19:04:39 2020 +0100
Branches: new-object-types
https://developer.blender.org/rB713b5a862abad459b183d1d7c2c640a02f3cfa3e

Volumes: debug logging for grid file load/unload

===

M   source/blender/blenkernel/intern/volume.cc

===

diff --git a/source/blender/blenkernel/intern/volume.cc 
b/source/blender/blenkernel/intern/volume.cc
index aff410639e0..d6da0594188 100644
--- a/source/blender/blenkernel/intern/volume.cc
+++ b/source/blender/blenkernel/intern/volume.cc
@@ -27,6 +27,7 @@
 #include "DNA_object_types.h"
 #include "DNA_volume_types.h"
 
+#include "BLI_fileops.h"
 #include "BLI_math.h"
 #include "BLI_path_util.h"
 #include "BLI_string.h"
@@ -45,6 +46,10 @@
 
 #include "DEG_depsgraph_query.h"
 
+#include "CLG_log.h"
+
+static CLG_LogRef LOG = {"bke.volume"};
+
 #ifdef WITH_OPENVDB
 #  include 
 #  include 
@@ -199,6 +204,17 @@ bool BKE_volume_load(Volume *volume, Main *bmain)
   STRNCPY(grids.filepath, volume->filepath);
   BLI_path_abs(grids.filepath, ID_BLEND_PATH(bmain, >id));
 
+  CLOG_INFO(, 1, "Volume %s: load %s", volume->id.name + 2, 
grids.filepath);
+
+  /* Test if file exists. */
+  if (!BLI_exists(grids.filepath)) {
+char filename[FILE_MAX];
+BLI_split_file_part(grids.filepath, filename, sizeof(filename));
+grids.error_msg = filename + std::string(" not found");
+CLOG_INFO(, 1, "Volume %s: %s", volume->id.name + 2, 
grids.error_msg.c_str());
+return false;
+  }
+
   /* Open OpenVDB file. */
   openvdb::io::File file(grids.filepath);
   openvdb::GridPtrVec vdb_grids;
@@ -210,12 +226,13 @@ bool BKE_volume_load(Volume *volume, Main *bmain)
   }
   catch (const openvdb::IoError ) {
 grids.error_msg = e.what();
+CLOG_INFO(, 1, "Volume %s: %s", volume->id.name + 2, 
grids.error_msg.c_str());
   }
 
   /* Add grids read from file to own vector, filtering out any NULL pointers. 
*/
   for (const openvdb::GridBase::Ptr vdb_grid : vdb_grids) {
 if (vdb_grid) {
-  volume->grids->emplace_back(vdb_grid, false);
+  grids.emplace_back(vdb_grid, false);
 }
   }
 
@@ -230,9 +247,12 @@ void BKE_volume_unload(Volume *volume)
 {
 #ifdef WITH_OPENVDB
   VolumeGridVector  = *volume->grids;
-  grids.clear();
-  grids.error_msg.clear();
-  grids.filepath[0] = '\0';
+  if (grids.filepath[0] != '\0') {
+CLOG_INFO(, 1, "Volume %s: unload", volume->id.name + 2);
+grids.clear();
+grids.error_msg.clear();
+grids.filepath[0] = '\0';
+  }
 #else
   UNUSED_VARS(volume);
 #endif
@@ -470,6 +490,8 @@ bool BKE_volume_grid_load(Volume *volume, VolumeGrid *grid)
 return grids.error_msg.empty();
   }
 
+  CLOG_INFO(, 1, "Volume %s: load grid '%s'", volume->id.name + 2, 
BKE_volume_grid_name(grid));
+
   /* Read OpenVDB grid on-demand. */
   /* TODO: avoid repeating this for multiple grids when we know we will
* need them? How best to do it without keeping the file open forever? */

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [b51c292fc87] new-object-types: Volumes: show active grid in workbench

2020-02-05 Thread Brecht Van Lommel
Commit: b51c292fc8765fb883fa80d82a6a2eb3760ed558
Author: Brecht Van Lommel
Date:   Wed Feb 5 16:56:16 2020 +0100
Branches: new-object-types
https://developer.blender.org/rBb51c292fc8765fb883fa80d82a6a2eb3760ed558

Volumes: show active grid in workbench

===

M   source/blender/blenkernel/BKE_volume.h
M   source/blender/blenkernel/intern/volume.cc
M   source/blender/draw/engines/eevee/eevee_volumes.c
M   source/blender/draw/engines/workbench/workbench_volume.c
M   source/blender/draw/intern/draw_cache.h
M   source/blender/draw/intern/draw_cache_impl_volume.c
M   source/blender/makesrna/intern/rna_volume.c

===

diff --git a/source/blender/blenkernel/BKE_volume.h 
b/source/blender/blenkernel/BKE_volume.h
index 75b8db09c21..9224e95327b 100644
--- a/source/blender/blenkernel/BKE_volume.h
+++ b/source/blender/blenkernel/BKE_volume.h
@@ -93,6 +93,7 @@ bool BKE_volume_is_loaded(const struct Volume *volume);
 int BKE_volume_num_grids(struct Volume *volume);
 const char *BKE_volume_grids_error_msg(const struct Volume *volume);
 VolumeGrid *BKE_volume_grid_get(struct Volume *volume, int grid_index);
+VolumeGrid *BKE_volume_grid_active_get(struct Volume *volume);
 VolumeGrid *BKE_volume_grid_find(struct Volume *volume, const char *name);
 
 /* Grid
diff --git a/source/blender/blenkernel/intern/volume.cc 
b/source/blender/blenkernel/intern/volume.cc
index efb8bfc9d6b..aff410639e0 100644
--- a/source/blender/blenkernel/intern/volume.cc
+++ b/source/blender/blenkernel/intern/volume.cc
@@ -429,6 +429,17 @@ VolumeGrid *BKE_volume_grid_get(Volume *volume, int 
grid_index)
 #endif
 }
 
+VolumeGrid *BKE_volume_grid_active_get(Volume *volume)
+{
+  const int num_grids = BKE_volume_num_grids(volume);
+  if (num_grids == 0) {
+return NULL;
+  }
+
+  const int index = clamp_i(volume->active_grid, 0, num_grids - 1);
+  return BKE_volume_grid_get(volume, index);
+}
+
 VolumeGrid *BKE_volume_grid_find(Volume *volume, const char *name)
 {
   int num_grids = BKE_volume_num_grids(volume);
diff --git a/source/blender/draw/engines/eevee/eevee_volumes.c 
b/source/blender/draw/engines/eevee/eevee_volumes.c
index 1f8b520b5d4..ab98b7abe73 100644
--- a/source/blender/draw/engines/eevee/eevee_volumes.c
+++ b/source/blender/draw/engines/eevee/eevee_volumes.c
@@ -32,9 +32,10 @@
 #include "DNA_volume_types.h"
 #include "DNA_world_types.h"
 
-#include "BKE_modifier.h"
-#include "BKE_mesh.h"
 #include "BKE_fluid.h"
+#include "BKE_mesh.h"
+#include "BKE_modifier.h"
+#include "BKE_volume.h"
 
 #include "ED_screen.h"
 
@@ -434,7 +435,11 @@ void EEVEE_volumes_cache_object_add(EEVEE_ViewLayerData 
*sldata,
   if (ob->type == OB_VOLUME) {
 // TODO: check what the BASE_FROM_DUPLI test is for, do we need it too?
 Volume *volume = ob->data;
-DRWVolumeGrid *density = DRW_volume_batch_cache_get_grid(volume, 
"density");
+VolumeGrid *volume_density = BKE_volume_grid_find(volume, "density");
+if (volume_density == NULL) {
+  return;
+}
+DRWVolumeGrid *density = DRW_volume_batch_cache_get_grid(volume, 
volume_density);
 if (density == NULL) {
   return;
 }
diff --git a/source/blender/draw/engines/workbench/workbench_volume.c 
b/source/blender/draw/engines/workbench/workbench_volume.c
index ea8a0a82479..9a5fe7db5bd 100644
--- a/source/blender/draw/engines/workbench/workbench_volume.c
+++ b/source/blender/draw/engines/workbench/workbench_volume.c
@@ -232,8 +232,12 @@ static void 
workbench_volume_object_cache_populate(WORKBENCH_Data *vedata, Objec
 {
   /* Create 3D textures. */
   Volume *volume = ob->data;
-  DRWVolumeGrid *density = DRW_volume_batch_cache_get_grid(volume, "density");
-  if (density == NULL) {
+  VolumeGrid *volume_grid = BKE_volume_grid_active_get(volume);
+  if (volume_grid == NULL) {
+return;
+  }
+  DRWVolumeGrid *grid = DRW_volume_batch_cache_get_grid(volume, volume_grid);
+  if (grid == NULL) {
 return;
   }
 
@@ -258,7 +262,7 @@ static void 
workbench_volume_object_cache_populate(WORKBENCH_Data *vedata, Objec
 
   /* Combined texture to object, and object to world transform. */
   float texture_to_world[4][4];
-  mul_m4_m4m4(texture_to_world, ob->obmat, density->texture_to_object);
+  mul_m4_m4m4(texture_to_world, ob->obmat, grid->texture_to_object);
 
   /* Compute world space dimensions for step size. */
   float world_size[3];
@@ -269,7 +273,7 @@ static void 
workbench_volume_object_cache_populate(WORKBENCH_Data *vedata, Objec
   double noise_ofs;
   BLI_halton_1d(3, 0.0, effect_info->jitter_index, _ofs);
   float step_length, max_slice;
-  float slice_ct[3] = {density->resolution[0], density->resolution[1], 
density->resolution[2]};
+  float slice_ct[3] = {grid->resolution[0], grid->resolution[1], 
grid->resolution[2]};
   mul_v3_fl(slice_ct, max_ff(0.001f, slice_per_voxel));
   max_slice = max_fff(slice_ct[0], slice_ct[1], 

[Bf-blender-cvs] [921ee974d89] new-object-types: Merge branch 'master' into new-object-types

2020-02-05 Thread Brecht Van Lommel
Commit: 921ee974d896b1ab5afa5483b760d86c18ae4b99
Author: Brecht Van Lommel
Date:   Wed Feb 5 10:38:40 2020 +0100
Branches: new-object-types
https://developer.blender.org/rB921ee974d896b1ab5afa5483b760d86c18ae4b99

Merge branch 'master' into new-object-types

===



===

diff --cc release/datafiles/blender_icons.svg
index 01183fb3091,ebebc82695a..16d50623fa4
--- a/release/datafiles/blender_icons.svg
+++ b/release/datafiles/blender_icons.svg
@@@ -5348,117 -5435,23 +5435,134 @@@


 +  
 +  
 +
 +
 +
 +https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [77394ef1dbc] blender-v2.82-release: Fix T73517 Overlay: Edit Mode: X-Ray does not work if xray is equal to 1

2020-02-05 Thread Clément Foucault
Commit: 77394ef1dbca62a26ab598f8c9d77f5c92eca109
Author: Clément Foucault
Date:   Wed Feb 5 18:45:39 2020 +0100
Branches: blender-v2.82-release
https://developer.blender.org/rB77394ef1dbca62a26ab598f8c9d77f5c92eca109

Fix T73517 Overlay: Edit Mode: X-Ray does not work if xray is equal to 1

===

M   source/blender/draw/engines/overlay/overlay_edit_mesh.c

===

diff --git a/source/blender/draw/engines/overlay/overlay_edit_mesh.c 
b/source/blender/draw/engines/overlay/overlay_edit_mesh.c
index e016ccc6c0e..ee1b606bee5 100644
--- a/source/blender/draw/engines/overlay/overlay_edit_mesh.c
+++ b/source/blender/draw/engines/overlay/overlay_edit_mesh.c
@@ -96,7 +96,6 @@ void OVERLAY_edit_mesh_cache_init(OVERLAY_Data *vedata)
 
   if ((flag & V3D_OVERLAY_EDIT_FACES) == 0) {
 pd->edit_mesh.do_faces = false;
-pd->edit_mesh.do_zbufclip = false;
   }
   if ((flag & V3D_OVERLAY_EDIT_EDGES) == 0) {
 if ((tsettings->selectmode & SCE_SELECT_EDGE) == 0) {

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [00a0f062410] master: Fix T66802: Edge Slide: Unpredictable direction of the edge loop when it is fully occluded

2020-02-05 Thread mano-wii
Commit: 00a0f062410a864e5592ed318ea4228c9dd2b589
Author: mano-wii
Date:   Wed Feb 5 14:42:22 2020 -0300
Branches: master
https://developer.blender.org/rB00a0f062410a864e5592ed318ea4228c9dd2b589

Fix T66802: Edge Slide: Unpredictable direction of the edge loop when it is 
fully occluded

When an edge loop is fully occluded the direction of movement
is not calculated resulting in unpredictable behavior.

So always calculate the direction of the groups of edge loops
but continue preventing occluded edges from affecting `mval_dir`
(global) value.

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

===

M   source/blender/editors/transform/transform.c

===

diff --git a/source/blender/editors/transform/transform.c 
b/source/blender/editors/transform/transform.c
index c12821b321b..24efa33bdfa 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -6456,8 +6456,10 @@ static void calcEdgeSlide_mval_range(TransInfo *t,
   }
 
   /* This test is only relevant if object is not wire-drawn! See [#32068]. 
*/
-  if (use_occlude_geometry &&
-  !BMBVH_EdgeVisible(bmbvh, e, t->depsgraph, ar, v3d, tc->obedit)) {
+  bool is_visible = !use_occlude_geometry ||
+BMBVH_EdgeVisible(bmbvh, e, t->depsgraph, ar, v3d, 
tc->obedit);
+
+  if (!is_visible && !use_calc_direction) {
 continue;
   }
 
@@ -6479,11 +6481,13 @@ static void calcEdgeSlide_mval_range(TransInfo *t,
 
   /* global direction */
   dist_sq = dist_squared_to_line_segment_v2(mval, sco_b, sco_a);
-  if ((dist_best_sq == -1.0f) ||
-  /* intentionally use 2d size on 3d vector */
-  (dist_sq < dist_best_sq && (len_squared_v2v2(sco_b, sco_a) > 0.1f))) 
{
-dist_best_sq = dist_sq;
-sub_v3_v3v3(mval_dir, sco_b, sco_a);
+  if (is_visible) {
+if ((dist_best_sq == -1.0f) ||
+/* intentionally use 2d size on 3d vector */
+(dist_sq < dist_best_sq && (len_squared_v2v2(sco_b, sco_a) > 
0.1f))) {
+  dist_best_sq = dist_sq;
+  sub_v3_v3v3(mval_dir, sco_b, sco_a);
+}
   }
 
   if (use_calc_direction) {

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [354b2a7b1d4] master: Transform: Optimize edge slide

2020-02-05 Thread mano-wii
Commit: 354b2a7b1d45957612845d828648ea15514570c0
Author: mano-wii
Date:   Wed Feb 5 14:20:41 2020 -0300
Branches: master
https://developer.blender.org/rB354b2a7b1d45957612845d828648ea15514570c0

Transform: Optimize edge slide

The current edge slide is executed in this sequence:
- traverses all edges to find the ones selected,
- traverses each vertex of the selected edges,
- traverses each linked edge of the vertex to finally execute the code.

However the list of vertices that are part of selected edges are already
stored in `EdgeSlideData` through the `TransDataEdgeSlideVert *sv;` member.

Therefore, the code can be simplified as follows:
- traverses all `sv` in `EdgeSlideData`,
- get the `sv->v` vertex to finally execute the code.

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

===

M   source/blender/editors/transform/transform.c

===

diff --git a/source/blender/editors/transform/transform.c 
b/source/blender/editors/transform/transform.c
index ec39b457082..c12821b321b 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -6388,9 +6388,8 @@ static void calcEdgeSlide_mval_range(TransInfo *t,
  const bool use_occlude_geometry,
  const bool use_calc_direction)
 {
-  TransDataEdgeSlideVert *sv_array = sld->sv;
+  TransDataEdgeSlideVert *sv;
   BMEditMesh *em = BKE_editmesh_from_object(tc->obedit);
-  BMesh *bm = em->bm;
   ARegion *ar = t->ar;
   View3D *v3d = NULL;
   RegionView3D *rv3d = NULL;
@@ -6402,8 +6401,6 @@ static void calcEdgeSlide_mval_range(TransInfo *t,
 
   float mval_start[2], mval_end[2];
   float mval_dir[3], dist_best_sq;
-  BMIter iter;
-  BMEdge *e;
 
   if (t->spacetype == SPACE_VIEW3D) {
 /* background mode support */
@@ -6437,69 +6434,64 @@ static void calcEdgeSlide_mval_range(TransInfo *t,
 copy_vn_fl(loop_maxdist, loop_nr, -1.0f);
   }
 
-  BM_ITER_MESH (e, , bm, BM_EDGES_OF_MESH) {
-if (BM_elem_flag_test(e, BM_ELEM_SELECT)) {
-  int i;
+  sv = >sv[0];
+  for (int i = 0; i < sld->totsv; i++, sv++) {
+BMIter iter_other;
+BMEdge *e;
+BMVert *v = sv->v;
 
-  /* search cross edges for visible edge to the mouse cursor,
-   * then use the shared vertex to calculate screen vector*/
-  for (i = 0; i < 2; i++) {
-BMIter iter_other;
-BMEdge *e_other;
-
-BMVert *v = i ? e->v1 : e->v2;
-BM_ITER_ELEM (e_other, _other, v, BM_EDGES_OF_VERT) {
-  /* screen-space coords */
-  float sco_a[3], sco_b[3];
-  float dist_sq;
-  int j, l_nr;
-
-  if (BM_elem_flag_test(e_other, BM_ELEM_SELECT)) {
-continue;
-  }
+UNUSED_VARS_NDEBUG(sv_table); /* silence warning */
+BLI_assert(i == sv_table[BM_elem_index_get(v)]);
 
-  /* This test is only relevant if object is not wire-drawn! See 
[#32068]. */
-  if (use_occlude_geometry &&
-  !BMBVH_EdgeVisible(bmbvh, e_other, t->depsgraph, ar, v3d, 
tc->obedit)) {
-continue;
-  }
+/* search cross edges for visible edge to the mouse cursor,
+ * then use the shared vertex to calculate screen vector*/
+BM_ITER_ELEM (e, _other, v, BM_EDGES_OF_VERT) {
+  /* screen-space coords */
+  float sco_a[3], sco_b[3];
+  float dist_sq;
+  int l_nr;
 
-  BLI_assert(sv_table[BM_elem_index_get(v)] != -1);
-  j = sv_table[BM_elem_index_get(v)];
+  if (BM_elem_flag_test(e, BM_ELEM_SELECT)) {
+continue;
+  }
 
-  if (sv_array[j].v_side[1]) {
-ED_view3d_project_float_v3_m4(ar, sv_array[j].v_side[1]->co, 
sco_b, projectMat);
-  }
-  else {
-add_v3_v3v3(sco_b, v->co, sv_array[j].dir_side[1]);
-ED_view3d_project_float_v3_m4(ar, sco_b, sco_b, projectMat);
-  }
+  /* This test is only relevant if object is not wire-drawn! See [#32068]. 
*/
+  if (use_occlude_geometry &&
+  !BMBVH_EdgeVisible(bmbvh, e, t->depsgraph, ar, v3d, tc->obedit)) {
+continue;
+  }
 
-  if (sv_array[j].v_side[0]) {
-ED_view3d_project_float_v3_m4(ar, sv_array[j].v_side[0]->co, 
sco_a, projectMat);
-  }
-  else {
-add_v3_v3v3(sco_a, v->co, sv_array[j].dir_side[0]);
-ED_view3d_project_float_v3_m4(ar, sco_a, sco_a, projectMat);
-  }
+  if (sv->v_side[1]) {
+ED_view3d_project_float_v3_m4(ar, sv->v_side[1]->co, sco_b, 
projectMat);
+  }
+  else {
+add_v3_v3v3(sco_b, v->co, sv->dir_side[1]);
+ED_view3d_project_float_v3_m4(ar, sco_b, sco_b, projectMat);
+  }
 
-  /* global direction */
-  dist_sq = dist_squared_to_line_segment_v2(mval, sco_b, sco_a);
-  if ((dist_best_sq == -1.0f) ||
- 

[Bf-blender-cvs] [cb46cc67056] functions: Merge branch 'master' into functions

2020-02-05 Thread Jacques Lucke
Commit: cb46cc6705619b449fdbd1b677ce864871f48d66
Author: Jacques Lucke
Date:   Wed Feb 5 17:34:24 2020 +0100
Branches: functions
https://developer.blender.org/rBcb46cc6705619b449fdbd1b677ce864871f48d66

Merge branch 'master' into functions

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [3883ffbefb6] greasepencil-refactor: Merge branch 'greasepencil-object' into greasepencil-refactor

2020-02-05 Thread Antonio Vazquez
Commit: 3883ffbefb67c379c1f21a3b7cf5f1c661914816
Author: Antonio Vazquez
Date:   Wed Feb 5 17:27:33 2020 +0100
Branches: greasepencil-refactor
https://developer.blender.org/rB3883ffbefb67c379c1f21a3b7cf5f1c661914816

Merge branch 'greasepencil-object' into greasepencil-refactor

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [e2d4e2403a8] greasepencil-object: Merge branch 'master' into greasepencil-object

2020-02-05 Thread Antonio Vazquez
Commit: e2d4e2403a88959a0d189f985265a2b168877072
Author: Antonio Vazquez
Date:   Wed Feb 5 17:22:37 2020 +0100
Branches: greasepencil-object
https://developer.blender.org/rBe2d4e2403a88959a0d189f985265a2b168877072

Merge branch 'master' into greasepencil-object

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [0a95a0852eb] blender-v2.82-release: Fix T69834 Edit Mesh: Multi-object edit crash when an instance is hidden

2020-02-05 Thread Clément Foucault
Commit: 0a95a0852eb190613f93639a503416158c8cfc4a
Author: Clément Foucault
Date:   Wed Feb 5 17:22:36 2020 +0100
Branches: blender-v2.82-release
https://developer.blender.org/rB0a95a0852eb190613f93639a503416158c8cfc4a

Fix T69834 Edit Mesh: Multi-object edit crash when an instance is hidden

This was caused by a missing tag of the mesh datablock.

===

M   source/blender/editors/object/object_edit.c

===

diff --git a/source/blender/editors/object/object_edit.c 
b/source/blender/editors/object/object_edit.c
index 8012565ba2e..098a4c65ae0 100644
--- a/source/blender/editors/object/object_edit.c
+++ b/source/blender/editors/object/object_edit.c
@@ -544,6 +544,8 @@ bool ED_object_editmode_exit_ex(Main *bmain, Scene *scene, 
Object *obedit, int f
 if (UNLIKELY(obedit && obedit->mode & OB_MODE_EDIT)) {
   obedit->mode &= ~OB_MODE_EDIT;
 }
+/* Also happens when mesh is shared across multiple objects. [#T69834] */
+DEG_id_tag_update(>id, ID_RECALC_TRANSFORM | ID_RECALC_GEOMETRY);
 return true;
   }

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [300c64299c8] greasepencil-refactor: Merge branch 'greasepencil-object' into greasepencil-refactor

2020-02-05 Thread Antonio Vazquez
Commit: 300c64299c8f9e4add2b5b6d9cd5520bf3dbdd0c
Author: Antonio Vazquez
Date:   Wed Feb 5 17:07:43 2020 +0100
Branches: greasepencil-refactor
https://developer.blender.org/rB300c64299c8f9e4add2b5b6d9cd5520bf3dbdd0c

Merge branch 'greasepencil-object' into greasepencil-refactor

 Conflicts:
source/blender/blenloader/intern/readfile.c
source/blender/blenloader/intern/versioning_280.c

===



===

diff --cc source/blender/blenloader/intern/readfile.c
index e176415456e,4fba2c8b487..b89ca0bcbe5
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@@ -7204,28 -6937,18 +6937,18 @@@ static void direct_link_scene(FileData 
   * \{ */
  
  /* relink's grease pencil data's refs */
- static void lib_link_gpencil(FileData *fd, Main *main)
+ static void lib_link_gpencil(FileData *fd, Main *UNUSED(bmain), bGPdata *gpd)
  {
/* Relink all data-lock linked by GP data-lock */
-   for (bGPdata *gpd = main->gpencils.first; gpd; gpd = gpd->id.next) {
- if (gpd->id.tag & LIB_TAG_NEED_LINK) {
-   /* Layers */
-   LISTBASE_FOREACH (bGPDlayer *, gpl, >layers) {
- /* Layer -> Parent References */
- gpl->parent = newlibadr(fd, gpd->id.lib, gpl->parent);
-   }
- 
-   /* Data-block Stuff */
-   IDP_LibLinkProperty(gpd->id.properties, fd);
-   lib_link_animdata(fd, >id, gpd->adt);
- 
-   /* materials */
-   for (int a = 0; a < gpd->totcol; a++) {
- gpd->mat[a] = newlibadr_us(fd, gpd->id.lib, gpd->mat[a]);
-   }
+   /* Layers */
 -  for (bGPDlayer *gpl = gpd->layers.first; gpl; gpl = gpl->next) {
++LISTBASE_FOREACH(bGPDlayer*, gpl, >layers) {
+ /* Layer -> Parent References */
+ gpl->parent = newlibadr(fd, gpd->id.lib, gpl->parent);
+   }
  
-   gpd->id.tag &= ~LIB_TAG_NEED_LINK;
- }
+   /* materials */
+   for (int a = 0; a < gpd->totcol; a++) {
+ gpd->mat[a] = newlibadr_us(fd, gpd->id.lib, gpd->mat[a]);
}
  }
  
diff --cc source/blender/blenloader/intern/versioning_280.c
index 8468533d633,8ff82407e1c..ff5b98d13a4
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@@ -14,11 -14,11 +14,11 @@@
   * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
   */
  
--/** \file
-- * \ingroup blenloader
-- */
++ /** \file
++  * \ingroup blenloader
++  */
  
--/* allow readfile to use deprecated functionality */
++  /* allow readfile to use deprecated functionality */
  #define DNA_DEPRECATED_ALLOW
  
  #include 
@@@ -72,8 -71,8 +72,9 @@@
  #include "BKE_customdata.h"
  #include "BKE_fcurve.h"
  #include "BKE_freestyle.h"
+ #include "BKE_global.h"
  #include "BKE_gpencil.h"
 +#include "BKE_gpencil_modifier.h"
  #include "BKE_idprop.h"
  #include "BKE_key.h"
  #include "BKE_library.h"
@@@ -107,73 -106,73 +108,73 @@@
  /* Make preferences read-only, use versioning_userdef.c. */
  #define U (*((const UserDef *)))
  
--static bScreen *screen_parent_find(const bScreen *screen)
++static bScreen* screen_parent_find(const bScreen* screen)
  {
--  /* Can avoid lookup if screen state isn't maximized/full
--   * (parent and child store the same state). */
--  if (ELEM(screen->state, SCREENMAXIMIZED, SCREENFULL)) {
--for (const ScrArea *sa = screen->areabase.first; sa; sa = sa->next) {
--  if (sa->full && sa->full != screen) {
--BLI_assert(sa->full->state == screen->state);
--return sa->full;
--  }
--}
--  }
--
--  return NULL;
++  /* Can avoid lookup if screen state isn't maximized/full
++   * (parent and child store the same state). */
++  if (ELEM(screen->state, SCREENMAXIMIZED, SCREENFULL)) {
++  for (const ScrArea* sa = screen->areabase.first; sa; sa = 
sa->next) {
++  if (sa->full && sa->full != screen) {
++  BLI_assert(sa->full->state == screen->state);
++  return sa->full;
++  }
++  }
++  }
++
++  return NULL;
  }
  
--static void do_version_workspaces_create_from_screens(Main *bmain)
++static void do_version_workspaces_create_from_screens(Main* bmain)
  {
--  for (bScreen *screen = bmain->screens.first; screen; screen = 
screen->id.next) {
--const bScreen *screen_parent = screen_parent_find(screen);
--WorkSpace *workspace;
--if (screen->temp) {
--  continue;
--}
--
--if (screen_parent) {
--  /* Full-screen with "Back to Previous" option, don't create
--   * a new workspace, add layout workspace containing parent. */
--  workspace = BLI_findstring(
--  >workspaces, screen_parent->id.name + 2, offsetof(ID, name) 
+ 2);
--}
--else {
--  workspace = BKE_workspace_add(bmain, screen->id.name + 2);
--}
--if (workspace == NULL) {
--  continue; /* Not much we can 

[Bf-blender-cvs] [21f7accd3b0] greasepencil-refactor: include last master changes

2020-02-05 Thread Antonio Vazquez
Commit: 21f7accd3b0d0ad08c11ca6a0bd70e7939ad6f14
Author: Antonio Vazquez
Date:   Wed Feb 5 16:52:40 2020 +0100
Branches: greasepencil-refactor
https://developer.blender.org/rB21f7accd3b0d0ad08c11ca6a0bd70e7939ad6f14

include last master changes

There was a problem in the last merge

===

M   CMakeLists.txt
M   build_files/build_environment/patches/cmake/modules/FindBlosc.cmake
M   build_files/build_environment/patches/cmake/modules/FindCppUnit.cmake
M   build_files/build_environment/patches/cmake/modules/FindIlmBase.cmake
M   build_files/build_environment/patches/cmake/modules/FindLogC4Plus.cmake
M   build_files/build_environment/patches/cmake/modules/FindOpenEXR.cmake
M   build_files/build_environment/patches/cmake/modules/FindTBB.cmake
M   build_files/cmake/Modules/FindAlembic.cmake
M   build_files/cmake/Modules/FindAudaspace.cmake
M   build_files/cmake/Modules/FindBlosc.cmake
M   build_files/cmake/Modules/FindEigen3.cmake
M   build_files/cmake/Modules/FindEmbree.cmake
M   build_files/cmake/Modules/FindFftw3.cmake
M   build_files/cmake/Modules/FindGLEW.cmake
M   build_files/cmake/Modules/FindGflags.cmake
M   build_files/cmake/Modules/FindGlog.cmake
M   build_files/cmake/Modules/FindHDF5.cmake
M   build_files/cmake/Modules/FindIcuLinux.cmake
M   build_files/cmake/Modules/FindJack.cmake
M   build_files/cmake/Modules/FindJeMalloc.cmake
M   build_files/cmake/Modules/FindLZO.cmake
M   build_files/cmake/Modules/FindOpenCOLLADA.cmake
M   build_files/cmake/Modules/FindOpenColorIO.cmake
M   build_files/cmake/Modules/FindOpenEXR.cmake
M   build_files/cmake/Modules/FindOpenGLES.cmake
M   build_files/cmake/Modules/FindOpenImageDenoise.cmake
M   build_files/cmake/Modules/FindOpenImageIO.cmake
M   build_files/cmake/Modules/FindOpenJPEG.cmake
M   build_files/cmake/Modules/FindOpenShadingLanguage.cmake
M   build_files/cmake/Modules/FindOpenSubdiv.cmake
M   build_files/cmake/Modules/FindOpenVDB.cmake
M   build_files/cmake/Modules/FindOptiX.cmake
M   build_files/cmake/Modules/FindPCRE.cmake
M   build_files/cmake/Modules/FindPugiXML.cmake
M   build_files/cmake/Modules/FindPythonLibsUnix.cmake
M   build_files/cmake/Modules/FindSDL2.cmake
M   build_files/cmake/Modules/FindSndFile.cmake
M   build_files/cmake/Modules/FindSpacenav.cmake
M   build_files/cmake/Modules/FindTBB.cmake
M   build_files/cmake/Modules/FindUSD.cmake
M   build_files/cmake/Modules/FindXML2.cmake
M   build_files/cmake/platform/platform_unix.cmake
M   source/blender/blenloader/intern/readfile.c
M   source/blender/blenloader/intern/versioning_280.c
M   source/blender/collada/ErrorHandler.cpp
M   source/blender/makesdna/DNA_scene_types.h

===

diff --git a/CMakeLists.txt b/CMakeLists.txt
index bbca47f26c1..509de9943e2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -793,61 +793,6 @@ if(NOT CMAKE_BUILD_TYPE MATCHES "Release")
   endif()
 endif()
 
-#-
-# Platform specifics
-
-if(WITH_X11)
-  find_package(X11 REQUIRED)
-
-  find_path(X11_XF86keysym_INCLUDE_PATH X11/XF86keysym.h 
${X11_INC_SEARCH_PATH})
-  mark_as_advanced(X11_XF86keysym_INCLUDE_PATH)
-
-  list(APPEND PLATFORM_LINKLIBS ${X11_X11_LIB})
-
-  if(WITH_X11_XINPUT)
-if(X11_Xinput_LIB)
-  list(APPEND PLATFORM_LINKLIBS ${X11_Xinput_LIB})
-else()
-  message(FATAL_ERROR "LibXi not found. Disable WITH_X11_XINPUT if you
-  want to build without tablet support")
-endif()
-  endif()
-
-  if(WITH_X11_XF86VMODE)
-# 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)
-  list(APPEND PLATFORM_LINKLIBS ${X11_Xxf86vmode_LIB})
-else()
-  message(FATAL_ERROR "libXxf86vm not found. Disable WITH_X11_XF86VMODE if 
you
-  want to build without")
-endif()
-  endif()
-
-  if(WITH_X11_XFIXES)
-if(X11_Xfixes_LIB)
-  list(APPEND PLATFORM_LINKLIBS ${X11_Xfixes_LIB})
-else()
-  message(FATAL_ERROR "libXfixes not found. Disable WITH_X11_XFIXES if you
-  want to build without")
-endif()
-  endif()
-
-  if(WITH_X11_ALPHA)
-find_library(X11_Xrender_LIB Xrender  ${X11_LIB_SEARCH_PATH})
-mark_as_advanced(X11_Xrender_LIB)
-if(X11_Xrender_LIB)
-  list(APPEND PLATFORM_LINKLIBS ${X11_Xrender_LIB})
-else()
-  message(FATAL_ERROR "libXrender not found. Disable WITH_X11_ALPHA if you
-  want to build without")
-endif()
-  endif()
-
-endif()
-
-
 # 
 # Main Platform Checks
 #
diff --git 

[Bf-blender-cvs] [ea0dc96d77c] readfile-rework-refcount-handling: Merge branch 'master' into readfile-rework-refcount-handling

2020-02-05 Thread Bastien Montagne
Commit: ea0dc96d77c7513716d72e621d7167f5c7b62e8e
Author: Bastien Montagne
Date:   Wed Feb 5 17:04:59 2020 +0100
Branches: readfile-rework-refcount-handling
https://developer.blender.org/rBea0dc96d77c7513716d72e621d7167f5c7b62e8e

Merge branch 'master' into readfile-rework-refcount-handling

Conflicts:
source/blender/blenloader/intern/readfile.c

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [9829a3c4967] readfile-rework-refcount-handling: Refactor readfile's liblink code.

2020-02-05 Thread Bastien Montagne
Commit: 9829a3c496743e0e6a557c9283f8c2cf2d9c1aa2
Author: Bastien Montagne
Date:   Fri Jan 31 19:56:36 2020 +0100
Branches: readfile-rework-refcount-handling
https://developer.blender.org/rB9829a3c496743e0e6a557c9283f8c2cf2d9c1aa2

Refactor readfile's liblink code.

Liblink specific ID type function was so far running a loop over all IDs
of relevant type, unlike almost any other 'ID-callback-like' functions
in Blender, which usually let the looping controll to calling code.

The latter approach is more convinient when one want to add generic
(i.e. type-agnostic) code, since it typically only has to change code in
one place (caller function) instead of tens of places (all the callback
functions).

This commit also changes/sanitizes a few things that had nothing to do
in main liblink code, like mesh conversion from tessfaces to polys
(which can be done in after-linking versionning code), or scenes' cycles
detection/check regarding background 'set' scenes.

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

===

M   source/blender/blenloader/intern/readfile.c
M   source/blender/blenloader/intern/versioning_280.c
M   source/blender/makesdna/DNA_scene_types.h

===

diff --git a/source/blender/blenloader/intern/readfile.c 
b/source/blender/blenloader/intern/readfile.c
index 5a834f31528..bc3ddbe9bd3 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -105,6 +105,7 @@
 #include "BLT_translation.h"
 
 #include "BKE_action.h"
+#include "BKE_animsys.h"
 #include "BKE_armature.h"
 #include "BKE_brush.h"
 #include "BKE_collection.h"
@@ -2612,27 +2613,20 @@ static PreviewImage *direct_link_preview_image(FileData 
*fd, PreviewImage *old_p
 /** \name Read ID
  * \{ */
 
-static void lib_link_id(FileData *fd, Main *main)
+static void lib_link_id(FileData *fd, Main *UNUSED(bmain), ID *id)
 {
-  ListBase *lbarray[MAX_LIBARRAY];
-  int base_count, i;
-
-  base_count = set_listbasepointers(main, lbarray);
+  /* Note: WM IDProperties are never written to file, hence they should always 
be NULL here. */
+  BLI_assert((GS(id->name) != ID_WM) || id->properties == NULL);
+  IDP_LibLinkProperty(id->properties, fd);
 
-  for (i = 0; i < base_count; i++) {
-ListBase *lb = lbarray[i];
-ID *id;
+  AnimData *adt = BKE_animdata_from_id(id);
+  if (adt != NULL) {
+lib_link_animdata(fd, id, adt);
+  }
 
-for (id = lb->first; id; id = id->next) {
-  if (id->tag & LIB_TAG_NEED_LINK) {
-if (id->override_library) {
-  id->override_library->reference = newlibadr_us(
-  fd, id->lib, id->override_library->reference);
-  id->override_library->storage = newlibadr_us(fd, id->lib, 
id->override_library->storage);
-}
-/* DO NOT clear LIB_TAG_NEED_LINK here, it is used again by 
per-ID-type linkers. */
-  }
-}
+  if (id->override_library) {
+id->override_library->reference = newlibadr_us(fd, id->lib, 
id->override_library->reference);
+id->override_library->storage = newlibadr_us(fd, id->lib, 
id->override_library->storage);
   }
 }
 
@@ -2722,36 +2716,27 @@ static void direct_link_curveprofile(FileData *fd, 
CurveProfile *profile)
  * \{ */
 
 /* library brush linking after fileread */
-static void lib_link_brush(FileData *fd, Main *main)
-{
-  /* only link ID pointers */
-  for (Brush *brush = main->brushes.first; brush; brush = brush->id.next) {
-if (brush->id.tag & LIB_TAG_NEED_LINK) {
-  IDP_LibLinkProperty(brush->id.properties, fd);
-
-  /* brush->(mask_)mtex.obj is ignored on purpose? */
-  brush->mtex.tex = newlibadr_us(fd, brush->id.lib, brush->mtex.tex);
-  brush->mask_mtex.tex = newlibadr_us(fd, brush->id.lib, 
brush->mask_mtex.tex);
-  brush->clone.image = newlibadr(fd, brush->id.lib, brush->clone.image);
-  brush->toggle_brush = newlibadr(fd, brush->id.lib, brush->toggle_brush);
-  brush->paint_curve = newlibadr_us(fd, brush->id.lib, brush->paint_curve);
-
-  /* link default grease pencil palette */
-  if (brush->gpencil_settings != NULL) {
-if (brush->gpencil_settings->flag & GP_BRUSH_MATERIAL_PINNED) {
-  brush->gpencil_settings->material = newlibadr_us(
-  fd, brush->id.lib, brush->gpencil_settings->material);
-
-  if (!brush->gpencil_settings->material) {
-brush->gpencil_settings->flag &= ~GP_BRUSH_MATERIAL_PINNED;
-  }
-}
-else {
-  brush->gpencil_settings->material = NULL;
-}
-  }
+static void lib_link_brush(FileData *fd, Main *UNUSED(bmain), Brush *brush)
+{
+  /* brush->(mask_)mtex.obj is ignored on purpose? */
+  brush->mtex.tex = newlibadr_us(fd, brush->id.lib, brush->mtex.tex);
+  brush->mask_mtex.tex = newlibadr_us(fd, brush->id.lib, brush->mask_mtex.tex);
+  brush->clone.image = newlibadr(fd, brush->id.lib, 

[Bf-blender-cvs] [8c7503726df] readfile-rework-refcount-handling: readfile: Quick experiment with refcounting moved to libquery.

2020-02-05 Thread Bastien Montagne
Commit: 8c7503726df916ea74d94b853960d983bee80ccb
Author: Bastien Montagne
Date:   Mon Feb 3 10:41:56 2020 +0100
Branches: readfile-rework-refcount-handling
https://developer.blender.org/rB8c7503726df916ea74d94b853960d983bee80ccb

readfile: Quick experiment with refcounting moved to libquery.

Having that extra ID users handling at readfile level, besides generic
one ensured by libquery, has been something bothering me for a long time
(had to fix my share of bugs due to mismatches between those two areas).

Further more, work on undo speedup will require even more complex ID
refcount management if we want to keep it in readfile.c area.

So idea is instead to generalize what we did for linked data already
when undoing: recompute properly usercount numbers after liblink step,
for all IDs.

Note that extra time required here is neglectable in a whole .blend file
reading (few extra milliseconds when loading a full production scene
e.g.).

===

M   source/blender/blenkernel/intern/blendfile.c
M   source/blender/blenloader/intern/readfile.c

===

diff --git a/source/blender/blenkernel/intern/blendfile.c 
b/source/blender/blenkernel/intern/blendfile.c
index 62173393256..4c1d34292dc 100644
--- a/source/blender/blenkernel/intern/blendfile.c
+++ b/source/blender/blenkernel/intern/blendfile.c
@@ -364,16 +364,6 @@ static void setup_app_data(bContext *C,
 /* TODO(sergey): Can this be also move above? */
 RE_FreeAllPersistentData();
   }
-
-  if (mode == LOAD_UNDO) {
-/* In undo/redo case, we do a whole lot of magic tricks to avoid having to 
re-read linked
- * data-blocks from libraries (since those are not supposed to change). 
Unfortunately, that
- * means that we do not reset their user count, however we do increase 
that one when doing
- * lib_link on local IDs using linked ones.
- * There is no real way to predict amount of changes here, so we have to 
fully redo
- * refcounting . */
-BKE_main_id_refcount_recompute(bmain, true);
-  }
 }
 
 static void setup_app_blend_file_data(bContext *C,
diff --git a/source/blender/blenloader/intern/readfile.c 
b/source/blender/blenloader/intern/readfile.c
index bc3ddbe9bd3..daa2c26d881 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -1792,7 +1792,7 @@ static void *newlibadr_us(FileData *fd, const void *lib, 
const void *adr)
 {
   ID *id = newlibadr(fd, lib, adr);
 
-  id_us_plus_no_lib(id);
+  /* id_us_plus_no_lib(id); */
 
   return id;
 }
@@ -1808,7 +1808,7 @@ static void *newlibadr_real_us(FileData *fd, const void 
*lib, const void *adr)
 {
   ID *id = newlibadr(fd, lib, adr);
 
-  id_us_ensure_real(id);
+  /* id_us_ensure_real(id); */
 
   return id;
 }
@@ -9395,7 +9395,7 @@ static void do_versions_after_linking(Main *main, 
ReportList *reports)
 /*  */
 /** \name Read Library Data Block (all)
  * \{ */
-
+#include "PIL_time_utildefines.h"
 static void lib_link_all(FileData *fd, Main *bmain)
 {
   ID *id;
@@ -9537,6 +9537,10 @@ static void lib_link_all(FileData *fd, Main *bmain)
   }
   FOREACH_MAIN_ID_END;
 
+  TIMEIT_START(readfile_refcount_recomp);
+  BKE_main_id_refcount_recompute(bmain, false);
+  TIMEIT_END(readfile_refcount_recomp);
+
   /* Check for possible cycles in scenes' 'set' background property. */
   lib_link_scenes_check_set(bmain);

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [994e9f702fb] blender-v2.82-release: Fix T70121 EEVEE/GPencil: Curves cause crash when using background rendering

2020-02-05 Thread Clément Foucault
Commit: 994e9f702fb55c309fc84a1bb89fbf3f9c4a1fea
Author: Clément Foucault
Date:   Wed Feb 5 16:05:34 2020 +0100
Branches: blender-v2.82-release
https://developer.blender.org/rB994e9f702fb55c309fc84a1bb89fbf3f9c4a1fea

Fix T70121 EEVEE/GPencil: Curves cause crash when using background rendering

This was caused by a faulty initialization of cache->surf_per_mat which
should have been empty.

===

M   source/blender/draw/intern/draw_cache_impl_curve.c

===

diff --git a/source/blender/draw/intern/draw_cache_impl_curve.c 
b/source/blender/draw/intern/draw_cache_impl_curve.c
index 25699cd7653..1c3996e2290 100644
--- a/source/blender/draw/intern/draw_cache_impl_curve.c
+++ b/source/blender/draw/intern/draw_cache_impl_curve.c
@@ -458,16 +458,10 @@ static void curve_batch_cache_init(Curve *cu)
 #endif
 
   cache->cd_used = 0;
-  cache->mat_len = max_ii(1, cu->totcol);
-  cache->surf_per_mat_tris = MEM_mallocN(sizeof(*cache->surf_per_mat_tris) * 
cache->mat_len,
+  cache->mat_len = DRW_curve_material_count_get(cu);
+  cache->surf_per_mat_tris = MEM_callocN(sizeof(*cache->surf_per_mat_tris) * 
cache->mat_len,
  __func__);
-  cache->surf_per_mat = MEM_mallocN(sizeof(*cache->surf_per_mat) * 
cache->mat_len, __func__);
-
-  /* TODO Might be wiser to alloc in one chunk. */
-  for (int i = 0; i < cache->mat_len; i++) {
-cache->surf_per_mat_tris[i] = MEM_callocN(sizeof(GPUIndexBuf), 
"GPUIndexBuf");
-cache->surf_per_mat[i] = MEM_callocN(sizeof(GPUBatch), "GPUBatch");
-  }
+  cache->surf_per_mat = MEM_callocN(sizeof(*cache->surf_per_mat) * 
cache->mat_len, __func__);
 
   cache->is_editmode = (cu->editnurb != NULL) || (cu->editfont != NULL);
 
@@ -934,15 +928,13 @@ void DRW_curve_batch_cache_create_requested(Object *ob)
 
   /* Verify that all surface batches have needed attribute layers. */
   /* TODO(fclem): We could be a bit smarter here and only do it per material. 
*/
-  for (int i = 0; i < cache->mat_len; i++) {
-if ((cache->cd_used & cache->cd_needed) != cache->cd_needed) {
+  if ((cache->cd_used & cache->cd_needed) != cache->cd_needed) {
+for (int i = 0; i < cache->mat_len; i++) {
   /* We can't discard batches at this point as they have been
* referenced for drawing. Just clear them in place. */
-  GPU_batch_clear(cache->surf_per_mat[i]);
-  memset(cache->surf_per_mat[i], 0, sizeof(*cache->surf_per_mat[i]));
+  GPU_BATCH_CLEAR_SAFE(cache->surf_per_mat[i]);
 }
-  }
-  if ((cache->cd_used & cache->cd_needed) != cache->cd_needed) {
+
 cache->cd_used |= cache->cd_needed;
 cache->cd_needed = 0;
   }

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [b841167ee35] master: Refactor readfile's liblink code.

2020-02-05 Thread Bastien Montagne
Commit: b841167ee35a483b34db343be7ac3291f162711b
Author: Bastien Montagne
Date:   Wed Feb 5 16:18:17 2020 +0100
Branches: master
https://developer.blender.org/rBb841167ee35a483b34db343be7ac3291f162711b

Refactor readfile's liblink code.

Liblink specific ID type function was so far running a loop over all IDs
of relevant type, unlike almost any other 'ID-callback-like' functions
in Blender, which usually let the looping controll to calling code.

The latter approach is more convinient when one want to add generic
(i.e. type-agnostic) code, since it typically only has to change code in
one place (caller function) instead of tens of places (all the callback
functions).

This commit also changes/sanitizes a few things that had nothing to do
in main liblink code, like mesh conversion from tessfaces to polys
(which can be done in after-linking versionning code), or scenes' cycles
detection/check regarding background 'set' scenes.

Reviewed By: brecht

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

===

M   source/blender/blenloader/intern/readfile.c
M   source/blender/blenloader/intern/versioning_280.c
M   source/blender/makesdna/DNA_scene_types.h

===

diff --git a/source/blender/blenloader/intern/readfile.c 
b/source/blender/blenloader/intern/readfile.c
index e55e96e31d9..30becd855ae 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -105,6 +105,7 @@
 #include "BLT_translation.h"
 
 #include "BKE_action.h"
+#include "BKE_animsys.h"
 #include "BKE_armature.h"
 #include "BKE_brush.h"
 #include "BKE_collection.h"
@@ -2612,27 +2613,20 @@ static PreviewImage *direct_link_preview_image(FileData 
*fd, PreviewImage *old_p
 /** \name Read ID
  * \{ */
 
-static void lib_link_id(FileData *fd, Main *main)
+static void lib_link_id(FileData *fd, Main *UNUSED(bmain), ID *id)
 {
-  ListBase *lbarray[MAX_LIBARRAY];
-  int base_count, i;
-
-  base_count = set_listbasepointers(main, lbarray);
+  /* Note: WM IDProperties are never written to file, hence they should always 
be NULL here. */
+  BLI_assert((GS(id->name) != ID_WM) || id->properties == NULL);
+  IDP_LibLinkProperty(id->properties, fd);
 
-  for (i = 0; i < base_count; i++) {
-ListBase *lb = lbarray[i];
-ID *id;
+  AnimData *adt = BKE_animdata_from_id(id);
+  if (adt != NULL) {
+lib_link_animdata(fd, id, adt);
+  }
 
-for (id = lb->first; id; id = id->next) {
-  if (id->tag & LIB_TAG_NEED_LINK) {
-if (id->override_library) {
-  id->override_library->reference = newlibadr_us(
-  fd, id->lib, id->override_library->reference);
-  id->override_library->storage = newlibadr_us(fd, id->lib, 
id->override_library->storage);
-}
-/* DO NOT clear LIB_TAG_NEED_LINK here, it is used again by 
per-ID-type linkers. */
-  }
-}
+  if (id->override_library) {
+id->override_library->reference = newlibadr_us(fd, id->lib, 
id->override_library->reference);
+id->override_library->storage = newlibadr_us(fd, id->lib, 
id->override_library->storage);
   }
 }
 
@@ -2734,36 +2728,27 @@ static void direct_link_curveprofile(FileData *fd, 
CurveProfile *profile)
  * \{ */
 
 /* library brush linking after fileread */
-static void lib_link_brush(FileData *fd, Main *main)
-{
-  /* only link ID pointers */
-  for (Brush *brush = main->brushes.first; brush; brush = brush->id.next) {
-if (brush->id.tag & LIB_TAG_NEED_LINK) {
-  IDP_LibLinkProperty(brush->id.properties, fd);
-
-  /* brush->(mask_)mtex.obj is ignored on purpose? */
-  brush->mtex.tex = newlibadr_us(fd, brush->id.lib, brush->mtex.tex);
-  brush->mask_mtex.tex = newlibadr_us(fd, brush->id.lib, 
brush->mask_mtex.tex);
-  brush->clone.image = newlibadr(fd, brush->id.lib, brush->clone.image);
-  brush->toggle_brush = newlibadr(fd, brush->id.lib, brush->toggle_brush);
-  brush->paint_curve = newlibadr_us(fd, brush->id.lib, brush->paint_curve);
-
-  /* link default grease pencil palette */
-  if (brush->gpencil_settings != NULL) {
-if (brush->gpencil_settings->flag & GP_BRUSH_MATERIAL_PINNED) {
-  brush->gpencil_settings->material = newlibadr_us(
-  fd, brush->id.lib, brush->gpencil_settings->material);
-
-  if (!brush->gpencil_settings->material) {
-brush->gpencil_settings->flag &= ~GP_BRUSH_MATERIAL_PINNED;
-  }
-}
-else {
-  brush->gpencil_settings->material = NULL;
-}
-  }
+static void lib_link_brush(FileData *fd, Main *UNUSED(bmain), Brush *brush)
+{
+  /* brush->(mask_)mtex.obj is ignored on purpose? */
+  brush->mtex.tex = newlibadr_us(fd, brush->id.lib, brush->mtex.tex);
+  brush->mask_mtex.tex = newlibadr_us(fd, brush->id.lib, brush->mask_mtex.tex);
+  brush->clone.image = newlibadr(fd, brush->id.lib, 

[Bf-blender-cvs] [5f8ee2a36b6] greasepencil-object: GPencil: Fix renamed functions after merge

2020-02-05 Thread Antonio Vazquez
Commit: 5f8ee2a36b6004b6f4866c51caeb63ebfafb3328
Author: Antonio Vazquez
Date:   Wed Feb 5 11:39:55 2020 +0100
Branches: greasepencil-object
https://developer.blender.org/rB5f8ee2a36b6004b6f4866c51caeb63ebfafb3328

GPencil: Fix renamed functions after merge

===

M   source/blender/blenkernel/intern/brush.c
M   source/blender/blenkernel/intern/gpencil.c
M   source/blender/blenloader/intern/versioning_defaults.c
M   source/blender/draw/engines/gpencil/gpencil_draw_utils.c
M   source/blender/editors/gpencil/gpencil_merge.c
M   source/blender/editors/gpencil/gpencil_vertex_ops.c

===

diff --git a/source/blender/blenkernel/intern/brush.c 
b/source/blender/blenkernel/intern/brush.c
index 0ca2dbe8784..2879905795b 100644
--- a/source/blender/blenkernel/intern/brush.c
+++ b/source/blender/blenkernel/intern/brush.c
@@ -320,7 +320,7 @@ void BKE_gpencil_brush_preset_set(Main *bmain, Brush 
*brush, const short type)
* drawn. */
   Material *ma = BLI_findstring(>materials, "Dots Stroke", 
offsetof(ID, name) + 2);
   if (ma == NULL) {
-ma = BKE_material_add_gpencil(bmain, "Dots Stroke");
+ma = BKE_gpencil_material_add(bmain, "Dots Stroke");
   }
   brush->gpencil_settings->material = ma;
   /* Pin the matterial to the brush. */
diff --git a/source/blender/blenkernel/intern/gpencil.c 
b/source/blender/blenkernel/intern/gpencil.c
index 9ddba9384a6..c604502e87a 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -2379,21 +2379,21 @@ bool BKE_gpencil_merge_materials_table_get(Object *ob,
   MaterialGPencilStyle *gp_style_primary = NULL;
   MaterialGPencilStyle *gp_style_secondary = NULL;
 
-  short *totcol = give_totcolp(ob);
+  short *totcol = BKE_object_material_num(ob);
   if (totcol == 0) {
 return changed;
   }
 
   for (int idx_primary = 0; idx_primary < *totcol; idx_primary++) {
 /* Read primary material to compare. */
-ma_primary = BKE_material_gpencil_get(ob, idx_primary + 1);
+ma_primary = BKE_gpencil_material(ob, idx_primary + 1);
 if (ma_primary == NULL) {
   continue;
 }
 
 for (int idx_secondary = idx_primary + 1; idx_secondary < *totcol; 
idx_secondary++) {
   /* Read secondary material to compare with primary material. */
-  ma_secondary = BKE_material_gpencil_get(ob, idx_secondary + 1);
+  ma_secondary = BKE_gpencil_material(ob, idx_secondary + 1);
   if ((ma_secondary == NULL) ||
   (BLI_ghash_haskey(r_mat_table, POINTER_FROM_INT(idx_secondary {
 continue;
diff --git a/source/blender/blenloader/intern/versioning_defaults.c 
b/source/blender/blenloader/intern/versioning_defaults.c
index 4364aeba5cc..8dc71dd314e 100644
--- a/source/blender/blenloader/intern/versioning_defaults.c
+++ b/source/blender/blenloader/intern/versioning_defaults.c
@@ -612,14 +612,14 @@ void BLO_update_defaults_startup_blend(Main *bmain, const 
char *app_template)
 /* Dots Stroke. */
 ma = BLI_findstring(>materials, "Dots Stroke", offsetof(ID, name) + 
2);
 if (ma == NULL) {
-  ma = BKE_material_add_gpencil(bmain, "Dots Stroke");
+  ma = BKE_gpencil_material_add(bmain, "Dots Stroke");
 }
 ma->gp_style->mode = GP_STYLE_MODE_DOTS;
 
 /* Boxes Stroke. */
 ma = BLI_findstring(>materials, "Boxes Stroke", offsetof(ID, name) 
+ 2);
 if (ma == NULL) {
-  ma = BKE_material_add_gpencil(bmain, "Boxes Stroke");
+  ma = BKE_gpencil_material_add(bmain, "Boxes Stroke");
 }
 ma->gp_style->mode = GP_STYLE_MODE_BOX;
 
diff --git a/source/blender/draw/engines/gpencil/gpencil_draw_utils.c 
b/source/blender/draw/engines/gpencil/gpencil_draw_utils.c
index 826151b922f..f2fc77dccf6 100644
--- a/source/blender/draw/engines/gpencil/gpencil_draw_utils.c
+++ b/source/blender/draw/engines/gpencil/gpencil_draw_utils.c
@@ -928,7 +928,7 @@ static void gpencil_add_fill_vertexdata(GpencilBatchCache 
*cache,
   const bool attenuate = (GPENCIL_VERTEX_MODE(gpd) &&
   
GPENCIL_ANY_VERTEX_MASK(ts->gpencil_selectmode_vertex));
 
-  MaterialGPencilStyle *gp_style = BKE_material_gpencil_settings_get(ob, 
gps->mat_nr + 1);
+  MaterialGPencilStyle *gp_style = BKE_gpencil_material_settings(ob, 
gps->mat_nr + 1);
   if (gps->totpoints >= 3) {
 float tfill[4];
 /* set color using material, tint color and opacity */
@@ -1097,7 +1097,7 @@ static void 
gpencil_add_editpoints_vertexdata(GpencilBatchCache *cache,
   const bool hide_vertex_lines = (GPENCIL_VERTEX_MODE(gpd) && 
(use_vertex_mask) &&
   ((v3d->gp_flag & 
V3D_GP_SHOW_MULTIEDIT_LINES) == 0));
 
-  MaterialGPencilStyle *gp_style = BKE_material_gpencil_settings_get(ob, 
gps->mat_nr + 1);
+  MaterialGPencilStyle *gp_style = BKE_gpencil_material_settings(ob, 
gps->mat_nr + 1);
 
   /* alpha 

[Bf-blender-cvs] [7a88e2c1587] greasepencil-refactor: GPencil: Fix function renaming after merge

2020-02-05 Thread Antonio Vazquez
Commit: 7a88e2c158796317af19b1a0565e26613fc52e42
Author: Antonio Vazquez
Date:   Wed Feb 5 11:46:18 2020 +0100
Branches: greasepencil-refactor
https://developer.blender.org/rB7a88e2c158796317af19b1a0565e26613fc52e42

GPencil: Fix function renaming after merge

===

M   source/blender/draw/engines/gpencil/gpencil_draw_data.c
M   source/blender/draw/engines/gpencil/gpencil_engine.c
M   source/blender/draw/engines/overlay/overlay_gpencil.c
M   source/blender/draw/engines/overlay/overlay_outline.c
M   source/blender/editors/gpencil/gpencil_fill.c
M   source/blender/editors/gpencil/gpencil_sculpt_paint.c
M   source/blender/gpencil_modifiers/intern/MOD_gpencilcolor.c
M   source/blender/gpencil_modifiers/intern/MOD_gpenciltint.c

===

diff --git a/source/blender/draw/engines/gpencil/gpencil_draw_data.c 
b/source/blender/draw/engines/gpencil/gpencil_draw_data.c
index e0126168256..97e5a44f0ab 100644
--- a/source/blender/draw/engines/gpencil/gpencil_draw_data.c
+++ b/source/blender/draw/engines/gpencil/gpencil_draw_data.c
@@ -261,7 +261,7 @@ GPENCIL_MaterialPool 
*gpencil_material_pool_create(GPENCIL_PrivateData *pd, Obje
 int mat_id = pool->used_count++;
 
 gpMaterial *mat_data = >mat_data[mat_id];
-MaterialGPencilStyle *gp_style = BKE_material_gpencil_settings_get(ob, i + 
1);
+MaterialGPencilStyle *gp_style = BKE_gpencil_material_settings(ob, i + 1);
 
 if (gp_style->mode == GP_MATERIAL_MODE_LINE) {
   mat_data->flag = 0;
diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.c 
b/source/blender/draw/engines/gpencil/gpencil_engine.c
index be2ac9cb818..8736857c45c 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.c
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.c
@@ -517,7 +517,7 @@ static void gp_stroke_cache_populate(bGPDlayer *gpl, 
bGPDframe *gpf, bGPDstroke
 {
   gpIterPopulateData *iter = (gpIterPopulateData *)thunk;
 
-  MaterialGPencilStyle *gp_style = BKE_material_gpencil_settings_get(iter->ob, 
gps->mat_nr + 1);
+  MaterialGPencilStyle *gp_style = BKE_gpencil_material_settings(iter->ob, 
gps->mat_nr + 1);
 
   bool hide_material = (gp_style->flag & GP_MATERIAL_HIDE) != 0;
   bool show_stroke = (gp_style->flag & GP_MATERIAL_STROKE_SHOW) != 0;
diff --git a/source/blender/draw/engines/overlay/overlay_gpencil.c 
b/source/blender/draw/engines/overlay/overlay_gpencil.c
index 6e61698412c..c96c448c63b 100644
--- a/source/blender/draw/engines/overlay/overlay_gpencil.c
+++ b/source/blender/draw/engines/overlay/overlay_gpencil.c
@@ -292,7 +292,7 @@ static void 
overlay_gpencil_draw_stroke_color_name(bGPDlayer *UNUSED(gpl),
void *thunk)
 {
   Object *ob = (Object *)thunk;
-  Material *ma = give_current_material(ob, gps->mat_nr + 1);
+  Material *ma = BKE_object_material_get(ob, gps->mat_nr + 1);
   if (ma == NULL) {
 return;
   }
diff --git a/source/blender/draw/engines/overlay/overlay_outline.c 
b/source/blender/draw/engines/overlay/overlay_outline.c
index ab04244db6e..e77a0a143a9 100644
--- a/source/blender/draw/engines/overlay/overlay_outline.c
+++ b/source/blender/draw/engines/overlay/overlay_outline.c
@@ -207,7 +207,7 @@ static void gp_stroke_cache_populate(bGPDlayer *UNUSED(gpl),
 {
   iterData *iter = (iterData *)thunk;
 
-  MaterialGPencilStyle *gp_style = BKE_material_gpencil_settings_get(iter->ob, 
gps->mat_nr + 1);
+  MaterialGPencilStyle *gp_style = BKE_gpencil_material_settings(iter->ob, 
gps->mat_nr + 1);
 
   bool hide_material = (gp_style->flag & GP_MATERIAL_HIDE) != 0;
   bool show_stroke = (gp_style->flag & GP_MATERIAL_STROKE_SHOW) != 0;
diff --git a/source/blender/editors/gpencil/gpencil_fill.c 
b/source/blender/editors/gpencil/gpencil_fill.c
index 86324c7cb72..8c8a9c5238f 100644
--- a/source/blender/editors/gpencil/gpencil_fill.c
+++ b/source/blender/editors/gpencil/gpencil_fill.c
@@ -275,7 +275,7 @@ static void gp_draw_datablock(tGPDfill *tgpf, const float 
ink[4])
 continue;
   }
   /* check if the color is visible */
-  MaterialGPencilStyle *gp_style = BKE_material_gpencil_settings_get(ob, 
gps->mat_nr + 1);
+  MaterialGPencilStyle *gp_style = BKE_gpencil_material_settings(ob, 
gps->mat_nr + 1);
   if ((gp_style == NULL) || (gp_style->flag & GP_MATERIAL_HIDE)) {
 continue;
   }
diff --git a/source/blender/editors/gpencil/gpencil_sculpt_paint.c 
b/source/blender/editors/gpencil/gpencil_sculpt_paint.c
index 5ed8a182713..31227b8254b 100644
--- a/source/blender/editors/gpencil/gpencil_sculpt_paint.c
+++ b/source/blender/editors/gpencil/gpencil_sculpt_paint.c
@@ -1662,7 +1662,7 @@ static bool gpsculpt_brush_do_frame(bContext *C,
 if (redo_geom) {
   bGPDstroke *gps_active = (gps->runtime.gps_orig) ? gps->runtime.gps_orig 
: gps;
   if (gpl->actframe == gpf) {
-

[Bf-blender-cvs] [23018417d59] greasepencil-refactor: Merge branch 'greasepencil-object' into greasepencil-refactor

2020-02-05 Thread Antonio Vazquez
Commit: 23018417d59c91ab32d41f62ab5261a6bee5d991
Author: Antonio Vazquez
Date:   Wed Feb 5 11:42:35 2020 +0100
Branches: greasepencil-refactor
https://developer.blender.org/rB23018417d59c91ab32d41f62ab5261a6bee5d991

Merge branch 'greasepencil-object' into greasepencil-refactor

 Conflicts:
source/blender/blenkernel/intern/gpencil_modifier.c
source/blender/draw/engines/gpencil/gpencil_draw_utils.c
source/blender/draw/engines/gpencil/gpencil_engine.c
source/blender/draw/engines/overlay/overlay_extra.c
source/blender/editors/gpencil/gpencil_fill.c
source/blender/editors/gpencil/gpencil_utils.c
source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
source/blender/gpencil_modifiers/intern/MOD_gpencilcolor.c
source/blender/gpencil_modifiers/intern/MOD_gpencilopacity.c
source/blender/gpencil_modifiers/intern/MOD_gpenciltint.c

===



===

diff --cc source/blender/blenkernel/intern/gpencil.c
index 6b2fcf8334d,c604502e87a..ee674001caf
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@@ -1126,9 -1129,9 +1126,9 @@@ Material *BKE_gpencil_object_material_e
  Material *ma = BKE_gpencil_brush_material_get(brush);
  
  /* check if the material is already on object material slots and add it 
if missing */
 -if (ma && BKE_gpencil_object_material_get_index(ob, ma) < 0) {
 +if (ma && BKE_gpencil_object_material_index_get(ob, ma) < 0) {
BKE_object_material_slot_add(bmain, ob);
-   assign_material(bmain, ob, ma, ob->totcol, BKE_MAT_ASSIGN_USERPREF);
+   BKE_object_material_assign(bmain, ob, ma, ob->totcol, 
BKE_MAT_ASSIGN_USERPREF);
  }
  
  return ma;
@@@ -1145,10 -1148,10 +1145,10 @@@ int BKE_gpencil_object_material_ensure(
if (!material) {
  return -1;
}
 -  int index = BKE_gpencil_object_material_get_index(ob, material);
 +  int index = BKE_gpencil_object_material_index_get(ob, material);
if (index < 0) {
  BKE_object_material_slot_add(bmain, ob);
- assign_material(bmain, ob, material, ob->totcol, BKE_MAT_ASSIGN_USERPREF);
+ BKE_object_material_assign(bmain, ob, material, ob->totcol, 
BKE_MAT_ASSIGN_USERPREF);
  return ob->totcol - 1;
}
return index;
@@@ -2485,12 -2482,12 +2485,12 @@@ void BKE_gpencil_stats_update(bGPdata *
  }
  
  /* get material index (0-based like mat_nr not actcol) */
 -int BKE_gpencil_object_material_get_index(Object *ob, Material *ma)
 +int BKE_gpencil_object_material_index_get(Object *ob, Material *ma)
  {
-   short *totcol = give_totcolp(ob);
+   short *totcol = BKE_object_material_num(ob);
Material *read_ma = NULL;
for (short i = 0; i < *totcol; i++) {
- read_ma = give_current_material(ob, i + 1);
+ read_ma = BKE_object_material_get(ob, i + 1);
  if (ma == read_ma) {
return i;
  }
@@@ -3392,9 -3368,9 +3392,9 @@@ static void gpencil_convert_spline(Mai
  else if ((only_stroke) || (do_stroke)) {
/* Also use the first color if the fill is none for stroke color. */
if (ob_cu->totcol > 0) {
- mat_curve = give_current_material(ob_cu, 1);
+ mat_curve = BKE_object_material_get(ob_cu, 1);
  if (mat_curve) {
 -  linearrgb_to_srgb_v3_v3(mat_gp->gp_style->stroke_rgba, 
_curve->r);
 +  copy_v3_v3(mat_gp->gp_style->stroke_rgba, _curve->r);
mat_gp->gp_style->stroke_rgba[3] = mat_curve->a;
/* Set fill and stroke depending of curve type (3D or 2D). */
if ((cu->flag & CU_3D) || ((cu->flag & (CU_FRONT | CU_BACK)) == 0)) 
{
diff --cc source/blender/blenloader/intern/versioning_defaults.c
index ecc87a72fc9,8dc71dd314e..1c0ea8d20ed
--- a/source/blender/blenloader/intern/versioning_defaults.c
+++ b/source/blender/blenloader/intern/versioning_defaults.c
@@@ -614,16 -612,16 +614,16 @@@ void BLO_update_defaults_startup_blend(
  /* Dots Stroke. */
  ma = BLI_findstring(>materials, "Dots Stroke", offsetof(ID, name) 
+ 2);
  if (ma == NULL) {
-   ma = BKE_material_add_gpencil(bmain, "Dots Stroke");
+   ma = BKE_gpencil_material_add(bmain, "Dots Stroke");
  }
 -ma->gp_style->mode = GP_STYLE_MODE_DOTS;
 +ma->gp_style->mode = GP_MATERIAL_MODE_DOT;
  
  /* Boxes Stroke. */
  ma = BLI_findstring(>materials, "Boxes Stroke", offsetof(ID, name) 
+ 2);
  if (ma == NULL) {
-   ma = BKE_material_add_gpencil(bmain, "Boxes Stroke");
+   ma = BKE_gpencil_material_add(bmain, "Boxes Stroke");
  }
 -ma->gp_style->mode = GP_STYLE_MODE_BOX;
 +ma->gp_style->mode = GP_MATERIAL_MODE_SQUARE;
  
  /* Reset all grease pencil brushes. */
  Scene *scene = bmain->scenes.first;
diff --cc source/blender/editors/gpencil/drawgpencil.c
index 275089e0beb,d6e96c08fdc..b2b3670941f
--- 

[Bf-blender-cvs] [76ef2f55d28] greasepencil-object: Cleanup: Remove unused function: give_node_material()

2020-02-05 Thread Antonio Vazquez
Commit: 76ef2f55d2897561e324f1ce65899498c86c462d
Author: Antonio Vazquez
Date:   Wed Feb 5 11:25:50 2020 +0100
Branches: greasepencil-object
https://developer.blender.org/rB76ef2f55d2897561e324f1ce65899498c86c462d

Cleanup: Remove unused function: give_node_material()

===

M   source/blender/blenkernel/BKE_material.h
M   source/blender/blenkernel/intern/material.c
M   source/blender/editors/animation/anim_filter.c

===

diff --git a/source/blender/blenkernel/BKE_material.h 
b/source/blender/blenkernel/BKE_material.h
index a0a41a048e3..0fd08dc3246 100644
--- a/source/blender/blenkernel/BKE_material.h
+++ b/source/blender/blenkernel/BKE_material.h
@@ -60,7 +60,6 @@ void BKE_material_copy_data(struct Main *bmain,
 const int flag);
 struct Material *BKE_material_copy(struct Main *bmain, const struct Material 
*ma);
 struct Material *BKE_material_localize(struct Material *ma);
-struct Material *give_node_material(struct Material *ma); /* returns node 
material or self */
 void BKE_material_make_local(struct Main *bmain, struct Material *ma, const 
bool lib_local);
 void BKE_gpencil_material_attr_init(struct Material *ma);
 
@@ -87,7 +86,10 @@ struct Material *BKE_object_material_get(struct Object *ob, 
short act);
 void BKE_id_material_assign(struct Main *bmain, struct ID *id, struct Material 
*ma, short act);
 void BKE_object_material_assign(
 struct Main *bmain, struct Object *ob, struct Material *ma, short act, int 
assign_type);
-void BKE_object_material_array_assign(struct Main *bmain, struct Object *ob, 
struct Material ***matar, short totcol);
+void BKE_object_material_array_assign(struct Main *bmain,
+  struct Object *ob,
+  struct Material ***matar,
+  short totcol);
 
 short BKE_object_material_slot_find_index(struct Object *ob, struct Material 
*ma);
 bool BKE_object_material_slot_add(struct Main *bmain, struct Object *ob);
diff --git a/source/blender/blenkernel/intern/material.c 
b/source/blender/blenkernel/intern/material.c
index 91fc0519c07..8159cc03414 100644
--- a/source/blender/blenkernel/intern/material.c
+++ b/source/blender/blenkernel/intern/material.c
@@ -618,19 +618,6 @@ MaterialGPencilStyle *BKE_gpencil_material_settings(Object 
*ob, short act)
   }
 }
 
-Material *give_node_material(Material *ma)
-{
-  if (ma && ma->use_nodes && ma->nodetree) {
-bNode *node = nodeGetActiveID(ma->nodetree, ID_MA);
-
-if (node) {
-  return (Material *)node->id;
-}
-  }
-
-  return NULL;
-}
-
 void BKE_material_resize_object(Main *bmain, Object *ob, const short totcol, 
bool do_id_user)
 {
   Material **newmatar;
@@ -937,7 +924,10 @@ void BKE_material_remap_object_calc(Object *ob_dst, Object 
*ob_src, short *remap
 }
 
 /* XXX - this calls many more update calls per object then are needed, could 
be optimized */
-void BKE_object_material_array_assign(Main *bmain, struct Object *ob, struct 
Material ***matar, short totcol)
+void BKE_object_material_array_assign(Main *bmain,
+  struct Object *ob,
+  struct Material ***matar,
+  short totcol)
 {
   int actcol_orig = ob->actcol;
   short i;
diff --git a/source/blender/editors/animation/anim_filter.c 
b/source/blender/editors/animation/anim_filter.c
index b3a9353bb74..a9ddc53e5bb 100644
--- a/source/blender/editors/animation/anim_filter.c
+++ b/source/blender/editors/animation/anim_filter.c
@@ -2290,7 +2290,6 @@ static size_t animdata_filter_ds_material(
 static size_t animdata_filter_ds_materials(
 bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Object *ob, int 
filter_mode)
 {
-  bool has_nested = false;
   size_t items = 0;
   int a = 0;
 
@@ -2302,34 +2301,6 @@ static size_t animdata_filter_ds_materials(
 if (ma) {
   /* add channels */
   items += animdata_filter_ds_material(ac, anim_data, ads, ma, 
filter_mode);
-
-  /* for optimising second pass - check if there's a nested material here 
to come back for */
-  if (has_nested == false) {
-has_nested = (give_node_material(ma) != NULL);
-  }
-}
-  }
-
-  /* Second pass: go through a second time looking for "nested" materials
-   * (material.material references).
-   *
-   * NOTE: here we ignore the expanded status of the parent, as it could be 
too confusing as to
-   * why these are disappearing/not available,
-   * since the relationships between these is not that clear.
-   */
-  if (has_nested) {
-for (a = 1; a <= ob->totcol; a++) {
-  Material *base = BKE_object_material_get(ob, a);
-  Material *ma = give_node_material(base);
-
-  /* add channels from the nested material if it exists
-   *   - skip if the same material is referenced in 

[Bf-blender-cvs] [5314efc4cc1] greasepencil-object: T73589: Code Quality: Renaming on BKE_material.h

2020-02-05 Thread Antonio Vazquez
Commit: 5314efc4cc12955d64c6a84c4e30346e49a3ab14
Author: Antonio Vazquez
Date:   Wed Feb 5 11:23:58 2020 +0100
Branches: greasepencil-object
https://developer.blender.org/rB5314efc4cc12955d64c6a84c4e30346e49a3ab14

T73589: Code Quality: Renaming on BKE_material.h

Old Name New Name
==
init_def_materialBKE_materials_init
BKE_material_gpencil_default_freeBKE_materials_exit
test_object_materialsBKE_object_materials_test
test_all_objects_materials   BKE_objects_materials_test_all
give_matarar BKE_object_material_array
give_totcolp BKE_object_material_num
give_current_material_p  BKE_object_material_get_p
give_current_materialBKE_object_material_get
assign_material  BKE_object_material_assign
assign_matarar   BKE_object_material_array_assign
give_matarar_id  BKE_id_material_array
give_totcolp_id  BKE_id_material_num
assign_material_id   BKE_id_material_assign
clear_matcopybuf BKE_material_copybuf_clear
free_matcopybuf  BKE_material_copybuf_free
copy_matcopybuf  BKE_material_copybuf_copy
paste_matcopybuf BKE_material_copybuf_paste
BKE_material_init_gpencil_settings   BKE_gpencil_material_attr_init
BKE_material_add_gpencil BKE_gpencil_material_add
BKE_material_gpencil_get BKE_gpencil_material
BKE_material_gpencil_default_get BKE_gpencil_material_default
BKE_material_gpencil_settings_getBKE_gpencil_material_settings

===

M   source/blender/alembic/intern/abc_mesh.cc
M   source/blender/blenkernel/BKE_material.h
M   source/blender/blenkernel/intern/brush.c
M   source/blender/blenkernel/intern/gpencil.c
M   source/blender/blenkernel/intern/gpencil_modifier.c
M   source/blender/blenkernel/intern/library_remap.c
M   source/blender/blenkernel/intern/material.c
M   source/blender/blenkernel/intern/mesh.c
M   source/blender/blenkernel/intern/mesh_convert.c
M   source/blender/blenkernel/intern/object.c
M   source/blender/blenkernel/intern/particle.c
M   source/blender/blenkernel/intern/particle_system.c
M   source/blender/blenloader/intern/readfile.c
M   source/blender/collada/AnimationExporter.cpp
M   source/blender/collada/AnimationImporter.cpp
M   source/blender/collada/BCAnimationCurve.cpp
M   source/blender/collada/BCAnimationSampler.cpp
M   source/blender/collada/EffectExporter.cpp
M   source/blender/collada/GeometryExporter.cpp
M   source/blender/collada/InstanceWriter.cpp
M   source/blender/collada/MaterialExporter.cpp
M   source/blender/collada/MaterialExporter.h
M   source/blender/collada/MeshImporter.cpp
M   source/blender/collada/collada_utils.cpp
M   source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
M   source/blender/depsgraph/intern/builder/deg_builder_relations.cc
M   source/blender/draw/engines/eevee/eevee_materials.c
M   source/blender/draw/engines/eevee/eevee_volumes.c
M   source/blender/draw/engines/gpencil/gpencil_draw_utils.c
M   source/blender/draw/engines/gpencil/gpencil_engine.c
M   source/blender/draw/engines/overlay/overlay_extra.c
M   source/blender/draw/engines/overlay/overlay_particle.c
M   source/blender/draw/engines/workbench/workbench_deferred.c
M   source/blender/draw/engines/workbench/workbench_forward.c
M   source/blender/draw/engines/workbench/workbench_materials.c
M   source/blender/editors/animation/anim_filter.c
M   source/blender/editors/animation/keyframing.c
M   source/blender/editors/gpencil/drawgpencil.c
M   source/blender/editors/gpencil/gpencil_add_monkey.c
M   source/blender/editors/gpencil/gpencil_add_stroke.c
M   source/blender/editors/gpencil/gpencil_data.c
M   source/blender/editors/gpencil/gpencil_edit.c
M   source/blender/editors/gpencil/gpencil_fill.c
M   source/blender/editors/gpencil/gpencil_merge.c
M   source/blender/editors/gpencil/gpencil_utils.c
M   source/blender/editors/interface/interface_eyedropper_gpencil_color.c
M   source/blender/editors/mesh/editmesh_select_similar.c
M   source/blender/editors/mesh/editmesh_tools.c
M   source/blender/editors/mesh/meshtools.c
M   source/blender/editors/object/object_add.c
M   source/blender/editors/object/object_bake_api.c
M   source/blender/editors/object/object_relations.c
M   source/blender/editors/object/object_select.c
M   source/blender/editors/render/render_preview.c
M   source/blender/editors/render/render_shading.c
M   source/blender/editors/sculpt_paint/paint_image.c
M   

[Bf-blender-cvs] [bc7a4d5bad8] greasepencil-object: Merge branch 'master' into greasepencil-object

2020-02-05 Thread Antonio Vazquez
Commit: bc7a4d5bad84ed46e5fd2480a863315506a471f3
Author: Antonio Vazquez
Date:   Wed Feb 5 11:31:10 2020 +0100
Branches: greasepencil-object
https://developer.blender.org/rBbc7a4d5bad84ed46e5fd2480a863315506a471f3

Merge branch 'master' into greasepencil-object

===



===

diff --cc source/blender/editors/interface/interface_eyedropper_gpencil_color.c
index d4a1e0921c8,51467ae9695..3acae220a54
--- a/source/blender/editors/interface/interface_eyedropper_gpencil_color.c
+++ b/source/blender/editors/interface/interface_eyedropper_gpencil_color.c
@@@ -112,12 -108,28 +112,12 @@@ static void eyedropper_add_material
Object *ob = CTX_data_active_object(C);
Material *ma = NULL;
  
 -  const bool only_stroke = ((!event->ctrl) && (!event->shift));
 -  const bool only_fill = ((!event->ctrl) && (event->shift));
 -  const bool both = ((event->ctrl) && (event->shift));
 -
 -  float col_conv[4];
bool found = false;
  
 -  /* Convert from linear rgb space to display space because grease pencil 
colors are in display
 -   *  space, and this conversion is needed to undo the conversion to linear 
performed by
 -   *  eyedropper_color_sample_fl. */
 -  if (eye->display) {
 -copy_v3_v3(col_conv, eye->color);
 -IMB_colormanagement_scene_linear_to_display_v3(col_conv, eye->display);
 -  }
 -  else {
 -copy_v3_v3(col_conv, eye->color);
 -  }
 -
/* Look for a similar material in grease pencil slots. */
-   short *totcol = give_totcolp(ob);
+   short *totcol = BKE_object_material_num(ob);
for (short i = 0; i < *totcol; i++) {
- ma = give_current_material(ob, i + 1);
+ ma = BKE_object_material_get(ob, i + 1);
  if (ma == NULL) {
continue;
  }

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [c35d6b18544] master: Cleanup: Remove unused function: give_node_material()

2020-02-05 Thread Antonio Vazquez
Commit: c35d6b1854474ec02888f8812041651bdeb5145e
Author: Antonio Vazquez
Date:   Wed Feb 5 11:25:50 2020 +0100
Branches: master
https://developer.blender.org/rBc35d6b1854474ec02888f8812041651bdeb5145e

Cleanup: Remove unused function: give_node_material()

===

M   source/blender/blenkernel/BKE_material.h
M   source/blender/blenkernel/intern/material.c
M   source/blender/editors/animation/anim_filter.c

===

diff --git a/source/blender/blenkernel/BKE_material.h 
b/source/blender/blenkernel/BKE_material.h
index a0a41a048e3..0fd08dc3246 100644
--- a/source/blender/blenkernel/BKE_material.h
+++ b/source/blender/blenkernel/BKE_material.h
@@ -60,7 +60,6 @@ void BKE_material_copy_data(struct Main *bmain,
 const int flag);
 struct Material *BKE_material_copy(struct Main *bmain, const struct Material 
*ma);
 struct Material *BKE_material_localize(struct Material *ma);
-struct Material *give_node_material(struct Material *ma); /* returns node 
material or self */
 void BKE_material_make_local(struct Main *bmain, struct Material *ma, const 
bool lib_local);
 void BKE_gpencil_material_attr_init(struct Material *ma);
 
@@ -87,7 +86,10 @@ struct Material *BKE_object_material_get(struct Object *ob, 
short act);
 void BKE_id_material_assign(struct Main *bmain, struct ID *id, struct Material 
*ma, short act);
 void BKE_object_material_assign(
 struct Main *bmain, struct Object *ob, struct Material *ma, short act, int 
assign_type);
-void BKE_object_material_array_assign(struct Main *bmain, struct Object *ob, 
struct Material ***matar, short totcol);
+void BKE_object_material_array_assign(struct Main *bmain,
+  struct Object *ob,
+  struct Material ***matar,
+  short totcol);
 
 short BKE_object_material_slot_find_index(struct Object *ob, struct Material 
*ma);
 bool BKE_object_material_slot_add(struct Main *bmain, struct Object *ob);
diff --git a/source/blender/blenkernel/intern/material.c 
b/source/blender/blenkernel/intern/material.c
index 91fc0519c07..8159cc03414 100644
--- a/source/blender/blenkernel/intern/material.c
+++ b/source/blender/blenkernel/intern/material.c
@@ -618,19 +618,6 @@ MaterialGPencilStyle *BKE_gpencil_material_settings(Object 
*ob, short act)
   }
 }
 
-Material *give_node_material(Material *ma)
-{
-  if (ma && ma->use_nodes && ma->nodetree) {
-bNode *node = nodeGetActiveID(ma->nodetree, ID_MA);
-
-if (node) {
-  return (Material *)node->id;
-}
-  }
-
-  return NULL;
-}
-
 void BKE_material_resize_object(Main *bmain, Object *ob, const short totcol, 
bool do_id_user)
 {
   Material **newmatar;
@@ -937,7 +924,10 @@ void BKE_material_remap_object_calc(Object *ob_dst, Object 
*ob_src, short *remap
 }
 
 /* XXX - this calls many more update calls per object then are needed, could 
be optimized */
-void BKE_object_material_array_assign(Main *bmain, struct Object *ob, struct 
Material ***matar, short totcol)
+void BKE_object_material_array_assign(Main *bmain,
+  struct Object *ob,
+  struct Material ***matar,
+  short totcol)
 {
   int actcol_orig = ob->actcol;
   short i;
diff --git a/source/blender/editors/animation/anim_filter.c 
b/source/blender/editors/animation/anim_filter.c
index b3a9353bb74..a9ddc53e5bb 100644
--- a/source/blender/editors/animation/anim_filter.c
+++ b/source/blender/editors/animation/anim_filter.c
@@ -2290,7 +2290,6 @@ static size_t animdata_filter_ds_material(
 static size_t animdata_filter_ds_materials(
 bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, Object *ob, int 
filter_mode)
 {
-  bool has_nested = false;
   size_t items = 0;
   int a = 0;
 
@@ -2302,34 +2301,6 @@ static size_t animdata_filter_ds_materials(
 if (ma) {
   /* add channels */
   items += animdata_filter_ds_material(ac, anim_data, ads, ma, 
filter_mode);
-
-  /* for optimising second pass - check if there's a nested material here 
to come back for */
-  if (has_nested == false) {
-has_nested = (give_node_material(ma) != NULL);
-  }
-}
-  }
-
-  /* Second pass: go through a second time looking for "nested" materials
-   * (material.material references).
-   *
-   * NOTE: here we ignore the expanded status of the parent, as it could be 
too confusing as to
-   * why these are disappearing/not available,
-   * since the relationships between these is not that clear.
-   */
-  if (has_nested) {
-for (a = 1; a <= ob->totcol; a++) {
-  Material *base = BKE_object_material_get(ob, a);
-  Material *ma = give_node_material(base);
-
-  /* add channels from the nested material if it exists
-   *   - skip if the same material is referenced in its node tree
- 

[Bf-blender-cvs] [1bc2a98a9d6] master: T73589: Code Quality: Renaming on BKE_material.h

2020-02-05 Thread Antonio Vazquez
Commit: 1bc2a98a9d609e54c928672f148edfba9d5f8c5a
Author: Antonio Vazquez
Date:   Wed Feb 5 11:23:58 2020 +0100
Branches: master
https://developer.blender.org/rB1bc2a98a9d609e54c928672f148edfba9d5f8c5a

T73589: Code Quality: Renaming on BKE_material.h

Old Name New Name
==
init_def_materialBKE_materials_init
BKE_material_gpencil_default_freeBKE_materials_exit
test_object_materialsBKE_object_materials_test
test_all_objects_materials   BKE_objects_materials_test_all
give_matarar BKE_object_material_array
give_totcolp BKE_object_material_num
give_current_material_p  BKE_object_material_get_p
give_current_materialBKE_object_material_get
assign_material  BKE_object_material_assign
assign_matarar   BKE_object_material_array_assign
give_matarar_id  BKE_id_material_array
give_totcolp_id  BKE_id_material_num
assign_material_id   BKE_id_material_assign
clear_matcopybuf BKE_material_copybuf_clear
free_matcopybuf  BKE_material_copybuf_free
copy_matcopybuf  BKE_material_copybuf_copy
paste_matcopybuf BKE_material_copybuf_paste
BKE_material_init_gpencil_settings   BKE_gpencil_material_attr_init
BKE_material_add_gpencil BKE_gpencil_material_add
BKE_material_gpencil_get BKE_gpencil_material
BKE_material_gpencil_default_get BKE_gpencil_material_default
BKE_material_gpencil_settings_getBKE_gpencil_material_settings

===

M   source/blender/alembic/intern/abc_mesh.cc
M   source/blender/blenkernel/BKE_material.h
M   source/blender/blenkernel/intern/brush.c
M   source/blender/blenkernel/intern/gpencil.c
M   source/blender/blenkernel/intern/gpencil_modifier.c
M   source/blender/blenkernel/intern/library_remap.c
M   source/blender/blenkernel/intern/material.c
M   source/blender/blenkernel/intern/mesh.c
M   source/blender/blenkernel/intern/mesh_convert.c
M   source/blender/blenkernel/intern/object.c
M   source/blender/blenkernel/intern/particle.c
M   source/blender/blenkernel/intern/particle_system.c
M   source/blender/blenloader/intern/readfile.c
M   source/blender/collada/AnimationExporter.cpp
M   source/blender/collada/AnimationImporter.cpp
M   source/blender/collada/BCAnimationCurve.cpp
M   source/blender/collada/BCAnimationSampler.cpp
M   source/blender/collada/EffectExporter.cpp
M   source/blender/collada/GeometryExporter.cpp
M   source/blender/collada/InstanceWriter.cpp
M   source/blender/collada/MaterialExporter.cpp
M   source/blender/collada/MaterialExporter.h
M   source/blender/collada/MeshImporter.cpp
M   source/blender/collada/collada_utils.cpp
M   source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
M   source/blender/depsgraph/intern/builder/deg_builder_relations.cc
M   source/blender/draw/engines/eevee/eevee_materials.c
M   source/blender/draw/engines/eevee/eevee_volumes.c
M   source/blender/draw/engines/gpencil/gpencil_draw_utils.c
M   source/blender/draw/engines/gpencil/gpencil_engine.c
M   source/blender/draw/engines/overlay/overlay_extra.c
M   source/blender/draw/engines/overlay/overlay_particle.c
M   source/blender/draw/engines/workbench/workbench_deferred.c
M   source/blender/draw/engines/workbench/workbench_forward.c
M   source/blender/draw/engines/workbench/workbench_materials.c
M   source/blender/editors/animation/anim_filter.c
M   source/blender/editors/animation/keyframing.c
M   source/blender/editors/gpencil/drawgpencil.c
M   source/blender/editors/gpencil/gpencil_add_monkey.c
M   source/blender/editors/gpencil/gpencil_add_stroke.c
M   source/blender/editors/gpencil/gpencil_data.c
M   source/blender/editors/gpencil/gpencil_edit.c
M   source/blender/editors/gpencil/gpencil_fill.c
M   source/blender/editors/gpencil/gpencil_merge.c
M   source/blender/editors/gpencil/gpencil_utils.c
M   source/blender/editors/interface/interface_eyedropper_gpencil_color.c
M   source/blender/editors/mesh/editmesh_select_similar.c
M   source/blender/editors/mesh/editmesh_tools.c
M   source/blender/editors/mesh/meshtools.c
M   source/blender/editors/object/object_add.c
M   source/blender/editors/object/object_bake_api.c
M   source/blender/editors/object/object_relations.c
M   source/blender/editors/object/object_select.c
M   source/blender/editors/render/render_preview.c
M   source/blender/editors/render/render_shading.c
M   source/blender/editors/sculpt_paint/paint_image.c
M   source/blender/editors/sculpt_paint/paint_image_proj.c
M 

[Bf-blender-cvs] [06c56086460] master: Readfile: Proper fix for `recalc` flags clearing in non-real IDs

2020-02-05 Thread Bastien Montagne
Commit: 06c560864607562acdc1e61b13369f24b22c102c
Author: Bastien Montagne
Date:   Wed Feb 5 15:49:57 2020 +0100
Branches: master
https://developer.blender.org/rB06c560864607562acdc1e61b13369f24b22c102c

Readfile: Proper fix for `recalc` flags clearing in non-real IDs

In current `readfile.c` code we have that:

https://developer.blender.org/diffusion/B/browse/master/source/blender/blenloader/intern/readfile.c$3523

This is unconditionally clearing nodetree's recalc flags, and was added by 
rB81a762e79f83 ages ago. Thing is, in main ID read code we only clear that flag 
when **not** in undo context.

This proposed change intends to properly handle those cases, by moving 
`id.recalc` flags clearing from `read_libblock()` to `direct_link_id()`, which 
is also called for all 'local' IDs (ntrees and master collections currently).

I’d expect that change to be straightforward (and maybe even fixing some odd 
undocumented bugs), however there is no .blend file testcases associated with 
changes in rB81a762e79f83, so wouldn’t mind that to be double checked before it 
goes to master.

Reviewed By: brecht

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

===

M   source/blender/blenloader/intern/readfile.c

===

diff --git a/source/blender/blenloader/intern/readfile.c 
b/source/blender/blenloader/intern/readfile.c
index 5a834f31528..6db32ef120f 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -2668,6 +2668,18 @@ static void direct_link_id(FileData *fd, ID *id)
   id->tag = 0;
   id->flag &= ~LIB_INDIRECT_WEAK_LINK;
 
+  /* NOTE: It is important to not clear the recalc flags for undo/redo.
+   * Preserving recalc flags on redo/undo is the only way to make dependency 
graph detect
+   * that animation is to be evaluated on undo/redo. If this is not enforced 
by the recalc
+   * flags dependency graph does not do animation update to avoid loss of 
unkeyed changes.,
+   * which conflicts with undo/redo of changes to animation data itself.
+   *
+   * But for regular file load we clear the flag, since the flags might have 
been changed since
+   * the version the file has been saved with. */
+  if (!fd->memfile) {
+id->recalc = 0;
+  }
+
   /* Link direct data of overrides. */
   if (id->override_library) {
 id->override_library = newdataadr(fd, id->override_library);
@@ -3520,8 +3532,6 @@ static void direct_link_nodetree(FileData *fd, bNodeTree 
*ntree)
   ntree->adt = newdataadr(fd, ntree->adt);
   direct_link_animdata(fd, ntree->adt);
 
-  ntree->id.recalc &= ~ID_RECALC_ALL;
-
   link_list(fd, >nodes);
   for (node = ntree->nodes.first; node; node = node->next) {
 node->typeinfo = NULL;
@@ -9419,18 +9429,6 @@ static BHead *read_libblock(FileData *fd,
   id->newid = NULL; /* Needed because .blend may have been saved with crap 
value here... */
   id->orig_id = NULL;
 
-  /* NOTE: It is important to not clear the recalc flags for undo/redo.
-   * Preserving recalc flags on redo/undo is the only way to make dependency 
graph detect
-   * that animation is to be evaluated on undo/redo. If this is not enforced 
by the recalc
-   * flags dependency graph does not do animation update to avoid loss of 
unkeyed changes.,
-   * which conflicts with undo/redo of changes to animation data itself.
-   *
-   * But for regular file load we clear the flag, since the flags might have 
been changed since
-   * the version the file has been saved with. */
-  if (!fd->memfile) {
-id->recalc = 0;
-  }
-
   /* this case cannot be direct_linked: it's just the ID part */
   if (bhead->code == ID_LINK_PLACEHOLDER) {
 /* That way, we know which data-lock needs do_versions (required currently 
for linking). */

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [ea2e6995a90] master: Fix T56892: Crash on Collada .dae import

2020-02-05 Thread Sebastian Parborg
Commit: ea2e6995a9083e1dff0b46909397cba2c639884e
Author: Sebastian Parborg
Date:   Wed Feb 5 15:46:38 2020 +0100
Branches: master
https://developer.blender.org/rBea2e6995a9083e1dff0b46909397cba2c639884e

Fix T56892: Crash on Collada .dae import

In this case the ERROR_REQUIRED_ATTRIBUTE_MISSING seem to be fatal so
stop the import to avoid crashing if we run into this error.

===

M   source/blender/collada/ErrorHandler.cpp

===

diff --git a/source/blender/collada/ErrorHandler.cpp 
b/source/blender/collada/ErrorHandler.cpp
index af9d10c7841..4f70281fb45 100644
--- a/source/blender/collada/ErrorHandler.cpp
+++ b/source/blender/collada/ErrorHandler.cpp
@@ -79,6 +79,10 @@ bool ErrorHandler::handleError(const COLLADASaxFWL::IError 
*error)
   error_context = "File access";
 }
 
+else if (parserError.getErrorType() == 
GeneratedSaxParser::ParserError::ERROR_REQUIRED_ATTRIBUTE_MISSING) {
+  isError = true;
+}
+
 else {
   isError = (parserError.getSeverity() !=
  
GeneratedSaxParser::ParserError::Severity::SEVERITY_ERROR_NONCRITICAL);

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [d2c0df28424] master: Merge branch 'blender-v2.82-release'

2020-02-05 Thread Campbell Barton
Commit: d2c0df28424b93dbcc1a92423e0b68d2e9590945
Author: Campbell Barton
Date:   Thu Feb 6 01:33:23 2020 +1100
Branches: master
https://developer.blender.org/rBd2c0df28424b93dbcc1a92423e0b68d2e9590945

Merge branch 'blender-v2.82-release'

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [6d10c240629] blender-v2.82-release: Fix finding freetype on Linux not using pre-compiled libs

2020-02-05 Thread Campbell Barton
Commit: 6d10c2406297cf93238129b5e704a7ba7e8ce3bc
Author: Campbell Barton
Date:   Thu Feb 6 01:30:26 2020 +1100
Branches: blender-v2.82-release
https://developer.blender.org/rB6d10c2406297cf93238129b5e704a7ba7e8ce3bc

Fix finding freetype on Linux not using pre-compiled libs

Finding X11 before platform libs caused freetype not to use
pre-compiled libraries.

===

M   CMakeLists.txt
M   build_files/cmake/platform/platform_unix.cmake

===

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2bac16c339a..b5b19096506 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -793,61 +793,6 @@ if(NOT CMAKE_BUILD_TYPE MATCHES "Release")
   endif()
 endif()
 
-#-
-# Platform specifics
-
-if(WITH_X11)
-  find_package(X11 REQUIRED)
-
-  find_path(X11_XF86keysym_INCLUDE_PATH X11/XF86keysym.h 
${X11_INC_SEARCH_PATH})
-  mark_as_advanced(X11_XF86keysym_INCLUDE_PATH)
-
-  list(APPEND PLATFORM_LINKLIBS ${X11_X11_LIB})
-
-  if(WITH_X11_XINPUT)
-if(X11_Xinput_LIB)
-  list(APPEND PLATFORM_LINKLIBS ${X11_Xinput_LIB})
-else()
-  message(FATAL_ERROR "LibXi not found. Disable WITH_X11_XINPUT if you
-  want to build without tablet support")
-endif()
-  endif()
-
-  if(WITH_X11_XF86VMODE)
-# 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)
-  list(APPEND PLATFORM_LINKLIBS ${X11_Xxf86vmode_LIB})
-else()
-  message(FATAL_ERROR "libXxf86vm not found. Disable WITH_X11_XF86VMODE if 
you
-  want to build without")
-endif()
-  endif()
-
-  if(WITH_X11_XFIXES)
-if(X11_Xfixes_LIB)
-  list(APPEND PLATFORM_LINKLIBS ${X11_Xfixes_LIB})
-else()
-  message(FATAL_ERROR "libXfixes not found. Disable WITH_X11_XFIXES if you
-  want to build without")
-endif()
-  endif()
-
-  if(WITH_X11_ALPHA)
-find_library(X11_Xrender_LIB Xrender  ${X11_LIB_SEARCH_PATH})
-mark_as_advanced(X11_Xrender_LIB)
-if(X11_Xrender_LIB)
-  list(APPEND PLATFORM_LINKLIBS ${X11_Xrender_LIB})
-else()
-  message(FATAL_ERROR "libXrender not found. Disable WITH_X11_ALPHA if you
-  want to build without")
-endif()
-  endif()
-
-endif()
-
-
 # 
 # Main Platform Checks
 #
diff --git a/build_files/cmake/platform/platform_unix.cmake 
b/build_files/cmake/platform/platform_unix.cmake
index 5d46ee751af..eb89d847101 100644
--- a/build_files/cmake/platform/platform_unix.cmake
+++ b/build_files/cmake/platform/platform_unix.cmake
@@ -482,6 +482,65 @@ endif()
 # lfs on glibc, all compilers should use
 add_definitions(-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 
-D_LARGEFILE64_SOURCE)
 
+# 
+# System Libraries
+#
+# Keep last, so indirectly linked libraries don't override our own 
pre-compiled libs.
+
+if(WITH_X11)
+  find_package(X11 REQUIRED)
+
+  find_path(X11_XF86keysym_INCLUDE_PATH X11/XF86keysym.h 
${X11_INC_SEARCH_PATH})
+  mark_as_advanced(X11_XF86keysym_INCLUDE_PATH)
+
+  list(APPEND PLATFORM_LINKLIBS ${X11_X11_LIB})
+
+  if(WITH_X11_XINPUT)
+if(X11_Xinput_LIB)
+  list(APPEND PLATFORM_LINKLIBS ${X11_Xinput_LIB})
+else()
+  message(FATAL_ERROR "LibXi not found. Disable WITH_X11_XINPUT if you
+  want to build without tablet support")
+endif()
+  endif()
+
+  if(WITH_X11_XF86VMODE)
+# 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)
+  list(APPEND PLATFORM_LINKLIBS ${X11_Xxf86vmode_LIB})
+else()
+  message(FATAL_ERROR "libXxf86vm not found. Disable WITH_X11_XF86VMODE if 
you
+  want to build without")
+endif()
+  endif()
+
+  if(WITH_X11_XFIXES)
+if(X11_Xfixes_LIB)
+  list(APPEND PLATFORM_LINKLIBS ${X11_Xfixes_LIB})
+else()
+  message(FATAL_ERROR "libXfixes not found. Disable WITH_X11_XFIXES if you
+  want to build without")
+endif()
+  endif()
+
+  if(WITH_X11_ALPHA)
+find_library(X11_Xrender_LIB Xrender  ${X11_LIB_SEARCH_PATH})
+mark_as_advanced(X11_Xrender_LIB)
+if(X11_Xrender_LIB)
+  list(APPEND PLATFORM_LINKLIBS ${X11_Xrender_LIB})
+else()
+  message(FATAL_ERROR "libXrender not found. Disable WITH_X11_ALPHA if you
+  want to build without")
+endif()
+  endif()
+
+endif()
+
+# 
+# Compilers
+
 # GNU Compiler
 if(CMAKE_COMPILER_IS_GNUCC)
   set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing")

___
Bf-blender-cvs mailing list

[Bf-blender-cvs] [be70fcd7f23] master: Merge branch 'blender-v2.82-release'

2020-02-05 Thread Campbell Barton
Commit: be70fcd7f23d14f4f410b5662f1f884a68581587
Author: Campbell Barton
Date:   Thu Feb 6 01:24:49 2020 +1100
Branches: master
https://developer.blender.org/rBbe70fcd7f23d14f4f410b5662f1f884a68581587

Merge branch 'blender-v2.82-release'

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [87c18fbbc53] blender-v2.82-release: CMake: remove non-standard package search paths

2020-02-05 Thread Campbell Barton
Commit: 87c18fbbc532fd7e92eeec209a3ff559757548eb
Author: Campbell Barton
Date:   Thu Feb 6 01:16:55 2020 +1100
Branches: blender-v2.82-release
https://developer.blender.org/rB87c18fbbc532fd7e92eeec209a3ff559757548eb

CMake: remove non-standard package search paths

Reduce the number of possible locations used to find libraries,
to simplify troubleshooting.

Only keep '*_ROOT_DIR' and the path used by 'install_deps.sh'.

===

M   build_files/build_environment/patches/cmake/modules/FindBlosc.cmake
M   build_files/build_environment/patches/cmake/modules/FindCppUnit.cmake
M   build_files/build_environment/patches/cmake/modules/FindIlmBase.cmake
M   build_files/build_environment/patches/cmake/modules/FindLogC4Plus.cmake
M   build_files/build_environment/patches/cmake/modules/FindOpenEXR.cmake
M   build_files/build_environment/patches/cmake/modules/FindTBB.cmake
M   build_files/cmake/Modules/FindAlembic.cmake
M   build_files/cmake/Modules/FindAudaspace.cmake
M   build_files/cmake/Modules/FindBlosc.cmake
M   build_files/cmake/Modules/FindEigen3.cmake
M   build_files/cmake/Modules/FindEmbree.cmake
M   build_files/cmake/Modules/FindFftw3.cmake
M   build_files/cmake/Modules/FindGLEW.cmake
M   build_files/cmake/Modules/FindGflags.cmake
M   build_files/cmake/Modules/FindGlog.cmake
M   build_files/cmake/Modules/FindHDF5.cmake
M   build_files/cmake/Modules/FindIcuLinux.cmake
M   build_files/cmake/Modules/FindJack.cmake
M   build_files/cmake/Modules/FindJeMalloc.cmake
M   build_files/cmake/Modules/FindLZO.cmake
M   build_files/cmake/Modules/FindOpenCOLLADA.cmake
M   build_files/cmake/Modules/FindOpenColorIO.cmake
M   build_files/cmake/Modules/FindOpenEXR.cmake
M   build_files/cmake/Modules/FindOpenGLES.cmake
M   build_files/cmake/Modules/FindOpenImageDenoise.cmake
M   build_files/cmake/Modules/FindOpenImageIO.cmake
M   build_files/cmake/Modules/FindOpenJPEG.cmake
M   build_files/cmake/Modules/FindOpenShadingLanguage.cmake
M   build_files/cmake/Modules/FindOpenSubdiv.cmake
M   build_files/cmake/Modules/FindOpenVDB.cmake
M   build_files/cmake/Modules/FindOptiX.cmake
M   build_files/cmake/Modules/FindPCRE.cmake
M   build_files/cmake/Modules/FindPugiXML.cmake
M   build_files/cmake/Modules/FindPythonLibsUnix.cmake
M   build_files/cmake/Modules/FindSDL2.cmake
M   build_files/cmake/Modules/FindSndFile.cmake
M   build_files/cmake/Modules/FindSpacenav.cmake
M   build_files/cmake/Modules/FindTBB.cmake
M   build_files/cmake/Modules/FindUSD.cmake
M   build_files/cmake/Modules/FindXML2.cmake

===

diff --git 
a/build_files/build_environment/patches/cmake/modules/FindBlosc.cmake 
b/build_files/build_environment/patches/cmake/modules/FindBlosc.cmake
index 8565ddc73ed..015d211b818 100644
--- a/build_files/build_environment/patches/cmake/modules/FindBlosc.cmake
+++ b/build_files/build_environment/patches/cmake/modules/FindBlosc.cmake
@@ -29,9 +29,6 @@ ENDIF()
 
 SET(_blosc_SEARCH_DIRS
   ${BLOSC_ROOT_DIR}
-  /usr/local
-  /sw # Fink
-  /opt/local # DarwinPorts
   /opt/lib/blosc
 )
 
diff --git 
a/build_files/build_environment/patches/cmake/modules/FindCppUnit.cmake 
b/build_files/build_environment/patches/cmake/modules/FindCppUnit.cmake
index 781ec0ce6c8..80cb07ece2a 100644
--- a/build_files/build_environment/patches/cmake/modules/FindCppUnit.cmake
+++ b/build_files/build_environment/patches/cmake/modules/FindCppUnit.cmake
@@ -29,9 +29,6 @@ ENDIF()
 
 SET(_cppunit_SEARCH_DIRS
   ${CPPUNIT_ROOT_DIR}
-  /usr/local
-  /sw # Fink
-  /opt/local # DarwinPorts
   /opt/lib/cppunit
 )
 
diff --git 
a/build_files/build_environment/patches/cmake/modules/FindIlmBase.cmake 
b/build_files/build_environment/patches/cmake/modules/FindIlmBase.cmake
index 62ccc17d014..fed30505708 100644
--- a/build_files/build_environment/patches/cmake/modules/FindIlmBase.cmake
+++ b/build_files/build_environment/patches/cmake/modules/FindIlmBase.cmake
@@ -124,7 +124,6 @@ set(IlmBase_generic_include_paths
   /usr/include
   /usr/include/${CMAKE_LIBRARY_ARCHITECTURE}
   /usr/local/include
-  /sw/include
   /opt/local/include
 )
 set(IlmBase_generic_library_paths
@@ -133,7 +132,6 @@ set(IlmBase_generic_library_paths
   /usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}
   /usr/local/lib
   /usr/local/lib/${CMAKE_LIBRARY_ARCHITECTURE}
-  /sw/lib
   /opt/local/lib
 )
 
diff --git 
a/build_files/build_environment/patches/cmake/modules/FindLogC4Plus.cmake 
b/build_files/build_environment/patches/cmake/modules/FindLogC4Plus.cmake
index 6575cd0c763..d1a021a88bb 100644
--- a/build_files/build_environment/patches/cmake/modules/FindLogC4Plus.cmake
+++ b/build_files/build_environment/patches/cmake/modules/FindLogC4Plus.cmake
@@ -29,9 +29,6 @@ ENDIF()
 
 SET(_logc4plus_SEARCH_DIRS
   ${LOGC4PLUS_ROOT_DIR}
-  

[Bf-blender-cvs] [fe8222cf004] vr_scene_inspection: Merge branch 'soc-2019-openxr' into vr_scene_inspection

2020-02-05 Thread Julian Eisel
Commit: fe8222cf0047a081119aa94849e3173db8d34514
Author: Julian Eisel
Date:   Wed Feb 5 14:39:18 2020 +0100
Branches: vr_scene_inspection
https://developer.blender.org/rBfe8222cf0047a081119aa94849e3173db8d34514

Merge branch 'soc-2019-openxr' into vr_scene_inspection

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [d930ff7f4ff] soc-2019-openxr: Merge branch 'temp-openxr-ghostxr' into temp-openxr-blenderside

2020-02-05 Thread Julian Eisel
Commit: d930ff7f4ffad2e59e584175f28f68f552110891
Author: Julian Eisel
Date:   Wed Feb 5 14:37:59 2020 +0100
Branches: soc-2019-openxr
https://developer.blender.org/rBd930ff7f4ffad2e59e584175f28f68f552110891

Merge branch 'temp-openxr-ghostxr' into temp-openxr-blenderside

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [eecf3021d7e] soc-2019-openxr: Merge branch 'master' into temp-openxr-buildstuff

2020-02-05 Thread Julian Eisel
Commit: eecf3021d7e48230e00fe9a7f26af64751c08488
Author: Julian Eisel
Date:   Wed Feb 5 14:37:09 2020 +0100
Branches: soc-2019-openxr
https://developer.blender.org/rBeecf3021d7e48230e00fe9a7f26af64751c08488

Merge branch 'master' into temp-openxr-buildstuff

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [f3e9351111b] soc-2019-openxr: Merge branch 'temp-openxr-directx' into temp-openxr-ghostxr

2020-02-05 Thread Julian Eisel
Commit: f3e935bf15d827773e3f9705a977e28a1899
Author: Julian Eisel
Date:   Wed Feb 5 14:37:45 2020 +0100
Branches: soc-2019-openxr
https://developer.blender.org/rBf3e935bf15d827773e3f9705a977e28a1899

Merge branch 'temp-openxr-directx' into temp-openxr-ghostxr

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [2a259497ae9] soc-2019-openxr: Merge branch 'temp-openxr-buildstuff' into temp-openxr-directx

2020-02-05 Thread Julian Eisel
Commit: 2a259497ae9f8021ffd4cd2f4755b5c6ad23fbba
Author: Julian Eisel
Date:   Wed Feb 5 14:37:30 2020 +0100
Branches: soc-2019-openxr
https://developer.blender.org/rB2a259497ae9f8021ffd4cd2f4755b5c6ad23fbba

Merge branch 'temp-openxr-buildstuff' into temp-openxr-directx

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [0a27ab2e93d] soc-2019-openxr: Merge branch 'temp-openxr-blenderside' into soc-2019-openxr

2020-02-05 Thread Julian Eisel
Commit: 0a27ab2e93d350df8d88eae726a9e41c5498
Author: Julian Eisel
Date:   Wed Feb 5 14:38:19 2020 +0100
Branches: soc-2019-openxr
https://developer.blender.org/rB0a27ab2e93d350df8d88eae726a9e41c5498

Merge branch 'temp-openxr-blenderside' into soc-2019-openxr

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [6c815ebc5bc] greasepencil-refactor: Merge branch 'greasepencil-object' into greasepencil-refactor

2020-02-05 Thread Antonio Vazquez
Commit: 6c815ebc5bc842f3268e84caceca0c1ebfac92b1
Author: Antonio Vazquez
Date:   Wed Feb 5 11:11:26 2020 +0100
Branches: greasepencil-refactor
https://developer.blender.org/rB6c815ebc5bc842f3268e84caceca0c1ebfac92b1

Merge branch 'greasepencil-object' into greasepencil-refactor

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [c0e989d3e52] greasepencil-object: Merge branch 'master' into greasepencil-object

2020-02-05 Thread Antonio Vazquez
Commit: c0e989d3e521217e991881070c1c674449e83b7e
Author: Antonio Vazquez
Date:   Wed Feb 5 11:10:54 2020 +0100
Branches: greasepencil-object
https://developer.blender.org/rBc0e989d3e521217e991881070c1c674449e83b7e

Merge branch 'master' into greasepencil-object

===



===

diff --cc release/scripts/startup/bl_ui/properties_paint_common.py
index 440df1d34d3,ec3dec6c54d..cc8a6c49a9c
--- a/release/scripts/startup/bl_ui/properties_paint_common.py
+++ b/release/scripts/startup/bl_ui/properties_paint_common.py
@@@ -998,10 -994,10 +998,12 @@@ def brush_basic_texpaint_settings(layou
  
  
  def brush_basic_gpencil_paint_settings(layout, context, brush, *, 
compact=False):
 +tool_settings = context.tool_settings
 +settings = tool_settings.gpencil_paint
  gp_settings = brush.gpencil_settings
  tool = context.workspace.tools.from_space_view3d_mode(context.mode, 
create=False)
+ if gp_settings is None:
+ return
  
  # Brush details
  if brush.gpencil_tool == 'ERASE':

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [edcec3aee03] master: Merge branch 'blender-v2.82-release'

2020-02-05 Thread Antonio Vazquez
Commit: edcec3aee03da94936c9f7167a51b63ff62ff07d
Author: Antonio Vazquez
Date:   Wed Feb 5 11:08:57 2020 +0100
Branches: master
https://developer.blender.org/rBedcec3aee03da94936c9f7167a51b63ff62ff07d

Merge branch 'blender-v2.82-release'

===



===



___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [db0121a0099] blender-v2.82-release: Fix T73580: Gpencil crash when try to draw without eraser brush available

2020-02-05 Thread Antonio Vazquez
Commit: db0121a0099836113e7babe7f006e99e4f6ed69f
Author: Antonio Vazquez
Date:   Wed Feb 5 11:08:15 2020 +0100
Branches: blender-v2.82-release
https://developer.blender.org/rBdb0121a0099836113e7babe7f006e99e4f6ed69f

Fix T73580: Gpencil crash when try to draw without eraser brush available

===

M   release/scripts/startup/bl_ui/properties_paint_common.py
M   source/blender/editors/gpencil/gpencil_paint.c

===

diff --git a/release/scripts/startup/bl_ui/properties_paint_common.py 
b/release/scripts/startup/bl_ui/properties_paint_common.py
index 93bf5eca052..8b4f86b2879 100644
--- a/release/scripts/startup/bl_ui/properties_paint_common.py
+++ b/release/scripts/startup/bl_ui/properties_paint_common.py
@@ -996,6 +996,8 @@ def brush_basic_texpaint_settings(layout, context, brush, 
*, compact=False):
 def brush_basic_gpencil_paint_settings(layout, context, brush, *, 
compact=False):
 gp_settings = brush.gpencil_settings
 tool = context.workspace.tools.from_space_view3d_mode(context.mode, 
create=False)
+if gp_settings is None:
+return
 
 # Brush details
 if brush.gpencil_tool == 'ERASE':
diff --git a/source/blender/editors/gpencil/gpencil_paint.c 
b/source/blender/editors/gpencil/gpencil_paint.c
index 6a91417e7f3..e07071e5e67 100644
--- a/source/blender/editors/gpencil/gpencil_paint.c
+++ b/source/blender/editors/gpencil/gpencil_paint.c
@@ -1963,6 +1963,9 @@ static Brush *gp_get_default_eraser(Main *bmain, 
ToolSettings *ts)
   Paint *paint = >gp_paint->paint;
   Brush *brush_old = paint->brush;
   for (Brush *brush = bmain->brushes.first; brush; brush = brush->id.next) {
+if (brush->gpencil_settings == NULL) {
+  continue;
+}
 if ((brush->ob_mode == OB_MODE_PAINT_GPENCIL) && (brush->gpencil_tool == 
GPAINT_TOOL_ERASE)) {
   /* save first eraser to use later if no default */
   if (brush_dft == NULL) {

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [8fa26bf7e11] functions: disable duplicate removal

2020-02-05 Thread Jacques Lucke
Commit: 8fa26bf7e114219400bf862eaa7d7f14d30b88e3
Author: Jacques Lucke
Date:   Wed Feb 5 10:26:33 2020 +0100
Branches: functions
https://developer.blender.org/rB8fa26bf7e114219400bf862eaa7d7f14d30b88e3

disable duplicate removal

===

M   
source/blender/functions/intern/node_tree_multi_function_network/generate.cc

===

diff --git 
a/source/blender/functions/intern/node_tree_multi_function_network/generate.cc 
b/source/blender/functions/intern/node_tree_multi_function_network/generate.cc
index 0f42b8513c5..a5dea57ed04 100644
--- 
a/source/blender/functions/intern/node_tree_multi_function_network/generate.cc
+++ 
b/source/blender/functions/intern/node_tree_multi_function_network/generate.cc
@@ -269,7 +269,7 @@ std::unique_ptr 
generate_node_tree_multi_function_network
   }
 
   optimize_network__constant_folding(network_builder, resources);
-  optimize_network__remove_duplicates(network_builder);
+  // optimize_network__remove_duplicates(network_builder);
   optimize_network__remove_unused_nodes(network_builder);
   // network_builder.to_dot__clipboard();
   // function_tree.to_dot__clipboard();

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs