[Bf-blender-cvs] [cd54abd2c13] temp-lanpr-review: Merge remote-tracking branch 'origin/master' into temp-lanpr-review

YimingWu noreply at git.blender.org
Sat May 16 17:09:16 CEST 2020


Commit: cd54abd2c1316136753f7bbe227bd762a5f9e7d9
Author: YimingWu
Date:   Sat May 16 23:08:40 2020 +0800
Branches: temp-lanpr-review
https://developer.blender.org/rBcd54abd2c1316136753f7bbe227bd762a5f9e7d9

Merge remote-tracking branch 'origin/master' into temp-lanpr-review

===================================================================



===================================================================

diff --cc CMakeLists.txt
index 9a6ae937b59,ae9f3992aa5..84dccae962b
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@@ -309,9 -322,14 +322,17 @@@ mark_as_advanced(WITH_SYSTEM_GLOG
  # Freestyle
  option(WITH_FREESTYLE     "Enable Freestyle (advanced edges rendering)" ON)
  
 +# LANPR
 +option(WITH_LANPR     "Enable LANPR (more advanced edges rendering)" ON)
 +
+ # New object types
+ option(WITH_NEW_OBJECT_TYPES "Enable new hair and pointcloud objects (use for development only, don't save in files)" OFF)
+ mark_as_advanced(WITH_NEW_OBJECT_TYPES)
+ 
+ # New simulation data block
+ option(WITH_NEW_SIMULATION_TYPE "Enable simulation data block (use for development only, don't save in files)" OFF)
+ mark_as_advanced(WITH_NEW_SIMULATION_TYPE)
+ 
  # Misc
  if(WIN32)
    option(WITH_INPUT_IME "Enable Input Method Editor (IME) for complex Asian character input" ON)
@@@ -1728,8 -1732,8 +1735,9 @@@ if(FIRST_RUN
    info_cfg_option(WITH_INPUT_NDOF)
    info_cfg_option(WITH_CYCLES)
    info_cfg_option(WITH_FREESTYLE)
 +  info_cfg_option(WITH_LANPR)
    info_cfg_option(WITH_OPENCOLORIO)
+   info_cfg_option(WITH_XR_OPENXR)
    info_cfg_option(WITH_OPENIMAGEDENOISE)
    info_cfg_option(WITH_OPENVDB)
    info_cfg_option(WITH_ALEMBIC)
diff --cc source/blender/blenkernel/BKE_gpencil.h
index bcb93e51ea8,faa331aa02d..2084122929e
--- a/source/blender/blenkernel/BKE_gpencil.h
+++ b/source/blender/blenkernel/BKE_gpencil.h
@@@ -150,21 -174,26 +174,30 @@@ typedef enum eGP_GetFrame_Mode 
    GP_GETFRAME_ADD_COPY = 2,
  } eGP_GetFrame_Mode;
  
- struct bGPDframe *BKE_gpencil_layer_getframe(struct bGPDlayer *gpl,
-                                              int cframe,
-                                              eGP_GetFrame_Mode addnew);
- struct bGPDframe *BKE_gpencil_layer_find_frame(struct bGPDlayer *gpl, int cframe);
- bool BKE_gpencil_layer_delframe(struct bGPDlayer *gpl, struct bGPDframe *gpf);
+ struct bGPDframe *BKE_gpencil_layer_frame_get(struct bGPDlayer *gpl,
+                                               int cframe,
+                                               eGP_GetFrame_Mode addnew);
+ struct bGPDframe *BKE_gpencil_layer_frame_find(struct bGPDlayer *gpl, int cframe);
+ bool BKE_gpencil_layer_frame_delete(struct bGPDlayer *gpl, struct bGPDframe *gpf);
+ 
+ struct bGPDlayer *BKE_gpencil_layer_named_get(struct bGPdata *gpd, const char *name);
+ struct bGPDlayer *BKE_gpencil_layer_active_get(struct bGPdata *gpd);
+ void BKE_gpencil_layer_active_set(struct bGPdata *gpd, struct bGPDlayer *active);
+ void BKE_gpencil_layer_delete(struct bGPdata *gpd, struct bGPDlayer *gpl);
+ void BKE_gpencil_layer_autolock_set(struct bGPdata *gpd, const bool unlock);
+ 
+ struct bGPDlayer_Mask *BKE_gpencil_layer_mask_add(struct bGPDlayer *gpl, const char *name);
+ void BKE_gpencil_layer_mask_remove(struct bGPDlayer *gpl, struct bGPDlayer_Mask *mask);
+ void BKE_gpencil_layer_mask_remove_ref(struct bGPdata *gpd, const char *name);
+ struct bGPDlayer_Mask *BKE_gpencil_layer_mask_named_get(struct bGPDlayer *gpl, const char *name);
+ void BKE_gpencil_layer_mask_sort(struct bGPdata *gpd, struct bGPDlayer *gpl);
+ void BKE_gpencil_layer_mask_sort_all(struct bGPdata *gpd);
+ void BKE_gpencil_layer_frames_sort(struct bGPDlayer *gpl, bool *r_has_duplicate_frames);
  
 +struct bGPDlayer *BKE_gpencil_layer_get_by_name(struct bGPdata *gpd,
 +                                                char *name,
 +                                                int first_if_not_found);
 +
- struct bGPDlayer *BKE_gpencil_layer_getactive(struct bGPdata *gpd);
- void BKE_gpencil_layer_setactive(struct bGPdata *gpd, struct bGPDlayer *active);
- void BKE_gpencil_layer_delete(struct bGPdata *gpd, struct bGPDlayer *gpl);
- void BKE_gpencil_layer_autolock_set(struct bGPdata *gpd, const bool unlock);
- 
  /* Brush */
  struct Material *BKE_gpencil_brush_material_get(struct Brush *brush);
  void BKE_gpencil_brush_material_set(struct Brush *brush, struct Material *material);
@@@ -183,11 -212,9 +216,10 @@@ struct Material *BKE_gpencil_object_mat
                                                   const char *name,
                                                   int *r_index);
  
