static void gimp_curves_tool_map (GimpImageMapTool *image_map_tool) { GimpCurvesTool *tool = GIMP_CURVES_TOOL (image_map_tool); GimpDrawable *drawable = image_map_tool->drawable; Curves curves; gimp_curves_config_to_cruft (tool->config, &curves, gimp_drawable_is_rgb (drawable)); gimp_lut_setup (tool->lut, (GimpLutFunc) curves_lut_func, &curves, gimp_drawable_bytes (drawable)); }
static void gimp_drawable_curves (GimpDrawable *drawable, GimpProgress *progress, GimpCurvesConfig *config) { if (gimp_use_gegl (gimp_item_get_image (GIMP_ITEM (drawable))->gimp)) { GeglNode *node; node = g_object_new (GEGL_TYPE_NODE, "operation", "gimp:curves", NULL); gegl_node_set (node, "config", config, NULL); gimp_drawable_apply_operation (drawable, progress, C_("undo-type", "Curves"), node, TRUE); g_object_unref (node); } else { GimpLut *lut = gimp_lut_new (); Curves cruft; gimp_curves_config_to_cruft (config, &cruft, gimp_drawable_is_rgb (drawable)); gimp_lut_setup (lut, (GimpLutFunc) curves_lut_func, &cruft, gimp_drawable_bytes (drawable)); gimp_drawable_process_lut (drawable, progress, C_("undo-type", "Curves"), lut); gimp_lut_free (lut); } }