[Bf-blender-cvs] [25570cd02bf] new-object-types: Merge branch 'master' into HEAD

Brecht Van Lommel noreply at git.blender.org
Tue Mar 10 13:47:48 CET 2020


Commit: 25570cd02bf2ee5666703f07751344e8b8e8c809
Author: Brecht Van Lommel
Date:   Tue Mar 10 13:40:52 2020 +0100
Branches: new-object-types
https://developer.blender.org/rB25570cd02bf2ee5666703f07751344e8b8e8c809

Merge branch 'master' into HEAD

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



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

diff --cc source/blender/blenkernel/BKE_idtype.h
index a7c90851e41,9562ace3c51..60eee2035f5
--- a/source/blender/blenkernel/BKE_idtype.h
+++ b/source/blender/blenkernel/BKE_idtype.h
@@@ -129,42 -127,39 +129,42 @@@ typedef struct IDTypeInfo 
  extern IDTypeInfo IDType_ID_SCE;
  extern IDTypeInfo IDType_ID_LI;
  extern IDTypeInfo IDType_ID_OB;
- // extern IDTypeInfo IDType_ID_ME;
- // extern IDTypeInfo IDType_ID_CU;
- // extern IDTypeInfo IDType_ID_MB;
- // extern IDTypeInfo IDType_ID_MA;
- // extern IDTypeInfo IDType_ID_TE;
- // extern IDTypeInfo IDType_ID_IM;
- // extern IDTypeInfo IDType_ID_LT;
+ extern IDTypeInfo IDType_ID_ME;
+ extern IDTypeInfo IDType_ID_CU;
+ extern IDTypeInfo IDType_ID_MB;
+ extern IDTypeInfo IDType_ID_MA;
+ extern IDTypeInfo IDType_ID_TE;
+ extern IDTypeInfo IDType_ID_IM;
+ extern IDTypeInfo IDType_ID_LT;
  extern IDTypeInfo IDType_ID_LA;
  extern IDTypeInfo IDType_ID_CA;
- // extern IDTypeInfo IDType_ID_IP;
+ extern IDTypeInfo IDType_ID_IP;
  extern IDTypeInfo IDType_ID_KE;
  extern IDTypeInfo IDType_ID_WO;
- // extern IDTypeInfo IDType_ID_SCR;
- // extern IDTypeInfo IDType_ID_VF;
- // extern IDTypeInfo IDType_ID_TXT;
- // extern IDTypeInfo IDType_ID_SPK;
- // extern IDTypeInfo IDType_ID_SO;
- // extern IDTypeInfo IDType_ID_GR;
- // extern IDTypeInfo IDType_ID_AR;
- // extern IDTypeInfo IDType_ID_AC;
- // extern IDTypeInfo IDType_ID_NT;
+ extern IDTypeInfo IDType_ID_SCR;
+ extern IDTypeInfo IDType_ID_VF;
+ extern IDTypeInfo IDType_ID_TXT;
+ extern IDTypeInfo IDType_ID_SPK;
+ extern IDTypeInfo IDType_ID_SO;
+ extern IDTypeInfo IDType_ID_GR;
+ extern IDTypeInfo IDType_ID_AR;
+ extern IDTypeInfo IDType_ID_AC;
+ extern IDTypeInfo IDType_ID_NT;
  extern IDTypeInfo IDType_ID_BR;
- // extern IDTypeInfo IDType_ID_PA;
- // extern IDTypeInfo IDType_ID_GD;
- // extern IDTypeInfo IDType_ID_WM;
- // extern IDTypeInfo IDType_ID_MC;
- // extern IDTypeInfo IDType_ID_MSK;
- // extern IDTypeInfo IDType_ID_LS;
- // extern IDTypeInfo IDType_ID_PAL;
- // extern IDTypeInfo IDType_ID_PC;
- // extern IDTypeInfo IDType_ID_CF;
- // extern IDTypeInfo IDType_ID_WS;
+ extern IDTypeInfo IDType_ID_PA;
+ extern IDTypeInfo IDType_ID_GD;
+ extern IDTypeInfo IDType_ID_WM;
+ extern IDTypeInfo IDType_ID_MC;
+ extern IDTypeInfo IDType_ID_MSK;
+ extern IDTypeInfo IDType_ID_LS;
+ extern IDTypeInfo IDType_ID_PAL;
+ extern IDTypeInfo IDType_ID_PC;
+ extern IDTypeInfo IDType_ID_CF;
+ extern IDTypeInfo IDType_ID_WS;
  extern IDTypeInfo IDType_ID_LP;
 +extern IDTypeInfo IDType_ID_HA;
 +extern IDTypeInfo IDType_ID_PT;
 +extern IDTypeInfo IDType_ID_VO;
  
  /* ********** Helpers/Utils API. ********** */
  
