[Bf-blender-cvs] [a93841e] strand_gpu: Added generalized method for creating an array of mesh samples with arbitrary stride.

Lukas Tönne noreply at git.blender.org
Tue Jul 5 09:56:24 CEST 2016


Commit: a93841e3d45cc6eb1182de9092a5ffea72d3dbee
Author: Lukas Tönne
Date:   Wed Sep 24 15:58:53 2014 +0200
Branches: strand_gpu
https://developer.blender.org/rBa93841e3d45cc6eb1182de9092a5ffea72d3dbee

Added generalized method for creating an array of mesh samples with
arbitrary stride.

===================================================================

M	release/datafiles/locale
M	release/scripts/addons
M	source/blender/blenkernel/BKE_mesh_sample.h
M	source/blender/blenkernel/intern/mesh_sample.c

===================================================================

diff --git a/release/datafiles/locale b/release/datafiles/locale
index 841b1b9..18bf273 160000
--- a/release/datafiles/locale
+++ b/release/datafiles/locale
@@ -1 +1 @@
-Subproject commit 841b1b9f494b6f980da4e244bbd86ecb8a8ac0b7
+Subproject commit 18bf273c38b0d52429274159f1d4d4d00be59e30
diff --git a/release/scripts/addons b/release/scripts/addons
index fd695c3..655cd36 160000
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@ -1 +1 @@
-Subproject commit fd695c3a81b63db072311e8516e0dbb8d4474047
+Subproject commit 655cd369b4b34e2969a3b167394e00caf0fde4b1
diff --git a/source/blender/blenkernel/BKE_mesh_sample.h b/source/blender/blenkernel/BKE_mesh_sample.h
index 6a0a892..9706bfc 100644
--- a/source/blender/blenkernel/BKE_mesh_sample.h
+++ b/source/blender/blenkernel/BKE_mesh_sample.h
@@ -76,5 +76,6 @@ void BKE_mesh_sample_info_random(struct MSurfaceSampleInfo *info, struct Derived
 void BKE_mesh_sample_info_release(struct MSurfaceSampleInfo *info);
 
 void BKE_mesh_sample_surface_array(const struct MSurfaceSampleInfo *info, struct MSurfaceSample *samples, int totsample);
+void BKE_mesh_sample_surface_array_stride(const struct MSurfaceSampleInfo *info, struct MSurfaceSample *first, int stride, int totsample);
 
 #endif  /* __BKE_MESH_SAMPLE_H__ */
diff --git a/source/blender/blenkernel/intern/mesh_sample.c b/source/blender/blenkernel/intern/mesh_sample.c
index c105ffa..a1c3e71 100644
--- a/source/blender/blenkernel/intern/mesh_sample.c
+++ b/source/blender/blenkernel/intern/mesh_sample.c
@@ -44,7 +44,7 @@
 bool BKE_mesh_sample_eval(DerivedMesh *dm, const MSurfaceSample *sample, float loc[3], float nor[3])
 {
 	MVert *mverts = dm->getVertArray(dm);
-	int totverts = dm->getNumVerts(dm);
+	unsigned int totverts = (unsigned int)dm->getNumVerts(dm);
 	MVert *v1, *v2, *v3;
 	float vnor[3];
 	
@@ -157,13 +157,18 @@ static void mesh_sample_surface_random(const MSurfaceSampleInfo *info, MSurfaceS
 
 void BKE_mesh_sample_surface_array(const MSurfaceSampleInfo *info, MSurfaceSample *samples, int totsample)
 {
+	BKE_mesh_sample_surface_array_stride(info, samples, (int)sizeof(MSurfaceSample), totsample);
+}
+
+void BKE_mesh_sample_surface_array_stride(const struct MSurfaceSampleInfo *info, struct MSurfaceSample *first, int stride, int totsample)
+{
 	MSurfaceSample *sample;
 	int i;
 	
 	switch (info->algorithm) {
 		case MSS_RANDOM: {
 			DM_ensure_tessface(info->dm);
-			for (sample = samples, i = 0; i < totsample; ++sample, ++i)
+			for (sample = first, i = 0; i < totsample; sample = (MSurfaceSample *)((char *)sample + stride), ++i)
 				mesh_sample_surface_random(info, sample);
 			break;
 		}




More information about the Bf-blender-cvs mailing list