[Bf-blender-cvs] [384d1f80ad5] greasepencil-object: Merge branch 'blender2.8' into greasepencil-object

Antonio Vazquez noreply at git.blender.org
Fri Dec 15 13:17:32 CET 2017


Commit: 384d1f80ad5072a84cd46301e2d5f13ad3eb42dd
Author: Antonio Vazquez
Date:   Fri Dec 15 12:44:37 2017 +0100
Branches: greasepencil-object
https://developer.blender.org/rB384d1f80ad5072a84cd46301e2d5f13ad3eb42dd

Merge branch 'blender2.8' into greasepencil-object

 Conflicts:
	source/blender/blenloader/intern/versioning_280.c
	source/blender/draw/intern/draw_cache_impl.h
	source/blender/makesdna/DNA_scene_types.h

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



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

diff --cc source/blender/blenloader/intern/versioning_280.c
index 0f90388d37f,cfe7ffe87a2..1f66a1d588d
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@@ -902,142 -839,18 +913,157 @@@ void blo_do_versions_280(FileData *fd, 
  		}
  	}
  
+ 	if (!MAIN_VERSION_ATLEAST(main, 280, 3)) {
+ 		for (Scene *scene = main->scene.first; scene; scene = scene->id.next) {
+ 			ViewLayer *view_layer;
+ 			for (view_layer = scene->view_layers.first; view_layer; view_layer = view_layer->next) {
+ 				do_version_view_layer_visibility(view_layer);
+ 			}
+ 		}
+ 
+ 		for (Group *group = main->group.first; group; group = group->id.next) {
+ 			if (group->view_layer != NULL){
+ 				do_version_view_layer_visibility(group->view_layer);
+ 			}
+ 		}
+ 	}
++
 +	if (!MAIN_VERSION_ATLEAST(main, 280, 2)) {
 +		/* NOTE: See also do_versions_after_linking_280()
 +		 * Some GP datablock link changes happen there instead, otherwise we get weird
 +		 * crashes and corrupt data when trying to move linked datablocks around.
 +		 */
 +
 +		 /* Convert grease pencil palettes to blender palettes */
 +		if (!DNA_struct_elem_find(fd->filesdna, "bGPDstroke", "Palette", "*palette")) {
 +			for (bGPdata *gpd = main->gpencil.first; gpd; gpd = gpd->id.next) {
 +				/* first create all palettes and colors */
 +				Palette *first = NULL;
 +				for (bGPDpalette *oldpalette = gpd->palettes.first; oldpalette; oldpalette = oldpalette->next) {
 +					/* create palette */
 +					bGPDpaletteref *palslot = BKE_gpencil_paletteslot_addnew(main, gpd, oldpalette->info);
 +					Palette *newpalette = palslot->palette;
 +
 +					/* save first to use later */
 +					if (first == NULL) {
 +						first = newpalette;
 +					}
 +
 +					for (bGPDpalettecolor *oldcolor = oldpalette->colors.first; oldcolor; oldcolor = oldcolor->next) {
 +						PaletteColor *newcolor = BKE_palette_color_add_name(newpalette, oldcolor->info);
 +						/* set color attributes */
 +						copy_v4_v4(newcolor->rgb, oldcolor->color);
 +						copy_v4_v4(newcolor->fill, oldcolor->fill);
 +						newcolor->flag = oldcolor->flag;
 +					}
 +					/* set first color active by default */
 +					if (!BLI_listbase_is_empty(&newpalette->colors)) {
 +						newpalette->active_color = 0;
 +					}
 +				}
 +				/* second, assign the palette and the color (always to first palette) */
 +				for (bGPDlayer *gpl = gpd->layers.first; gpl; gpl = gpl->next) {
 +					for (bGPDframe *gpf = gpl->frames.first; gpf; gpf = gpf->next) {
 +						for (bGPDstroke *gps = gpf->strokes.first; gps; gps = gps->next) {
 +							Palette *palette = first;
 +							PaletteColor *palcolor = BKE_palette_color_getbyname(first, gps->colorname);
 +
 +							gps->palette = palette;
 +							gps->palcolor = palcolor;
 +						}
 +					}
 +				}
 +				gpd->id.tag &= ~LIB_TAG_NEED_LINK; // XXX: WHY?!
 +			}
 +		}
 +
 +		/* Grease pencil sculpt and paint cursors */
 +		if (!DNA_struct_elem_find(fd->filesdna, "GP_BrushEdit_Settings", "int", "weighttype")) {
 +			for (Scene *scene = main->scene.first; scene; scene = scene->id.next) {
 +				/* sculpt brushes */
 +				GP_BrushEdit_Settings *gset = &scene->toolsettings->gp_sculpt;
 +				if (gset) {
 +					gset->alpha = 1.0f;
 +					gset->weighttype = GP_EDITBRUSH_TYPE_WEIGHT;
 +				}
 +			}
 +		}
 +
 +		if (!DNA_struct_elem_find(fd->filesdna, "bGPDbrush", "float", "curcolor[3]")) {
 +			float curcolor[3], curcolor_add[3], curcolor_sub[3];
 +			ARRAY_SET_ITEMS(curcolor, 1.0f, 1.0f, 1.0f);
 +			ARRAY_SET_ITEMS(curcolor_add, 1.0f, 0.6f, 0.6f);
 +			ARRAY_SET_ITEMS(curcolor_sub, 0.6f, 0.6f, 1.0f);
 +			GP_EditBrush_Data *gp_brush;
 +
 +			for (Scene *scene = main->scene.first; scene; scene = scene->id.next) {
 +				/* drawing brushes */
 +				ToolSettings *ts = scene->toolsettings;
 +				for (bGPDbrush *brush = ts->gp_brushes.first; brush; brush = brush->next) {
 +					brush->flag |= GP_BRUSH_ENABLE_CURSOR;
 +					copy_v3_v3(brush->curcolor, curcolor);
 +				}
 +				/* sculpt brushes */
 +				GP_BrushEdit_Settings *gset = &ts->gp_sculpt;
 +				for (int i = 0; i < TOT_GP_EDITBRUSH_TYPES; ++i) {
 +					gp_brush = &gset->brush[i];
 +					gp_brush->flag |= GP_EDITBRUSH_FLAG_ENABLE_CURSOR;
 +					copy_v3_v3(gp_brush->curcolor_add, curcolor_add);
 +					copy_v3_v3(gp_brush->curcolor_sub, curcolor_sub);
 +				}
 +			}
 +		}
 +
 +		/* Init grease pencil vertex groups */
 +		if (!DNA_struct_elem_find(fd->filesdna, "bGPDweight", "int", "index")) {
 +			for (bGPdata *gpd = main->gpencil.first; gpd; gpd = gpd->id.next) {
 +				for (bGPDlayer *gpl = gpd->layers.first; gpl; gpl = gpl->next) {
 +					for (bGPDframe *gpf = gpl->frames.first; gpf; gpf = gpf->next) {
 +						for (bGPDstroke *gps = gpf->strokes.first; gps; gps = gps->next) {
 +							for (int i = 0; i < gps->totpoints; ++i) {
 +								bGPDspoint *pt = &gps->points[i];
 +								pt->totweight = 0;
 +								pt->weights = NULL;
 +							}
 +						}
 +					}
 +				}
 +			}
 +		}
 +
 +		/* Init grease pencil edit line color */
 +		if (!DNA_struct_elem_find(fd->filesdna, "bGPdata", "float", "line_color[4]")) {
 +			for (bGPdata *gpd = main->gpencil.first; gpd; gpd = gpd->id.next) {
 +				ARRAY_SET_ITEMS(gpd->line_color, 0.6f, 0.6f, 0.6f, 0.5f);
 +			}
 +		}
 +
 +		/* Init grease pencil pixel size factor */
 +		if (!DNA_struct_elem_find(fd->filesdna, "bGPDdata", "int", "pixfactor")) {
 +			for (bGPdata *gpd = main->gpencil.first; gpd; gpd = gpd->id.next) {
 +				gpd->pixfactor = GP_DEFAULT_PIX_FACTOR;
 +			}
 +		}
 +	}
 +
 +	/* XXX: this is a hack to manage Hero open movie files
 +	 * this code must be merged in previous version 
 +	 */
 +	if (!MAIN_VERSION_ATLEAST(main, 280, 3)) {
 +		/* Grease pencil multiframe falloff curve */
 +		if (!DNA_struct_elem_find(fd->filesdna, "GP_BrushEdit_Settings", "CurveMapping", "cur_falloff")) {
 +			for (Scene *scene = main->scene.first; scene; scene = scene->id.next) {
 +				/* sculpt brushes */
 +				GP_BrushEdit_Settings *gset = &scene->toolsettings->gp_sculpt;
 +				if ((gset) && (gset->cur_falloff == NULL)) {
 +					gset->cur_falloff = curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
 +					curvemapping_initialize(gset->cur_falloff);
 +					curvemap_reset(gset->cur_falloff->cm,
 +						&gset->cur_falloff->clipr,
 +						CURVE_PRESET_GAUSS,
 +						CURVEMAP_SLOPE_POSITIVE);
 +				}
 +			}
 +		}
 +	}
  }
