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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2011-11-18 19:52:00 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2011-11-18 19:52:00 +0400
commit539c94a0511fb98fdbae0ce78c815c45a805e36e (patch)
tree2ac8ef459046ea530af7d802d1381953ff7b6c87 /source/blender/editors/space_view3d/view3d_draw.c
parent02ce6fd59ca237f0bbaebfb50be9f74039d99e93 (diff)
Camera: some code refactoring, use an intermediate CameraParams struct instead
of long list of variables everywhere. Intention is to also let 3d view use this eventually, instead of duplicating code.
Diffstat (limited to 'source/blender/editors/space_view3d/view3d_draw.c')
-rw-r--r--source/blender/editors/space_view3d/view3d_draw.c26
1 files changed, 15 insertions, 11 deletions
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index 7ce758d4f47..82f60ac639b 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -2485,15 +2485,13 @@ ImBuf *ED_view3d_draw_offscreen_imbuf(Scene *scene, View3D *v3d, ARegion *ar, in
/* render 3d view */
if(rv3d->persp==RV3D_CAMOB && v3d->camera) {
- float winmat[4][4];
- float _clipsta, _clipend, _lens, _yco, _dx, _dy, _sensor_x= DEFAULT_SENSOR_WIDTH, _sensor_y= DEFAULT_SENSOR_HEIGHT;
- short _sensor_fit= CAMERA_SENSOR_FIT_AUTO;
- rctf _viewplane;
+ CameraParams params;
- object_camera_matrix(&scene->r, v3d->camera, sizex, sizey, 0, winmat, &_viewplane, &_clipsta, &_clipend, &_lens,
- &_sensor_x, &_sensor_y, &_sensor_fit, &_yco, &_dx, &_dy);
+ camera_params_init(&params);
+ camera_params_from_object(&params, v3d->camera);
+ camera_params_compute(&params, sizex, sizey, scene->r.xasp, scene->r.yasp);
- ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, winmat);
+ ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, params.winmat);
}
else {
ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, NULL);
@@ -2546,10 +2544,16 @@ ImBuf *ED_view3d_draw_offscreen_imbuf_simple(Scene *scene, Object *camera, int w
invert_m4_m4(rv3d.viewmat, rv3d.viewinv);
{
- float _yco, _dx, _dy, _sensor_x= DEFAULT_SENSOR_WIDTH, _sensor_y= DEFAULT_SENSOR_HEIGHT;
- short _sensor_fit= CAMERA_SENSOR_FIT_AUTO;
- rctf _viewplane;
- object_camera_matrix(&scene->r, v3d.camera, width, height, 0, rv3d.winmat, &_viewplane, &v3d.near, &v3d.far, &v3d.lens, &_sensor_x, &_sensor_y, &_sensor_fit, &_yco, &_dx, &_dy);
+ CameraParams params;
+
+ camera_params_init(&params);
+ camera_params_from_object(&params, v3d.camera);
+ camera_params_compute(&params, width, height, scene->r.xasp, scene->r.yasp);
+
+ copy_m4_m4(rv3d.winmat, params.winmat);
+ v3d.near= params.clipsta;
+ v3d.far= params.clipend;
+ v3d.lens= params.lens;
}
mul_m4_m4m4(rv3d.persmat, rv3d.viewmat, rv3d.winmat);