diff --cc source/blender/blenkernel/intern/idtype.c
index dd6ea098e68,ff4d06cd011..ce2835717a0
--- a/source/blender/blenkernel/intern/idtype.c
+++ b/source/blender/blenkernel/intern/idtype.c
@@@ -54,42 -54,39 +54,42 @@@ static void id_type_init(void
    INIT_TYPE(ID_SCE);
    INIT_TYPE(ID_LI);
    INIT_TYPE(ID_OB);
-   // INIT_TYPE(ID_ME);
-   // INIT_TYPE(ID_CU);
-   // INIT_TYPE(ID_MB);
-   // INIT_TYPE(ID_MA);
-   // INIT_TYPE(ID_TE);
-   // INIT_TYPE(ID_IM);
-   // INIT_TYPE(ID_LT);
+   INIT_TYPE(ID_ME);
+   INIT_TYPE(ID_CU);
+   INIT_TYPE(ID_MB);
+   INIT_TYPE(ID_MA);
+   INIT_TYPE(ID_TE);
+   INIT_TYPE(ID_IM);
+   INIT_TYPE(ID_LT);
    INIT_TYPE(ID_LA);
    INIT_TYPE(ID_CA);
-   // INIT_TYPE(ID_IP);
+   INIT_TYPE(ID_IP);
    INIT_TYPE(ID_KE);
    INIT_TYPE(ID_WO);
-   // INIT_TYPE(ID_SCR);
-   // INIT_TYPE(ID_VF);
-   // INIT_TYPE(ID_TXT);
-   // INIT_TYPE(ID_SPK);
-   // INIT_TYPE(ID_SO);
-   // INIT_TYPE(ID_GR);
-   // INIT_TYPE(ID_AR);
-   // INIT_TYPE(ID_AC);
-   // INIT_TYPE(ID_NT);
+   INIT_TYPE(ID_SCR);
+   INIT_TYPE(ID_VF);
+   INIT_TYPE(ID_TXT);
+   INIT_TYPE(ID_SPK);
+   INIT_TYPE(ID_SO);
+   INIT_TYPE(ID_GR);
+   INIT_TYPE(ID_AR);
+   INIT_TYPE(ID_AC);
+   INIT_TYPE(ID_NT);
    INIT_TYPE(ID_BR);
-   // INIT_TYPE(ID_PA);
-   // INIT_TYPE(ID_GD);
-   // INIT_TYPE(ID_WM);
-   // INIT_TYPE(ID_MC);
-   // INIT_TYPE(ID_MSK);
-   // INIT_TYPE(ID_LS);
-   // INIT_TYPE(ID_PAL);
-   // INIT_TYPE(ID_PC);
-   // INIT_TYPE(ID_CF);
-   // INIT_TYPE(ID_WS);
+   INIT_TYPE(ID_PA);
+   INIT_TYPE(ID_GD);
+   INIT_TYPE(ID_WM);
+   INIT_TYPE(ID_MC);
+   INIT_TYPE(ID_MSK);
+   INIT_TYPE(ID_LS);
+   INIT_TYPE(ID_PAL);
+   INIT_TYPE(ID_PC);
+   INIT_TYPE(ID_CF);
+   INIT_TYPE(ID_WS);
    INIT_TYPE(ID_LP);
 +  INIT_TYPE(ID_HA);
 +  INIT_TYPE(ID_PT);
 +  INIT_TYPE(ID_VO);
  
  #undef INIT_TYPE
  }
diff --cc source/blender/blenkernel/intern/material.c
index 142c2fa0fee,368eb099579..15f18eef7c8
--- a/source/blender/blenkernel/intern/material.c
+++ b/source/blender/blenkernel/intern/material.c
@@@ -233,15 -241,15 +244,10 @@@ Material *BKE_material_localize(Materia
    return man;
  }
  
- void BKE_material_make_local(Main *bmain, Material *ma, const int flags)
- {
-   BKE_lib_id_make_local_generic(bmain, &ma->id, flags);
- }
- 
  Material ***BKE_object_material_array_p(Object *ob)
  {
 -  Mesh *me;
 -  Curve *cu;
 -  MetaBall *mb;
 -  bGPdata *gpd;
 -
    if (ob->type == OB_MESH) {
 -    me = ob->data;
 +    Mesh *me = ob->data;
      return &(me->mat);
    }
    else if (ELEM(ob->type, OB_CURVE, OB_FONT, OB_SURF)) {
diff --cc source/blender/blenkernel/intern/object_update.c
index 29ef7577e1c,20b2ab9409f..66c3b2ea26e
--- a/source/blender/blenkernel/intern/object_update.c
+++ b/source/blender/blenkernel/intern/object_update.c
@@@ -216,18 -219,12 +222,21 @@@ void BKE_object_handle_data_update(Deps
      case OB_LATTICE:
        BKE_lattice_modifiers_calc(depsgraph, scene, ob);
        break;
-     case OB_GPENCIL:
+     case OB_GPENCIL: {
+       BKE_gpencil_prepare_eval_data(depsgraph, scene, ob);
        BKE_gpencil_modifiers_calc(depsgraph, scene, ob);
+       BKE_gpencil_update_layer_parent(depsgraph, ob);
        break;
+     }
 +    case OB_HAIR:
 +      BKE_hair_data_update(depsgraph, scene, ob);
 +      break;
 +    case OB_POINTCLOUD:
 +      BKE_pointcloud_data_update(depsgraph, scene, ob);
 +      break;
 +    case OB_VOLUME:
 +      BKE_volume_data_update(depsgraph, scene, ob);
 +      break;
    }
  
    /* particles */
diff --cc source/blender/depsgraph/intern/builder/deg_builder_relations.cc
index e5e96780ad6,6791125d1e9..6506e22b032
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
@@@ -2130,21 -2123,17 +2130,30 @@@ void DepsgraphRelationBuilder::build_ob
            add_relation(material_key, geometry_key, "Material -> GP Data");
          }
        }
