void gimp_color_display_stack_changed (GimpColorDisplayStack *stack) { g_return_if_fail (GIMP_IS_COLOR_DISPLAY_STACK (stack)); g_signal_emit (stack, stack_signals[CHANGED], 0); }
void gimp_display_shell_filter_set (GimpDisplayShell *shell, GimpColorDisplayStack *stack) { g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell)); g_return_if_fail (stack == NULL || GIMP_IS_COLOR_DISPLAY_STACK (stack)); if (stack == shell->filter_stack) return; if (shell->filter_stack) { g_signal_handlers_disconnect_by_func (shell->filter_stack, gimp_display_shell_filter_changed, shell); g_object_unref (shell->filter_stack); } shell->filter_stack = stack; if (shell->filter_stack) { g_object_ref (shell->filter_stack); g_signal_connect (shell->filter_stack, "changed", G_CALLBACK (gimp_display_shell_filter_changed), shell); } gimp_display_shell_filter_changed (NULL, shell); }
void gimp_color_display_stack_remove (GimpColorDisplayStack *stack, GimpColorDisplay *display) { g_return_if_fail (GIMP_IS_COLOR_DISPLAY_STACK (stack)); g_return_if_fail (GIMP_IS_COLOR_DISPLAY (display)); g_return_if_fail (g_list_find (stack->filters, display) != NULL); gimp_color_display_stack_disconnect (stack, display); stack->filters = g_list_remove (stack->filters, display); g_signal_emit (stack, stack_signals[REMOVED], 0, display); gimp_color_display_stack_changed (stack); g_object_unref (display); }
/** * gimp_color_display_stack_convert_surface: * @display: a #GimpColorDisplayStack * @surface: a #cairo_image_surface_t of type ARGB32 * * Runs all the stack's filters on all pixels in @surface. * * Since: GIMP 2.8 **/ void gimp_color_display_stack_convert_surface (GimpColorDisplayStack *stack, cairo_surface_t *surface) { GList *list; g_return_if_fail (GIMP_IS_COLOR_DISPLAY_STACK (stack)); g_return_if_fail (surface != NULL); g_return_if_fail (cairo_surface_get_type (surface) == CAIRO_SURFACE_TYPE_IMAGE); for (list = stack->filters; list; list = g_list_next (list)) { GimpColorDisplay *display = list->data; gimp_color_display_convert_surface (display, surface); } }
void gimp_color_display_stack_convert (GimpColorDisplayStack *stack, guchar *buf, gint width, gint height, gint bpp, gint bpl) { GList *list; g_return_if_fail (GIMP_IS_COLOR_DISPLAY_STACK (stack)); for (list = stack->filters; list; list = g_list_next (list)) { GimpColorDisplay *display = list->data; gimp_color_display_convert (display, buf, width, height, bpp, bpl); } }
void gimp_color_display_stack_add (GimpColorDisplayStack *stack, GimpColorDisplay *display) { g_return_if_fail (GIMP_IS_COLOR_DISPLAY_STACK (stack)); g_return_if_fail (GIMP_IS_COLOR_DISPLAY (display)); g_return_if_fail (g_list_find (stack->filters, display) == NULL); stack->filters = g_list_append (stack->filters, g_object_ref (display)); g_signal_connect (display, "changed", G_CALLBACK (gimp_color_display_stack_display_changed), G_OBJECT (stack)); g_signal_connect (display, "notify::enabled", G_CALLBACK (gimp_color_display_stack_display_enabled), G_OBJECT (stack)); g_signal_emit (stack, stack_signals[ADDED], 0, display, g_list_length (stack->filters) - 1); gimp_color_display_stack_changed (stack); }
GimpColorDisplayStack * gimp_color_display_stack_clone (GimpColorDisplayStack *stack) { GimpColorDisplayStack *clone; GList *list; g_return_val_if_fail (GIMP_IS_COLOR_DISPLAY_STACK (stack), NULL); clone = g_object_new (GIMP_TYPE_COLOR_DISPLAY_STACK, NULL); for (list = stack->filters; list; list = g_list_next (list)) { GimpColorDisplay *display; display = gimp_color_display_clone (list->data); gimp_color_display_stack_add (clone, display); g_object_unref (display); } return clone; }
void gimp_color_display_stack_reorder_down (GimpColorDisplayStack *stack, GimpColorDisplay *display) { GList *list; g_return_if_fail (GIMP_IS_COLOR_DISPLAY_STACK (stack)); g_return_if_fail (GIMP_IS_COLOR_DISPLAY (display)); list = g_list_find (stack->filters, display); g_return_if_fail (list != NULL); if (list->next) { list->data = list->next->data; list->next->data = display; g_signal_emit (stack, stack_signals[REORDERED], 0, display, g_list_position (stack->filters, list->next)); gimp_color_display_stack_changed (stack); } }