Commit: 231a7950605eb9f160681523ce13413edc544a50
Author: Julian Eisel
Date:   Thu Aug 4 04:43:18 2016 +0200
Branches: soc-2016-layer_manager
https://developer.blender.org/rB231a7950605eb9f160681523ce13413edc544a50

Merge branch 'master' into soc-2016-layer_manager

Conflicts:
        source/blender/blenkernel/BKE_blender_version.h
        source/blender/blenloader/intern/versioning_270.c
        source/blender/editors/screen/screen_context.c

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



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

diff --cc source/blender/blenkernel/BKE_blender_version.h
index a4b7d5c,483fefb..2247d32
--- a/source/blender/blenkernel/BKE_blender_version.h
+++ b/source/blender/blenkernel/BKE_blender_version.h
@@@ -28,7 -28,7 +28,7 @@@
   * and keep comment above the defines.
   * Use STRINGIFY() rather than defining with quotes */
  #define BLENDER_VERSION         277
- #define BLENDER_SUBVERSION      2
 -#define BLENDER_SUBVERSION      3
++#define BLENDER_SUBVERSION      4
  /* Several breakages with 270, e.g. constraint deg vs rad */
  #define BLENDER_MINVERSION      270
  #define BLENDER_MINSUBVERSION   6
diff --cc source/blender/blenloader/intern/versioning_270.c
index 6ab68e7,c4fec3e..4d00548
--- a/source/blender/blenloader/intern/versioning_270.c
+++ b/source/blender/blenloader/intern/versioning_270.c
@@@ -1254,20 -1244,81 +1246,97 @@@ void blo_do_versions_270(FileData *fd, 
                }
        }
  
+       if (!MAIN_VERSION_ATLEAST(main, 277, 3)) {
+               /* ------- init of grease pencil initialization --------------- 
*/
+               if (!DNA_struct_elem_find(fd->filesdna, "bGPDstroke", 
"bGPDpalettecolor", "palcolor")) {
+                       for (Scene *scene = main->scene.first; scene; scene = 
scene->id.next) {
+                               ToolSettings *ts = scene->toolsettings;
+                               /* initialize use position for sculpt brushes */
+                               ts->gp_sculpt.flag |= 
GP_BRUSHEDIT_FLAG_APPLY_POSITION;
+                               /* initialize  selected vertices alpha factor */
+                               ts->gp_sculpt.alpha = 1.0f;
+ 
+                               /* new strength sculpt brush */
+                               if (ts->gp_sculpt.brush[0].size >= 11) {
+                                       GP_BrushEdit_Settings *gset = 
&ts->gp_sculpt;
+                                       GP_EditBrush_Data *brush;
+ 
+                                       brush = 
&gset->brush[GP_EDITBRUSH_TYPE_STRENGTH];
+                                       brush->size = 25;
+                                       brush->strength = 0.5f;
+                                       brush->flag = 
GP_EDITBRUSH_FLAG_USE_FALLOFF;
+                               }
+                       }
+                       /* create a default grease pencil drawing brushes set */
+                       if (!BLI_listbase_is_empty(&main->gpencil)) {
+                               for (Scene *scene = main->scene.first; scene; 
scene = scene->id.next) {
+                                       ToolSettings *ts = scene->toolsettings;
+                                       if 
(BLI_listbase_is_empty(&ts->gp_brushes)) {
+                                               gpencil_brush_init_presets(ts);
+                                       }
+                               }
+                       }
+                       /* Convert Grease Pencil to new palettes/brushes
+                        * Loop all strokes and create the palette and all 
colors
+                        */
+                       for (bGPdata *gpd = main->gpencil.first; gpd; gpd = 
gpd->id.next) {
+                               if (BLI_listbase_is_empty(&gpd->palettes)) {
+                                       /* create palette */
+                                       bGPDpalette *palette = 
gpencil_palette_addnew(gpd, "GP_Palette", true);
+                                       for (bGPDlayer *gpl = 
gpd->layers.first; gpl; gpl = gpl->next) {
+                                               /* create color using layer 
name */
+                                               bGPDpalettecolor *palcolor = 
gpencil_palettecolor_addnew(palette, gpl->info, true);
+                                               if (palcolor != NULL) {
+                                                       /* set color attributes 
*/
+                                                       
copy_v4_v4(palcolor->color, gpl->color);
+                                                       
copy_v4_v4(palcolor->fill, gpl->fill);
+                                                       palcolor->flag = 
gpl->flag;
+                                                       /* set layer opacity to 
1 */
+                                                       gpl->opacity = 1.0f;
+                                                       /* set tint color */
+                                                       
ARRAY_SET_ITEMS(gpl->tintcolor, 0.0f, 0.0f, 0.0f, 0.0f);
+ 
+                                                       for (bGPDframe *gpf = 
gpl->frames.first; gpf; gpf = gpf->next) {
+                                                               for (bGPDstroke 
*gps = gpf->strokes.first; gps; gps = gps->next) {
+                                                                       /* set 
stroke to palette and force recalculation */
+                                                                       
strcpy(gps->colorname, gpl->info);
+                                                                       
gps->palcolor = NULL;
+                                                                       
gps->flag |= GP_STROKE_RECALC_COLOR;
+                                                                       
gps->thickness = gpl->thickness;
+                                                                       /* set 
alpha strength to 1 */
+                                                                       for 
(int i = 0; i < gps->totpoints; i++) {
+                                                                               
gps->points[i].strength = 1.0f;
+                                                                       }
+ 
+                                                               }
+                                                       }
+                                               }
+                                               /* set thickness to 0 (now it 
is a factor to override stroke thickness) */
+                                               gpl->thickness = 0.0f;
+                                       }
+                                       /* set first color as active */
+                                       if (palette->colors.first)
+                                               
gpencil_palettecolor_setactive(palette, palette->colors.first);
+                               }
+                       }
+               }
+               /* ------- end of grease pencil initialization --------------- 
*/
+       }
+ 
 +      /* Convert to new layer system */
