[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49425] trunk/blender/source/blender/ blenkernel/intern/mask_rasterize.c: multi-threaded sequencer buffer calculation for masks.
Campbell Barton
ideasman42 at gmail.com
Tue Jul 31 18:37:47 CEST 2012
Revision: 49425
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49425
Author: campbellbarton
Date: 2012-07-31 16:37:47 +0000 (Tue, 31 Jul 2012)
Log Message:
-----------
multi-threaded sequencer buffer calculation for masks.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/mask_rasterize.c
Modified: trunk/blender/source/blender/blenkernel/intern/mask_rasterize.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mask_rasterize.c 2012-07-31 16:25:40 UTC (rev 49424)
+++ trunk/blender/source/blender/blenkernel/intern/mask_rasterize.c 2012-07-31 16:37:47 UTC (rev 49425)
@@ -1291,27 +1291,28 @@
* \brief Rasterize a buffer from a single mask
*
* We could get some speedup by inlining #BKE_maskrasterize_handle_sample
- * and calcilating each layer then blending buffers, but this function is only
+ * and calculating each layer then blending buffers, but this function is only
* used by the sequencer - so better have the caller thread.
*
- * If we wanted to this function could be threaded with OpenMP easily.
+ * Since #BKE_maskrasterize_handle_sample is used threaded elsewhere,
+ * we can simply use openmp here for some speedup.
*/
void BKE_maskrasterize_buffer(MaskRasterHandle *mr_handle,
const unsigned int width, const unsigned int height,
float *buffer)
{
- unsigned int x;
unsigned int y;
- float *fp = buffer;
- float xy[2];
-
+#pragma omp parallel for private(y)
for (y = 0; y < height; y++) {
+ unsigned int i = y * width;
+ unsigned int x;
+ float xy[2];
xy[1] = (float)y / (float)height;
- for (x = 0; x < width; x++) {
+ for (x = 0; x < width; x++, i++) {
xy[0] = (float)x / (float)width;
- *fp++ = BKE_maskrasterize_handle_sample(mr_handle, xy);
+ buffer[i] = BKE_maskrasterize_handle_sample(mr_handle, xy);
}
}
}
More information about the Bf-blender-cvs
mailing list