[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [37909] branches/soc-2011-tomato: Merging r37892 through r37907 from trunk into soc-2011-tomato

Sergey Sharybin g.ulairi at gmail.com
Tue Jun 28 17:43:03 CEST 2011


Revision: 37909
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37909
Author:   nazgul
Date:     2011-06-28 15:43:03 +0000 (Tue, 28 Jun 2011)
Log Message:
-----------
Merging r37892 through r37907 from trunk into soc-2011-tomato

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

Modified Paths:
--------------
    branches/soc-2011-tomato/CMakeLists.txt
    branches/soc-2011-tomato/source/blender/render/intern/source/imagetexture.c

Property Changed:
----------------
    branches/soc-2011-tomato/


Property changes on: branches/soc-2011-tomato
___________________________________________________________________
Modified: svn:mergeinfo
   - /trunk/blender:36831-37891
   + /trunk/blender:36831-37907

Modified: branches/soc-2011-tomato/CMakeLists.txt
===================================================================
--- branches/soc-2011-tomato/CMakeLists.txt	2011-06-28 15:43:03 UTC (rev 37908)
+++ branches/soc-2011-tomato/CMakeLists.txt	2011-06-28 15:43:03 UTC (rev 37909)
@@ -53,6 +53,10 @@
 	set(FIRST_RUN "TRUE")
 endif()
 
+# set default build type to Release
+if(NOT CMAKE_BUILD_TYPE)
+	set(CMAKE_BUILD_TYPE "Release")
+endif()
 
 # this starts out unset
 list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/build_files/cmake/Modules")

Modified: branches/soc-2011-tomato/source/blender/render/intern/source/imagetexture.c
===================================================================
--- branches/soc-2011-tomato/source/blender/render/intern/source/imagetexture.c	2011-06-28 15:43:03 UTC (rev 37908)
+++ branches/soc-2011-tomato/source/blender/render/intern/source/imagetexture.c	2011-06-28 15:43:03 UTC (rev 37909)
@@ -76,7 +76,7 @@
 extern struct Render R;
 /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
 
-static void boxsample(ImBuf *ibuf, float minx, float miny, float maxx, float maxy, TexResult *texres, int imaprepeat, int imapextend);
+static void boxsample(ImBuf *ibuf, float minx, float miny, float maxx, float maxy, TexResult *texres, const short imaprepeat, const short imapextend);
 
 /* *********** IMAGEWRAPPING ****************** */
 
@@ -115,6 +115,7 @@
 {
 	float fx, fy, val1, val2, val3;
 	int x, y, retval;
+	int xi, yi; /* original values */
 
 	texres->tin= texres->ta= texres->tr= texres->tg= texres->tb= 0.0f;
 	
@@ -166,8 +167,8 @@
 		}
 	}
 
-	x = (int)floorf(fx*ibuf->x);
-	y = (int)floorf(fy*ibuf->y);
+	x= xi= (int)floorf(fx*ibuf->x);
+	y= yi= (int)floorf(fy*ibuf->y);
 
 	if(tex->extend == TEX_CLIPCUBE) {
 		if(x<0 || y<0 || x>=ibuf->x || y>=ibuf->y || texvec[2]<-1.0f || texvec[2]>1.0f) {
@@ -209,10 +210,17 @@
 		filterx = (0.5f * tex->filtersize) / ibuf->x;
 		filtery = (0.5f * tex->filtersize) / ibuf->y;
 
+		/* important that this value is wrapped [#27782]
+		 * this applies the modifications made by the checks above,
+		 * back to the floating point values */
+		fx -= (float)(xi - x) / (float)ibuf->x;
+		fy -= (float)(yi - y) / (float)ibuf->y;
+
 		boxsample(ibuf, fx-filterx, fy-filtery, fx+filterx, fy+filtery, texres, (tex->extend==TEX_REPEAT), (tex->extend==TEX_EXTEND));
 	}
-	else /* no filtering */
+	else { /* no filtering */
 		ibuf_get_color(&texres->tr, ibuf, x, y);
+	}
 	
 	if( (R.flag & R_SEC_FIELD) && (ibuf->flags & IB_fields) ) {
 		ibuf->rect-= (ibuf->x*ibuf->y);
@@ -524,15 +532,17 @@
 	}
 }
 
-static void boxsample(ImBuf *ibuf, float minx, float miny, float maxx, float maxy, TexResult *texres, int imaprepeat, int imapextend)
+static void boxsample(ImBuf *ibuf, float minx, float miny, float maxx, float maxy, TexResult *texres, const short imaprepeat, const short imapextend)
 {
 	/* Sample box, performs clip. minx etc are in range 0.0 - 1.0 .
-   * Enlarge with antialiased edges of pixels.
-   * If variable 'imaprepeat' has been set, the
-   * clipped-away parts are sampled as well.
-   */
+	 * Enlarge with antialiased edges of pixels.
+	 * If variable 'imaprepeat' has been set, the
+	 * clipped-away parts are sampled as well.
+	 */
 	/* note: actually minx etc isnt in the proper range... this due to filter size and offset vectors for bump */
 	/* note: talpha must be initialized */
+	/* note: even when 'imaprepeat' is set, this can only repeate once in any direction.
+	 * the point which min/max is derived from is assumed to be wrapped */
 	TexResult texr;
 	rctf *rf, stack[8];
 	float opp, tot, alphaclip= 1.0;




More information about the Bf-blender-cvs mailing list