diff --cc source/blender/draw/intern/draw_cache_impl.h
index f2ad57a8d93,5188ac0bd1a..1a79add4b29
--- a/source/blender/draw/intern/draw_cache_impl.h
+++ b/source/blender/draw/intern/draw_cache_impl.h
@@@ -37,7 -38,7 +38,8 @@@ struct ParticleSystem
  struct Curve;
  struct Lattice;
  struct Mesh;
+ struct MetaBall;
 +struct bGPdata;
  
  /* Expose via BKE callbacks */
  void DRW_mball_batch_cache_dirty(struct MetaBall *mb, int mode);
diff --cc source/blender/makesdna/DNA_scene_types.h
index 46ba5a9bfb9,065ee801b84..b28beb8c91d
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@@ -1687,21 -1664,19 +1687,22 @@@ typedef struct Scene 
  	/* Units */
  	struct UnitSettings unit;
  	
 -	/* Grease Pencil */
 -	struct bGPdata *gpd;
 +	/* Movie Tracking */
 +	struct MovieClip *clip;			/* active movie clip */
  
+ 	/* Movie Tracking */
+ 	struct MovieClip *clip;			/* active movie clip */
+ 
  	/* Physics simulation settings */
  	struct PhysicsSettings physics_settings;
  
- 	void *pad6;
- 
  	uint64_t customdata_mask;	/* XXX. runtime flag for drawing, actually belongs in the window, only used by BKE_object_handle_update() */
  	uint64_t customdata_mask_modal; /* XXX. same as above but for temp operator use (gl renders) */
 -
 -
 +	
 +	/* Grease Pencil */
 +	struct bGPdata *gpd;
 +	struct Object *gp_object;     /* default GP object for annotations */
 +	
  	/* Color Management */
  	ColorManagedViewSettings view_settings;
  	ColorManagedDisplaySettings display_settings;



More information about the Bf-blender-cvs mailing list