Commit Graph

43806 Commits

Author SHA1 Message Date
Michael Natterer f6b60e08f2 plug-ins: port lighting from stock icons to using a resource
and icons names. Also fix two more warnings so it's now completely
undeprecated.
2019-07-20 17:23:54 +02:00
Michael Natterer 91f27dfc02 plug-ins: replace stock icons in gfig by a resource 2019-07-20 16:27:32 +02:00
Michael Natterer 05d552e634 libgimp: cleanup in GimpTileBackendPlugin 2019-07-20 02:43:58 +02:00
Michael Natterer ee79eb999f libgimpbase: minor cleanups while grepping for DEPRECATED 2019-07-20 02:40:49 +02:00
Michael Natterer b2f660ae43 app, pdb, libgimp: remove the "plug-in precision-enabled" API and logic
There is no old way of accessing pixels any longer, all plug-ins are
now precsion-enabled.
2019-07-20 01:53:31 +02:00
Michael Natterer 3811a65218 plug-ins: remove unused declaration of a GimpDrawable variable 2019-07-20 01:49:21 +02:00
Michael Natterer 3b17c750ec libgimp: use one memcpy() between gimp and gegl tiles if possible
Only use line-by-line copying if the tiles don't have the same size.
2019-07-20 01:33:04 +02:00
Michael Natterer 7ad25c17b5 libgimp: remove the tile_mul code from GimpTileBackendPlugin
Now that everything is GEGL, the tile size of core and plug-in should
always be the same.
2019-07-20 01:16:07 +02:00
Michael Natterer aafb55fa02 libgimp: remove GimpDrawable and GimpTile
The GimpDrawable abstraction is completely gone, GimpTile is now a
small struct in gimptilebackendplugin.c.

All tile handling code is now in GimpTileBackendPlugin, the backend
functions are simply calling gimp_tile_get() and gimp_tile_put()
directly.
2019-07-20 01:02:24 +02:00
Michael Natterer 6a59ccf840 libgimp: remove GimpTile from the public API, and kill the tile cache 2019-07-19 22:49:20 +02:00
Ell e22fcc8942 app: fix gradient dithering
In gimp:gradient, fix dithering to correspond to how we actually
round float values to 8-bit.  In particular, this avoids
introducing noise when a component is fixed at 0 or 1 along a
segment.
2019-07-19 21:49:57 +03:00
Michael Natterer 60554eaed9 libgimp: remove GimpPixelRgn, it's now completely unused, yay! 2019-07-19 19:08:31 +02:00
Michael Natterer 23f373e916 plug-ins: remove filter-pack without any replacement 2019-07-19 19:01:51 +02:00
Michael Natterer c46044534a libgimp: remove gimp_drawable_preview_draw_region()
It's deprecated and now unused.
2019-07-19 19:01:13 +02:00
Michael Natterer 3914e04722 plug-ins: port gimpressionist to GEGL, stupid 8-bit port only 2019-07-19 18:58:24 +02:00
Michael Natterer b7cf850671 plug-ins: remove the oilify plug-in and add a PDB compat procedure 2019-07-19 17:35:13 +02:00
Michael Natterer 3c73d42e97 plug-ins: port imagemap to GEGL 2019-07-19 17:20:58 +02:00
Michael Natterer 68afcf7001 libgimp: remove deprecated GimpPixelRgn functions which are now unused 2019-07-19 15:57:52 +02:00
Michael Natterer ed64fda6e5 app: add gegl:mean-curvature-blur to Filters -> Blur 2019-07-19 14:41:19 +02:00
Jehan 5fce763612 pdb: fix wrong default value on gimp-plug-in-emboss compat proc.
Commit eca4ca8c8c was fixing a generated
file. My bad!
2019-07-19 14:00:07 +02:00
Michael Natterer 3864e9c782 libgimp: remove gimp_tile_ref() and gimp_tile_unref() from the API
and make them private to libgimp ad _gimp_tile_ref(),unref()
2019-07-19 13:20:50 +02:00
Michael Natterer d944a7b9a4 plug-ins: port warp to GEGL, stupid 8-bit port only
And put it back in the menus, it's just too weird not to have.
2019-07-19 13:10:42 +02:00
Jehan eca4ca8c8c app: fix wrong default value on gimp-plug-in-emboss compat proc.
Fixes:
> GIMP-CRITICAL: gimp_param_spec_int32: assertion 'default_value >= minimum && default_value <= maximum' failed
2019-07-19 11:11:34 +02:00
Michael Natterer 8a51993e3f pdb, plug-ins: remove the emboss plug-in and add a PDB compat procedure
Not for 2.10 because it looks a bit different.
2019-07-18 15:05:48 +02:00
Michael Natterer 31fc338ab0 pdb, plug-ins: remove the newsprint plug-in and add a PDB compat procedure 2019-07-18 12:52:18 +02:00
Michael Natterer ce44b04005 app: improve gegl:newsprint's GUI a lot
Add some frames, a notebook for the channels and toggles to lock all
channels' properties together.
2019-07-18 02:10:24 +02:00
Michael Natterer d718da27a8 app: add gegl:newsprint to Filters -> Distorts
and add a custom GUI constructor that does nothing special (yet).
2019-07-17 18:24:33 +02:00
Jehan fb3007edef plug-ins: get rid of babl_format() in file-heif too. 2019-07-17 14:21:23 +02:00
Jehan 4f1ac48dd3 plug-ins: get rid of babl_format() in file-jpeg.
Same as previous commits.
2019-07-17 13:55:51 +02:00
Jehan 9d54d81a8c plug-ins: get rid of babl_format() in file-webp.
Same as commit 74abdfa377, this time for file-webp.
2019-07-17 13:55:19 +02:00
Jehan 03f645cd2d Issue #3070: CRITICAL when converting to Indexed image.
Revert the previous commit 786686a541 and comes up with a better fix.

