Skip to content
  1. Oct 27, 2024
  2. Oct 21, 2024
  3. Oct 14, 2024
  4. Oct 12, 2024
    • Jehan's avatar
      extensions: add direct conversions from "R'G'B'A" to/from "HSL". · 90da2560
      Jehan authored
      On commonly-sized images, the HSL conversions went from near instant to
      "seeing-the-tiles-slowly-updating" after we switched some GIMP code to
      babl conversion.
      
      This is because the code is actually made to work in gamma 2.2 and the
      only conversion was from and to linear RGB. So when converting
      non-linear RGB, we were making far too many conversions. Let's have
      faster conversion paths.
      90da2560
    • Jehan's avatar
      bin: add ability to select one of the known spaces by name in CLI tool. · 8f0c5d63
      Jehan authored
      --input-profile and --output-profile options are replaced respectively
      by --input-space and --output-space (but the old option names still work
      for scripts compatibility).
      
      They can still be used to specify an ICC file like we used to, but
      additionally if you start with '*', you can select one of the known
      spaces, such as sRGB, Rec2020, etc.
      
      In the weird case that you wanted to select a profile in a path starting
      with '*' (it's not a forbidden character by the file system even though
      usually used for glob file selection), you can protect the initial
      character with a double asterisk '**'.
      8f0c5d63
  5. Oct 01, 2024
    • Jacob Boerema's avatar
      Fix crash in AVX2 codepath when NAN is encountered · 622c0f10
      Jacob Boerema authored
      When building using clang and AVX2 is available on a users's computer
      running GIMP, then we get a crash when showing a 32-bit float image that
      includes NAN values.
      See e.g. GIMP issue gimp#11453
      
      Apparently clang handles NAN in a different way than gcc and needs
      testing for NAN before doing a comparison on the value.
      So we add a test for isnan first and adjust the other conditions
      accordingly.
      622c0f10
  6. Sep 21, 2024
  7. Sep 16, 2024
    • Jehan's avatar
      extensions: always use the SSE2 codepath when the processor has support. · c5c626a1
      Jehan authored
      rgbaf_to_Labaf_sse2() was falling back to the non-SSE2 algorithm when
      input and output were not 16-byte-aligned. Additionally to missing some
      good optimization, the slightly different implementation makes for
      creating opportunities for artifact-looking results when a single canvas
      is broken into smaller parts, some of which may be processed with one
      implementation, others with the other implementation.
      
      See:
      gimp#12030
      gimp#2933
      c5c626a1
  8. Sep 13, 2024
    • Jehan's avatar
      Issue #101: "RGBA float" to "CIE Lab alpha float" fish with SSE2… · faf05be7
      Jehan authored
      … codepath give different results than without SSE2.
      
      The slightly different result is expected and the SSE2 code does not
      seem bugged at all. The problem though is that in a single babl_process,
      we end up with different results, which may be amplified by further
      algorithm into surprising renders (cf. gimp#12030).
      With this commit, we ensure than when using the SSE2 codepath, we do not
      end processing the last few pixels with different code.
      faf05be7
  9. Aug 19, 2024
  10. Aug 17, 2024
  11. Jun 14, 2024
  12. May 24, 2024
    • Bruno's avatar
      Partly reverts 2dc17bed · f94650f4
      Bruno authored
      The detailed reasons can be read in first commit from gimp!1578
      In short, that was breaking DWARF generation with no benefit right now.
      f94650f4
  13. May 04, 2024
    • Biswapriyo Nath's avatar
      build: Fix linking error in Android · 309e59e5
      Biswapriyo Nath authored and Øyvind "pippin" Kolås's avatar Øyvind "pippin" Kolås committed
      This fixes the following linker errors.
      
      ld.lld: error: undefined symbol: __android_log_print
      referenced by babl-internal.h:134 (../babl/babl-internal.h:134)
                    babl/libbabl-0.1.so.0.208.1.p/babl-component.c.o:(babl_fatal)
      referenced by babl-internal.h:142 (../babl/babl-internal.h:142)
                    babl/libbabl-0.1.so.0.208.1.p/babl-component.c.o:(babl_fatal)
      referenced by babl-internal.h:134 (../babl/babl-internal.h:134)
                    babl/libbabl-0.1.so.0.208.1.p/babl-component.c.o:(babl_log)
      309e59e5
  14. Apr 11, 2024
  15. Mar 25, 2024
  16. Feb 11, 2024
    • Jehan's avatar
      extensions: component "alpha" should be registered with "alpha" attribute. · a28309ca
      Jehan authored
      Though the models may itself be registered with a similarly named
      attribute to mean they encode alpha, babl_format_has_alpha() in
      particular works by verifying if any of the components
      represents/encodes alpha. As a consequence, the function was failing to
      consider e.g. HSVA as a model encoding alpha.
      a28309ca
  17. Feb 09, 2024
  18. Jan 16, 2024
  19. Nov 27, 2023
  20. Nov 15, 2023
    • Jehan's avatar
      bin: add "double" support to the CLI tool. · bf6daf84
      Jehan authored
      Again, even though it's basically the same as float or half for a CLI
      tool (where all these floating point values are just converted from
      string representation), it is still interesting since the tool is doing
      actual conversion with a fish using the requested formats. Therefore
      it's a nice way to quickly test conversions in terminal.
      bf6daf84
    • Jehan's avatar
      babl, babl: new babl-shared-util.[ch] for functions shared between CLI and lib. · 385390f9
      Jehan authored
      While apparently fixing the compilation for Windows (and still compiling
      on Linux), my previous commit was in fact crashing the CLI tool when it
      runs babl_init() in some infinite loop (it looks like it's crashing
      inside babl logging code, hence the infinite looping).
      
      Anyway this was annoying me that we had to build-in more than necessary
      from babl-internal when all I wanted was to share 2 functions. So I
      split babl-util with a new babl-shared-util. The latter is to be used
      only for the few utility functions which we might want to share with the
      CLI tool (so far, only the 2 half to/from float (en|de)coders).
      
      This time, I've not only compiled but also run the CLI tool both on
      Linux and with Wine for the Windows cross-build.
      385390f9
  21. Nov 14, 2023
    • Jehan's avatar
      bin: fix linking for cross-compiled Windows build. · 2b1ce9d6
      Jehan authored
      While I didn't have a problem for Linux builds, when cross-compiling for
      Windows, these errors occur:
      
      > babl-util.c:296: undefined reference to `babl_strcat'
      
      (and a few similar other "undefined reference" as this one gets fixed)
      
      This is because we include babl-internal.h in bin/babl.c but don't add
      the right compilation unit sources. The build was still finding them (or
      maybe ignoring them as the functions were unused in the babl CLI tool
      code) on Linux, but not on Windows.
      2b1ce9d6
  22. Nov 12, 2023
    • Jehan's avatar
      babl, bin: support "half" type in the babl CLI tool. · 0fb83c73
      Jehan authored
      The code to encode half values into and from float values was moved from
      type-half.c to babl-util.h as an internal function, to make it usable by
      the CLI code.
      
      It may not seem totally useful to have half support since anyway we
      convert from/to string for the CLI tool (in this regard, half and float
      are the same). But since the tool performs an actual babl conversion,
      it's actually a good way to test quickly that half conversion works
      properly too.
      0fb83c73
  23. Oct 27, 2023
  24. Oct 04, 2023
    • Jehan's avatar
      babl: new babl_space_is_rgb(). · c35674a0
      Jehan authored
      Similar to babl_space_is_cmyk|gray() functions, because right now to
      know whether a space is RGB, we have to test whether it's **not** any of
      the other. And such code would break as soon as we will add new values
      to BablICCType.
      c35674a0
  25. Aug 12, 2023
  26. Jul 25, 2023
  27. May 16, 2023
Loading