[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60870] trunk/blender/source/blender: Code cleanup: de-duplicate implementation of get_texture_value

Sergey Sharybin sergey.vfx at gmail.com
Sun Oct 20 15:01:07 CEST 2013


Revision: 60870
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60870
Author:   nazgul
Date:     2013-10-20 13:01:07 +0000 (Sun, 20 Oct 2013)
Log Message:
-----------
Code cleanup: de-duplicate implementation of get_texture_value

Expect to be no functional changes :)

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_texture.h
    trunk/blender/source/blender/blenkernel/intern/smoke.c
    trunk/blender/source/blender/blenkernel/intern/texture.c
    trunk/blender/source/blender/modifiers/intern/MOD_displace.c
    trunk/blender/source/blender/modifiers/intern/MOD_util.c
    trunk/blender/source/blender/modifiers/intern/MOD_util.h
    trunk/blender/source/blender/modifiers/intern/MOD_warp.c
    trunk/blender/source/blender/modifiers/intern/MOD_wave.c
    trunk/blender/source/blender/modifiers/intern/MOD_weightvg_util.c

Modified: trunk/blender/source/blender/blenkernel/BKE_texture.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_texture.h	2013-10-20 12:10:37 UTC (rev 60869)
+++ trunk/blender/source/blender/blenkernel/BKE_texture.h	2013-10-20 13:01:07 UTC (rev 60870)
@@ -52,6 +52,7 @@
 struct PointDensity;
 struct Tex;
 struct TexMapping;
+struct TexResult;
 struct VoxelData;
 struct World;
 
@@ -129,6 +130,8 @@
 	
 bool    BKE_texture_dependsOnTime(const struct Tex *texture);
 
+void BKE_texture_get_value(struct Scene *scene, struct Tex *texture, float *tex_co, struct TexResult *texres, bool use_color_management);
+
 #ifdef __cplusplus
 }
 #endif

Modified: trunk/blender/source/blender/blenkernel/intern/smoke.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/smoke.c	2013-10-20 12:10:37 UTC (rev 60869)
+++ trunk/blender/source/blender/blenkernel/intern/smoke.c	2013-10-20 13:01:07 UTC (rev 60870)
@@ -84,6 +84,7 @@
 #include "BKE_pointcache.h"
 #include "BKE_scene.h"
 #include "BKE_smoke.h"
+#include "BKE_texture.h"
 
 #include "RE_shader_ext.h"
 
@@ -1418,27 +1419,6 @@
 	}
 }
 
-/* TODO(sergey): de-duplicate with get_texture_value from modifier utils */
-/* NOTE: Skips color management, because result is only used for value now, not for color. */
-static void get_texture_value(Tex *texture, float tex_co[3], TexResult *texres)
-{
-	int result_type;
-
-	/* no node textures for now */
-	result_type = multitex_ext_safe(texture, tex_co, texres, NULL, false);
-
-	/* if the texture gave an RGB value, we assume it didn't give a valid
-	 * intensity, since this is in the context of modifiers don't use perceptual color conversion.
-	 * if the texture didn't give an RGB value, copy the intensity across
-	 */
-	if (result_type & TEX_RGB) {
-		texres->tin = (1.0f / 3.0f) * (texres->tr + texres->tg + texres->tb);
-	}
-	else {
-		copy_v3_fl(&texres->tr, texres->tin);
-	}
-}
-
 static void sample_derivedmesh(SmokeFlowSettings *sfs, MVert *mvert, MTFace *tface, MFace *mface, float *influence_map, float *velocity_map, int index, int base_res[3], float flow_center[3], BVHTreeFromMesh *treeData, float ray_start[3],
 								float *vert_vel, int has_velocity, int defgrp_index, MDeformVert *dvert, float x, float y, float z)
 {
@@ -1550,7 +1530,7 @@
 				tex_co[2] = sfs->texture_offset;
 			}
 			texres.nor = NULL;
-			get_texture_value(sfs->noise_texture, tex_co, &texres);
+			BKE_texture_get_value(NULL, sfs->noise_texture, tex_co, &texres, false);
 			sample_str *= texres.tin;
 		}
 	}

Modified: trunk/blender/source/blender/blenkernel/intern/texture.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/texture.c	2013-10-20 12:10:37 UTC (rev 60869)
+++ trunk/blender/source/blender/blenkernel/intern/texture.c	2013-10-20 13:01:07 UTC (rev 60870)
@@ -68,7 +68,10 @@
 #include "BKE_node.h"
 #include "BKE_animsys.h"
 #include "BKE_colortools.h"
+#include "BKE_scene.h"
 
+#include "RE_shader_ext.h"
+
 /* ****************** Mapping ******************* */
 
 TexMapping *add_tex_mapping(int type)
@@ -1436,3 +1439,27 @@
 }
 
 /* ------------------------------------------------------------------------- */
+
+void BKE_texture_get_value(Scene *scene, Tex *texture, float *tex_co, TexResult *texres, bool use_color_management)
+{
+	int result_type;
+	bool do_color_manage = false;
+
+	if (scene && use_color_management) {
+		do_color_manage = BKE_scene_check_color_management_enabled(scene);
+	}
+
+	/* no node textures for now */
+	result_type = multitex_ext_safe(texture, tex_co, texres, NULL, do_color_manage);
+
+	/* if the texture gave an RGB value, we assume it didn't give a valid
+	 * intensity, since this is in the context of modifiers don't use perceptual color conversion.
+	 * if the texture didn't give an RGB value, copy the intensity across
+	 */
+	if (result_type & TEX_RGB) {
+		texres->tin = (1.0f / 3.0f) * (texres->tr + texres->tg + texres->tb);
+	}
+	else {
+		copy_v3_fl(&texres->tr, texres->tin);
+	}
+}

