X-Git-Url: https://granicus.if.org/sourcecode?a=blobdiff_plain;f=MagickWand%2Fwand-view.c;h=1cbf6ee7d830f11e9bc519663b4b40a9974181f4;hb=de984cdc3631106b1cbbb8d3972b76a0fc27e8e8;hp=c49b439eb0af1e0a2014d291188308cf26fdcda1;hpb=e5a7417b235c03decfcd262840c0b09ccac51834;p=imagemagick diff --git a/MagickWand/wand-view.c b/MagickWand/wand-view.c index c49b439eb..1cbf6ee7d 100644 --- a/MagickWand/wand-view.c +++ b/MagickWand/wand-view.c @@ -18,11 +18,11 @@ % MagickWand Wand View Methods % % % % Software Design % -% John Cristy % +% Cristy % % March 2003 % % % % % -% Copyright 1999-2012 ImageMagick Studio LLC, a non-profit organization % +% Copyright 1999-2014 ImageMagick Studio LLC, a non-profit organization % % dedicated to making software imaging solutions freely available. % % % % You may not use this file except in compliance with the License. You may % @@ -269,9 +269,10 @@ WandExport MagickBooleanType DuplexTransferWandViewIterator(WandView *source, MagickOffsetType progress; +#if defined(MAGICKCORE_OPENMP_SUPPORT) size_t - height, - width; + height; +#endif ssize_t y; @@ -288,11 +289,10 @@ WandExport MagickBooleanType DuplexTransferWandViewIterator(WandView *source, return(MagickFalse); status=MagickTrue; progress=0; - height=source->extent.height-source->extent.y; - width=source->extent.width-source->extent.x; #if defined(MAGICKCORE_OPENMP_SUPPORT) - #pragma omp parallel for schedule(static) shared(progress,status) \ - dynamic_number_threads(width,height,1) + height=source->extent.height-source->extent.y; + #pragma omp parallel for schedule(static,4) shared(progress,status) \ + magick_threads(source_image,destination_image,height,1) #endif for (y=source->extent.y; y < (ssize_t) source->extent.height; y++) { @@ -527,9 +527,10 @@ WandExport MagickBooleanType GetWandViewIterator(WandView *source, MagickOffsetType progress; +#if defined(MAGICKCORE_OPENMP_SUPPORT) size_t - height, - width; + height; +#endif ssize_t y; @@ -541,11 +542,10 @@ WandExport MagickBooleanType GetWandViewIterator(WandView *source, source_image=source->wand->images; status=MagickTrue; progress=0; - height=source->extent.height-source->extent.y; - width=source->extent.width-source->extent.x; #if defined(MAGICKCORE_OPENMP_SUPPORT) - #pragma omp parallel for schedule(static) shared(progress,status) \ - dynamic_number_threads(width,height,1) + height=source->extent.height-source->extent.y; + #pragma omp parallel for schedule(static,4) shared(progress,status) \ + magick_threads(source_image,source_image,height,1) #endif for (y=source->extent.y; y < (ssize_t) source->extent.height; y++) { @@ -725,7 +725,7 @@ static PixelWand ***AcquirePixelsThreadSet(const size_t number_wands) size_t number_threads; - number_threads=(size_t) GetMagickResourceLimit(ThreadResource); + number_threads=GetOpenMPMaximumThreads(); pixel_wands=(PixelWand ***) AcquireQuantumMemory(number_threads, sizeof(*pixel_wands)); if (pixel_wands == (PixelWand ***) NULL) @@ -926,9 +926,10 @@ WandExport MagickBooleanType SetWandViewIterator(WandView *destination, MagickOffsetType progress; +#if defined(MAGICKCORE_OPENMP_SUPPORT) size_t - height, - width; + height; +#endif ssize_t y; @@ -944,11 +945,10 @@ WandExport MagickBooleanType SetWandViewIterator(WandView *destination, return(MagickFalse); status=MagickTrue; progress=0; - height=destination->extent.height-destination->extent.y; - width=destination->extent.width-destination->extent.x; #if defined(MAGICKCORE_OPENMP_SUPPORT) - #pragma omp parallel for schedule(static) shared(progress,status) \ - dynamic_number_threads(width,height,1) + height=destination->extent.height-destination->extent.y; + #pragma omp parallel for schedule(static,4) shared(progress,status) \ + magick_threads(destination_image,destination_image,height,1) #endif for (y=destination->extent.y; y < (ssize_t) destination->extent.height; y++) { @@ -1062,9 +1062,10 @@ WandExport MagickBooleanType TransferWandViewIterator(WandView *source, MagickOffsetType progress; +#if defined(MAGICKCORE_OPENMP_SUPPORT) size_t - height, - width; + height; +#endif ssize_t y; @@ -1081,11 +1082,10 @@ WandExport MagickBooleanType TransferWandViewIterator(WandView *source, return(MagickFalse); status=MagickTrue; progress=0; - height=source->extent.height-source->extent.y; - width=source->extent.width-source->extent.x; #if defined(MAGICKCORE_OPENMP_SUPPORT) - #pragma omp parallel for schedule(static) shared(progress,status) \ - dynamic_number_threads(width,height,1) + height=source->extent.height-source->extent.y; + #pragma omp parallel for schedule(static,4) shared(progress,status) \ + magick_threads(source_image,destination_image,height,1) #endif for (y=source->extent.y; y < (ssize_t) source->extent.height; y++) { @@ -1218,9 +1218,10 @@ WandExport MagickBooleanType UpdateWandViewIterator(WandView *source, MagickOffsetType progress; +#if defined(MAGICKCORE_OPENMP_SUPPORT) size_t - height, - width; + height; +#endif ssize_t y; @@ -1235,11 +1236,10 @@ WandExport MagickBooleanType UpdateWandViewIterator(WandView *source, return(MagickFalse); status=MagickTrue; progress=0; - height=source->extent.height-source->extent.y; - width=source->extent.width-source->extent.x; #if defined(MAGICKCORE_OPENMP_SUPPORT) - #pragma omp parallel for schedule(static) shared(progress,status) \ - dynamic_number_threads(width,height,1) + height=source->extent.height-source->extent.y; + #pragma omp parallel for schedule(static,4) shared(progress,status) \ + magick_threads(source_image,source_image,height,1) #endif for (y=source->extent.y; y < (ssize_t) source->extent.height; y++) {