00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef MAGICKCORE_OPENCL_H
00019 #define MAGICKCORE_OPENCL_H
00020
00021 #if defined(__cplusplus) || defined(c_plusplus)
00022 extern "C" {
00023 #endif
00024
00025 typedef enum
00026 {
00027 UndefinedCLDeviceType,
00028 CpuCLDeviceType,
00029 GpuCLDeviceType
00030 } MagickCLDeviceType;
00031
00032 typedef struct _KernelProfileRecord
00033 {
00034 char
00035 *kernel_name;
00036
00037 unsigned long
00038 count,
00039 max,
00040 min,
00041 total;
00042 }* KernelProfileRecord;
00043
00044 typedef struct _MagickCLDevice* MagickCLDevice;
00045
00046 extern MagickExport const char
00047 *GetOpenCLDeviceName(const MagickCLDevice),
00048 *GetOpenCLDeviceVendorName(const MagickCLDevice),
00049 *GetOpenCLDeviceVersion(const MagickCLDevice);
00050
00051 extern MagickExport const KernelProfileRecord
00052 *GetOpenCLKernelProfileRecords(const MagickCLDevice,size_t *);
00053
00054 extern MagickExport double
00055 GetOpenCLDeviceBenchmarkScore(const MagickCLDevice);
00056
00057 extern MagickExport MagickCLDevice
00058 *GetOpenCLDevices(size_t *,ExceptionInfo *);
00059
00060 extern MagickExport MagickCLDeviceType
00061 GetOpenCLDeviceType(const MagickCLDevice);
00062
00063 extern MagickExport MagickBooleanType
00064 GetOpenCLDeviceEnabled(const MagickCLDevice),
00065 GetOpenCLEnabled(void),
00066 SetOpenCLEnabled(const MagickBooleanType);
00067
00068 extern MagickExport void
00069 SetOpenCLDeviceEnabled(MagickCLDevice,
00070 const MagickBooleanType),
00071 SetOpenCLKernelProfileEnabled(MagickCLDevice,
00072 const MagickBooleanType);
00073
00074 #if defined(__cplusplus) || defined(c_plusplus)
00075 }
00076 #endif
00077
00078 #endif