Merge branch 'master' into blender2.8
[blender.git] / source / blender / editors / interface / interface_eyedropper.c
index 564b29d33437d5d5b3bf598c497fa129a78ace31..40fbb673c62f2a08b1b3fd44cd41b009ffc5833f 100644 (file)
 #include "BKE_screen.h"
 #include "BKE_report.h"
 #include "BKE_animsys.h"
-#include "BKE_depsgraph.h"
 #include "BKE_idcode.h"
 #include "BKE_unit.h"
 
+#include "DEG_depsgraph.h"
+#include "DEG_depsgraph_build.h"
+
 #include "RNA_access.h"
 #include "RNA_define.h"
 
@@ -139,8 +141,8 @@ static void eyedropper_draw_cursor_text(const struct bContext *C, ARegion *ar, c
        wmWindow *win = CTX_wm_window(C);
        int x = win->eventstate->x;
        int y = win->eventstate->y;
-       const unsigned char fg[4] = {255, 255, 255, 255};
-       const unsigned char bg[4] = {0, 0, 0, 50};
+       const float col_fg[4] = {1.0f, 1.0f, 1.0f, 1.0f};
+       const float col_bg[4] = {0.0f, 0.0f, 0.0f, 0.2f};
 
 
        if ((name[0] == '\0') ||
@@ -154,7 +156,7 @@ static void eyedropper_draw_cursor_text(const struct bContext *C, ARegion *ar, c
 
        y += U.widget_unit;
 
-       UI_fontstyle_draw_simple_backdrop(fstyle, x, y, name, fg, bg);
+       UI_fontstyle_draw_simple_backdrop(fstyle, x, y, name, col_fg, col_bg);
 }
 
 
@@ -169,8 +171,8 @@ static void eyedropper_draw_cursor_text(const struct bContext *C, ARegion *ar, c
  */
 static uiBut *eyedropper_get_property_button_under_mouse(bContext *C, const wmEvent *event)
 {
-       wmWindow *win = CTX_wm_window(C);
-       ScrArea *sa = BKE_screen_find_area_xy(win->screen, SPACE_TYPE_ANY, event->x, event->y);
+       bScreen *screen = CTX_wm_screen(C);
+       ScrArea *sa = BKE_screen_find_area_xy(screen, SPACE_TYPE_ANY, event->x, event->y);
        ARegion *ar = BKE_area_find_region_xy(sa, RGN_TYPE_ANY, event->x, event->y);
        
        uiBut *but = ui_but_find_mouse_over(ar, event);
@@ -262,10 +264,9 @@ static void eyedropper_exit(bContext *C, wmOperator *op)
  */
 static void eyedropper_color_sample_fl(bContext *C, Eyedropper *UNUSED(eye), int mx, int my, float r_col[3])
 {
-
        /* we could use some clever */
-       wmWindow *win = CTX_wm_window(C);
-       ScrArea *sa = BKE_screen_find_area_xy(win->screen, SPACE_TYPE_ANY, mx, my);
+       bScreen *screen = CTX_wm_screen(C);
+       ScrArea *sa = BKE_screen_find_area_xy(screen, SPACE_TYPE_ANY, mx, my);
        const char *display_device = CTX_data_scene(C)->display_settings.display_device;
        struct ColorManagedDisplay *display = IMB_colormanagement_display_get_named(display_device);
 
@@ -586,8 +587,8 @@ static void datadropper_exit(bContext *C, wmOperator *op)
 static void datadropper_id_sample_pt(bContext *C, DataDropper *ddr, int mx, int my, ID **r_id)
 {
        /* we could use some clever */
-       wmWindow *win = CTX_wm_window(C);
-       ScrArea *sa = BKE_screen_find_area_xy(win->screen, -1, mx, my);
+       bScreen *screen = CTX_wm_screen(C);
+       ScrArea *sa = BKE_screen_find_area_xy(screen, -1, mx, my);
 
        ScrArea *area_prev = CTX_wm_area(C);
        ARegion *ar_prev = CTX_wm_region(C);
@@ -601,7 +602,7 @@ static void datadropper_id_sample_pt(bContext *C, DataDropper *ddr, int mx, int
                                const int mval[2] = {
                                    mx - ar->winrct.xmin,
                                    my - ar->winrct.ymin};
-                               Base *base;
+                               BaseLegacy *base;
 
                                CTX_wm_area_set(C, sa);
                                CTX_wm_region_set(C, ar);
@@ -887,9 +888,9 @@ static void depthdropper_exit(bContext *C, wmOperator *op)
 static void depthdropper_depth_sample_pt(bContext *C, DepthDropper *ddr, int mx, int my, float *r_depth)
 {
        /* we could use some clever */
-       wmWindow *win = CTX_wm_window(C);
-       ScrArea *sa = BKE_screen_find_area_xy(win->screen, SPACE_TYPE_ANY, mx, my);
-       Scene *scene = win->screen->scene;
+       bScreen *screen = CTX_wm_screen(C);
+       ScrArea *sa = BKE_screen_find_area_xy(screen, SPACE_TYPE_ANY, mx, my);
+       Scene *scene = CTX_data_scene(C);
        UnitSettings *unit = &scene->unit;
        const bool do_split = (unit->flag & USER_UNIT_OPT_SPLIT) != 0;
 
@@ -902,6 +903,7 @@ static void depthdropper_depth_sample_pt(bContext *C, DepthDropper *ddr, int mx,
                if (sa->spacetype == SPACE_VIEW3D) {
                        ARegion *ar = BKE_area_find_region_xy(sa, RGN_TYPE_WINDOW, mx, my);
                        if (ar) {
+                               struct Depsgraph *graph = CTX_data_depsgraph(C);
                                View3D *v3d = sa->spacedata.first;
                                RegionView3D *rv3d = ar->regiondata;
                                /* weak, we could pass in some reference point */
@@ -911,6 +913,9 @@ static void depthdropper_depth_sample_pt(bContext *C, DepthDropper *ddr, int mx,
                                    my - ar->winrct.ymin};
                                float co[3];
 
+                               EvaluationContext eval_ctx;
+                               CTX_data_eval_ctx(C, &eval_ctx);
+
                                CTX_wm_area_set(C, sa);
                                CTX_wm_region_set(C, ar);
 
@@ -919,7 +924,7 @@ static void depthdropper_depth_sample_pt(bContext *C, DepthDropper *ddr, int mx,
 
                                view3d_operator_needs_opengl(C);
 
-                               if (ED_view3d_autodist(scene, ar, v3d, mval, co, true, NULL)) {
+                               if (ED_view3d_autodist(&eval_ctx, graph, ar, v3d, mval, co, true, NULL)) {
                                        const float mval_center_fl[2] = {
                                            (float)ar->winx / 2,
                                            (float)ar->winy / 2};
@@ -1205,8 +1210,8 @@ static void driverdropper_sample(bContext *C, wmOperator *op, const wmEvent *eve
                        if (success) {
                                /* send updates */
                                UI_context_update_anim_flag(C);
-                               DAG_relations_tag_update(CTX_data_main(C));
-                               DAG_id_tag_update(ddr->ptr.id.data, OB_RECALC_OB | OB_RECALC_DATA);
+                               DEG_relations_tag_update(CTX_data_main(C));
+                               DEG_id_tag_update(ddr->ptr.id.data, OB_RECALC_OB | OB_RECALC_DATA);
                                WM_event_add_notifier(C, NC_ANIMATION | ND_FCURVES_ORDER, NULL);  // XXX
                        }
                }