+ 
+       /* Layer parenting need react to the parent object transformation. */
+       LISTBASE_FOREACH (bGPDlayer *, gpl, &gpd->layers) {
+         if (gpl->parent != NULL) {
+           ComponentKey transform_key(&gpl->parent->id, NodeType::TRANSFORM);
+           ComponentKey gpd_geom_key(&gpd->id, NodeType::GEOMETRY);
+           add_relation(transform_key, gpd_geom_key, "GPencil Parent Layer");
+         }
+       }
        break;
      }
 +    case ID_HA:
 +      break;
 +    case ID_PT:
 +      break;
 +    case ID_VO: {
 +      Volume *volume = (Volume *)obdata;
 +      if (volume->is_sequence) {
 +        TimeSourceKey time_key;
 +        ComponentKey geometry_key(obdata, NodeType::GEOMETRY);
 +        add_relation(time_key, geometry_key, "Volume sequence time");
 +      }
 +      break;
 +    }
      default:
        BLI_assert(!"Should not happen");
        break;
diff --cc source/blender/draw/CMakeLists.txt
index 6694e9dcf07,1f04739644e..cf155355683
--- a/source/blender/draw/CMakeLists.txt
+++ b/source/blender/draw/CMakeLists.txt
@@@ -52,7 -52,7 +52,8 @@@ set(SR
    intern/draw_cache_extract_mesh.c
    intern/draw_cache_impl_curve.c
    intern/draw_cache_impl_displist.c
+   intern/draw_cache_impl_gpencil.c
 +  intern/draw_cache_impl_hair.c
    intern/draw_cache_impl_lattice.c
    intern/draw_cache_impl_mesh.c
    intern/draw_cache_impl_metaball.c
diff --cc source/blender/draw/engines/overlay/overlay_engine.c
index 9a08180d6e3,cfa0fa9eb1a..acc422d27c0
--- a/source/blender/draw/engines/overlay/overlay_engine.c
+++ b/source/blender/draw/engines/overlay/overlay_engine.c
@@@ -222,9 -223,9 +229,17 @@@ static void OVERLAY_cache_populate(voi
    const bool in_paint_mode = (ob == draw_ctx->obact) &&
                               (draw_ctx->object_mode & OB_MODE_ALL_PAINT);
    const bool in_sculpt_mode = (ob == draw_ctx->obact) && (ob->sculpt != NULL);
--  const bool has_surface = ELEM(
-       ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_MBALL, OB_FONT, OB_HAIR, OB_POINTCLOUD, OB_VOLUME);
-   const bool draw_surface = !((ob->dt < OB_WIRE) || (!renderable && (ob->dt != OB_WIRE)));
 -      ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_MBALL, OB_FONT, OB_GPENCIL);
++  const bool has_surface = ELEM(ob->type,
++                                OB_MESH,
++                                OB_CURVE,
++                                OB_SURF,
++                                OB_MBALL,
++                                OB_FONT,
++                                OB_GPENCIL,
++                                OB_HAIR,
++                                OB_POINTCLOUD,
++                                OB_VOLUME);
+   const bool draw_surface = (ob->dt >= OB_WIRE) && (renderable || (ob->dt == OB_WIRE));
    const bool draw_facing = draw_surface && (pd->overlay.flag & V3D_OVERLAY_FACE_ORIENTATION);
    const bool draw_bones = (pd->overlay.flag & V3D_OVERLAY_HIDE_BONES) == 0;
    const bool draw_wires = draw_surface && has_surface &&
@@@ -442,7 -437,7 +457,8 @@@ static void OVERLAY_draw_scene(void *ve
    OVERLAY_armature_draw(vedata);
    OVERLAY_particle_draw(vedata);
    OVERLAY_metaball_draw(vedata);
 +  OVERLAY_pointcloud_draw(vedata);
+   OVERLAY_gpencil_draw(vedata);
    OVERLAY_extra_draw(vedata);
  
    if (DRW_state_is_fbo()) {
diff --cc source/blender/draw/intern/draw_cache.c
index 83203afd35e,d0cea5b8c5c..1f76b5ac431
--- a/source/blender/draw/intern/draw_cache.c
+++ b/source/blender/draw/intern/draw_cache.c
@@@ -802,12 -817,9 +826,15 @@@ GPUBatch *DRW_cache_object_face_wirefra
        return DRW_cache_text_face_wireframe_get(ob);
      case OB_MBALL:
        return DRW_cache_mball_face_wireframe_get(ob);
 +    case OB_HAIR:
 +      r

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list