1. 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
      thread-safe.
      b6cb1d16
  2. 20 Nov, 2017 1 commit
  3. 24 Apr, 2016 1 commit
  4. 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.
      7e17a1e4
    • Michael Natterer's avatar
      libgimp: sytle cleanup in GimpTileBackendPlugin · 3e0891b8
      Michael Natterer authored
      and use gimp_drawable_get_format() instead our own utility function.
      3e0891b8
    • Ø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.
      ee97c1f4
    • Ø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
      get.
      4bdbff08