/* This file is part of GEGL
*
* GEGL is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* GEGL is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with GEGL; if not, see .
*
* Copyright 2012 Victor Oliveira (victormatheus@gmail.com)
*/
#ifndef __GEGL_CL_COLOR_H__
#define __GEGL_CL_COLOR_H__
#include
#include "gegl-cl-types.h"
typedef enum
{
GEGL_CL_COLOR_NOT_SUPPORTED = 0,
GEGL_CL_COLOR_EQUAL = 1,
GEGL_CL_COLOR_CONVERT = 2
} GeglClColorOp;
/** Compile and register OpenCL kernel for color conversion */
gboolean gegl_cl_color_compile_kernels (void);
/** Return TRUE if the Babl format is supported with OpenCL.
* If present, returns the byte per pixel in *bytes
*/
gboolean gegl_cl_color_babl (const Babl *buffer_format,
size_t *bytes);
/** Return TRUE if the conversion is OpenCL supported */
GeglClColorOp gegl_cl_color_supported (const Babl *in_format,
const Babl *out_format);
/** Copy and convert size pixels from in_tex to aux_tex.
* Return TRUE if successful.
*/
gboolean gegl_cl_color_conv (cl_mem in_tex,
cl_mem aux_tex,
const size_t size,
const Babl *in_format,
const Babl *out_format);
#endif