1. 04 Apr, 2018 11 commits
    • Ell's avatar
      app: switch gimpbrush-transform.c to C++ · 565f1f2a
      Ell authored
      The next commit is going to parallelize gimpbrush-transform using
      the gimp_parallel_distribute_foo() functions.  To spare us a lot of
      boilerplate code, we're going to use C++ lambdas as callback
      arguments to these functions.
      This commit does the initial conversion of gimpbrush-transform.c to
      C++, renaming it to gimpbrush-transform.cc.  We do this in a
      separate commit, so that the changes are small enough for git to
      register this as a renamed file, rather than a new file, so that we
      don't lose the file's history.
    • Ell's avatar
      app: add gimp-parallel · 86b89cf6
      Ell authored
      Add gimp-parallel.[cc,h], which provides a set of parallel
      These currently include:
        - gimp_parallel_distribute():  Calls a callback function in
          parallel on multiple threads, passing it the current thread
          index, and the total number of threads.  Allows specifying the
          maximal number of threads used.
        - gimp_parallel_distribute_range():  Splits a range of integers
          between multiple threads, passing the sub-range to a callback
          function.  Allows specifying the minimal sub-range size.
        - gimp_parallel_distribute_area():  Splits a rectangular area
          between multiple threads, passing the sub-area to a callback
          function.  Allows specifying the minimal sub-area.
      The callback function is passed using an appropriately-typed
      function pointer, and a user-data pointer.  Additionally, when used
      in a C++ file, each of the above functions has an overloaded
      template version, taking the callback through a generic parameter,
      without a user-data pointer, which allows using function objects.
    • Ell's avatar
      configure.ac: require a C++11 compiler · 700cc33b
      Ell authored
      The following commits use C++11 lambdas.
    • Ell's avatar
    • Jehan's avatar
      libgimp: add an exception handler for Windows. · fa02a2c6
      Jehan authored
      Drmingw already added its own exception handler which generates crash
      traces in a text file, for plug-ins as well. This additional handler is
      run after Drmingw handler and allows us to do things on our own, and in
      particular we could display the content of the debug traces.
      Right now it simply prints these to stderr, which actually won't be of
      much use on Win32, first because the console is deactivated on stable
      releases, also because after tests, it doesn't look like even running
      GIMP from cmd outputs to console either.
      We currently don't use the same debug dialog as the core on purpose,
      because we don't want everyone to send us traces for every unmaintained
      third party plug-ins out there. But we should definitely allow easier
      trace possibilities at some point, first to improve/debug our own core
      plug-ins, and also to help third party plug-in developers!
      So this commit is not making visible changes yet but is actually a first
      step towards these debugging goals.
    • Jehan's avatar
      libgimp: various warning fixes for Win32. · 76bce77d
      Jehan authored
    • Jehan's avatar
      libgimp: do not end the fatal and signal handlers with gimp_quit(). · 9c8a8ae5
      Jehan authored
      When ending with gimp_quit(), GIMP was not displaying the "Plug-in
      crashed" error dialog, which is not good, since we lose the crash
      feedback for plug-ins. Just let the plug-in continue its normal run in
      order to get the error dialog.
      Also protect the tracing functions, which are not working on Win32.
    • Jehan's avatar
      libgimp: add a gimp_fatal_func() allowing stack tracing plug-ins on... · e98b9376
      Jehan authored
      ... various crashes.
    • Jehan's avatar
      devel-docs: update debugging-tips.txt regarding --stack-trace-mode... · 6bcb30e1
      Jehan authored
      ... for plug-in debugging as well.
    • Jehan's avatar
      libgimp: properly catch SIGABRT signal. · c4621119
      Jehan authored
      SIGABRT was in the switch list in gimp_plugin_sigfatal_handler(), but it
      had not been properly handled with gimp_signal_private(), making this
      switch case useless. Fix this oversight, and while doing so, move it in
      the "fatal error" list for which we may generate stack traces, similarly
      to core signal handling. Indeed this signal can definitely happen during
      various kinds of common bugs and needs to be debugged.
    • Jehan's avatar
      plug-ins: minor fix of an error string. · 6936a655
      Jehan authored
      Was reading this part of the code when I saw this: the error happens
      when loading not exporting a PNG.
  2. 03 Apr, 2018 6 commits
  3. 02 Apr, 2018 11 commits
  4. 01 Apr, 2018 12 commits