[Bf-blender-cvs] [df0b484] multiview: Sequencer: OpenGL preview and OpenGL render working correctly

Dalai Felinto noreply at git.blender.org
Thu Oct 16 22:23:44 CEST 2014


Commit: df0b4840ed7917f5c9e4bddb1d83e6c99893413f
Author: Dalai Felinto
Date:   Tue Oct 14 20:17:08 2014 -0300
Branches: multiview
https://developer.blender.org/rBdf0b4840ed7917f5c9e4bddb1d83e6c99893413f

Sequencer: OpenGL preview and OpenGL render working correctly

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

M	source/blender/blenkernel/BKE_camera.h
M	source/blender/blenkernel/intern/camera.c
M	source/blender/editors/render/render_opengl.c
M	source/blender/editors/space_view3d/view3d_draw.c
M	source/blender/render/intern/source/initrender.c

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

diff --git a/source/blender/blenkernel/BKE_camera.h b/source/blender/blenkernel/BKE_camera.h
index 75df0e2..c14f3de 100644
--- a/source/blender/blenkernel/BKE_camera.h
+++ b/source/blender/blenkernel/BKE_camera.h
@@ -125,6 +125,7 @@ void BKE_camera_view_matrix(struct RenderData *rd, struct Object *camera, const
 void BKE_camera_model_matrix(struct RenderData *rd, struct Object *camera, const char *viewname, float r_modelmat[4][4]);
 struct Object *BKE_camera_render(struct Scene *scene, struct Object *camera, const char *viewname);
 float BKE_camera_shift_x(struct RenderData *rd, struct Object *camera, const char *viewname);
+void BKE_camera_params_stereo3d(struct RenderData *rd, struct CameraParams *params, struct Object *camera, const char *viewname);
 #ifdef __cplusplus
 }
 #endif
diff --git a/source/blender/blenkernel/intern/camera.c b/source/blender/blenkernel/intern/camera.c
index 3da05c9..0549133 100644
--- a/source/blender/blenkernel/intern/camera.c
+++ b/source/blender/blenkernel/intern/camera.c
@@ -841,3 +841,7 @@ float BKE_camera_shift_x(RenderData *rd, Object *camera, const char *viewname)
 	}
 }
 
+void BKE_camera_params_stereo3d(RenderData *rd, CameraParams *params, Object *camera, const char *viewname)
+{
+	params->shiftx = BKE_camera_shift_x(rd, camera, viewname);
+}
diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c
index a0c2165..f2edb27 100644
--- a/source/blender/editors/render/render_opengl.c
+++ b/source/blender/editors/render/render_opengl.c
@@ -251,7 +251,6 @@ static void screen_opengl_render_doit(OGLRender *oglrender, RenderResult *rr)
 	bool draw_bgpic = true;
 	bool draw_sky = (scene->r.alphamode == R_ADDSKY);
 	unsigned char *rect = NULL;
-	const bool is_multiview = screen_opengl_is_multiview(oglrender);
 	const char *viewname = RE_GetActiveRenderView(oglrender->re);
 
 	if (oglrender->is_sequencer) {
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index 9ecfcd5..b5bf84a 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -2946,12 +2946,14 @@ ImBuf *ED_view3d_draw_offscreen_imbuf(Scene *scene, View3D *v3d, ARegion *ar, in
 	/* render 3d view */
 	if (rv3d->persp == RV3D_CAMOB && v3d->camera) {
 		CameraParams params;
+		Object *camera = BKE_camera_render(scene, v3d->camera, viewname);
 
 		BKE_camera_params_init(&params);
 		/* fallback for non camera objects */
 		params.clipsta = v3d->near;
 		params.clipend = v3d->far;
-		BKE_camera_params_from_object(&params, v3d->camera);
+		BKE_camera_params_from_object(&params, camera);
+		BKE_camera_params_stereo3d(&scene->r, &params, camera, viewname);
 		BKE_camera_params_compute_viewplane(&params, sizex, sizey, scene->r.xasp, scene->r.yasp);
 		BKE_camera_params_compute_matrix(&params);
 
@@ -3011,9 +3013,11 @@ ImBuf *ED_view3d_draw_offscreen_imbuf_simple(Scene *scene, Object *camera, int w
 
 	{
 		CameraParams params;
+		Object *camera = BKE_camera_render(scene, v3d.camera, viewname);
 
 		BKE_camera_params_init(&params);
-		BKE_camera_params_from_object(&params, v3d.camera);
+		BKE_camera_params_from_object(&params, camera);
+		BKE_camera_params_stereo3d(&scene->r, &params, camera, viewname);
 		BKE_camera_params_compute_viewplane(&params, width, height, scene->r.xasp, scene->r.yasp);
 		BKE_camera_params_compute_matrix(&params);
 
diff --git a/source/blender/render/intern/source/initrender.c b/source/blender/render/intern/source/initrender.c
index 252befc..814612c 100644
--- a/source/blender/render/intern/source/initrender.c
+++ b/source/blender/render/intern/source/initrender.c
@@ -484,7 +484,7 @@ void RE_SetOverrideCamera(Render *re, Object *camera)
 
 static void re_camera_params_stereo3d(Render *re, CameraParams *params, Object *cam_ob)
 {
-	params->shiftx = BKE_camera_shift_x(&re->r, cam_ob, re->viewname);
+	BKE_camera_params_stereo3d(&re->r, params, cam_ob, re->viewname);
 }
 
 /* call this after InitState() */




More information about the Bf-blender-cvs mailing list