-       if (!MAIN_VERSION_ATLEAST(main, 277, 2)) {
++      if (!MAIN_VERSION_ATLEAST(main, 277, 4)) {
 +              if (!DNA_struct_elem_find(fd->filesdna, "Scene", "LayerTree", 
"object_layers")) {
 +                      for (Scene *sce = main->scene.first; sce; sce = 
sce->id.next) {
 +                              sce->object_layers = 
BKE_layertree_new(LAYER_TREETYPE_OBJECT);
 +                              LayerTreeItem *litem = 
BKE_objectlayer_add(sce->object_layers, NULL, "Default layer");
 +                              sce->object_layers->active_layer = litem;
 +
 +                              BKE_objectlayer_base_entries_reserve(litem, 
BLI_listbase_count(&sce->base));
 +                              /* For now, simply create a new layer and move 
all objects into it */
 +                              for (Base *base = sce->base.first; base; base = 
base->next) {
 +                                      BKE_objectlayer_base_assign(base, 
litem, true);
 +                              }
 +                      }
 +              }
 +      }
  }
diff --cc source/blender/editors/screen/screen_context.c
index 455e3e2,5da4a77..27539ac
--- a/source/blender/editors/screen/screen_context.c
+++ b/source/blender/editors/screen/screen_context.c
@@@ -115,11 -117,10 +116,11 @@@ int ed_screen_context(const bContext *C
        }
        else if (CTX_data_equals(member, "visible_objects") || 
CTX_data_equals(member, "visible_bases")) {
                const unsigned int lay = context_layers(sc, scene, sa);
-               int visible_objects = CTX_data_equals(member, 
"visible_objects");
+               const bool visible_objects = CTX_data_equals(member, 
"visible_objects");
  
 -              for (base = scene->base.first; base; base = base->next) {
 -                      if (((base->object->restrictflag & OB_RESTRICT_VIEW) == 
0) && (base->lay & lay)) {
 +              BKE_BASES_ITER_VISIBLE_START(scene)
 +              {
 +                      if (base->lay & lay) {
                                if (visible_objects)
                                        CTX_data_id_list_add(result, 
&base->object->id);
                                else
@@@ -132,27 -132,26 +133,27 @@@
        }
        else if (CTX_data_equals(member, "selectable_objects") || 
CTX_data_equals(member, "selectable_bases")) {
                const unsigned int lay = context_layers(sc, scene, sa);
-               int selectable_objects = CTX_data_equals(member, 
"selectable_objects");
+               const bool selectable_objects = CTX_data_equals(member, 
"selectable_objects");
  
 -              for (base = scene->base.first; base; base = base->next) {
 -                      if (base->lay & lay) {
 -                              if ((base->object->restrictflag & 
OB_RESTRICT_VIEW) == 0 && (base->object->restrictflag & OB_RESTRICT_SELECT) == 
0) {
 -                                      if (selectable_objects)
 -                                              CTX_data_id_list_add(result, 
&base->object->id);
 -                                      else
 -                                              CTX_data_list_add(result, 
&scene->id, &RNA_ObjectBase, base);
 -                              }
 +              BKE_BASES_ITER_VISIBLE_START(scene)
 +              {
 +                      if (base->lay & lay && (base->object->restrictflag & 
OB_RESTRICT_SELECT) == 0) {
 +                              if (selectable_objects)
 +                                      CTX_data_id_list_add(result, 
&base->object->id);
 +                              else
 +                                      CTX_data_list_add(result, &scene->id, 
&RNA_ObjectBase, base);
                        }
                }
 +              BKE_BASES_ITER_END;
                CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
                return 1;
        }
        else if (CTX_data_equals(member, "selected_objects") || 
CTX_data_equals(member, "selected_bases")) {
                const unsigned int lay = context_layers(sc, scene, sa);
-               int selected_objects = CTX_data_equals(member, 
"selected_objects");
+               const bool selected_objects = CTX_data_equals(member, 
"selected_objects");
  
 -              for (base = scene->base.first; base; base = base->next) {
 +              BKE_BASES_ITER_START(scene)
 +              {
                        if ((base->flag & SELECT) && (base->lay & lay)) {
                                if (selected_objects)
                                        CTX_data_id_list_add(result, 
&base->object->id);
@@@ -166,16 -164,17 +167,16 @@@
        }
        else if (CTX_data_equals(member, "selected_editable_objects") || 
CTX_data_equals(member, "selected_editable_bases")) {
                const unsigned int lay = context_layers(sc, scene, sa);
-               int selected_editable_objects = CTX_data_equals(member, 
"selected_editable_objects");
+               const bool selected_editable_objects = CTX_data_equals(member, 
"selected_editable_objects");
  
 -              for (base = scene->base.first; base; base = base->next) {
 +              BKE_BASES_ITER_VISIBLE_START(scene)
 +              {
                        if ((base->flag & SELECT) && (base->lay & lay)) {
 -                              if ((base->object->restrictflag & 
OB_RESTRICT_VIEW) == 0) {
 -                                      if (0 == 
BKE_object_is_libdata(base->object)) {
 -                                              if (selected_editable_objects)
 -                                                      
CTX_data_id_list_add(result, &base->object->id);
 -                                              else
 -                                                      
CTX_data_list_add(result, &scene->id, &RNA_ObjectBase, base);
 -                                      }
 +                              if (0 == BKE_object_is_libdata(base->object)) {
 +                                      if (selected_editable_objects)
 +                                              CTX_data_id_list_add(result, 
&base->object->id);
 +                                      else
 +                                              CTX_data_list_add(result, 
&scene->id, &RNA_ObjectBase, base);
                                }
                        }
                }
@@@ -185,12 -183,11 +186,12 @@@
        }
        else if (CTX_data_equals(member, "editable_objects") || 
CTX_data_equals(member, "editable_bases")) {
                const unsigned int lay = context_layers(sc, scene, sa);
-               int editable_objects = CTX_data_equals(member, 
"editable_objects");
- 
+               const bool editable_objects = CTX_data_equals(member, 
"editable_objects");
+               
                /* Visible + Editable, but not necessarily selected */
 -              for (base = scene->base.first; base; base = base->next) {
 -                      if (((base->object->restrictflag & OB_RESTRICT_VIEW) == 
0) && (base->lay & lay)) {
 +              BKE_BASES_ITER_VISIBLE_START(scene)
 +              {
 +                      if (base->lay & lay) {
                                if (0 == BKE_object_is_libdata(base->object)) {
                                        if (editable_objects)
                                                CTX_data_id_list_add(result, 
&base->object->id);
diff --cc source/blender/makesdna/DNA_scene_types.h
index 075e941,90e8d8b..a64b2f1
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@@ -63,9 -62,9 +63,10 @@@ struct AnimData
  struct Editing;
  struct SceneStats;
  struct bGPdata;
+ struct bGPDbrush;
  struct MovieClip;
  struct ColorSpace;
 +struct uiLayout;
  
  /* ************************************************************* */
  /* Scene Data */

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to