[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