[Bf-blender-cvs] [b6854770c7e] master: T60560: Render border gizmo doesn't update display
Campbell Barton
noreply at git.blender.org
Thu Jan 17 04:52:40 CET 2019
Commit: b6854770c7e7ce63394ce46a4f6cfaa978a6c657
Author: Campbell Barton
Date: Thu Jan 17 14:48:46 2019 +1100
Branches: master
https://developer.blender.org/rBb6854770c7e7ce63394ce46a4f6cfaa978a6c657
T60560: Render border gizmo doesn't update display
===================================================================
M source/blender/editors/space_view3d/view3d_gizmo_camera.c
===================================================================
diff --git a/source/blender/editors/space_view3d/view3d_gizmo_camera.c b/source/blender/editors/space_view3d/view3d_gizmo_camera.c
index 6d6f3700c29..58a005560ce 100644
--- a/source/blender/editors/space_view3d/view3d_gizmo_camera.c
+++ b/source/blender/editors/space_view3d/view3d_gizmo_camera.c
@@ -47,6 +47,8 @@
#include "WM_types.h"
#include "WM_message.h"
+#include "DEG_depsgraph.h"
+
#include "view3d_intern.h" /* own include */
@@ -312,6 +314,9 @@ void VIEW3D_GGT_camera(wmGizmoGroupType *gzgt)
* \{ */
struct CameraViewWidgetGroup {
+ Scene *scene;
+ bool is_camera;
+
wmGizmo *border;
struct {
@@ -349,6 +354,10 @@ static void gizmo_render_border_prop_matrix_set(
BLI_rctf_resize(border, len_v3(matrix[0]), len_v3(matrix[1]));
BLI_rctf_recenter(border, matrix[3][0], matrix[3][1]);
BLI_rctf_isect(&(rctf){ .xmin = 0, .ymin = 0, .xmax = 1, .ymax = 1, }, border, border);
+
+ if (viewgroup->is_camera) {
+ DEG_id_tag_update(&viewgroup->scene->id, ID_RECALC_COPY_ON_WRITE);
+ }
}
static bool WIDGETGROUP_camera_view_poll(const bContext *C, wmGizmoGroupType *UNUSED(gzgt))
@@ -436,6 +445,8 @@ static void WIDGETGROUP_camera_view_refresh(const bContext *C, wmGizmoGroup *gzg
RegionView3D *rv3d = ar->regiondata;
Scene *scene = CTX_data_scene(C);
+ viewgroup->scene = scene;
+
{
wmGizmo *gz = viewgroup->border;
WM_gizmo_set_flag(gz, WM_GIZMO_HIDDEN, false);
@@ -445,9 +456,11 @@ static void WIDGETGROUP_camera_view_refresh(const bContext *C, wmGizmoGroup *gzg
if (rv3d->persp == RV3D_CAMOB) {
viewgroup->state.edit_border = &scene->r.border;
+ viewgroup->is_camera = true;
}
else {
viewgroup->state.edit_border = &v3d->render_border;
+ viewgroup->is_camera = false;
}
WM_gizmo_target_property_def_func(
More information about the Bf-blender-cvs
mailing list