[Bf-blender-cvs] [a6d584fc46d] greasepencil-object: Merge commit '3abe8b3292cf7a50a9200b95401993384df24d9a' into greasepencil-object

Dalai Felinto noreply at git.blender.org
Thu Nov 23 14:05:26 CET 2017


Commit: a6d584fc46de2a53357a9a3d813f80889472266a
Author: Dalai Felinto
Date:   Thu Nov 23 10:34:42 2017 -0200
Branches: greasepencil-object
https://developer.blender.org/rBa6d584fc46de2a53357a9a3d813f80889472266a

Merge commit '3abe8b3292cf7a50a9200b95401993384df24d9a' into greasepencil-object

Note: Since grease pencil had its own subversion, and this merge brings 2.80
subversion 2 as well, the files should be saved BEFORE this commit, to be sure
that all the doversion happened.

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



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

diff --cc source/blender/blenkernel/BKE_modifier.h
index 586584e7f05,451823aedf5..d4f84c9a1fa
--- a/source/blender/blenkernel/BKE_modifier.h
+++ b/source/blender/blenkernel/BKE_modifier.h
@@@ -37,10 -37,9 +37,10 @@@ struct DerivedMesh
  struct DagForest;
  struct DagNode;
  struct EvaluationContext;
 +struct bContext;
  struct Object;
  struct Scene;
- struct SceneLayer;
+ struct ViewLayer;
  struct ListBase;
  struct bArmature;
  struct Main;
diff --cc source/blender/blenkernel/BKE_object.h
index 6ab48f3c25f,f346be296a1..7213cb0769f
--- a/source/blender/blenkernel/BKE_object.h
+++ b/source/blender/blenkernel/BKE_object.h
@@@ -37,8 -37,7 +37,8 @@@ extern "C" 
  
  struct EvaluationContext;
  struct Scene;
- struct SceneLayer;
+ struct ViewLayer;
 +struct ID;
  struct Object;
  struct BoundBox;
  struct View3D;
@@@ -94,12 -93,9 +94,12 @@@ struct Object *BKE_object_add
          int type, const char *name)
          ATTR_NONNULL(1, 2, 3) ATTR_RETURNS_NONNULL;
  struct Object *BKE_object_add_from(
-         struct Main *bmain, struct Scene *scene, struct SceneLayer *scene_layer,
+         struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer,
          int type, const char *name, struct Object *ob_src)
          ATTR_NONNULL(1, 2, 3, 6) ATTR_RETURNS_NONNULL;
 +struct Object *BKE_object_add_for_data(
-         struct Main *bmain, struct Scene *scene, struct SceneLayer *scene_layer,
++        struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer,
 +        int type, const char *name, struct ID *data, bool add_user) ATTR_RETURNS_NONNULL;
  void *BKE_object_obdata_add_from_type(
          struct Main *bmain,
          int type, const char *name)
diff --cc source/blender/blenkernel/intern/object.c
index bf73b154846,95394f6be63..ba792af1432
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@@ -768,10 -756,10 +768,10 @@@ Object *BKE_object_add
  /**
   * Add a new object, using another one as a reference
   *
 - * /param ob_src object to use to determine the collections of the new object.
 + * \param ob_src object to use to determine the collections of the new object.
   */
  Object *BKE_object_add_from(
-         Main *bmain, Scene *scene, SceneLayer *scene_layer,
+         Main *bmain, Scene *scene, ViewLayer *view_layer,
          int type, const char *name, Object *ob_src)
  {
  	Object *ob;
@@@ -786,41 -774,6 +786,41 @@@
  	return ob;
  }
  
 +/**
 + * Add a new object, but assign the given datablock as the ob->data
 + * for the newly created object.
 + *
 + * \param data The datablock to assign as ob->data for the new object.
 + *             This is assumed to be of the correct type.
 + * \param add_user If true, id_us_plus() will be called on data when
 + *                 assigning it to the object.
 + */
 +Object *BKE_object_add_for_data(
-         Main *bmain, Scene *scene, SceneLayer *scene_layer,
++        Main *bmain, Scene *scene, ViewLayer *view_layer,
 +        int type, const char *name, ID *data, bool add_user)
 +{
 +	Object *ob;
 +	Base *base;
 +	LayerCollection *layer_collection;
 +
 +	/* same as object_add_common, except we don't create new ob->data */
 +	ob = BKE_object_add_only_object(bmain, type, name);
 +	ob->data = data;
 +	if (add_user) id_us_plus(data);
 +	
- 	BKE_scene_layer_base_deselect_all(scene_layer);
++	BKE_view_layer_base_deselect_all(view_layer);
 +	DEG_id_tag_update_ex(bmain, &ob->id, OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME);
 +
- 	layer_collection = BKE_layer_collection_get_active_ensure(scene, scene_layer);
++	layer_collection = BKE_layer_collection_get_active_ensure(scene, view_layer);
 +	BKE_collection_object_add(scene, layer_collection->scene_collection, ob);
 +
- 	base = BKE_scene_layer_base_find(scene_layer, ob);
- 	BKE_scene_layer_base_select(scene_layer, base);
++	base = BKE_view_layer_base_find(view_layer, ob);
++	BKE_view_layer_base_select(view_layer, base);
 +
 +	return ob;
 +}
 +
 +
  #ifdef WITH_GAMEENGINE
  
  void BKE_object_lod_add(Object *ob)
