[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47823] trunk/blender/intern/cycles/ blender/blender_camera.cpp: Fix cycles crash when viewport camera border goes out of view.

Brecht Van Lommel brechtvanlommel at pandora.be
Wed Jun 13 13:25:37 CEST 2012


Revision: 47823
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47823
Author:   blendix
Date:     2012-06-13 11:25:36 +0000 (Wed, 13 Jun 2012)
Log Message:
-----------
Fix cycles crash when viewport camera border goes out of view.

Modified Paths:
--------------
    trunk/blender/intern/cycles/blender/blender_camera.cpp

Modified: trunk/blender/intern/cycles/blender/blender_camera.cpp
===================================================================
--- trunk/blender/intern/cycles/blender/blender_camera.cpp	2012-06-13 11:25:22 UTC (rev 47822)
+++ trunk/blender/intern/cycles/blender/blender_camera.cpp	2012-06-13 11:25:36 UTC (rev 47823)
@@ -485,10 +485,10 @@
 	bcam->border_top = tmp_bottom + bcam->border_top*(tmp_top - tmp_bottom);
 
 	/* clamp */
-	bcam->border_left = max(bcam->border_left, 0.0f);
-	bcam->border_right = min(bcam->border_right, 1.0f);
-	bcam->border_bottom = max(bcam->border_bottom, 0.0f);
-	bcam->border_top = min(bcam->border_top, 1.0f);
+	bcam->border_left = clamp(bcam->border_left, 0.0f, 1.0f);
+	bcam->border_right = clamp(bcam->border_right, 0.0f, 1.0f);
+	bcam->border_bottom = clamp(bcam->border_bottom, 0.0f, 1.0f);
+	bcam->border_top = clamp(bcam->border_top, 0.0f, 1.0f);
 }
 
 void BlenderSync::sync_view(BL::SpaceView3D b_v3d, BL::RegionView3D b_rv3d, int width, int height)
@@ -514,6 +514,10 @@
 		params.full_y = cam->border_bottom*height;
 		params.width = (int)(cam->border_right*width) - params.full_x;
 		params.height = (int)(cam->border_top*height) - params.full_y;
+
+		/* survive in case border goes out of view or becomes too small */
+		params.width = max(params.width, 1);
+		params.height = max(params.height, 1);
 	}
 	else {
 		params.width = width;




More information about the Bf-blender-cvs mailing list