devel-docs: Move GIMP 3 porting guide to gimp-web-devel
See: Infrastructure/gimp-web-devel#9 Except API-for-resources.md, which is ugly and not linked in the README. And GIMP3-API-Changes, which seems to be just a personal annotation.
This commit is contained in:
parent
6910945bd4
commit
13d3643ad7
6 changed files with 0 additions and 694 deletions
|
|
@ -1,23 +0,0 @@
|
|||
This file contains a list of changes that can/must be done when
|
||||
we break API/ABI for 3.x.
|
||||
|
||||
|
||||
- Move GIMP_REPEAT_TRUNCATE to the start of the enum and rename it
|
||||
to NONE. Rename the current NONE to EXTEND or something.
|
||||
|
||||
- Add LOTS of padding to all public class structs.
|
||||
|
||||
- Have private pointers in all public instance structs, not just
|
||||
GET_PRIVATE() macros, in order to inspect the private structs
|
||||
easily in the debugger.
|
||||
|
||||
- Remove compat values from all enums.
|
||||
|
||||
- Add user_data to all functions passed to gimp_widgets_init()
|
||||
|
||||
- Preferably make gimp_widgets_init() take a vtable with padding.
|
||||
|
||||
- Change gimp_prop_foo_new() to use the nick as label, or find some
|
||||
other way to use the nick.
|
||||
|
||||
- Pass the plug-in protocol version on the plug-in command line.
|
||||
|
|
@ -1,272 +0,0 @@
|
|||
# API changes in libgimp and the PDB for resources
|
||||
|
||||
This explains changes to the GIMP API from v2 to v3,
|
||||
concerning resources.
|
||||
|
||||
The audience is plugin authors, and GIMP developers.
|
||||
|
||||
### Resources
|
||||
|
||||
A resource is a chunk of data that can be installed with GIMP
|
||||
and is used by painting tools or for other rendering tasks.
|
||||
Usually known as brush, font, palette, pattern, gradient and so forth.
|
||||
|
||||
### Resources are now first class objects
|
||||
|
||||
GimpResource is now a class in libgimp.
|
||||
|
||||
It has subclasses:
|
||||
|
||||
- Brush
|
||||
- Font
|
||||
- Gradient
|
||||
- Palette
|
||||
- Pattern
|
||||
|
||||
Formerly, the GIMP API had functions operating on resources by name.
|
||||
Now, there are methods on resource objects.
|
||||
Methods take an instance of the object as the first argument,
|
||||
often called "self."
|
||||
|
||||
This means that where you formerly used a string name to refer to a resource object,
|
||||
now you usually should pass an instance of an object.
|
||||
|
||||
### Changes to reference documents
|
||||
|
||||
#### libgimp API reference
|
||||
|
||||
Shows classes Brush, Font, and so forth.
|
||||
The classes have instance methods taking the instance as the first argument.
|
||||
|
||||
Example:
|
||||
|
||||
```
|
||||
gboolean gboolean gimp_brush_delete(gcharray) => gboolean gimp_brush_delete ( GimpBrush*)
|
||||
```
|
||||
|
||||
The classes may also have class methods still taking string names.
|
||||
|
||||
Example:
|
||||
|
||||
```
|
||||
gboolean gimp_brush_id_is_valid (const gchar* id)
|
||||
```
|
||||
|
||||
Is a class method (in the "Functions" section of the class) taking the ID
|
||||
(same as the name) to test whether such a brush is installed in Gimp core.
|
||||
|
||||
#### PDB Browser
|
||||
|
||||
Remember the PDB Browser shows the C API. You must mentally convert
|
||||
to the API in bound languages.
|
||||
|
||||
Shows some procedures that now take type e.g. GimpBrush
|
||||
where formerly they took type gcharray i.e. strings.
|
||||
|
||||
Shows some procedures that take a string name of a brush.
|
||||
These are usually class methods.
|
||||
|
||||
#### Other changes to the API
|
||||
|
||||
Many of the Gimp functions dealing with the context
|
||||
now take or return an instance of a resource.
|
||||
|
||||
Example:
|
||||
|
||||
```
|
||||
gcharray* gimp_context_get_brush (void) => GimpBrush* gimp_context_get_brush (void)
|
||||
```
|
||||
|
||||
A few functions have even more changed signature:
|
||||
|
||||
```
|
||||
gint gimp_palette_get_info (gcharray) =>
|
||||
gint gimp_palette_get_color_count (GimpPalette*)
|
||||
```
|
||||
|
||||
The name and description of this function are changed
|
||||
to accurately describe that the function only returns an integer
|
||||
(formerly, the description said it also returned the name of the palette.)
|
||||
|
||||
### New resource objects
|
||||
|
||||
FUTURE
|
||||
|
||||
Formerly there were no methods in the libgimp API or the PDB for objects:
|
||||
|
||||
- Dynamics
|
||||
- ColorProfile
|
||||
- ToolPreset
|
||||
|
||||
These classes exist primarily so that plugins can let a user choose an instance,
|
||||
and pass the instance on to other procedures.
|
||||
|
||||
### Traits
|
||||
|
||||
Informally, resources can have these traits:
|
||||
|
||||
- Nameable
|
||||
- Creatable/Deleable
|
||||
- Cloneable (Duplicatable)
|
||||
- Editable
|
||||
|
||||
Some resource subclasses don't have all traits.
|
||||
|
||||
### ID's and names
|
||||
|
||||
The ID and name of a resource are currently the same.
|
||||
(Some documents and method names may use either word, inconsistently.)
|
||||
|
||||
You usually use resource instances instead of their IDs.
|
||||
This will insulate your code from changes to GIMP re ID versus name.
|
||||
|
||||
A plugin should not use a resource's ID.
|
||||
A plugin should not show the ID/name to a user.
|
||||
The GIMP app shows the names of resources as a convenience to users,
|
||||
but usually shows resources visually, that is, iconically.
|
||||
An ID is opaque, that is, used internally by GIMP.
|
||||
|
||||
FUTURE: the ID and name of a resource are distinct.
|
||||
Different resource instances may have the same name.
|
||||
Methods returning lists of resources or resource names may return
|
||||
lists having duplicate names.
|
||||
|
||||
### Resource instances are references to underlying data
|
||||
|
||||
A resource instance is a proxy, or reference, to the underlying data.
|
||||
Methods on the instance act on the underlying data.
|
||||
The underlying data is in GIMP's store of resources.
|
||||
|
||||
It is possible for a resource instance to be "invalid"
|
||||
that is, referring to underlying data that does not exist,
|
||||
usually when a user uninstalls the thing.
|
||||
|
||||
### Creating Resources
|
||||
|
||||
Installing a resource is distinct from creating a resource.
|
||||
|
||||
GIMP lets you create some resources.
|
||||
You can't create fonts in GIMP, you can only install them.
|
||||
For those resources that GIMP lets you create,
|
||||
the act of creating it also installs it.
|
||||
|
||||
For resources that you can create in GIMP:
|
||||
|
||||
- some you create using menu items
|
||||
- some you can create using the API
|
||||
|
||||
The API does not let you create a raster brush.
|
||||
|
||||
The API does let you create a parametric brush.
|
||||
For example, in Python:
|
||||
```
|
||||
brush = Gimp.Brush.new("Foo")
|
||||
```
|
||||
creates a new parametric brush.
|
||||
|
||||
Note that the passed name is a proposed name.
|
||||
If the name is already in use,
|
||||
the new brush will have a different name.
|
||||
The brush instance will always be valid.
|
||||
|
||||
### Getting Resources by ID
|
||||
|
||||
Currently, you usually ask the user to interactively choose a resource.
|
||||
|
||||
If you must get a reference to a resource for which you know the ID,
|
||||
you can new() the resource class and set it's ID property.
|
||||
See below.
|
||||
|
||||
FUTURE Resource classes have get_by_id() methods.
|
||||
|
||||
If such a named resource is currently installed,
|
||||
get_by_id() returns a valid instance of the resource class.
|
||||
If such a named resource is not currently installed,
|
||||
the method returns an error.
|
||||
|
||||
### Uninitialized or invalid resource instances
|
||||
|
||||
You can create an instance of a resource class that is invalid.
|
||||
|
||||
For example, in Python:
|
||||
|
||||
```
|
||||
brush = Gimp.Brush()
|
||||
brush.set_property("id", "Foo")
|
||||
```
|
||||
creates an instance that is invalid because there is no underlying data in the GIMP store
|
||||
(assuming a brush named "Foo" is not installed.)
|
||||
|
||||
Ordinarily, you would not use such a construct.
|
||||
Instead, you should use the new() method
|
||||
(for resource classes where it is defined)
|
||||
which creates, installs, and returns a valid instance except in dire circumstances (out of memory.)
|
||||
|
||||
### Invalid resource instances due to uninstalls
|
||||
|
||||
A plugin may have a resource as a parameter.
|
||||
|
||||
An interactive plugin may show a chooser widget to let a user choose a resource.
|
||||
The user's choices may be saved in settings.
|
||||
|
||||
In the same session of GIMP, or in a subsequent session,
|
||||
a user may invoke the plugin again.
|
||||
Then the saved settings are displayed in the plugin's dialog
|
||||
(when the second invocation is also interactive).
|
||||
|
||||
When, in the meantime (between invocations of the plugin)
|
||||
a user has uninstalled the reference resource,
|
||||
the resource, as a reference, is invalid.
|
||||
A well-written plugin should handle this case.
|
||||
|
||||
Resource classes have:
|
||||
|
||||
- is_valid() instance method
|
||||
- id_is_valid(char * name) class method
|
||||
|
||||
Well-written plugins should use these methods to ensure
|
||||
that saved (deserialized) resource instances
|
||||
are valid before subsequently using them.
|
||||
|
||||
|
||||
### Naming and renaming
|
||||
|
||||
As mentioned above, currently names must be unique.
|
||||
|
||||
For some resources, the method rename(char * name) changes the name.
|
||||
The method fails if the new name is already used.
|
||||
|
||||
When the instance is invalid to start with
|
||||
(it has an ID that does not refer to any installed data)
|
||||
renaming it can succeed and then it creates a valid instance.
|
||||
|
||||
### Duplicating
|
||||
|
||||
Duplicating a resource creates and installs the underlying data,
|
||||
under a new, generated name.
|
||||
|
||||
The duplicate() method on an instance returns a new instance.
|
||||
|
||||
### Deleting
|
||||
|
||||
You can delete some resources. This uninstalls them.
|
||||
You can delete some brushes, palettes, and gradients,
|
||||
when they are writeable i.e. editable,
|
||||
which usually means that a user previously created them.
|
||||
You can't delete fonts and patterns.
|
||||
|
||||
You can delete using the delete() instance method
|
||||
|
||||
When you delete a resource, the instance (the proxy in a variable) continues to exist, but is invalid.
|
||||
|
||||
### Resource lists
|
||||
|
||||
Some functions in GIMP return lists of resource names,
|
||||
representing the set of resources installed.
|
||||
|
||||
For example: gimp_brushes_get_list.
|
||||
|
||||
This returns a list of strings, the ID's of the resources.
|
||||
The list will have no duplicates.
|
||||
|
||||
FUTURE: this will return a list of resource instances, and their names may have duplicates.
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
Here you'll find documentation useful for porting older GIMP
|
||||
plug-ins, especially Python ones, to the GIMP 3.0 APIs.
|
||||
|
||||
Files:
|
||||
|
||||
- [classes.md:](classes.md)
|
||||
A list of some of the important classes and modules in GIMP 3.0.
|
||||
|
||||
- [pdb-calls.md:](pdb-calls.md)
|
||||
An incomplete list of old PDB functions and their equivalents,
|
||||
using Python classes.
|
||||
|
||||
- [removed_functions.md:](removed_functions.md)
|
||||
Functions that have been removed from GIMP, and their replacements.
|
||||
|
||||
|
|
@ -1,82 +0,0 @@
|
|||
# Useful Modules/Classes in GIMP 3.0+
|
||||
|
||||
Here's a guide to the modules you're likely to need.
|
||||
It's a work in progress: feel free to add to it.
|
||||
|
||||
Online documentation for our libraries can be found at:
|
||||
https://developer.gimp.org/api/3.0/
|
||||
|
||||
You can also get some information in GIMP's Python console with
|
||||
*help(module)* or *help(object)*, and you can get a list of functions
|
||||
with *dir(object)*.
|
||||
|
||||
## Gimp
|
||||
|
||||
The base module: almost everything is under Gimp.
|
||||
|
||||
## Gimp.Image
|
||||
|
||||
The image object.
|
||||
|
||||
Some operations that used to be PDB calls, like
|
||||
```
|
||||
pdb.gimp_selection_layer_alpha(layer)
|
||||
```
|
||||
are now in the Image object, e.g.
|
||||
```
|
||||
img.select_item(Gimp.ChannelOps.REPLACE, layer)
|
||||
```
|
||||
|
||||
## Gimp.Layer
|
||||
|
||||
The layer object.
|
||||
|
||||
```
|
||||
fog = Gimp.Layer.new(image, name,
|
||||
drawable.width(), drawable.height(), type, opacity,
|
||||
Gimp.LayerMode.NORMAL)
|
||||
```
|
||||
|
||||
## Gimp.Selection
|
||||
|
||||
Selection operations that used to be in the PDB, e.g.
|
||||
```
|
||||
pdb.gimp_selection_none(img)
|
||||
```
|
||||
are now in the Gimp.Selection module, e.g.
|
||||
```
|
||||
Gimp.Selection.none(img)
|
||||
```
|
||||
|
||||
## Gimp.ImageType
|
||||
|
||||
A home for image types like RGBA, GRAY, etc:
|
||||
```
|
||||
Gimp.ImageType.RGBA_IMAGE
|
||||
```
|
||||
|
||||
## Gimp.FillType
|
||||
|
||||
e.g. Gimp.FillType.TRANSPARENT, Gimp.FillType.BACKGROUND
|
||||
|
||||
## Gimp.ChannelOps
|
||||
|
||||
The old channel op definitions in the gimpfu module, like
|
||||
```
|
||||
CHANNEL_OP_REPLACE
|
||||
```
|
||||
are now in their own module:
|
||||
|
||||
```
|
||||
Gimp.ChannelOps.REPLACE
|
||||
```
|
||||
|
||||
## Gegl.Color
|
||||
|
||||
In legacy plug-ins you could pass a simple list of integers, like (0, 0, 0).
|
||||
In 3.0+, create a Gegl.Color object:
|
||||
|
||||
```
|
||||
c = Gegl.Color.new("black")
|
||||
c.set_rgba(0.94, 0.71, 0.27, 1.0)
|
||||
```
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
# PDB equivalence
|
||||
|
||||
A table of old PDB calls, and their equivalents in the GIMP 3.0+ world.
|
||||
|
||||
This document is a work in progress. Feel free to add to it.
|
||||
|
||||
## Undo/Context
|
||||
|
||||
| Removed function | Replacement |
|
||||
| -------------------------------- | ----------------------------
|
||||
| gimp_undo_push_group_start | image.undo_group_start() |
|
||||
| gimp_undo_push_group_end | image.undo_group_end() |
|
||||
| gimp.context_push() | Gimp.context_push() |
|
||||
| gimp.context_push() | Gimp.context_push() |
|
||||
| gimp_context_get_background | Gimp.context_get_background
|
||||
| gimp_context_set_background | Gimp.context_set_background
|
||||
|
||||
## File load/save
|
||||
|
||||
| Removed function | Replacement |
|
||||
| -------------------------------- | ----------------------------
|
||||
| gimp_file_load | Gimp.file_load |
|
||||
| gimp_file_save | Gimp.file_save |
|
||||
|
||||
## Selection operations
|
||||
|
||||
Selection operations are now in the Gimp.Selection class (except
|
||||
a few in the Image class). E.g.
|
||||
|
||||
| Removed function | Replacement |
|
||||
| -------------------------------- | ----------------------------
|
||||
| pdb.gimp_selection_invert(img) | Gimp.Selection.invert(img) |
|
||||
| pdb.gimp_selection_none(img) | Gimp.Selection.none(img) |
|
||||
| pdb.gimp_selection_layer_alpha(layer) | img.select_item(Gimp.ChannelOps.REPLACE, layer) |
|
||||
| gimp_image_select_item | img.select_item(channel_op, layer) |
|
||||
|
||||
## Filling and Masks
|
||||
|
||||
| Removed function | Replacement |
|
||||
| -------------------------------- | ----------------------------
|
||||
| Gimp.drawable_fill() | layer.fill() |
|
||||
| pdb.gimp_edit_fill(FILL_BACKGROUND) | layer.edit_fill(Gimp.FillType.BACKGROUND) |
|
||||
| gimp_layer_add_mask | layer.add_mask
|
||||
| gimp_layer_remove_mask | layer.remove_mask
|
||||
|
||||
## Miscellaneous and Non-PDB Calls
|
||||
|
||||
| Removed function | Replacement |
|
||||
| -------------------------------- | ----------------------------
|
||||
| gimp_displays_flush | Gimp.displays_flush
|
||||
| gimp_image_insert_layer | image.insert_layer
|
||||
|
||||
|
||||
## Plug-ins
|
||||
|
||||
Calling other plug-ins is trickier than before. The old
|
||||
```
|
||||
pdb.script_fu_drop_shadow(img, layer, -3, -3, blur,
|
||||
(0, 0, 0), 80.0, False)
|
||||
```
|
||||
becomes
|
||||
```
|
||||
c = Gegl.Color.new("black")
|
||||
c.set_rgba(0.94, 0.71, 0.27, 1.0)
|
||||
Gimp.get_pdb().run_procedure('script-fu-drop-shadow',
|
||||
[ Gimp.RunMode.NONINTERACTIVE,
|
||||
GObject.Value(Gimp.Image, img),
|
||||
GObject.Value(Gimp.Drawable, layer),
|
||||
GObject.Value(GObject.TYPE_DOUBLE, -3),
|
||||
GObject.Value(GObject.TYPE_DOUBLE, -3),
|
||||
GObject.Value(GObject.TYPE_DOUBLE,blur),
|
||||
c,
|
||||
GObject.Value(GObject.TYPE_DOUBLE, 80.0),
|
||||
GObject.Value(GObject.TYPE_BOOLEAN, False)
|
||||
])
|
||||
```
|
||||
|
|
@ -1,226 +0,0 @@
|
|||
## Removed Functions
|
||||
|
||||
These functions have been removed from GIMP 3. Most of them were deprecated
|
||||
since GIMP 2.10.x or older versions. As we bump the major version, it is time
|
||||
to start with a clean slate.
|
||||
|
||||
Below is a correspondence table with replacement function. The replacement is
|
||||
not necessarily a direct search-and-replace equivalent. Some may have different
|
||||
parameters, and in some case, it may require to think a bit about how things
|
||||
work to reproduce the same functionality. Nevertheless everything which was
|
||||
possible in the previous API is obviously still possible.
|
||||
|
||||
| Removed function | Replacement |
|
||||
| ----------------------------------------------- | ------------------------------------------------- |
|
||||
| `gimp_attach_new_parasite()` | `gimp_attach_parasite()` |
|
||||
| `gimp_brightness_contrast()` | `gimp_drawable_brightness_contrast()` |
|
||||
| `gimp_brushes_get_brush()` | `gimp_context_get_brush()` |
|
||||
| `gimp_brushes_get_brush_data()` | `gimp_brush_get_pixels()` |
|
||||
| `gimp_brushes_get_spacing()` | `gimp_brush_get_spacing()` |
|
||||
| `gimp_brushes_set_spacing()` | `gimp_brush_set_spacing()` |
|
||||
| `gimp_by_color_select()` | `gimp_image_select_color()` |
|
||||
| `gimp_by_color_select_full()` | `gimp_image_select_color()` |
|
||||
| `gimp_channel_menu_new()` | `gimp_channel_combo_box_new()` |
|
||||
| `gimp_checks_get_shades()` | `gimp_checks_get_colors()` |
|
||||
| `gimp_color_balance()` | `gimp_drawable_color_color_balance()` |
|
||||
| `gimp_color_display_convert()` | `gimp_color_display_convert_buffer()` |
|
||||
| `gimp_color_display_convert_surface()` | `gimp_color_display_convert_buffer()` |
|
||||
| `gimp_color_display_stack_convert()` | `gimp_color_display_stack_convert_buffer()` |
|
||||
| `gimp_color_display_stack_convert_surface()` | `gimp_color_display_stack_convert_buffer()` |
|
||||
| `gimp_color_profile_combo_box_add()` | `gimp_color_profile_combo_box_add_file()` |
|
||||
| `gimp_color_profile_combo_box_get_active()` | `gimp_color_profile_combo_box_get_active_file()` |
|
||||
| `gimp_color_profile_combo_box_set_active()` | `gimp_color_profile_combo_box_set_active_file()` |
|
||||
| `gimp_color_profile_store_add()` | `gimp_color_profile_store_add_file()` |
|
||||
| `gimp_colorize()` | `gimp_drawable_colorize_hsl()` |
|
||||
| `gimp_context_get_transform_recursion()` | *N/A* |
|
||||
| `gimp_context_set_transform_recursion()` | *N/A* |
|
||||
| `gimp_curves_explicit()` | `gimp_drawable_curves_explicit()` |
|
||||
| `gimp_curves_spline()` | `gimp_drawable_curves_spline()` |
|
||||
| `gimp_desaturate()` | `gimp_drawable_desaturate()` |
|
||||
| `gimp_desaturate_full()` | `gimp_drawable_desaturate()` |
|
||||
| `gimp_drawable_attach_new_parasite()` | `gimp_item_attach_parasite()` |
|
||||
| `gimp_drawable_bpp()` | `gimp_drawable_get_bpp()` |
|
||||
| `gimp_drawable_delete()` | `gimp_item_delete()` |
|
||||
| `gimp_drawable_get_image()` | `gimp_item_get_image()` |
|
||||
| `gimp_drawable_get_linked()` | *N/A* |
|
||||
| `gimp_drawable_get_name()` | `gimp_item_get_name()` |
|
||||
| `gimp_drawable_get_tattoo()` | `gimp_item_get_tattoo()` |
|
||||
| `gimp_drawable_get_visible()` | `gimp_item_get_visible()` |
|
||||
| `gimp_drawable_height()` | `gimp_drawable_get_height()` |
|
||||
| `gimp_drawable_is_channel()` | `gimp_item_is_channel()` |
|
||||
| `gimp_drawable_is_layer()` | `gimp_item_is_layer()` |
|
||||
| `gimp_drawable_is_layer_mask()` | `gimp_item_is_layer_mask()` |
|
||||
| `gimp_drawable_is_text_layer()` | `gimp_item_is_text_layer()` |
|
||||
| `gimp_drawable_is_valid()` | `gimp_item_is_valid()` |
|
||||
| `gimp_drawable_menu_new()` | `gimp_drawable_combo_box_new()` |
|
||||
| `gimp_drawable_offsets()` | `gimp_drawable_get_offsets()` |
|
||||
| `gimp_drawable_parasite_attach()` | `gimp_item_attach_parasite()` |
|
||||
| `gimp_drawable_parasite_detach()` | `gimp_item_detach_parasite()` |
|
||||
| `gimp_drawable_parasite_find()` | `gimp_item_get_parasite()` |
|
||||
| `gimp_drawable_parasite_list()` | `gimp_item_get_parasite_list()` |
|
||||
| `gimp_drawable_preview_new()` | `gimp_drawable_preview_new_from_drawable()` |
|
||||
| `gimp_drawable_preview_new_from_drawable_id()` | `gimp_drawable_preview_new_from_drawable()` |
|
||||
| `gimp_drawable_set_image()` | *N/A* |
|
||||
| `gimp_drawable_set_linked()` | *N/A* |
|
||||
| `gimp_drawable_set_name()` | `gimp_item_set_name()` |
|
||||
| `gimp_drawable_set_tattoo()` | `gimp_item_set_tattoo()` |
|
||||
| `gimp_drawable_set_visible()` | `gimp_item_set_visible()` |
|
||||
| `gimp_drawable_transform_2d()` | `gimp_item_transform_2d()` |
|
||||
| `gimp_drawable_transform_2d_default()` | `gimp_item_transform_2d()` |
|
||||
| `gimp_drawable_transform_flip()` | `gimp_item_transform_flip()` |
|
||||
| `gimp_drawable_transform_flip_default()` | `gimp_item_transform_flip()` |
|
||||
| `gimp_drawable_transform_flip_simple()` | `gimp_item_transform_flip_simple()` |
|
||||
| `gimp_drawable_transform_matrix()` | `gimp_item_transform_matrix()` |
|
||||
| `gimp_drawable_transform_matrix_default()` | `gimp_item_transform_matrix()` |
|
||||
| `gimp_drawable_transform_perspective()` | `gimp_item_transform_perspective()` |
|
||||
| `gimp_drawable_transform_perspective_default()` | `gimp_item_transform_perspective()` |
|
||||
| `gimp_drawable_transform_rotate()` | `gimp_item_transform_rotate()` |
|
||||
| `gimp_drawable_transform_rotate_default()` | `gimp_item_transform_rotate()` |
|
||||
| `gimp_drawable_transform_rotate_simple()` | `gimp_item_transform_rotate_simple()` |
|
||||
| `gimp_drawable_transform_scale()` | `gimp_item_transform_scale()` |
|
||||
| `gimp_drawable_transform_scale_default()` | `gimp_item_transform_scale()` |
|
||||
| `gimp_drawable_transform_shear()` | `gimp_item_transform_shear()` |
|
||||
| `gimp_drawable_transform_shear_default()` | `gimp_item_transform_shear()` |
|
||||
| `gimp_drawable_width()` | `gimp_drawable_get_width()` |
|
||||
| `gimp_edit_blend()` | `gimp_drawable_edit_gradient_fill()` |
|
||||
| `gimp_edit_bucket_fill()` | `gimp_drawable_edit_bucket_fill()` |
|
||||
| `gimp_edit_bucket_fill_full()` | `gimp_drawable_edit_bucket_fill()` |
|
||||
| `gimp_edit_clear()` | `gimp_drawable_edit_clear()` |
|
||||
| `gimp_edit_fill()` | `gimp_drawable_edit_fill()` |
|
||||
| `gimp_edit_paste_as_new()` | `gimp_edit_paste_as_new_image()` |
|
||||
| `gimp_edit_named_paste_as_new()` | `gimp_edit_named_paste_as_new_image()` |
|
||||
| `gimp_edit_stroke()` | `gimp_drawable_edit_stroke_selection()` |
|
||||
| `gimp_edit_stroke_vectors()` | `gimp_drawable_edit_stroke_item()` |
|
||||
| `gimp_ellipse_select()` | `gimp_image_select_ellipse()` |
|
||||
| `gimp_enum_combo_box_set_stock_prefix()` | `gimp_enum_combo_box_set_icon_prefix()` |
|
||||
| `gimp_enum_stock_box_new()` | `gimp_enum_icon_box_new()` |
|
||||
| `gimp_enum_stock_box_new_with_range()` | `gimp_enum_icon_box_new_with_range()` |
|
||||
| `gimp_enum_stock_box_set_child_padding()` | `gimp_enum_icon_box_set_child_padding()` |
|
||||
| `gimp_enum_store_set_stock_prefix()` | `gimp_enum_store_set_icon_prefix()` |
|
||||
| `gimp_equalize()` | `gimp_drawable_equalize()` |
|
||||
| `gimp_flip()` | `gimp_item_transform_flip_simple()` |
|
||||
| `gimp_floating_sel_relax()` | *N/A* |
|
||||
| `gimp_floating_sel_rigor()` | *N/A* |
|
||||
| `gimp_free_select()` | `gimp_image_select_polygon()` |
|
||||
| `gimp_fuzzy_select()` | `gimp_image_select_contiguous_color()` |
|
||||
| `gimp_fuzzy_select_full()` | `gimp_image_select_contiguous_color()` |
|
||||
| `gimp_gamma()` | `gimp_drawable_get_format()` |
|
||||
| `gimp_get_icon_theme_dir()` | *N/A* |
|
||||
| `gimp_get_path_by_tattoo()` | `gimp_image_get_path_by_tattoo()` |
|
||||
| `gimp_get_theme_dir()` | *N/A* |
|
||||
| `gimp_gradients_get_gradient_data()` | `gimp_gradient_get_uniform_samples()` |
|
||||
| `gimp_gradients_sample_custom()` | `gimp_gradient_get_custom_samples()` |
|
||||
| `gimp_gradients_sample_uniform()` | `gimp_gradient_get_uniform_samples()` |
|
||||
| `gimp_histogram()` | `gimp_drawable_histogram()` |
|
||||
| `gimp_hue_saturation()` | `gimp_drawable_hue_saturation()` |
|
||||
| `gimp_image_add_channel()` | `gimp_image_insert_channel()` |
|
||||
| `gimp_image_add_layer()` | `gimp_image_insert_layer()` |
|
||||
| `gimp_image_add_vectors()` | `gimp_image_insert_path()` |
|
||||
| `gimp_image_attach_new_parasite()` | `gimp_image_attach_parasite()` |
|
||||
| `gimp_image_base_type()` | `gimp_image_get_base_type()` |
|
||||
| `gimp_image_free_shadow()` | `gimp_drawable_free_shadow()` |
|
||||
| `gimp_image_get_channel_position()` | `gimp_image_get_item_position()` |
|
||||
| `gimp_image_get_cmap()` | `gimp_image_get_colormap()` |
|
||||
| `gimp_image_get_layer_position()` | `gimp_image_get_item_position()` |
|
||||
| `gimp_image_get_vectors_position()` | `gimp_image_get_item_position()` |
|
||||
| `gimp_image_height()` | `gimp_image_get_height()` |
|
||||
| `gimp_image_lower_channel()` | `gimp_image_lower_item()` |
|
||||
| `gimp_image_lower_layer()` | `gimp_image_lower_item()` |
|
||||
| `gimp_image_lower_layer_to_bottom()` | `gimp_image_lower_item_to_bottom()` |
|
||||
| `gimp_image_lower_vectors()` | `gimp_image_lower_item()` |
|
||||
| `gimp_image_lower_vectors_to_bottom()` | `gimp_image_lower_item_to_bottom()` |
|
||||
| `gimp_image_menu_new()` | `gimp_image_combo_box_new()` |
|
||||
| `gimp_image_parasite_attach()` | `gimp_image_attach_parasite()` |
|
||||
| `gimp_image_parasite_detach()` | `gimp_image_detach_parasite()` |
|
||||
| `gimp_image_parasite_find()` | `gimp_image_get_parasite()` |
|
||||
| `gimp_image_parasite_list()` | `gimp_image_get_parasite_list()` |
|
||||
| `gimp_image_raise_channel()` | `gimp_image_raise_item()` |
|
||||
| `gimp_image_raise_layer()` | `gimp_image_raise_item()` |
|
||||
| `gimp_image_raise_layer_to_top()` | `gimp_image_raise_item_to_top()` |
|
||||
| `gimp_image_raise_vectors()` | `gimp_image_raise_item()` |
|
||||
| `gimp_image_raise_vectors_to_top()` | `gimp_image_raise_item_to_top()` |
|
||||
| `gimp_image_scale_full()` | `gimp_image_scale()` |
|
||||
| `gimp_image_set_cmap()` | `gimp_image_set_colormap()` |
|
||||
| `gimp_image_width()` | `gimp_image_get_width()` |
|
||||
| `gimp_install_cmap()` | *N/A* |
|
||||
| `gimp_invert()` | `gimp_drawable_invert()` |
|
||||
| `gimp_item_get_linked()` | *N/A* |
|
||||
| `gimp_item_set_linked()` | *N/A* |
|
||||
| `gimp_layer_menu_new()` | `gimp_layer_combo_box_new()` |
|
||||
| `gimp_layer_scale_full()` | `gimp_layer_scale()` |
|
||||
| `gimp_layer_translate()` | `gimp_item_transform_translate()` |
|
||||
| `gimp_levels()` | `gimp_drawable_levels()` |
|
||||
| `gimp_levels_auto()` | `gimp_drawable_levels_stretch()` |
|
||||
| `gimp_levels_stretch()` | `gimp_drawable_levels_stretch()` |
|
||||
| `gimp_min_colors()` | *N/A* |
|
||||
| `gimp_palettes_get_palette()` | `gimp_context_get_palette()` |
|
||||
| `gimp_palettes_get_palette_entry()` | `gimp_palette_entry_get_color()` |
|
||||
| `gimp_parasite_attach()` | `gimp_attach_parasite()` |
|
||||
| `gimp_parasite_data()` | `gimp_parasite_get_data()` |
|
||||
| `gimp_parasite_data_size()` | `gimp_parasite_get_data()` |
|
||||
| `gimp_parasite_detach()` | `gimp_detach_parasite()` |
|
||||
| `gimp_parasite_find()` | `gimp_get_parasite()` |
|
||||
| `gimp_parasite_flags()` | `gimp_parasite_get_flags()` |
|
||||
| `gimp_parasite_list()` | `gimp_get_parasite_list()` |
|
||||
| `gimp_parasite_name()` | `gimp_parasite_get_name()` |
|
||||
| `gimp_path_delete()` | `gimp_image_remove_path()` |
|
||||
| `gimp_path_get_current()` | `gimp_image_get_selected_paths()` |
|
||||
| `gimp_path_get_locked()` | *N/A* |
|
||||
| `gimp_path_get_points()` | `gimp_path_stroke_get_points()` |
|
||||
| `gimp_path_get_point_at_dist()` | `gimp_path_stroke_get_point_at_dist()` |
|
||||
| `gimp_path_get_tattoo()` | `gimp_item_get_tattoo()` |
|
||||
| `gimp_path_import()` | `gimp_image_import_paths_from_file()` |
|
||||
| `gimp_path_list()` | `gimp_image_get_paths()` |
|
||||
| `gimp_path_set_current()` | `gimp_image_set_selected_paths()` |
|
||||
| `gimp_path_set_locked()` | *N/A* |
|
||||
| `gimp_path_set_points()` | `gimp_path_stroke_new_from_points()` |
|
||||
| `gimp_path_set_tattoo()` | `gimp_item_set_tattoo()` |
|
||||
| `gimp_path_stroke_current()` | `gimp_edit_stroke_vectors()` |
|
||||
| `gimp_path_to_selection()` | `gimp_image_select_item()` |
|
||||
| `gimp_patterns_get_pattern()` | `gimp_context_get_pattern()` |
|
||||
| `gimp_patterns_get_pattern_data()` | `gimp_pattern_get_pixels()` |
|
||||
| `gimp_perspective()` | `gimp_item_transform_perspective()` |
|
||||
| `gimp_posterize()` | `gimp_drawable_posterize()` |
|
||||
| `gimp_prop_enum_stock_box_new()` | `gimp_prop_enum_icon_box_new()` |
|
||||
| `gimp_prop_stock_image_new()` | `gimp_prop_icon_image_new()` |
|
||||
| `gimp_prop_unit_menu_new()` | `gimp_prop_unit_combo_box_new()` |
|
||||
| `gimp_rect_select()` | `gimp_image_select_rectangle()` |
|
||||
| `gimp_rotate()` | `gimp_item_transform_rotate()` |
|
||||
| `gimp_round_rect_select()` | `gimp_image_select_round_rectangle()` |
|
||||
| `gimp_scale()` | `gimp_item_transform_scale()` |
|
||||
| `gimp_selection_combine()` | `gimp_image_select_item()` |
|
||||
| `gimp_selection_layer_alpha()` | `gimp_image_select_item()` |
|
||||
| `gimp_selection_load()` | `gimp_image_select_item()` |
|
||||
| `gimp_shear()` | `gimp_item_transform_shear()` |
|
||||
| `gimp_stock_init()` | `gimp_icons_init()` |
|
||||
| `gimp_text()` | `gimp_text_fontname()` |
|
||||
| `gimp_text_get_extents()` | `gimp_text_get_extents_fontname()` |
|
||||
| `gimp_text_layer_get_hinting()` | `gimp_text_layer_get_hint_style()` |
|
||||
| `gimp_text_layer_set_hinting()` | `gimp_text_layer_set_hint_style()` |
|
||||
| `gimp_threshold()` | `gimp_drawable_threshold()` |
|
||||
| `gimp_toggle_button_sensitive_update()` | `g_object_bind_property()` |
|
||||
| `gimp_transform_2d()` | `gimp_item_transform_2d()` |
|
||||
| `gimp_unit_menu_update()` | `#GimpUnitComboBox` |
|
||||
| `gimp_vectors_export_to_file()` | `gimp_image_export_path_to_file()` |
|
||||
| `gimp_vectors_export_to_string()` | `gimp_image_export_path_to_string()` |
|
||||
| `gimp_vectors_get_image()` | `gimp_item_get_image()` |
|
||||
| `gimp_vectors_get_linked()` | *N/A* |
|
||||
| `gimp_vectors_get_name()` | `gimp_item_get_name()` |
|
||||
| `gimp_vectors_get_tattoo()` | `gimp_item_get_tattoo()` |
|
||||
| `gimp_vectors_get_visible()` | `gimp_item_get_visible()` |
|
||||
| `gimp_vectors_import_from_file()` | `gimp_image_import_paths_from_file()` |
|
||||
| `gimp_vectors_import_from_string()` | `gimp_image_import_paths_from_string()` |
|
||||
| `gimp_vectors_is_valid()` | `gimp_item_is_valid()` |
|
||||
| `gimp_vectors_parasite_attach()` | `gimp_item_attach_parasite()` |
|
||||
| `gimp_vectors_parasite_detach()` | `gimp_item_detach_parasite()` |
|
||||
| `gimp_vectors_parasite_find()` | `gimp_item_get_parasite()` |
|
||||
| `gimp_vectors_parasite_list()` | `gimp_item_get_parasite_list()` |
|
||||
| `gimp_vectors_set_linked()` | *N/A* |
|
||||
| `gimp_vectors_set_name()` | `gimp_item_set_name()` |
|
||||
| `gimp_vectors_set_tattoo()` | `gimp_item_set_tattoo()` |
|
||||
| `gimp_vectors_set_visible()` | `gimp_item_set_visible()` |
|
||||
| `gimp_vectors_to_selection()` | `gimp_image_select_item()` |
|
||||
| `gimp_zoom_preview_get_drawable_id()` | `gimp_zoom_preview_get_drawable()` |
|
||||
| `gimp_zoom_preview_new()` | `gimp_zoom_preview_new_from_drawable()` |
|
||||
| `gimp_zoom_preview_new_from_drawable_id()` | `gimp_zoom_preview_new_from_drawable()` |
|
||||
| `gimp_zoom_preview_new_with_model()` | `gimp_zoom_preview_new_with_model_from_drawable()`|
|
||||
Loading…
Reference in a new issue