- int BKE_gpencil_object_material_get_index(struct Object *ob, struct Material *ma);
- 
+ int BKE_gpencil_object_material_index_get(struct Object *ob, struct Material *ma);
 +int BKE_gpencil_object_material_get_index_name(struct Object *ob, char *name);
  
- struct Material *BKE_gpencil_object_material_get_from_brush(struct Object *ob,
+ struct Material *BKE_gpencil_object_material_from_brush_get(struct Object *ob,
                                                              struct Brush *brush);
  int BKE_gpencil_object_material_get_index_from_brush(struct Object *ob, struct Brush *brush);
  
diff --cc source/blender/blenkernel/CMakeLists.txt
index 2885495c3b0,9716e5f5d3f..4de7ce02559
--- a/source/blender/blenkernel/CMakeLists.txt
+++ b/source/blender/blenkernel/CMakeLists.txt
@@@ -600,13 -633,9 +633,13 @@@ if(WITH_FREESTYLE
    add_definitions(-DWITH_FREESTYLE)
  endif()
  
 +if(WITH_LANPR)
 +  add_definitions(-DWITH_LANPR)
 +endif()
 +
  if(WITH_ALEMBIC)
    list(APPEND INC
-     ../alembic
+     ../io/alembic
    )
    add_definitions(-DWITH_ALEMBIC)
  endif()
diff --cc source/blender/blenkernel/intern/collection.c
index 0014fd3e7c0,583bb39a851..67516d014bd
--- a/source/blender/blenkernel/intern/collection.c
+++ b/source/blender/blenkernel/intern/collection.c
@@@ -117,17 -191,7 +191,10 @@@ Collection *BKE_collection_add(Main *bm
  /** Free (or release) any data used by this collection (does not free the collection itself). */
  void BKE_collection_free(Collection *collection)
  {
-   /* No animdata here. */
-   BKE_previewimg_free(&collection->preview);
- 
-   BLI_freelistN(&collection->gobject);
-   BLI_freelistN(&collection->children);
-   BLI_freelistN(&collection->parents);
- 
-   BKE_collection_object_cache_free(collection);
+   collection_free_data(&collection->id);
 +
 +  /* Remove LANPR configurations */
 +  MEM_SAFE_FREE(collection->lanpr);
  }
  
  /**
diff --cc source/blender/blenkernel/intern/gpencil.c
index 8eb5cca1ad0,04d3c32f599..d0ca5cebdc5
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@@ -1010,36 -1161,9 +1161,34 @@@ bGPDlayer *BKE_gpencil_layer_active_get
    return NULL;
  }
  
 +bGPDlayer *BKE_gpencil_layer_get_by_name(bGPdata *gpd, char *name, int first_if_not_found)
 +{
 +  bGPDlayer *gpl;
 +  int i = 0;
 +
 +  /* error checking */
 +  if (ELEM(NULL, gpd, gpd->layers.first)) {
 +    return NULL;
 +  }
 +
 +  /* loop over layers until found (assume only one active) */
 +  for (gpl = gpd->layers.first; gpl; gpl = gpl->next) {
 +    if (STREQ(name, gpl->info)) {
 +      return gpl;
 +    }
 +    i++;
 +  }
 +
 +  /* no such layer */
 +  if (first_if_not_found) {
 +    return gpd->layers.first;
 +  }
 +  return NULL;
 +}
 +
  /* set the active gp-layer */
- void BKE_gpencil_layer_setactive(bGPdata *gpd, bGPDlayer *active)
+ void BKE_gpencil_layer_active_set(bGPdata *gpd, bGPDlayer *active)
  {
-   bGPDlayer *gpl;
- 
    /* error checking */
    if (ELEM(NULL, gpd, gpd->layers.first, active)) {
      return;
@@@ -3044,108 -1721,56 +1746,71 @@@ int BKE_gpencil_object_material_index_g
      }
    }
  
-   /* Always untag extremes. */
-   pt = &gps->points[0];
-   pt->flag &= ~GP_SPOINT_TAG;
-   pt = &gps->points[gps->totpoints - 1];
-   pt->flag &= ~GP_SPOINT_TAG;
- 
-   /* Dissolve tagged points */
-   if (tagged) {
-     BKE_gpencil_dissolve_points(gpf, gps, GP_SPOINT_TAG);
-   }
+   return -1;
  }
  
- /* Helper: Check materials with same color. */
- static int gpencil_check_same_material_color(Object *ob_gp, float color[4], Material **r_mat)
++int BKE_gpencil_object_material_get_index_name(Object *ob, char *name)
 +{
-   Material *ma = NULL;
-   float color_cu[4];
-   linearrgb_to_srgb_v3_v3(color_cu, color);
-   float hsv1[4];
-   rgb_to_hsv_v(color_cu, hsv1);
-   hsv1[3] = color[3];
- 
-   for (int i = 1; i <= ob_gp->totcol; i++) {
-     ma = give_current_material(ob_gp, i);
-     MaterialGPencilStyle *gp_style = ma->gp_style;
-     /* Check color with small tolerance (better in HSV). */
-     float hsv2[4];
-     rgb_to_hsv_v(gp_style->fill_rgba, hsv2);
-     hsv2[3] = gp_style->fill_rgba[3];
-     if ((gp_style->fill_style == GP_STYLE_FILL_STYLE_SOLID) && (compare_v4v4(hsv1, hsv2, 0.01f))) {
-       *r_mat = ma;
-       return i - 1;
++  short *totcol = BKE_object_material_len_p(ob);
++  Material *read_ma = NULL;
++  for (short i = 0; i < *totcol; i++) {
++    read_ma = BKE_object_material_get(ob, i + 1);
++    /* Material names are like "MAMaterial.001" */
++    if (STREQ(name, &read_ma->id.name[2])) {
++      return i;
 +    }
 +  }
 +
-   *r_mat = NULL;
 +  return -1;
 +}
 +
- /* Helper: Add gpencil material using curve material as base. */
- static Material *gpencil_add_from_curve_material(Main *bmain,
-                                                  Object *ob_gp,
-                                                  const float cu_color[4],
-                                                  const bool gpencil_lines,
-                                                  const bool fill,
-                                                  int *r_idx)
- {
-   Material *mat_gp = BKE_gpencil_object_material_new(
-       bmain, ob_gp, (fill) ? "Material" : "Unassigned", r_idx);
-   MaterialGPencilStyle *gp_style = mat_gp->gp_style;
- 
-   /* Stroke color. */
-   if (gpencil_lines) {
-     ARRAY_SET_ITEMS(gp_style->stroke_rgba, 0.0f, 0.0f, 0.0f, 1.0f);
-     gp_style->flag |= GP_STYLE_STROKE_SHOW;
-   }
-   else {
-     linearrgb_to_srgb_v4(gp_style->stroke_rgba, cu_color);
-     gp_style->flag &= ~GP_STYLE_STROKE_SHOW;
-   }
- 
-   /* Fill color. */
-   linearrgb_to_srgb_v4(gp_style->fill_rgba, cu_color);
-   /* Fill is false if the original curve hasn't material assigned, so enable it. */
-   if (fill) {
-     gp_style->flag |= GP_STYLE_FILL_SHOW;
+ /* Create a default palette */
+ void BKE_gpencil_palette_ensure(Main *bmain, Scene *scene)
+ {
+   const int totcol = 120;
+   const char *hexcol[] = {
+       "FFFFFF", "F2F2F2", "E6E6E6", "D9D9D9", "CCCCCC", "

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list