[Bf-blender-cvs] [7d9427aa776] greasepencil-object: Prepare eraser icon to use different images

Antonio Vazquez noreply at git.blender.org
Mon Mar 5 15:52:54 CET 2018


Commit: 7d9427aa776468b148684c45583344ddcae9a0f9
Author: Antonio Vazquez
Date:   Mon Mar 5 15:51:53 2018 +0100
Branches: greasepencil-object
https://developer.blender.org/rB7d9427aa776468b148684c45583344ddcae9a0f9

Prepare eraser icon to use different images

The code is ready to change the icon for each type of eraser, but as it's not decided yet, we keep the same image in all of them while we decide new design.

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

R100	release/datafiles/brushicons/gp_brush_erase.png	release/datafiles/brushicons/gp_brush_erase_soft.png
M	source/blender/blenkernel/intern/gpencil.c
M	source/blender/editors/datafiles/CMakeLists.txt
M	source/blender/editors/gpencil/gpencil_paint.c
M	source/blender/editors/include/ED_datafiles.h
M	source/blender/editors/include/UI_icons.h
M	source/blender/editors/interface/interface_icons.c
M	source/blender/makesdna/DNA_gpencil_types.h
M	source/blender/makesrna/intern/rna_scene.c

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

diff --git a/release/datafiles/brushicons/gp_brush_erase.png b/release/datafiles/brushicons/gp_brush_erase_soft.png
similarity index 100%
rename from release/datafiles/brushicons/gp_brush_erase.png
rename to release/datafiles/brushicons/gp_brush_erase_soft.png
diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c
index 5b4df156abe..8c39eb93821 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -782,7 +782,7 @@ void BKE_gpencil_brush_init_presets(ToolSettings *ts)
 	brush = BKE_gpencil_brush_addnew(ts, "Soft Eraser", false);
 	brush->thickness = 30.0f;
 	brush->flag |= (GP_BRUSH_ENABLE_CURSOR | GP_BRUSH_DEFAULT_ERASER);
-	brush->icon = GPBRUSH_ERASE;
+	brush->icon = GPBRUSH_ERASE_SOFT;
 	brush->type = GP_BRUSH_TYPE_ERASE;
 	brush->eraser_mode = GP_BRUSH_ERASER_SOFT;
 	copy_v3_v3(brush->curcolor, curcolor);
@@ -791,7 +791,7 @@ void BKE_gpencil_brush_init_presets(ToolSettings *ts)
 	brush = BKE_gpencil_brush_addnew(ts, "Hard Eraser", false);
 	brush->thickness = 30.0f;
 	brush->flag |= GP_BRUSH_ENABLE_CURSOR;
-	brush->icon = GPBRUSH_ERASE;
+	brush->icon = GPBRUSH_ERASE_HARD;
 	brush->type = GP_BRUSH_TYPE_ERASE;
 	brush->eraser_mode = GP_BRUSH_ERASER_HARD;
 	copy_v3_v3(brush->curcolor, curcolor);
@@ -800,7 +800,7 @@ void BKE_gpencil_brush_init_presets(ToolSettings *ts)
 	brush = BKE_gpencil_brush_addnew(ts, "Stroke Eraser", false);
 	brush->thickness = 30.0f;
 	brush->flag |= GP_BRUSH_ENABLE_CURSOR;
-	brush->icon = GPBRUSH_ERASE;
+	brush->icon = GPBRUSH_ERASE_STROKE;
 	brush->type = GP_BRUSH_TYPE_ERASE;
 	brush->eraser_mode = GP_BRUSH_ERASER_STROKE;
 	copy_v3_v3(brush->curcolor, curcolor);