diff --cc source/blender/blenloader/intern/readfile.c
index 460c7737b56,065e0871a3d..d5c83d8e784
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@@ -253,9 -252,7 +253,9 @@@ static void *read_struct(FileData *fd, 
  static void direct_link_modifiers(FileData *fd, ListBase *lb);
  static BHead *find_bhead_from_code_name(FileData *fd, const short idcode, const char *name);
  static BHead *find_bhead_from_idname(FileData *fd, const char *idname);
- static SceneCollection *get_scene_collection_active_or_create(struct Scene *scene, struct SceneLayer *scene_layer, const short flag);
+ static SceneCollection *get_scene_collection_active_or_create(struct Scene *scene, struct ViewLayer *view_layer, const short flag);
 +static void direct_link_animdata(FileData *fd, AnimData *adt);
 +static void lib_link_animdata(FileData *fd, ID *id, AnimData *adt);
  
  /* this function ensures that reports are printed,
   * in the case of libraray linking errors this is important!
diff --cc source/blender/blenloader/intern/versioning_280.c
index 56e5df4e8a1,8da4fef7b21..62b55903e02
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@@ -532,73 -527,20 +532,73 @@@ void do_versions_after_linking_280(Mai
  		do_version_workspaces_after_lib_link(main);
  	}
  
+ 	if (!MAIN_VERSION_ATLEAST(main, 280, 2)) {
+ 		/* Cleanup any remaining SceneRenderLayer data for files that were created
 -		 * with Blender 2.8 before the SceneRenderLayer > RenderLayer refactor. */
++		* with Blender 2.8 before the SceneRenderLayer > RenderLayer refactor. */
+ 		for (Scene *scene = main->scene.first; scene; scene = scene->id.next) {
+ 			for (SceneRenderLayer *srl = scene->r.layers.first; srl; srl = srl->next) {
+ 				if (srl->prop) {
+ 					IDP_FreeProperty(srl->prop);
+ 					MEM_freeN(srl->prop);
+ 				}
+ 				BKE_freestyle_config_free(&srl->freestyleConfig);
+ 			}
+ 			BLI_freelistN(&scene->r.layers);
+ 		}
+ 	}
++
 +	/* Grease Pencil Object */
 +	if (!MAIN_VERSION_ATLEAST(main, 280, 2)) {
 +		/* Convert grease pencil datablock to GP object */
 +		for (Scene *scene = main->scene.first; scene; scene = scene->id.next) {
 +			if (scene->gpd) {
 +				Object *ob;
- 				SceneLayer *scene_layer = BKE_scene_layer_from_scene_get(scene);
- 				if (scene_layer == NULL) {
- 					scene_layer = BKE_scene_layer_add(scene, "Viewport");
- 					printf("added scene layer again - %p\n", scene_layer);
++				ViewLayer *view_layer = BKE_view_layer_from_scene_get(scene);
++				if (view_layer == NULL) {
++					view_layer = BKE_view_layer_add(scene, "Viewport");
++					printf("added scene layer again - %p\n", view_layer);
 +				}
 +
- 				ob = BKE_object_add_for_data(main, scene, scene_layer, OB_GPENCIL, "GP_Scene", &scene->gpd->id, false);
++				ob = BKE_object_add_for_data(main, scene, view_layer, OB_GPENCIL, "GP_Scene", &scene->gpd->id, false);
 +				zero_v3(ob->loc);
 +				scene->gpd = NULL;
 +
 +				/* set cache as dirty */
 +				BKE_gpencil_batch_cache_dirty(ob->data);
 +			}
 +		}
 +	}
- 	
++
 +	/* XXX: Merge back into previous case... leaving like this so the Hero animatic/production files so far don't break */
 +	if (!MAIN_VERSION_ATLEAST(main, 280, 3)) {
 +		/* Handle object-linked grease pencil datablocks */
 +		for (Object *ob = main->object.first; ob; ob = ob->id.next) {
 +			if (ob->gpd) {
 +				if (ob->type == OB_GPENCIL) {
 +					/* GP Object - remap the links */
 +					ob->data = ob->gpd;
 +					ob->gpd = NULL;
 +				}
 +				else if (ob->type == OB_EMPTY) {
 +					/* Empty with GP data - This should be able to be converted
 +					 * to a GP object with little data loss
 +					 */
 +					ob->data = ob->gpd;
 +					ob->gpd = NULL;
 +					ob->type = OB_GPENCIL;
 +				}
 +				else {
 +					/* FIXME: What to do in this case?
 +					 *
 +					 * We cannot create new objects for these, as we don't have a scene & scene layer
 +					 * to put them into from here...
 +					 */
 +					printf("WARNING: Old Grease Pencil data ('%s') still exists on Object '%s'\n",
 +					       ob->gpd->id.name+2, ob->id.name+2);
 +				}
 +			}
 +		}
 +	}
- 
- 	{
- 		/* Cleanup any remaining SceneRenderLayer data for files that were created
- 		* with Blender 2.8 before the SceneRenderLayer > RenderLayer refactor. */
- 		for (Scene *scene = main->scene.first; scene; scene = scene->id.next) {
- 			for (SceneRenderLayer *srl = scene->r.layers.first; srl; srl = srl->next) {
- 				if (srl->prop) {
- 					IDP_FreeProperty(srl->prop);
- 					MEM_freeN(srl->prop);
- 				}
- 				BKE_freestyle_config_free(&srl->freestyleConfig);
- 			}
- 			BLI_freelistN(&scene->r.layers);
- 		}
- 	}
  }
  
  static void do_version_layer_collections_idproperties(ListBase *lb)
