/* This file is an image processing operation for 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 2007 Étienne Bersac * Copyright 2006 Øyvind Kolås * * This operation is just a forked grey op with format parameters. */ #include "config.h" #include #ifdef GEGL_CHANT_PROPERTIES gegl_chant_string(format, _("Output format"), "RGBA float", _("Babl output format string")) #else #define GEGL_CHANT_TYPE_POINT_FILTER #define GEGL_CHANT_C_FILE "convert-format.c" #include "gegl-chant.h" static void prepare (GeglOperation *operation) { GeglChantO *o = GEGL_CHANT_PROPERTIES (operation); const Babl *format; g_assert (o->format); format = babl_format (o->format); /* check format ? */ gegl_operation_set_format (operation, "input", format); gegl_operation_set_format (operation, "output", format); } static gboolean process (GeglOperation *op, void *in_buf, void *out_buf, glong samples, const GeglRectangle *roi, gint level) { int bpp = babl_format_get_bytes_per_pixel (gegl_operation_get_format (op, "output")); memcpy(out_buf, in_buf, samples * bpp); return TRUE; } static void gegl_chant_class_init (GeglChantClass *klass) { GeglOperationClass *operation_class; GeglOperationPointFilterClass *point_filter_class; operation_class = GEGL_OPERATION_CLASS (klass); point_filter_class = GEGL_OPERATION_POINT_FILTER_CLASS (klass); point_filter_class->process = process; operation_class->prepare = prepare; gegl_operation_class_set_keys (operation_class, "name", "gegl:convert-format", "categories", "core:color", "description", _("Convert the data to the specified format"), NULL); } #endif