[Bf-blender-cvs] [231a795] soc-2016-layer_manager: Merge branch 'master' into soc-2016-layer_manager
Julian Eisel
noreply at git.blender.org
Thu Aug 4 04:56:55 CEST 2016
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 */
More information about the Bf-blender-cvs
mailing list