Let's actually change the image base type and add its colormap as close
as possible without any GUI calls in-between. I also add an explicative
comment so that people are aware of this call proximity requirement to
avoid future problems when the code gets remixed.

It should be better than hacking around with exception in GUI code, and
should (hopefully) avoid other similar bugs.
2019-07-17 13:11:57 +02:00
Jehan 786686a541 Issue #3070: CRITICAL when converting to Indexed image.
Fixes the GIMP-CRITICAL:

> gimp_babl_format_get_trc: assertion 'format != NULL' failed".

During an indexed conversion, we are in a weird limbo state between the
time we changed the base-type to GIMP_INDEXED and when we actually set
the new palette. If during this time, we hit a context switch (which
typically happens during GUI code; in this specific cases, the various
progress updates would call gimp_widget_flush_expose() which does
trigger context switch), then gimp_display_shell_update_title_idle()
might be idly called. And when it does, it sees an indexed function with
neither format nor builtin profile.
2019-07-17 12:46:00 +02:00
Jehan 74abdfa377 plug-ins: improve a bit the space invasion code.
No need to call babl_format() to then use the encoding part only with
babl_format_get_encoding(). Just keep the encoding as constant string
and use it on babl_format_with_space() at the end.

This doesn't actually change the logics, but make code a bit simpler,
and also remove calls to babl_format(), which makes discovering non
space-invaded code with grep-s easier.
2019-07-17 12:46:00 +02:00
Michael Natterer 7cd78f436d plug-ins: port depth-merge to GEGL, stupid 8-bit port only 2019-07-17 12:18:50 +02:00
Michael Natterer d93e928703 app: fix crash in the newly added GimpDisplayShell render_cache code
Must initialize shell->render_buf_width,height before realize(), so
move the code to gimp_display_shell_init(), it doesn't depend on the
shell being realized.
2019-07-17 12:16:57 +02:00
Michael Natterer 4c1677078e plug-ins: port van-gogh-lic to GEGL
Special effects that nobody understands, now in floating point.
2019-07-17 01:03:48 +02:00
Michael Natterer c393eff089 app: use CAIRO_OPERATOR_SOURCE in gimp_display_shell_scroll()
to copy around the render cache when scrolling.
2019-07-17 00:18:00 +02:00
Michael Natterer 2061cc0077 app: fix gimp_display_shell_render() to draw alpha correctly
Drawing the image needs to replace the render cache's alpha, so draw
with CAIRO_OPERATOR_SOURCE.
2019-07-16 23:16:27 +02:00
Øyvind Kolås 85cf3630c2 app: make use of display_config->zoom_quality
When set to FAST we do nearest neighbor from the next bigger mipmap
level instead of linear or box filtering - this gives a slight and
permanent boost to painting, and all updates, having one that combines
best of both worlds and reblits in high quality after a timeout would
be even more desirable.
2019-07-16 19:03:06 +02:00
Michael Natterer 0ce73236b0 app: add a "Zoom Quality" control to preferences -> display 2019-07-16 18:50:21 +02:00
Michael Natterer 9aa6aa1f04 app: make display update much faster again
Introduce a render cache that keeps the result of scaling, color
management, display filters and shell mask (for tools like fuzzy
select).

Change gimpdisplayshell-render.[ch] to only render to the cache and
manage a cairo region of the cache's valid area. Call cache
invalidation functions form various places. Change the API of all
render functions to be in display coordinates.

Also get rid of gimpdisplayxfer.[ch] because we now have a
canvas-sized cairo surface which is a surface similar to the
destination surface.
2019-07-16 17:15:34 +02:00
Michael Natterer fd9b6ab834 plug-ins: remove the colorify plug-in without any replacement
The colorize tool does something far more reasonable.
2019-07-15 12:33:50 +02:00
Michael Natterer 9d33a9a9ca plug-ins: port animation-optimize to GEGL, stupid 8-bit port only 2019-07-15 12:24:24 +02:00
Michael Natterer acea533a9a plug-ins: remove the sharpen plug-in without replacement 2019-07-15 00:39:01 +02:00
Michael Natterer 496b5ab9b4 plug-ins: remove color-cube-analyze without replacement
because WTF do we need a histogram plug-in for?
2019-07-14 23:45:57 +02:00
Michael Natterer 4074cec138 plug-ins: remove the blur plug-in without replacement
because.
2019-07-14 23:31:58 +02:00
Michael Natterer dd89f4a3d5 plug-ins: remove the max-rgb plug-in without replacement
To quote the author (from a comment): "After adding preview mode
realised just exactly how useless this plugin is"
2019-07-14 23:08:12 +02:00
Michael Natterer 2ead56096d plug-ins, pdb: remove the softglow plug-in and add a PDB compat procedure
Not for 2.10 because the GEGL op's result looks different. I have no
clue how softglow is supposed to look at all, but the removed plug-in
did things that can't possibly be done with physical light in a
darkroom, so chances are the GEGL op is more correct.
2019-07-14 21:34:27 +02:00
Michael Natterer a0ae31d337 plug-ins, pdb: remove the edge-dog plug-in and add a PDB compat procedure
This is not for 2.10 because the result of the GEGL op looks different,
but without doubt more correct.
2019-07-14 20:09:11 +02:00
Piotr Drąg 798d5571e1 Update Polish translation 2019-07-14 16:19:03 +02:00