1. 19 Oct, 2018 4 commits
  2. 18 Oct, 2018 2 commits
  3. 17 Oct, 2018 2 commits
  4. 16 Oct, 2018 3 commits
  5. 12 Oct, 2018 1 commit
  6. 11 Oct, 2018 3 commits
    • Ell's avatar
      tools: fix performance-log viewer profile thread-filter · 43b492ff
      Ell authored
      In performance-log-viewer.py, fix thread-state toggling in the
      profile-view thread-filter popover, when not all threads are
      included in the current selection.
      43b492ff
    • Ell's avatar
      app: always use libunwind for symbol names in GimpBacktrace Linux backend · 72fc0174
      Ell authored
      In the GimpBacktrace Linux backend, always use libunwind, when
      available, to find symbol names, even if dladdr() or libbacktrace
      had already found one.  libunwind provides more descriptive names
      in certain cases, and, in particular, full symbol names for C++
      lambdas.
      
      Note that, in some cases, this can result in a discrepancy between
      the reported symbol name, and the corresponding source location.
      72fc0174
    • Ell's avatar
      app: fix gimp_wait() deadlock · 85b16b9e
      Ell authored
      In the GUI implementation of gimp_wait(), explicitly finish the
      input-pipe async operation after the busy-dialog plug-in
      terminates, to avoid the async callback function from being
      repeatedly called, stalling the main thread.  Previously, this code
      relied on gimp-parallel implicitly aborting the async operation,
      but this is no longer the case since commit
      4969d757.
      85b16b9e
  7. 10 Oct, 2018 4 commits
    • Ell's avatar
      tools: add performance-log-coalesce.py; use in performance-log-viewer · cb51ea98
      Ell authored
      Add a new performance-log-coalesce.py tool, which groups together
      performance-log address-map entries belonging to the same function
      into a single symbol, by filling-in missing base symbol addresses.
      The addresses are grouped such that each set of addresses
      corresponding to a symbol of the same name, in the same source
      file, are given the same (unique, but arbitrary) base address.
      See the previous commit for why this is necessary.
      
      This should work fine in most cases, however, for logs produced on
      Windows, it can over-coalesce addresses belonging to different C++
      lambda-functions in the same source file, since they all seem to be
      given the same _FUN symbol name.
      
      Use the new tool as part of the pipeline in performance-log-viewer.
      cb51ea98
    • Ell's avatar
      app: in GimpBacktrace Windows backend, avoid bogus symbol addresses · 52772cf3
      Ell authored
      In the GimpBacktrace Windows backend, avoid reporting meaningless
      symbol addresses when failing to retrieve meaningful ones.
      Unfortunately, it seems that we never get symbol addresses for
      symbols that have debug information, which negatively affects the
      log viewer's call graph.  We're going to have to work around this.
      52772cf3
    • Ell's avatar
      app: in GimpBacktrace Windows backend, set main-thread name · 52908f39
      Ell authored
      When initializing the GimpBacktrace Windows backend, set the name
      of the current thread (which is assumed to be the main thread) to
      the program's name, to match its name on Linux.  We normally rely
      on the SET_THREAD_NAME exception to set thread names on Windows,
      which isn't raised for the main thread.
      52908f39
    • Ell's avatar
      app: improve description comment of GimpAsync · ca6e4eb4
      Ell authored
      ca6e4eb4
  8. 09 Oct, 2018 2 commits
    • Ell's avatar
      Issue #2339 - Error while executing script-fu-ripply-anim · 5e6e979a
      Ell authored
      In ripply-anim.scm, correct the edge-type argument passed to
      plug-in-displace.
      5e6e979a
    • Ell's avatar
      app: allow progressive execution of parallel async operations · 4969d757
      Ell authored
      In the gimp_parallel_run_async() family of functions, allow the
      async callback to return without completing the async operation, in
      which case the callback will be called again, until the operation
      is either completed, or canceled, in which case it is aborted
      (previously, returning from the callback without completing the
      operation would cause it to be aborted.)  It is guaranteed that all
      operations of the same priority will get a chance to run, even if
      some of them contuinuosly return without completing.
      
      This allows potentially time-consuming operations to yield
      execution in favor of other same-priority operations, and, in
      particular, of higher-priority operations, to avoid priority
      inversion.  Essentially, this allows a simple form of cooperative
      multitasking among async operations.
      4969d757
  9. 08 Oct, 2018 3 commits
  10. 07 Oct, 2018 1 commit
    • Michael Natterer's avatar
      app: remove the image's "Enable Color Management" toggle · c399b894
      Michael Natterer authored
      It was not doing anything right since space invasion. We now treat the
      built-in sRGB profile like any other profile and never bypass
      conversions based on some weird toggle.
      
      Instead, introduce a "Use sRGB Profile" toggle which, when enabled,
      hides whatever profile away so the image actually uses the built-in
      sRGB profile.
      
      This is different from discarding and then re-assigning the same
      profile only by being faster and more convenient.
      c399b894
  11. 06 Oct, 2018 2 commits
  12. 05 Oct, 2018 3 commits
  13. 03 Oct, 2018 2 commits
    • Ell's avatar
      app: use "step" blending function in "FG to BG (Hardedge)" gradient · 84066ca2
      Ell authored
      Use a single segment with a "step" blending function, added in the
      previous commit, instead of two separate segments, for the "FG to
      BG (Hardedge)" internal gradient.  This makes it simpler to change
      its endpoint colors by modifying the gradient, instead of changing
      the FG/BG colors.
      84066ca2
    • Ell's avatar
      Issue #2303 - Please add Constant type of gradient interpolation ... · 68bf99e8
      Ell authored
      ... to make multi-color hard-edge gradient fills possible
      
      Add a new "step" gradient-segment blending function, which is 0
      before the midpoint, and 1 at, and after, the midpoint.  This
      creates a hard-edge transition between the two adjacent color stops
      at the midpoint.  Creating such a transition was already possible,
      but required duplicating the same color at the opposing ends of two
      adjacent stops, which is cumbersome.
      68bf99e8
  14. 02 Oct, 2018 4 commits
  15. 01 Oct, 2018 4 commits
    • ONO Yoshio's avatar
      plug-ins: fix a datasourcetype does not shown in metadata-editor. · 3c92b5e0
      ONO Yoshio authored
      Tag of DigitalSourceType has 5 entries, but the combobox shown
      only 4 items.
      3c92b5e0
    • Ell's avatar
      app: in gimp-parallel, cancel ongoing async operations upon exit · e46fdc71
      Ell authored
      When shutting-down gimp-parallel, cancel and/or abort any ongoing
      and queued async operations, instead of finishing them (async
      operations that already started executing will be canceled, but
      execution will be blocked until they're finished.)  This is
      especially important since we're shutting down gimp-parallel before
      the destruction of data factories.  This commit causes any ongoing
      async operations of the factories to be canceled on shutdown,
      rather than waiting for them to finish normally.
      e46fdc71
    • Ell's avatar
      app: add gimp_data_factory_data_cancel() · 6bc0b3b8
      Ell authored
      Add a new GimpData::data_cancel() virtual function, and a
      corresponding gimp_data_factory_data_cancel() function.  This
      function should cancel any ongoing async operations related to the
      factory (i.e., included in its async set), and wait for the
      operations to finish.  Provide a default implementation that simply
      cancels and waits on the factory's async set.
      
      Use this function to cancel any ongoing operations during factory
      destruction, and in gimp_data_factory_data_free().
      
      Override this function in GimpFontFactory, for which we can't
      really cancel font loading, and simply cancel and clear the
      factory's async set without waiting for loading to finish, making
      sure that nothing happens (and, in particular, that the factory
      isn't being accessed, since it might be already dead) when loading
      does finish.
      6bc0b3b8
    • Ell's avatar
      app: don't depend on GimpData sort order for identifying internal data · 50bab438
      Ell authored
      In gimp_data_factory_data_foreach(), don't rely on internal
      GimpData objects being sorted first (while this is currently true
      for all types of GimpData, they may override the sort order.)
      50bab438