1. 18 Sep, 2018 1 commit
    • Ell's avatar
      app, libgimp*, modules: don't use g_type_class_add_private() ... · 3b0040c0
      Ell authored
      g_type_class_add_private() and G_TYPE_INSTANCE_GET_PRIVATE() were
      deprecated in GLib 2.58.  Instead, use
      G_ADD_PRIVATE[_DYNAMIC](), and the implictly-defined
      foo_get_instance_private() functions, all of which are available in
      the GLib versions we depend on.
      This commit only covers types registered using one of the
      G_DEFINE_FOO() macros (i.e., most types), but not types with a
      custom registration function, of which we still have a few -- GLib
      currently only provides a (non-deprecated) public API for adding a
      private struct using the G_DEFINE_FOO() macros.
      Note that this commit was 99% auto-generated (because I'm not
      *that* crazy :), so if there are any style mismatches... we'll have
      to live with them for now.
  2. 19 Aug, 2018 2 commits
    • Ell's avatar
      libgimp: in GimpTileBackendPlugin, use gegl_tile_backend_command() · 668fee96
      Ell authored
      In the command handler of GimpTileBackendPlugin, forward unhandled
      commands to gegl_tile_backend_command(), instead of asserting that
      they're within range (which has already been disabled by commit
      bc3b076c).  See GEGL commit
    • Ell's avatar
      libgimp: disable tile command range check in plug-in tile backend · bc3b076c
      Ell authored
      In gimp_tile_backend_plugin_command(), disable the range check for
      the input tile command.  This check prevents us from adding new
      tile commands to GEGL without breaking the ABI; yet, the next GEGL
      release will add a new command.  We're going to have to decide what
      to do about this, but for now, let's just disable the check, so
      that at least GIMP 2.10.6 is compatible with newer versions of
      GEGL, no matter how we end up handling this.
      (cherry picked from commit 90ed3c8d)
  3. 11 Jul, 2018 1 commit
  4. 22 Nov, 2017 1 commit
    • Ell's avatar
      Bug 790631 - C plug-ins instability when processing gegl graphs ... · b6cb1d16
      Ell authored
      ... with several threads
      Commit d8ae5817 didn't go far
      enough in protecting GimpTileBackendPlugin against race conditions.
      The underlying GimpTile cache is shared across all drawables, so we
      must use a common lock for all instances of GimpTileBackendPlugin,
      instead of one per instance.
      Do just that -- replace the per-instance mutex of
      GimpTileBackendPlugin with a global one.  This makes
      GimpTileBackendPlugin instances thread-safe w.r.t. themselves, and
      w.r.t other GimpTileBackendPlugin instances.  However, we don't aim
      to make GimpTileBackendPlugin thread-safe w.r.t. other libgimp
      functions at this point, since the original API has never been
  5. 20 Nov, 2017 1 commit
  6. 24 Apr, 2016 1 commit
  7. 02 May, 2012 6 commits
    • Michael Natterer's avatar
      libgimp: deprecate the entire legacy pixel fiddling api · 7e17a1e4
      Michael Natterer authored
      which generates a gazillion warnings in plug-ins, a perfect guide
      where to do porting.
    • Michael Natterer's avatar
      libgimp: sytle cleanup in GimpTileBackendPlugin · 3e0891b8
      Michael Natterer authored
      and use gimp_drawable_get_format() instead our own utility function.
    • Øyvind "pippin" Kolås's avatar
      app: correct usage of babl formats · ee97c1f4
      Øyvind "pippin" Kolås authored
      GIMP was doing evil hacks lying to GEGL about it's pixels being in a linear
      color space when they are not. This causes incorrect rendering, makes gaussian
      blur misbehave etc.
      The legacy projection modes should be implemented using the same 2.2 gamma
      formats that are correct to specify for sRGB data. (for proper color
      management in higher bitdepths; icc backend babl formats should be used.)
      For the old image modes correct babl formats are:
      R'G'B'A u8  -  8 bit RGB with 2.2 gamma (sRGB) with linear alpha component
      R'G'B' u8   -  8 bit RGB with 2.2 gamma (sRGB)
      Y'A u8      -  8 bit Grayscale with 2.2 gamma with linear alpha component
      Y' u8       -  8 bit Grayscale with 2.2 gamma
      Y u8        -  8 bit linear data, used for masks/channels
      A u8        -  8 bit linear alpha
      RGBA float  -     32bit floating point linear light RGB
      RaGaBaA float  -  32bit floating point linear light RGB, premultiplied alpha
                        to be used for processing that needs to scale by the alpha,
                        (blurs, resampling etc)
      R'G'B'A float  -  32bit floating point sRGB with gamma, to be used where
                        the result depends on being closer to perceptual when
                        processing, can be used a cheaper alternative to CIE Lab
                        based modes.
      The legacy layer modes should use the formats with gamma 2.2 only for loading
      and rendering legacy XCF files correctly, in the brave new world compositing
      should most likely be done in linear light with "RGBA float" and even better
      "RaGaBaA float" like GEGL does for porter duff and other compositing modes.
      The ability to chose the legacy layer modes should probably be hidden from the
      user unless an old .xcf has been opened.
    • Øyvind "pippin" Kolås's avatar
    • Michael Natterer's avatar
    • Øyvind "pippin" Kolås's avatar
      libgimp: add a GeglBuffer backend for plug-ins · 4bdbff08
      Øyvind "pippin" Kolås authored
      Also added an API to get GeglBuffers for drawables, you choose whether you