diff --git a/source/blender/editors/datafiles/CMakeLists.txt b/source/blender/editors/datafiles/CMakeLists.txt
index 152a671f087..a804c587a5e 100644
--- a/source/blender/editors/datafiles/CMakeLists.txt
+++ b/source/blender/editors/datafiles/CMakeLists.txt
@@ -639,7 +639,7 @@ if(WITH_BLENDER)
 		data_to_c_simple(../../../../release/datafiles/brushicons/gp_brush_marker.png SRC)
 		data_to_c_simple(../../../../release/datafiles/brushicons/gp_brush_custom.png SRC)
 		data_to_c_simple(../../../../release/datafiles/brushicons/gp_brush_fill.png SRC)
-		data_to_c_simple(../../../../release/datafiles/brushicons/gp_brush_erase.png SRC)
+		data_to_c_simple(../../../../release/datafiles/brushicons/gp_brush_erase_soft.png SRC)
 
 	endif()
 
diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c
index a84953cf6d4..44ce72c4aec 100644
--- a/source/blender/editors/gpencil/gpencil_paint.c
+++ b/source/blender/editors/gpencil/gpencil_paint.c
@@ -1417,8 +1417,9 @@ static bGPDbrush *gp_get_default_eraser(ToolSettings *ts)
 		}
 	}
 
-	/* if no default, but exist eraser brush, return this */
+	/* if no default, but exist eraser brush, return this and set as default */
 	if (brush_dft) {
+		brush_dft->flag |= GP_BRUSH_DEFAULT_ERASER;
 		return brush_dft;
 	}
 	/* create a new soft eraser brush */
@@ -1426,7 +1427,7 @@ static bGPDbrush *gp_get_default_eraser(ToolSettings *ts)
 		brush_dft = BKE_gpencil_brush_addnew(ts, "Soft Eraser", false);
 		brush_dft->thickness = 30.0f;
 		brush_dft->flag |= (GP_BRUSH_ENABLE_CURSOR | GP_BRUSH_DEFAULT_ERASER);
-		brush_dft->icon = GPBRUSH_ERASE;
+		brush_dft->icon = GPBRUSH_ERASE_SOFT;
 		brush_dft->type = GP_BRUSH_TYPE_ERASE;
 		brush_dft->eraser_mode = GP_BRUSH_ERASER_SOFT;
 
diff --git a/source/blender/editors/include/ED_datafiles.h b/source/blender/editors/include/ED_datafiles.h
index 9559011e714..4ef677b65bc 100644
--- a/source/blender/editors/include/ED_datafiles.h
+++ b/source/blender/editors/include/ED_datafiles.h
@@ -295,8 +295,8 @@ extern char datatoc_gp_brush_custom_png[];
 extern int datatoc_gp_brush_fill_png_size;
 extern char datatoc_gp_brush_fill_png[];
 
-extern int datatoc_gp_brush_erase_png_size;
-extern char datatoc_gp_brush_erase_png[];
+extern int datatoc_gp_brush_erase_soft_png_size;
+extern char datatoc_gp_brush_erase_soft_png[];
 
 #endif /* __ED_DATAFILES_H__ */
 
diff --git a/source/blender/editors/include/UI_icons.h b/source/blender/editors/include/UI_icons.h
index 8a90e1c8a9f..ac128a525c0 100644
--- a/source/blender/editors/include/UI_icons.h
+++ b/source/blender/editors/include/UI_icons.h
@@ -1022,7 +1022,9 @@ DEF_ICON(GPBRUSH_BLOCK)
 DEF_ICON(GPBRUSH_MARKER)
 DEF_ICON(GPBRUSH_CUSTOM)
 DEF_ICON(GPBRUSH_FILL)
-DEF_ICON(GPBRUSH_ERASE)
+DEF_ICON(GPBRUSH_ERASE_SOFT)
+DEF_ICON(GPBRUSH_ERASE_HARD)
+DEF_ICON(GPBRUSH_ERASE_STROKE)
 
 /* vector icons, VICO_ prefix added */	
 DEF_VICO(SMALL_TRI_RIGHT_VEC)
