]> granicus.if.org Git - imagemagick/commitdiff
Added missing attenuate argument to `ComputeAddNoiseImage`.
authorDirk Lemstra <dirk@git.imagemagick.org>
Sat, 2 Dec 2017 18:11:23 +0000 (19:11 +0100)
committerDirk Lemstra <dirk@git.imagemagick.org>
Sat, 2 Dec 2017 18:11:48 +0000 (19:11 +0100)
MagickCore/accelerate-private.h
MagickCore/accelerate.c
MagickCore/fx.c

index 7aaaeebef762e004d901780f9ed4a276d97e6c0f..4a42374c458643e47c73506cfd5bc5902ccf6122 100644 (file)
@@ -32,7 +32,8 @@ extern "C" {
 #if defined(MAGICKCORE_OPENCL_SUPPORT)
 
 extern MagickPrivate Image
-  *AccelerateAddNoiseImage(const Image*,const NoiseType,ExceptionInfo *),
+  *AccelerateAddNoiseImage(const Image*,const NoiseType,const double attenuate,
+    ExceptionInfo *),
   *AccelerateBlurImage(const Image *,const double,const double,ExceptionInfo *),
   *AccelerateConvolveImage(const Image *,const KernelInfo *,ExceptionInfo *),
   *AccelerateDespeckleImage(const Image *,ExceptionInfo *),
index 53d3c290ef06b94050f534f3d5dfd51e87e51795..eae2b3bfed8406f5aba382727bba507a7276e260 100644 (file)
@@ -392,13 +392,13 @@ cleanup:
 */
 
 static Image *ComputeAddNoiseImage(const Image *image,MagickCLEnv clEnv,
-  const NoiseType noise_type,ExceptionInfo *exception)
+  const NoiseType noise_type,const double attenuate,ExceptionInfo *exception)
 {
   cl_command_queue
     queue;
 
   cl_float
-    attenuate;
+    cl_attenuate;
 
   cl_int
     status;
@@ -420,9 +420,6 @@ static Image *ComputeAddNoiseImage(const Image *image,MagickCLEnv clEnv,
     seed1,
     workItemCount;
 
-  const char
-    *option;
-
   const unsigned long
     *s;
 
@@ -518,10 +515,7 @@ static Image *ComputeAddNoiseImage(const Image *image,MagickCLEnv clEnv,
 
   number_channels=(cl_uint) image->number_channels;
   bufferLength=(cl_uint) (image->columns*image->rows*image->number_channels);
-  attenuate=1.0f;
-  option=GetImageArtifact(image,"attenuate");
-  if (option != (char *) NULL)
-    attenuate=(float)StringToDouble(option,(char **) NULL);
+  cl_attenuate=(cl_float) attenuate;
 
   i=0;
   status =SetOpenCLKernelArg(addNoiseKernel,i++,sizeof(cl_mem),(void *)&imageBuffer);
@@ -530,7 +524,7 @@ static Image *ComputeAddNoiseImage(const Image *image,MagickCLEnv clEnv,
   status|=SetOpenCLKernelArg(addNoiseKernel,i++,sizeof(cl_uint),(void *)&bufferLength);
   status|=SetOpenCLKernelArg(addNoiseKernel,i++,sizeof(cl_uint),(void *)&pixelsPerWorkitem);
   status|=SetOpenCLKernelArg(addNoiseKernel,i++,sizeof(NoiseType),(void *)&noise_type);
-  status|=SetOpenCLKernelArg(addNoiseKernel,i++,sizeof(cl_float),(void *)&attenuate);
+  status|=SetOpenCLKernelArg(addNoiseKernel,i++,sizeof(cl_float),(void *)&cl_attenuate);
   status|=SetOpenCLKernelArg(addNoiseKernel,i++,sizeof(cl_uint),(void *)&seed0);
   status|=SetOpenCLKernelArg(addNoiseKernel,i++,sizeof(cl_uint),(void *)&seed1);
   status|=SetOpenCLKernelArg(addNoiseKernel,i++,sizeof(cl_uint),(void *)&numRandomNumberPerPixel);
@@ -564,7 +558,7 @@ cleanup:
 }
 
 MagickPrivate Image *AccelerateAddNoiseImage(const Image *image,
-  const NoiseType noise_type,ExceptionInfo *exception)
+  const NoiseType noise_type,const double attenuate,ExceptionInfo *exception)
 {
   Image
     *filteredImage;
@@ -582,7 +576,8 @@ MagickPrivate Image *AccelerateAddNoiseImage(const Image *image,
   if (clEnv == (MagickCLEnv) NULL)
     return((Image *) NULL);
 
-  filteredImage=ComputeAddNoiseImage(image,clEnv,noise_type,exception);
+  filteredImage=ComputeAddNoiseImage(image,clEnv,noise_type,attenuate,
+    exception);
   return(filteredImage);
 }
 
index 6560cb54a8ba2f21fdc1d125eb5ea5b39fa74947..8745ae766f548d4f30e705e49cc410445d7ac4bf 100644 (file)
@@ -301,7 +301,7 @@ MagickExport Image *AddNoiseImage(const Image *image,const NoiseType noise_type,
   assert(exception != (ExceptionInfo *) NULL);
   assert(exception->signature == MagickCoreSignature);
 #if defined(MAGICKCORE_OPENCL_SUPPORT)
-  noise_image=AccelerateAddNoiseImage(image,noise_type,exception);
+  noise_image=AccelerateAddNoiseImage(image,noise_type,attenuate,exception);
   if (noise_image != (Image *) NULL)
     return(noise_image);
 #endif