Merge with trunk r39750
[blender.git] / source / blender / render / intern / source / render_texture.c
index fbbb33d01721bf742fb83edf77f257d2c836edea..138eca2dd9b6cd66021c09b6044d0d58ecfa4c5f 100644 (file)
@@ -1164,7 +1164,7 @@ static void do_2d_mapping(MTex *mtex, float *t, VlakRen *vlr, float *n, float *d
 
 /* ************************************** */
 
-static int multitex(Tex *tex, float *texvec, float *dxt, float *dyt, int osatex, TexResult *texres, short thread, short which_output)
+int multitex(Tex *tex, float *texvec, float *dxt, float *dyt, int osatex, TexResult *texres, short thread, short which_output)
 {
        float tmpvec[3];
        int retval=0; /* return value, int:0, col:1, nor:2, everything:3 */
@@ -1672,6 +1672,21 @@ static void texco_mapping(ShadeInput* shi, Tex* tex, MTex* mtex, float* co, floa
        }
 }
 
+void texco_mapping_ext(float *facenor, Tex* tex, MTex* mtex, float* co, float* dx, float* dy, float* texvec)
+{
+       ShadeInput dum_shi;
+       float null_v3[3] = {0.0f, 0.0f, 0.0f};
+       memset (&dum_shi,0,sizeof(ShadeInput));
+
+       // Make sure values used by texco_mapping() are correct
+       dum_shi.osatex = 0;
+       dum_shi.vlr = NULL;
+       VECCOPY(dum_shi.facenor, facenor);
+
+       texco_mapping(&dum_shi, tex, mtex, co, dx, dy, texvec, null_v3, null_v3);
+}
+
+
 /* Bump code from 2.5 development cycle, has a number of bugs, but here for compatibility */
 
 typedef struct CompatibleBump {