]> git.seodisparate.com - EN605.617.81.FA21_StephenSeo_DitheringProject/commitdiff
Rename kernel using fns/vars with word "grayscale"
authorStephen Seo <seo.disparate@gmail.com>
Sat, 27 Nov 2021 03:33:26 +0000 (12:33 +0900)
committerStephen Seo <seo.disparate@gmail.com>
Sat, 27 Nov 2021 03:33:26 +0000 (12:33 +0900)
src/image.cc
src/image.h
src/main.cc

index e8e759d60394655acf68842a6e3750f5b1dc51af..9b1c0103556b891d891e1628aadaaa852a3ef156 100644 (file)
@@ -9,7 +9,7 @@
 
 #include <png.h>
 
-const char *Image::opencl_kernel_ = nullptr;
+const char *Image::opencl_grayscale_kernel_ = nullptr;
 
 Image::Image() : data_(), width_(0), height_(0), is_grayscale_(true) {}
 
@@ -692,31 +692,36 @@ std::unique_ptr<Image> Image::ToGrayscale() const {
   return grayscale_image;
 }
 
-std::unique_ptr<Image> Image::ToDitheredWithBlueNoise(Image *blue_noise) {
+std::unique_ptr<Image> Image::ToGrayscaleDitheredWithBlueNoise(
+    Image *blue_noise) {
   if (!blue_noise->IsGrayscale()) {
-    std::cout << "ERROR ToDitheredWithBlueNoise: blue_noise is not grayscale"
-              << std::endl;
+    std::cout
+        << "ERROR ToGrayscaleDitheredWithBlueNoise: blue_noise is not grayscale"
+        << std::endl;
     return {};
   }
 
   auto grayscale_image = ToGrayscale();
   if (!grayscale_image) {
-    std::cout << "ERROR ToDitheredWithBlueNoise: Failed to get grayscale Image"
+    std::cout << "ERROR ToGrayscaleDitheredWithBlueNoise: Failed to get "
+                 "grayscale Image"
               << std::endl;
     return {};
   }
   auto opencl_handle = GetOpenCLHandle();
   if (!opencl_handle) {
-    std::cout << "ERROR ToDitheredWithBlueNoise: Failed to get OpenCLHandle"
-              << std::endl;
+    std::cout
+        << "ERROR ToGrayscaleDitheredWithBlueNoise: Failed to get OpenCLHandle"
+        << std::endl;
     return {};
   }
 
   // set up kernel and buffers
-  auto kid =
-      opencl_handle->CreateKernelFromSource(GetDitheringKernel(), "Dither");
+  auto kid = opencl_handle->CreateKernelFromSource(
+      GetGrayscaleDitheringKernel(), "Dither");
   if (kid == 0) {
-    std::cout << "ERROR ToDitheredWithBlueNoise: Failed to create OpenCL Kernel"
+    std::cout << "ERROR ToGrayscaleDitheredWithBlueNoise: Failed to create "
+                 "OpenCL Kernel"
               << std::endl;
     opencl_handle->CleanupAllKernels();
     return {};
@@ -726,8 +731,9 @@ std::unique_ptr<Image> Image::ToDitheredWithBlueNoise(Image *blue_noise) {
       kid, CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR,
       grayscale_image->data_.size(), grayscale_image->data_.data());
   if (input_buffer_id == 0) {
-    std::cout << "ERROR ToDitheredWithBlueNoise: Failed to set input buffer"
-              << std::endl;
+    std::cout
+        << "ERROR ToGrayscaleDitheredWithBlueNoise: Failed to set input buffer"
+        << std::endl;
     opencl_handle->CleanupAllKernels();
     return {};
   }
@@ -735,8 +741,9 @@ std::unique_ptr<Image> Image::ToDitheredWithBlueNoise(Image *blue_noise) {
   auto output_buffer_id = opencl_handle->CreateKernelBuffer(
       kid, CL_MEM_WRITE_ONLY, grayscale_image->data_.size(), nullptr);
   if (output_buffer_id == 0) {
-    std::cout << "ERROR ToDitheredWithBlueNoise: Failed to set output buffer"
-              << std::endl;
+    std::cout
+        << "ERROR ToGrayscaleDitheredWithBlueNoise: Failed to set output buffer"
+        << std::endl;
     opencl_handle->CleanupAllKernels();
     return {};
   }
@@ -745,61 +752,68 @@ std::unique_ptr<Image> Image::ToDitheredWithBlueNoise(Image *blue_noise) {
       kid, CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR, blue_noise->data_.size(),
       (void *)blue_noise->data_.data());
   if (blue_noise_buffer_id == 0) {
-    std::cout
-        << "ERROR ToDitheredWithBlueNoise: Failed to set blue-noise buffer"
-        << std::endl;
+    std::cout << "ERROR ToGrayscaleDitheredWithBlueNoise: Failed to set "
+                 "blue-noise buffer"
+              << std::endl;
     opencl_handle->CleanupAllKernels();
     return {};
   }
 
   // assign buffers/data to kernel parameters
   if (!opencl_handle->AssignKernelBuffer(kid, 0, input_buffer_id)) {
-    std::cout << "ERROR ToDitheredWithBlueNoise: Failed to set parameter 0"
-              << std::endl;
+    std::cout
+        << "ERROR ToGrayscaleDitheredWithBlueNoise: Failed to set parameter 0"
+        << std::endl;
     opencl_handle->CleanupAllKernels();
     return {};
   }
   if (!opencl_handle->AssignKernelBuffer(kid, 1, blue_noise_buffer_id)) {
-    std::cout << "ERROR ToDitheredWithBlueNoise: Failed to set parameter 1"
-              << std::endl;
+    std::cout
+        << "ERROR ToGrayscaleDitheredWithBlueNoise: Failed to set parameter 1"
+        << std::endl;
     opencl_handle->CleanupAllKernels();
     return {};
   }
   if (!opencl_handle->AssignKernelBuffer(kid, 2, output_buffer_id)) {
-    std::cout << "ERROR ToDitheredWithBlueNoise: Failed to set parameter 2"
-              << std::endl;
+    std::cout
+        << "ERROR ToGrayscaleDitheredWithBlueNoise: Failed to set parameter 2"
+        << std::endl;
     opencl_handle->CleanupAllKernels();
     return {};
   }
   unsigned int width = grayscale_image->GetWidth();
   if (!opencl_handle->AssignKernelArgument(kid, 3, sizeof(unsigned int),
                                            &width)) {
-    std::cout << "ERROR ToDitheredWithBlueNoise: Failed to set parameter 3"
-              << std::endl;
+    std::cout
+        << "ERROR ToGrayscaleDitheredWithBlueNoise: Failed to set parameter 3"
+        << std::endl;
     opencl_handle->CleanupAllKernels();
     return {};
   }
   unsigned int height = grayscale_image->GetHeight();
   if (!opencl_handle->AssignKernelArgument(kid, 4, sizeof(unsigned int),
                                            &height)) {
-    std::cout << "ERROR ToDitheredWithBlueNoise: Failed to set parameter 4"
-              << std::endl;
+    std::cout
+        << "ERROR ToGrayscaleDitheredWithBlueNoise: Failed to set parameter 4"
+        << std::endl;
     opencl_handle->CleanupAllKernels();
     return {};
   }
   unsigned int blue_noise_width = blue_noise->GetWidth();
   if (!opencl_handle->AssignKernelArgument(kid, 5, sizeof(unsigned int),
                                            &blue_noise_width)) {
-    std::cout << "ERROR ToDitheredWithBlueNoise: Failed to set parameter 5"
-              << std::endl;
+    std::cout
+        << "ERROR ToGrayscaleDitheredWithBlueNoise: Failed to set parameter 5"
+        << std::endl;
     opencl_handle->CleanupAllKernels();
     return {};
   }
   unsigned int blue_noise_height = blue_noise->GetHeight();
   if (!opencl_handle->AssignKernelArgument(kid, 6, sizeof(unsigned int),
                                            &blue_noise_height)) {
-    std::cout << "ERROR ToDitheredWithBlueNoise: Failed to set parameter 6"
-              << std::endl;
+    std::cout
+        << "ERROR ToGrayscaleDitheredWithBlueNoise: Failed to set parameter 6"
+        << std::endl;
     opencl_handle->CleanupAllKernels();
     return {};
   }
@@ -808,8 +822,9 @@ std::unique_ptr<Image> Image::ToDitheredWithBlueNoise(Image *blue_noise) {
       std::rand() % (blue_noise_width * blue_noise_height);
   if (!opencl_handle->AssignKernelArgument(kid, 7, sizeof(unsigned int),
                                            &blue_noise_offset)) {
-    std::cout << "ERROR ToDitheredWithBlueNoise: Failed to set parameter 7"
-              << std::endl;
+    std::cout
+        << "ERROR ToGrayscaleDitheredWithBlueNoise: Failed to set parameter 7"
+        << std::endl;
     opencl_handle->CleanupAllKernels();
     return {};
   }
@@ -838,8 +853,9 @@ std::unique_ptr<Image> Image::ToDitheredWithBlueNoise(Image *blue_noise) {
 
   if (!opencl_handle->ExecuteKernel2D(kid, width, height, work_group_size_0,
                                       work_group_size_1, true)) {
-    std::cout << "ERROR ToDitheredWithBlueNoise: Failed to execute Kernel"
-              << std::endl;
+    std::cout
+        << "ERROR ToGrayscaleDitheredWithBlueNoise: Failed to execute Kernel"
+        << std::endl;
     opencl_handle->CleanupAllKernels();
     return {};
   }
@@ -847,9 +863,9 @@ std::unique_ptr<Image> Image::ToDitheredWithBlueNoise(Image *blue_noise) {
   if (!opencl_handle->GetBufferData(kid, output_buffer_id,
                                     grayscale_image->GetSize(),
                                     grayscale_image->data_.data())) {
-    std::cout
-        << "ERROR ToDitheredWithBlueNoise: Failed to get output buffer data"
-        << std::endl;
+    std::cout << "ERROR ToGrayscaleDitheredWithBlueNoise: Failed to get output "
+                 "buffer data"
+              << std::endl;
     opencl_handle->CleanupAllKernels();
     return {};
   }
@@ -858,9 +874,9 @@ std::unique_ptr<Image> Image::ToDitheredWithBlueNoise(Image *blue_noise) {
   return grayscale_image;
 }
 
-const char *Image::GetDitheringKernel() {
-  if (opencl_kernel_ == nullptr) {
-    opencl_kernel_ =
+const char *Image::GetGrayscaleDitheringKernel() {
+  if (opencl_grayscale_kernel_ == nullptr) {
+    opencl_grayscale_kernel_ =
         "unsigned int BN_INDEX(\n"
         "unsigned int x,\n"
         "unsigned int y,\n"
@@ -891,7 +907,7 @@ const char *Image::GetDitheringKernel() {
         "}\n";
   }
 
-  return opencl_kernel_;
+  return opencl_grayscale_kernel_;
 }
 
 OpenCLHandle::Ptr Image::GetOpenCLHandle() {
index ac4fd87c2624aafbf4352450c3c6c20545e45455..d7051be6e24e2e061b4eeaa1e6fcd48ea3bd4dae 100644 (file)
@@ -103,16 +103,16 @@ class Image {
    *
    * \return A std::unique_ptr holding an Image on success, empty otherwise.
    */
-  std::unique_ptr<Image> ToDitheredWithBlueNoise(Image *blue_noise);
+  std::unique_ptr<Image> ToGrayscaleDitheredWithBlueNoise(Image *blue_noise);
 
   /// Returns the Dithering Kernel function as a C string
-  static const char *GetDitheringKernel();
+  static const char *GetGrayscaleDitheringKernel();
 
   /// Returns the OpenCLHandle::Ptr instance
   OpenCLHandle::Ptr GetOpenCLHandle();
 
  private:
-  static const char *opencl_kernel_;
+  static const char *opencl_grayscale_kernel_;
   OpenCLHandle::Ptr opencl_handle_;
   /// Internally holds rgba
   std::vector<uint8_t> data_;
index b3c25cc92a479b71116ffab34ddabdea1c345ddd..bbdddd0f7b3a02c26652fba3e41f0fa377c456a0 100644 (file)
@@ -18,7 +18,7 @@ int main(int argc, char **argv) {
     return 1;
   }
 
-  auto output = input.ToDitheredWithBlueNoise(&bluenoise);
+  auto output = input.ToGrayscaleDitheredWithBlueNoise(&bluenoise);
   if (!output || !output->IsValid()) {
     std::cout << "ERROR: output Image is invalid" << std::endl;
     return 1;