]> granicus.if.org Git - imagemagick/blobdiff - MagickCore/opencl.h
(no commit message)
[imagemagick] / MagickCore / opencl.h
index b343f81dc2d0ff51a9ac72f6b31298058978ad1f..19ab40a17ff95e375441144812b869decf57eff9 100644 (file)
 #ifndef _MAGICKCORE_OPENCL_H
 #define _MAGICKCORE_OPENCL_H
 
+
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
 #endif
 
+/* OpenCL program modules */
+typedef enum {
+  MAGICK_OPENCL_ACCELERATE = 0
+  ,MAGICK_OPENCL_NUM_PROGRAMS   /* !!! This has to be the last entry !!! */
+} MagickOpenCLProgram;
+
+
+typedef struct _MagickCLEnv* MagickCLEnv;
+
+extern MagickExport
+  MagickCLEnv AcquireMagickOpenCLEnv();
+
+extern MagickExport
+  MagickBooleanType RelinquishMagickOpenCLEnv(MagickCLEnv);
+
+extern MagickExport
+  MagickCLEnv GetDefaultOpenCLEnv();
+
+extern MagickExport
+  MagickCLEnv SetDefaultOpenCLEnv(MagickCLEnv);
+
+
+/* Parameter type accepted by SetMagickOpenCLEnvParm and GetMagickOpenCLEnvParm */
+typedef enum {
+    MAGICK_OPENCL_ENV_PARAM_DEVICE                 /* cl_device_id (from OpenCL) */
+  , MAGICK_OPENCL_ENV_PARAM_OPENCL_DISABLED        /* MagickBooleanType */
+  , MAGICK_OPENCL_ENV_PARAM_OPENCL_INITIALIZED     /* MagickBooleanType */
+  , MAGICK_OPENCL_ENV_PARAM_PROGRAM_CACHE_DISABLED /* MagickBooleanType */
+                                                   /* if true, disable the kernel binary cache */
+  , MAGICK_OPENCL_ENV_PARAM_REGENERATE_PROFILE     /* MagickBooleanType */
+                                                   /* if true, rerun microbenchmark in auto device selection */
+} MagickOpenCLEnvParam;
+
+extern MagickExport
+  MagickBooleanType SetMagickOpenCLEnvParam(MagickCLEnv, MagickOpenCLEnvParam, size_t, void*, ExceptionInfo*);
+
+extern MagickExport
+  MagickBooleanType GetMagickOpenCLEnvParam(MagickCLEnv, MagickOpenCLEnvParam, size_t, void*, ExceptionInfo*);
+
+
+extern MagickExport
+  MagickBooleanType InitOpenCLEnv(MagickCLEnv, ExceptionInfo*);
+
+typedef enum {
+  MAGICK_OPENCL_OFF = 0
+, MAGICK_OPENCL_DEVICE_SELECT_AUTO = 1
+, MAGICK_OPENCL_DEVICE_SELECT_USER = 2
+, MAGICK_OPENCL_DEVICE_SELECT_AUTO_CLEAR_CACHE = 3
+} ImageMagickOpenCLMode ;
+
+extern MagickExport
+MagickBooleanType InitImageMagickOpenCL(ImageMagickOpenCLMode, void*, void*, ExceptionInfo*);
+
 #if defined(__cplusplus) || defined(c_plusplus)
 }
 #endif