[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60114] trunk/blender/source/blender/ compositor/intern/COM_ExecutionGroup.cpp: Fix for #36720 and #36721.

Lukas Toenne lukas.toenne at googlemail.com
Fri Sep 13 18:01:42 CEST 2013


Revision: 60114
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60114
Author:   lukastoenne
Date:     2013-09-13 16:01:41 +0000 (Fri, 13 Sep 2013)
Log Message:
-----------
Fix for #36720 and #36721.
This was own error in r60049 which fixed chunk number calculation. This was mixing int and unsigned int values from ExecutionGroup, which leads to huge chunk numbers which are then skipped.

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60049

Modified Paths:
--------------
    trunk/blender/source/blender/compositor/intern/COM_ExecutionGroup.cpp

Modified: trunk/blender/source/blender/compositor/intern/COM_ExecutionGroup.cpp
===================================================================
--- trunk/blender/source/blender/compositor/intern/COM_ExecutionGroup.cpp	2013-09-13 15:41:18 UTC (rev 60113)
+++ trunk/blender/source/blender/compositor/intern/COM_ExecutionGroup.cpp	2013-09-13 16:01:41 UTC (rev 60114)
@@ -525,14 +525,18 @@
 	// determine minxchunk, minychunk, maxxchunk, maxychunk where x and y are chunknumbers
 
 	int indexx, indexy;
-	int minxchunk = (area->xmin - m_viewerBorder.xmin) / m_chunkSize;
-	int maxxchunk = (area->xmax + m_chunkSize - 1) / m_chunkSize;
-	int minychunk = (area->ymin - m_viewerBorder.ymin) / m_chunkSize;
-	int maxychunk = (area->ymax + m_chunkSize - 1) / m_chunkSize;
+	int minx = max_ii(area->xmin - m_viewerBorder.xmin, 0);
+	int maxx = min_ii(area->xmax - m_viewerBorder.xmin, m_viewerBorder.xmax - m_viewerBorder.xmin);
+	int miny = max_ii(area->ymin - m_viewerBorder.ymin, 0);
+	int maxy = min_ii(area->ymax - m_viewerBorder.ymin, m_viewerBorder.ymax - m_viewerBorder.ymin);
+	int minxchunk = minx / (int)m_chunkSize;
+	int maxxchunk = (maxx + (int)m_chunkSize - 1) / (int)m_chunkSize;
+	int minychunk = miny / (int)m_chunkSize;
+	int maxychunk = (maxy + (int)m_chunkSize - 1) / (int)m_chunkSize;
 	minxchunk = max_ii(minxchunk, 0);
 	minychunk = max_ii(minychunk, 0);
-	maxxchunk = min_ii(maxxchunk, m_numberOfXChunks);
-	maxychunk = min_ii(maxychunk, m_numberOfYChunks);
+	maxxchunk = min_ii(maxxchunk, (int)m_numberOfXChunks);
+	maxychunk = min_ii(maxychunk, (int)m_numberOfYChunks);
 
 	bool result = true;
 	for (indexx = minxchunk; indexx < maxxchunk; indexx++) {




More information about the Bf-blender-cvs mailing list