Modified Files: ChangeLog app/Makefile.am app/channel.c
Modified Files: ChangeLog app/Makefile.am app/channel.c app/drawable_cmds.c app/drawable_cmds.h app/gimage_cmds.c app/gimage_cmds.h app/gimpdrawable.c app/gimpdrawable.h app/gimpdrawableP.h app/gimpimage.c app/gimpimage.h app/gimpimageP.h app/internal_procs.c app/layer.c app/plug_in.c app/procedural_db.c app/procedural_db.h libgimp/Makefile.am libgimp/gimp.c libgimp/gimp.h libgimp/gimpdrawable.c libgimp/gimpenums.h libgimp/gimpimage.c libgimp/gimpprotocol.c libgimp/gimpprotocol.h plug-ins/dbbrowser/dbbrowser_utils.c plug-ins/script-fu/script-fu.c plug-ins/tiff/tiff.c Added Files: app/parasite.c app/parasite.h app/parasiteF.h app/parasiteP.h app/parasite_cmds.c app/parasite_cmds.h libgimp/gimpparasite.c libgimp/gimpparasite.h Allow plug-ins (and scripts) to attach arbitrary data (parasites) to images, layers and channels that can be read back at a later time.
This commit is contained in:
@ -623,6 +623,9 @@ gimp_run_procedure (char *name,
|
||||
case PARAM_COLOR:
|
||||
(void) va_arg (args, guchar*);
|
||||
break;
|
||||
case PARAM_PARASITE:
|
||||
(void) va_arg (args, GParasite*);
|
||||
break;
|
||||
case PARAM_REGION:
|
||||
break;
|
||||
case PARAM_END:
|
||||
@ -707,6 +710,22 @@ gimp_run_procedure (char *name,
|
||||
case PARAM_PATH:
|
||||
proc_run.params[i].data.d_path = va_arg (args, gint32);
|
||||
break;
|
||||
case PARAM_PARASITE:
|
||||
{
|
||||
GParasite *p = va_arg (args, GParasite*);
|
||||
if (p == NULL)
|
||||
p = gparasite_error();
|
||||
memcpy(proc_run.params[i].data.d_parasite.creator, p->creator, 4);
|
||||
memcpy(proc_run.params[i].data.d_parasite.type, p->type, 4);
|
||||
proc_run.params[i].data.d_parasite.flags = p->flags;
|
||||
proc_run.params[i].data.d_parasite.size = p->size;
|
||||
if (p->size > 0)
|
||||
proc_run.params[i].data.d_parasite.data = g_memdup (p->data,
|
||||
p->size);
|
||||
else
|
||||
proc_run.params[i].data.d_parasite.data = NULL;
|
||||
|
||||
} break;
|
||||
case PARAM_STATUS:
|
||||
proc_run.params[i].data.d_status = va_arg (args, gint32);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user