@@@ -690,249 -632,125 +690,243 @@@ void blo_do_versions_280(FileData *fd, 
  		}
  	}
  
+ 	if (!MAIN_VERSION_ATLEAST(main, 280, 2)) {
+ 		if (!DNA_struct_elem_find(fd->filesdna, "View3D", "short", "custom_orientation_index")) {
+ 			for (bScreen *screen = main->screen.first; screen; screen = screen->id.next) {
+ 				for (ScrArea *area = screen->areabase.first; area; area = area->next) {
+ 					for (SpaceLink *sl = area->spacedata.first; sl; sl = sl->next) {
+ 						if (sl->spacetype == SPACE_VIEW3D) {
+ 							View3D *v3d = (View3D *)sl;
+ 							if (v3d->twmode >= V3D_MANIP_CUSTOM) {
+ 								v3d->custom_orientation_index = v3d->twmode - V3D_MANIP_CUSTOM;
+ 								v3d->twmode = V3D_MANIP_CUSTOM;
+ 							}
+ 							else {
+ 								v3d->custom_orientation_index = -1;
+ 							}
+ 						}
+ 					}
+ 				}
+ 			}
+ 		}
+ 
+ 		if (!DNA_struct_elem_find(fd->filesdna, "Lamp", "float", "cascade_max_dist")) {
+ 			for (Lamp *la = main->lamp.first; la; la = la->id.next) {
+ 				la->cascade_max_dist = 1000.0f;
+ 				la->cascade_count = 4;
+ 				la->cascade_exponent = 0.8f;
+ 				la->cascade_fade = 0.1f;
+ 			}
+ 		}
+ 
+ 		if (!DNA_struct_elem_find(fd->filesdna, "Lamp", "float", "contact_dist")) {
+ 			for (Lamp *la = main->lamp.first; la; la = la->id.next) {
+ 				la->contact_dist = 1.0f;
+ 				la->contact_bias = 0.03f;
+ 				la->contact_spread = 0.2f;
+ 				la->contact_thickness = 0.5f;
+ 			}
+ 		}
+ 
+ 

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list