Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDalai Felinto <dfelinto@gmail.com>2019-02-05 23:37:42 +0300
committerDalai Felinto <dfelinto@gmail.com>2019-02-05 23:40:23 +0300
commitd1ef6be4a770c8b2caacc70cb93d3cf9ab52e0d9 (patch)
treeb97acfc8f1da167d16a9729601635eb0eebb968b /source/blender/draw/modes
parent2778ecb58cd23ad78f6ba08f36cb72445c664f14 (diff)
Fix T61204: Can't select Camera in stereoscopy mode
This was deliberately disabled since I didn't get the drawing working originally. It is fully working now. Note: camera lens widget still needs to be fixed since it still draws it wrongly.
Diffstat (limited to 'source/blender/draw/modes')
-rw-r--r--source/blender/draw/modes/object_mode.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/source/blender/draw/modes/object_mode.c b/source/blender/draw/modes/object_mode.c
index 78e256039d8..cf6c9e39028 100644
--- a/source/blender/draw/modes/object_mode.c
+++ b/source/blender/draw/modes/object_mode.c
@@ -1868,22 +1868,23 @@ static void DRW_shgroup_camera(OBJECT_ShadingGroupList *sgl, Object *ob, ViewLay
if (look_through && !is_stereo3d_cameras) {
/* Only draw the frame. */
float mat[4][4];
- if (is_selection_camera_stereo) {
- /* Make sure selection uses the same matrix for camera as the one used while viewing. */
+ if (is_stereo3d) {
const bool is_left = v3d->multiview_eye == STEREO_LEFT_ID;
- BKE_camera_multiview_model_matrix(&scene->r, ob, is_left ? STEREO_LEFT_NAME : STEREO_RIGHT_NAME, mat);
+ 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);
+ cam->drwcorners[0][0][0] += shiftx;
+ cam->drwcorners[0][1][0] += shiftx;
+ cam->drwcorners[0][2][0] += shiftx;
+ cam->drwcorners[0][3][0] += shiftx;
}
else {
copy_m4_m4(mat, ob->obmat);
}
- /* TODO (dfelinto): Disabling this for now since it is extremely wrong.
- * Besides selection and multiview still works bad even on its finest day. */
- if (!is_multiview) {
- DRW_shgroup_call_dynamic_add(
- sgl->camera_frame, color, cam->drwcorners[0],
- &cam->drwdepth[0], cam->drwtria, mat);
- }
+ DRW_shgroup_call_dynamic_add(
+ sgl->camera_frame, color, cam->drwcorners[0],
+ &cam->drwdepth[0], cam->drwtria, mat);
}
else if (!look_through) {
if (!is_stereo3d_cameras) {