diff --git a/source/blender/editors/interface/interface_icons.c b/source/blender/editors/interface/interface_icons.c
index a6175a66535..83b978070c4 100644
--- a/source/blender/editors/interface/interface_icons.c
+++ b/source/blender/editors/interface/interface_icons.c
@@ -440,7 +440,10 @@ static void init_brush_icons(void)
 	INIT_BRUSH_ICON(ICON_GPBRUSH_MARKER, gp_brush_marker);
 	INIT_BRUSH_ICON(ICON_GPBRUSH_CUSTOM, gp_brush_custom);
 	INIT_BRUSH_ICON(ICON_GPBRUSH_FILL, gp_brush_fill);
-	INIT_BRUSH_ICON(ICON_GPBRUSH_ERASE, gp_brush_erase);
+	/* Use same png for 3 eraser brusehs while decide new design */
+	INIT_BRUSH_ICON(ICON_GPBRUSH_ERASE_SOFT, gp_brush_erase_soft);
+	INIT_BRUSH_ICON(ICON_GPBRUSH_ERASE_HARD, gp_brush_erase_soft);
+	INIT_BRUSH_ICON(ICON_GPBRUSH_ERASE_STROKE, gp_brush_erase_soft);
 
 #undef INIT_BRUSH_ICON
 }
diff --git a/source/blender/makesdna/DNA_gpencil_types.h b/source/blender/makesdna/DNA_gpencil_types.h
index b547adab550..214ecb58f59 100644
--- a/source/blender/makesdna/DNA_gpencil_types.h
+++ b/source/blender/makesdna/DNA_gpencil_types.h
@@ -574,7 +574,9 @@ typedef enum eGP_BrushIcons {
 	GPBRUSH_BLOCK = 5,
 	GPBRUSH_MARKER = 6,
 	GPBRUSH_FILL = 7,
-	GPBRUSH_ERASE = 8
+	GPBRUSH_ERASE_SOFT = 8,
+	GPBRUSH_ERASE_HARD = 9,
+	GPBRUSH_ERASE_STROKE = 10
 } eGP_BrushIcons;
 
 /* ***************************************** */
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index 3ec45bbaae6..c1807ac3557 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -678,8 +678,12 @@ static int gpencil_get_brush_icon(int type)
 			return ICON_GPBRUSH_MARKER;
 		case GPBRUSH_FILL:
 			return ICON_GPBRUSH_FILL;
-		case GPBRUSH_ERASE:
-			return ICON_GPBRUSH_ERASE;
+		case GPBRUSH_ERASE_SOFT:
+			return ICON_GPBRUSH_ERASE_SOFT;
+		case GPBRUSH_ERASE_HARD:
+			return ICON_GPBRUSH_ERASE_HARD;
+		case GPBRUSH_ERASE_STROKE:
+			return ICON_GPBRUSH_ERASE_STROKE;
 		default:
 			return ICON_GPBRUSH_CUSTOM;
 	}
@@ -723,7 +727,20 @@ static int gpencil_get_brush_icon(int type)
 			item_tmp.icon = ICON_GPBRUSH_FILL;
 		}
 		else if(brush->type == GP_BRUSH_TYPE_ERASE) {
-			item_tmp.icon = ICON_GPBRUSH_ERASE;
+			switch (brush->eraser_mode) {
+				case GP_BRUSH_ERASER_SOFT:
+					item_tmp.icon = ICON_GPBRUSH_ERASE_SOFT;
+					break;
+				case GP_BRUSH_ERASER_HARD:
+					item_tmp.icon = ICON_GPBRUSH_ERASE_HARD;
+					break;
+				case GP_BRUSH_ERASER_STROKE:
+					item_tmp.icon = ICON_GPBRUSH_ERASE_STROKE;
+					break;
+				default:
+					item_tmp.icon = ICON_GPBRUSH_ERASE_SOFT;
+					break;
+			}
 		}
 		else {
 			item_tmp.icon = gpencil_get_brush_icon(brush->icon);



More information about the Bf-blender-cvs mailing list