[Bf-blender-cvs] [f3fb7c5f22c] master: Fix T65177: Camera frame visible in viewport render

Jacques Lucke noreply at git.blender.org
Mon May 27 14:16:50 CEST 2019


Commit: f3fb7c5f22cf33e6cfe1392387e187ecb5cb7699
Author: Jacques Lucke
Date:   Mon May 27 14:15:07 2019 +0200
Branches: master
https://developer.blender.org/rBf3fb7c5f22cf33e6cfe1392387e187ecb5cb7699

Fix T65177: Camera frame visible in viewport render

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

M	source/blender/draw/modes/object_mode.c

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

diff --git a/source/blender/draw/modes/object_mode.c b/source/blender/draw/modes/object_mode.c
index 5a9dc29ce6b..7e3a6eef9f2 100644
--- a/source/blender/draw/modes/object_mode.c
+++ b/source/blender/draw/modes/object_mode.c
@@ -2134,29 +2134,31 @@ static void DRW_shgroup_camera(OBJECT_ShadingGroupList *sgl, Object *ob, ViewLay
   cam->runtime.drw_tria[1][1] = shift[1] + ((1.1f * drawsize * (asp[1] + 0.7f)) * scale[1]);
 
   if (look_through) {
-    /* Only draw the frame. */
-    float mat[4][4];
-    if (is_multiview) {
-      const bool is_left = v3d->multiview_eye == STEREO_LEFT_ID;
-      const char *view_name = is_left ? STEREO_LEFT_NAME : STEREO_RIGHT_NAME;
-      BKE_camera_multiview_model_matrix(&scene->r, ob, view_name, mat);
-      const float shiftx = BKE_camera_multiview_shift_x(&scene->r, ob, view_name);
-      const float delta_shiftx = shiftx - cam->shiftx;
-      const float width = cam->runtime.drw_corners[0][2][0] - cam->runtime.drw_corners[0][0][0];
-      for (int i = 0; i < 4; i++) {
-        cam->runtime.drw_corners[0][i][0] -= delta_shiftx * width;
+    if (!DRW_state_is_image_render()) {
+      /* Only draw the frame. */
+      float mat[4][4];
+      if (is_multiview) {
+        const bool is_left = v3d->multiview_eye == STEREO_LEFT_ID;
+        const char *view_name = is_left ? STEREO_LEFT_NAME : STEREO_RIGHT_NAME;
+        BKE_camera_multiview_model_matrix(&scene->r, ob, view_name, mat);
+        const float shiftx = BKE_camera_multiview_shift_x(&scene->r, ob, view_name);
+        const float delta_shiftx = shiftx - cam->shiftx;
+        const float width = cam->runtime.drw_corners[0][2][0] - cam->runtime.drw_corners[0][0][0];
+        for (int i = 0; i < 4; i++) {
+          cam->runtime.drw_corners[0][i][0] -= delta_shiftx * width;
+        }
+      }
+      else {
+        copy_m4_m4(mat, ob->obmat);
       }
-    }
-    else {
-      copy_m4_m4(mat, ob->obmat);
-    }
 
-    DRW_buffer_add_entry(sgl->camera_frame,
-                         color,
-                         cam->runtime.drw_corners[0],
-                         &cam->runtime.drw_depth[0],
-                         cam->runtime.drw_tria,
-                         mat);
+      DRW_buffer_add_entry(sgl->camera_frame,
+                           color,
+                           cam->runtime.drw_corners[0],
+                           &cam->runtime.drw_depth[0],
+                           cam->runtime.drw_tria,
+                           mat);
+    }
   }
   else {
     if (!is_stereo3d_cameras) {



More information about the Bf-blender-cvs mailing list