1. 21 Jul, 2021 1 commit
    • Oliver Sander's avatar
      Use additional samples to test for constant parts of an axial gradient · c97d3153
      Oliver Sander authored
      The method doAxialShFill does adaptive sampling of gradients.
      If the gradient color is found to be the same at two consecutive
      sampling locations then the gradient is concluded to be constant
      between the two locations.
      
      Of course, this conclusion may be wrong; one instance of this
      happening is
      
        poppler/poppler#938
      
      This patch fixes rendering of the test file in issue 938 by doing
      one more sampling when a part of the gradient is suspected to be
      constant.  Of course it is easily possible to create gradients
      also misrender with the additional sampling point.  Should such
      gradients ever appear in actual non-synthetic documents the code
      can now easily handle yet more sample points.
      
      Fixes: poppler/poppler#938
      c97d3153
  2. 28 Mar, 2021 2 commits
  3. 20 Feb, 2021 1 commit
  4. 07 Feb, 2021 1 commit
  5. 15 Jan, 2021 2 commits
  6. 09 Jan, 2021 1 commit
  7. 02 Jan, 2021 1 commit
  8. 26 Dec, 2020 1 commit
  9. 08 Dec, 2020 1 commit
  10. 24 Nov, 2020 1 commit
  11. 22 Aug, 2020 1 commit
  12. 16 Jul, 2020 2 commits
  13. 03 Jul, 2020 1 commit
    • Albert Astals Cid's avatar
      Run clang-format · 814fbda2
      Albert Astals Cid authored
      find . \( -name "*.cpp" -or -name "*.h"  -or -name "*.c"  -or -name "*.cc" \) -exec clang-format -i {} \;
      
      If you reached this file doing a git blame, please see README.contributors (instructions added 2 commits in the future to this one)
      814fbda2
  14. 02 Jun, 2020 1 commit
    • Philipp Knechtges's avatar
      cleanup displayprofile initialization · b2141b89
      Philipp Knechtges authored
      There were a bunch of global variables that were used to initilize the first version
      of the display profiles. This code was removed, and all the static initilization was moved
      from GfxColorSpace to GfxState. Furthermore, for most "users" the setting of the
      display profile was moved from the static GfxColorSpace::setDisplayProfile function
      to the OutputDev class. The latter is now invoked early in the initilization of Gfx
      to set the initial state in the GfxState instance.
      b2141b89
  15. 23 May, 2020 2 commits
  16. 02 May, 2020 1 commit
    • Oliver Sander's avatar
      Allow almost-singular tiling pattern matrices · 2c17c9ed
      Oliver Sander authored
      Issue poppler/poppler#894
      sports a file with a diagonal tiling pattern matrices with
      diagonal entries in the range of 5e-4.  While entries of this
      size are unusual but okay, the determinant is below the rather
      arbitrary threshold of 1e-6.  Therefore, poppler decided that
      the matrix is singular and aborts the rendering.
      
      Fix this by really only aborting if inverting the determinant
      (which is the first thing that is being done with it) results
      in a non-finite number.
      
      As a side effect the code now also allows pattern matrices
      with a negative determinant.  This does not seem to appear
      in the wild all that often, but I didn't find anything
      in the spec that rules it out.
      
      BUG: poppler/poppler#894
      2c17c9ed
  17. 05 Jan, 2020 1 commit
  18. 02 Dec, 2019 1 commit
  19. 29 Nov, 2019 1 commit
  20. 23 Nov, 2019 1 commit
  21. 30 Oct, 2019 1 commit
    • Albert Astals Cid's avatar
      Introduce Object::getNumWithDefaultValue · 647274f1
      Albert Astals Cid authored and Albert Astals Cid's avatar Albert Astals Cid committed
      Is like getNum but instead of asserting if Object is not a num it
      returns the given default value
      
      I find it much easier to read
          rect->x1 = obj1.arrayGet(0).getNumWithDefaultValue(0);
      than
          (obj2 = obj1.arrayGet(0), obj2.isNum() ? rect->x1 = obj2.getNum() : rect->x1 = 0);
      
      On top of it has the benefit of being slightly faster
      647274f1
  22. 20 Oct, 2019 1 commit
  23. 29 Sep, 2019 2 commits
  24. 18 Jul, 2019 1 commit
  25. 15 May, 2019 1 commit
    • Oliver Sander's avatar
      Call updateCTM with the identity matrix instead of all zeros · 04777072
      Oliver Sander authored and Albert Astals Cid's avatar Albert Astals Cid committed
      The method Gfx::doShowText calls out->updateCTM once with the all-zero
      matrix.  This was apparently implemented with the Splash output device
      in mind: SplashOutputDev::updateCTM ignores its parameters, and
      therefore calling it with a zero matrix is okay.  For other output
      devices calling updateCTM with a zero matrix multiplies the CTM
      with zero, which breaks further rendering.  See
      
        poppler/poppler#206
      
      for an example.
      
      This patch changes the argument to updateCTM in doShowText
      from the zero matrix to an identity matrix.  That way, the CTM
      is unchanged no matter how the output device implements its
      updateCTM method.
      04777072
  26. 25 Apr, 2019 2 commits
  27. 31 Mar, 2019 3 commits
  28. 28 Feb, 2019 1 commit
  29. 27 Feb, 2019 2 commits
  30. 10 Feb, 2019 1 commit
  31. 22 Dec, 2018 1 commit