Modified: trunk/blender/source/blender/modifiers/intern/MOD_displace.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_displace.c	2013-10-20 12:10:37 UTC (rev 60869)
+++ trunk/blender/source/blender/modifiers/intern/MOD_displace.c	2013-10-20 13:01:07 UTC (rev 60870)
@@ -219,7 +219,7 @@
 
 		if (dmd->texture) {
 			texres.nor = NULL;
-			get_texture_value(dmd->modifier.scene, dmd->texture, tex_co[i], &texres, false);
+			BKE_texture_get_value(dmd->modifier.scene, dmd->texture, tex_co[i], &texres, false);
 			delta = texres.tin - dmd->midlevel;
 		}
 		else {

Modified: trunk/blender/source/blender/modifiers/intern/MOD_util.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_util.c	2013-10-20 12:10:37 UTC (rev 60869)
+++ trunk/blender/source/blender/modifiers/intern/MOD_util.c	2013-10-20 13:01:07 UTC (rev 60870)
@@ -70,30 +70,6 @@
 		BKE_image_user_frame_calc(&tex->iuser, scene->r.cfra, 0);
 }
 
-void get_texture_value(Scene *scene, Tex *texture, float *tex_co, TexResult *texres, bool use_color_management)
-{
-	int result_type;
-	bool do_color_manage = false;
-
-	if (use_color_management) {
-		do_color_manage = BKE_scene_check_color_management_enabled(scene);
-	}
-
-	/* no node textures for now */
-	result_type = multitex_ext_safe(texture, tex_co, texres, NULL, do_color_manage);
-
-	/* if the texture gave an RGB value, we assume it didn't give a valid
-	 * intensity, since this is in the context of modifiers don't use perceptual color conversion.
-	 * if the texture didn't give an RGB value, copy the intensity across
-	 */
-	if (result_type & TEX_RGB) {
-		texres->tin = (1.0f / 3.0f) * (texres->tr + texres->tg + texres->tb);
-	}
-	else {
-		copy_v3_fl(&texres->tr, texres->tin);
-	}
-}
-
 void get_texture_coords(MappingInfoModifierData *dmd, Object *ob,
                         DerivedMesh *dm,
                         float (*co)[3], float (*texco)[3],

Modified: trunk/blender/source/blender/modifiers/intern/MOD_util.h
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_util.h	2013-10-20 12:10:37 UTC (rev 60869)
+++ trunk/blender/source/blender/modifiers/intern/MOD_util.h	2013-10-20 13:01:07 UTC (rev 60870)
@@ -41,7 +41,6 @@
 struct TexResult;
 
 void modifier_init_texture(struct Scene *scene, struct Tex *texture);
-void get_texture_value(struct Scene *scene, struct Tex *texture, float *tex_co, struct TexResult *texres, bool do_color_manage);
 void get_texture_coords(struct MappingInfoModifierData *dmd, struct Object *ob, struct DerivedMesh *dm,
                         float (*co)[3], float (*texco)[3], int numVerts);
 void modifier_vgroup_cache(struct ModifierData *md, float (*vertexCos)[3]);

Modified: trunk/blender/source/blender/modifiers/intern/MOD_warp.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_warp.c	2013-10-20 12:10:37 UTC (rev 60869)
+++ trunk/blender/source/blender/modifiers/intern/MOD_warp.c	2013-10-20 13:01:07 UTC (rev 60870)
@@ -282,7 +282,7 @@
 			if (tex_co) {
 				TexResult texres;
 				texres.nor = NULL;
-				get_texture_value(wmd->modifier.scene, wmd->texture, tex_co[i], &texres, false);
+				BKE_texture_get_value(wmd->modifier.scene, wmd->texture, tex_co[i], &texres, false);
 				fac *= texres.tin;
 			}
 

Modified: trunk/blender/source/blender/modifiers/intern/MOD_wave.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_wave.c	2013-10-20 12:10:37 UTC (rev 60869)
+++ trunk/blender/source/blender/modifiers/intern/MOD_wave.c	2013-10-20 13:01:07 UTC (rev 60870)
@@ -48,6 +48,7 @@
 #include "BKE_library.h"
 #include "BKE_object.h"
 #include "BKE_scene.h"
+#include "BKE_texture.h"
 
 #include "depsgraph_private.h"
 
@@ -306,7 +307,7 @@
 				if (wmd->texture) {
 					TexResult texres;
 					texres.nor = NULL;
-					get_texture_value(wmd->modifier.scene, wmd->texture, tex_co[i], &texres, false);
+					BKE_texture_get_value(wmd->modifier.scene, wmd->texture, tex_co[i], &texres, false);
 					amplit *= texres.tin;
 				}
 

Modified: trunk/blender/source/blender/modifiers/intern/MOD_weightvg_util.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_weightvg_util.c	2013-10-20 12:10:37 UTC (rev 60869)
+++ trunk/blender/source/blender/modifiers/intern/MOD_weightvg_util.c	2013-10-20 13:01:07 UTC (rev 60870)
@@ -164,7 +164,7 @@
 			do_color_manage = tex_use_channel != MOD_WVG_MASK_TEX_USE_INT;
 
 			texres.nor = NULL;
-			get_texture_value(scene, texture, tex_co[idx], &texres, do_color_manage);
+			BKE_texture_get_value(scene, texture, tex_co[idx], &texres, do_color_manage);
 			/* Get the good channel value... */
 			switch (tex_use_channel) {
 				case MOD_WVG_MASK_TEX_USE_INT:




More information about the Bf-blender-cvs mailing list