[Bf-blender-cvs] [0fdbda2] wiggly-widgets: Merge branch 'master' into wiggly-widgets
Julian Eisel
noreply at git.blender.org
Sat Feb 6 21:23:50 CET 2016
Commit: 0fdbda2cfa8e582cd9ae520f70759d8abe90a6d5
Author: Julian Eisel
Date: Sat Feb 6 21:18:49 2016 +0100
Branches: wiggly-widgets
https://developer.blender.org/rB0fdbda2cfa8e582cd9ae520f70759d8abe90a6d5
Merge branch 'master' into wiggly-widgets
Conflicts:
source/blender/blenloader/intern/readfile.c
source/blender/blenloader/intern/versioning_270.c
source/blender/editors/include/ED_transform.h
source/blender/editors/interface/resources.c
source/blender/editors/space_sequencer/sequencer_draw.c
source/blender/editors/transform/transform_manipulator.c
source/blender/gpu/intern/gpu_buffers.c
===================================================================
===================================================================
diff --cc source/blender/blenloader/intern/readfile.c
index 558f7d9,2935b11..e072c41
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@@ -3205,28 -3214,23 +3215,29 @@@ static void lib_link_pose(FileData *fd
/* sync proxy active bone */
if (pose->proxy_act_bone[0]) {
- Bone *bone = BKE_armature_find_bone_name(arm, pose->proxy_act_bone);
- if (bone)
+ Bone *bone = BLI_ghash_lookup(bone_hash, pose->proxy_act_bone);
+ if (bone) {
arm->act_bone = bone;
+ }
}
}
-
- for (pchan = pose->chanbase.first; pchan; pchan=pchan->next) {
+
+ for (bPoseChannel *pchan = pose->chanbase.first; pchan; pchan = pchan->next) {
lib_link_constraints(fd, (ID *)ob, &pchan->constraints);
-
- /* hurms... loop in a loop, but yah... later... (ton) */
- pchan->bone = BKE_armature_find_bone_name(arm, pchan->name);
+ pchan->bone = BLI_ghash_lookup(bone_hash, pchan->name);
+
+ pchan->fmap_object = newlibadr_us(fd, arm->id.lib, pchan->fmap_object);
+ if (pchan->fmap_object) {
+ /* fix fmap pointer now that we've got updated fmap_object */
+ pchan->fmap = fmap_find_name(pchan->fmap_object, pchan->fmap->name);
+ }
+
pchan->custom = newlibadr_us(fd, arm->id.lib, pchan->custom);
- if (pchan->bone == NULL)
- rebuild= 1;
- else if (ob->id.lib==NULL && arm->id.lib) {
+ if (UNLIKELY(pchan->bone == NULL)) {
+ rebuild = true;
+ }
+ else if ((ob->id.lib == NULL) && arm->id.lib) {
/* local pose selection copied to armature, bit hackish */
pchan->bone->flag &= ~BONE_SELECTED;
pchan->bone->flag |= pchan->selectflag;
diff --cc source/blender/blenloader/intern/versioning_270.c
index f436dd9,1ce9bca..c909b40
--- a/source/blender/blenloader/intern/versioning_270.c
+++ b/source/blender/blenloader/intern/versioning_270.c
@@@ -1051,43 -1051,10 +1051,49 @@@ void blo_do_versions_270(FileData *fd,
}
}
+ if (!MAIN_VERSION_ATLEAST(main, 276, 7)) {
+ Scene *scene;
+ for (scene = main->scene.first; scene != NULL; scene = scene->id.next) {
+ scene->r.bake.pass_filter = R_BAKE_PASS_FILTER_ALL;
+ }
+ }
+
+ {
+ if (!DNA_struct_elem_find(fd->filesdna, "SpaceNode", "float", "backdrop_zoom")) {
+ bScreen *sc;
+ for (sc = main->screen.first; sc; sc = sc->id.next) {
+ ScrArea *sa;
+ for (sa = sc->areabase.first; sa; sa = sa->next) {
+ SpaceLink *sl;
+ for (sl = sa->spacedata.first; sl; sl = sl->next) {
+ if (sl->spacetype == SPACE_NODE) {
+ SpaceNode *snode = (SpaceNode *)sl;
+ snode->backdrop_zoom = 1.0;
+ }
+ if (sl->spacetype == SPACE_SEQ) {
+ SpaceSeq *sseq = (SpaceSeq *)sl;
+ sseq->overdrop_zoom = 1.0;
+ }
+ }
+ }
+ }
+ }
+
+ if (!DNA_struct_elem_find(fd->filesdna, "SpaceIpo", "float", "backdrop_zoom")) {
+ bScreen *sc;
+ for (sc = main->screen.first; sc; sc = sc->id.next) {
+ ScrArea *sa;
+ for (sa = sc->areabase.first; sa; sa = sa->next) {
+ SpaceLink *sl;
+ for (sl = sa->spacedata.first; sl; sl = sl->next) {
+ if (sl->spacetype == SPACE_IPO) {
+ SpaceIpo *sipo = (SpaceIpo *)sl;
+ sipo->backdrop_zoom = 1.0f;
+ sipo->backdrop_opacity = 0.7f;
+ }
+ }
+ }
+ }
+ }
+ }
}
diff --cc source/blender/editors/include/ED_transform.h
index 555fb49,db8085a..b175f7f
--- a/source/blender/editors/include/ED_transform.h
+++ b/source/blender/editors/include/ED_transform.h
@@@ -114,9 -109,7 +114,10 @@@ struct ScrArea
struct Base;
struct Scene;
struct Object;
+struct wmWidget;
+struct wmWidgetGroup;
+struct wmWidgetGroupType;
+ struct wmOperator;
/* UNUSED */
// int BIF_snappingSupported(struct Object *obedit);
diff --cc source/blender/editors/interface/resources.c
index 94c36a8,c23df5c..7d5abef
--- a/source/blender/editors/interface/resources.c
+++ b/source/blender/editors/interface/resources.c
@@@ -2676,15 -2678,37 +2676,46 @@@ void init_userdef_do_versions(void
}
}
- if (!USER_VERSION_ATLEAST(276, 4)) {
+ if (!USER_VERSION_ATLEAST(276, 8)) {
+ bTheme *btheme;
+ for (btheme = U.themes.first; btheme; btheme = btheme->next) {
+ rgba_char_args_set(btheme->tui.wcol_progress.item, 128, 128, 128, 255);
+ }
+ }
+
+ if (!USER_VERSION_ATLEAST(276, 10)) {
+ bTheme *btheme;
+ for (btheme = U.themes.first; btheme; btheme = btheme->next) {
+ /* 3dView Keyframe Indicators */
+ rgba_char_args_set(btheme->tv3d.time_keyframe, 0xDD, 0xD7, 0x00, 1.0);
+ rgba_char_args_set(btheme->tv3d.time_gp_keyframe, 0xB5, 0xE6, 0x1D, 1.0);
+ }
+ }
+
+ /**
+ * Include next version bump.
+ *
+ * (keep this block even if it becomes empty).
+ */
+ {
+ bTheme *btheme;
+ for (btheme = U.themes.first; btheme; btheme = btheme->next) {
+ if (memcmp(btheme->tui.wcol_list_item.item, btheme->tui.wcol_list_item.text_sel, sizeof(char) * 3) == 0) {
+ copy_v4_v4_char(btheme->tui.wcol_list_item.item, btheme->tui.wcol_text.item);
+ copy_v4_v4_char(btheme->tui.wcol_list_item.text_sel, btheme->tui.wcol_text.text_sel);
+ }
+ }
+ }
+
++ if (!USER_VERSION_ATLEAST(276, 11)) {
+ bTheme *btheme;
+ for (btheme = U.themes.first; btheme; btheme = btheme->next) {
+ rgba_char_args_set_fl(btheme->tui.xaxis, 1.0f, 0.27f, 0.27f, 1.0f); /* red */
+ rgba_char_args_set_fl(btheme->tui.yaxis, 0.27f, 1.0f, 0.27f, 1.0f); /* green */
+ rgba_char_args_set_fl(btheme->tui.zaxis, 0.27f, 0.27f, 1.0f, 1.0f); /* blue */
+ }
+ }
+
if (U.pixelsize == 0.0f)
U.pixelsize = 1.0f;
diff --cc source/blender/editors/space_sequencer/sequencer_draw.c
index 63b41d6,5793c8e..e5cd00f
--- a/source/blender/editors/space_sequencer/sequencer_draw.c
+++ b/source/blender/editors/space_sequencer/sequencer_draw.c
@@@ -1218,8 -1219,8 +1219,8 @@@ void draw_image_seq(const bContext *C,
}
}
- if (!draw_backdrop) {
+ if (!draw_overdrop) {
- sequencer_draw_background(sseq, v2d, viewrect);
+ sequencer_draw_background(sseq, v2d, viewrect, draw_overlay);
}
if (scope) {
diff --cc source/blender/editors/transform/transform_manipulator.c
index cb7ee14,0f2af58..c3b2628
--- a/source/blender/editors/transform/transform_manipulator.c
+++ b/source/blender/editors/transform/transform_manipulator.c
@@@ -1216,44 -1583,216 +1216,45 @@@ void WIDGETGROUP_manipulator_create(con
}
break;
}
- }
-
- /* restore */
-
- gluDeleteQuadric(qobj);
- glLoadMatrixf(rv3d->viewmat);
-
- if (v3d->zbuf) glEnable(GL_DEPTH_TEST);
-
-}
-
-
-/* ********************************************* */
-/* main call, does calc centers & orientation too */
-static int drawflags = 0xFFFF; // only for the calls below, belongs in scene...?
-
-void BIF_draw_manipulator(const bContext *C)
-{
- ScrArea *sa = CTX_wm_area(C);
- ARegion *ar = CTX_wm_region(C);
- Scene *scene = CTX_data_scene(C);
- View3D *v3d = sa->spacedata.first;
- RegionView3D *rv3d = ar->regiondata;
- int totsel;
-
- const bool is_picksel = false;
-
- if (!(v3d->twflag & V3D_USE_MANIPULATOR)) return;
-
- if ((v3d->twtype & (V3D_MANIP_TRANSLATE | V3D_MANIP_ROTATE | V3D_MANIP_SCALE)) == 0) return;
-
- {
- v3d->twflag &= ~V3D_DRAW_MANIPULATOR;
-
- totsel = calc_manipulator_stats(C);
- if (totsel == 0) return;
-
- v3d->twflag |= V3D_DRAW_MANIPULATOR;
-
- /* now we can define center */
- switch (v3d->around) {
- case V3D_AROUND_CENTER_BOUNDS:
- case V3D_AROUND_ACTIVE:
- {
- bGPdata *gpd = CTX_data_gpencil_data(C);
- Object *ob = OBACT;
-
- if (((v3d->around == V3D_AROUND_ACTIVE) && (scene->obedit == NULL)) &&
- ((gpd == NULL) || !(gpd->flag & GP_DATA_STROKE_EDITMODE)) &&
- (!(ob->mode & OB_MODE_POSE)))
- {
- copy_v3_v3(rv3d->twmat[3], ob->obmat[3]);
- }
- else {
- mid_v3_v3v3(rv3d->twmat[3], scene->twmin, scene->twmax);
- }
+ switch (axis_type) {
+ case MAN_AXES_TRANSLATE:
+ ptr = WM_widget_set_operator(axis, "TRANSFORM_OT_translate");
break;
- }
- case V3D_AROUND_LOCAL_ORIGINS:
- case V3D_AROUND_CENTER_MEAN:
- copy_v3_v3(rv3d->twmat[3], scene->twcent);
+ case MAN_AXES_ROTATE:
+ ptr = WM_widget_set_operator(axis, "TRANSFORM_OT_rotate");
break;
- case V3D_AROUND_CURSOR:
- copy_v3_v3(rv3d->twmat[3], ED_view3d_cursor3d_get(scene, v3d));
+ case MAN_AXES_SCALE:
+ ptr = WM_widget_set_operator(axis, "TRANSFORM_OT_resize");
break;
}
-
- mul_mat3_m4_fl(rv3d->twmat, ED_view3d_pixel_size(rv3d, rv3d->twmat[3]) * U.tw_size);
+ RNA_boolean_set_array(ptr, "constraint_axis", constraint_axis);
+ RNA_boolean_set(ptr, "release_confirm", 1);
}
+ MAN_ITER_AXES_END;
- /* when looking through a selected camera, the manipulator can be at the
- * exact same position as the view, skip so we don't break selection */
- if (fabsf(mat4_to_scale(rv3d->twmat)) < 1e-7f)
- return;
-
- test_manipulator_axis(C);
- drawflags = rv3d->twdrawflag; /* set in calc_manipulator_stats */
-
- if (v3d->twflag & V3D_DRAW_MANIPULATOR) {
-
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- glEnable(GL_BLEND);
- if (v3d->twtype & V3D_MANIP_ROTATE) {
-
- if (G.debug_value == 3) {
- if (G.moving & (G_TRANSFORM_OBJ | G_TRANSFORM_EDIT))
- draw_manipulator_rotate_cyl(v3d, rv3d, drawflags, v3d->twtype, MAN_MOVECOL, true, is_picksel);
- else
- draw_manipulator_rotate_cyl(v3d, rv3d, drawflags, v3d->twtype, MAN_RGB, false, is_picksel);
- }
- else {
- draw_manipulator_rotate(v3d, rv3d, drawflags, v3d->twtype, false, is_picksel);
- }
- }
- if (v3d->twtype & V3D_MANIP_SCALE) {
- draw_manipulator_scale(v3d, rv3d, drawflags, v3d->twtype, MAN_RGB, false, is_picksel);
- }
- if (v3d->twtype & V3D_MANIP_TRANSLATE) {
- draw_manipulator_translate(v3d, rv3d, drawflags, v3d->twtype, MAN_RGB, false, is_picksel);
- }
-
- glDisable(GL_BLEND);
- }
+ MEM_freeN(man);
}
-static int manipulator_selectbuf(ScrArea *sa, ARegion *ar, const int mval[2], float hotspot)
+int WIDGETGROUP_manipulator_poll(const struct bContext *C, struct wmWidgetGroupType *UNUSED(wgrouptype))
{
- View3D *v3d = sa->spacedata.first;
- RegionVie
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list