1. 20 Sep, 2018 1 commit
  2. 14 Sep, 2018 3 commits
    • Bryce Harrington's avatar
      doc: Drop tmpl support · c1e37f4f
      Bryce Harrington authored
      Fix distcheck by dropping use of the now-obsolete gtkdoc-mktmpl.
      In preparation for the upcoming 1.16 release, I've made a few changes to
      get distcheck to pass.  I also updated it to run on Ubuntu 18.04, but
      found that on newer distros distcheck won't run due to missing
      gtkdoc-mktmpl, which has been deprecated upstream for some time.  The
      patch below disables everything that references it, and enables
      distcheck to finish successfully.
      Unfortunately, this probably regresses portions of our document
      generation, and thus will need some reimplementation work.  Anyone got
      time to investigate a better solution for this?
    • Bryce Harrington's avatar
      Normalize one more test image with minor gradient differences · ad7ac7db
      Bryce Harrington authored
      For me, with this fix, the base image test cases now pass 100%, when
        make test TARGETS=image FORMAT=rgba
      Signed-off-by: Bryce Harrington's avatarBryce Harrington <bryce@bryceharrington.org>
    • Bryce Harrington's avatar
      Normalize more test reference images with minor text rendering differences · 53e47753
      Bryce Harrington authored
      The discrepancies in these tests appear to all be font rendering /
      antialiasing, probably due to algorithmic changes in Pixman.
      Some of these reference images were updated in Federico's recent patch,
      so the fact that they differ on my system may indicate there may be some
      system dependencies beyond just pixman, that can cause test result
      variation from person to person.  Ideally, these would be isolated and
      the tests modified to not have such dependencies.
      Signed-off-by: Bryce Harrington's avatarBryce Harrington <bryce@bryceharrington.org>
  3. 06 Sep, 2018 6 commits
  4. 24 Aug, 2018 1 commit
  5. 17 Aug, 2018 3 commits
  6. 16 Jul, 2018 1 commit
  7. 16 Jun, 2018 1 commit
  8. 13 Jun, 2018 10 commits
  9. 01 Jun, 2018 5 commits
    • Alexandre Bique's avatar
      Fix test compilation when font-config is disabled · ccdb8e23
      Alexandre Bique authored
      Building cairo without font-config fails because test/font-variations.c
      was getting compiled without freetype2.
      Reviewed-by: default avatarBryce Harrington <bryce@osg.samsung.com>
    • Bryce Harrington's avatar
      win32: Copyedit recent comments · c6e12d33
      Bryce Harrington authored
    • Vasily Galkin's avatar
      win32: Allow GDI operations for argb32 surfaces (allowed by surface flags) · d4355ece
      Vasily Galkin authored
      This finishes a patch series to speed up CAIRO_OPERATOR_SOURCE when used
      to copy data to a argb32 cairo surface corresponding to a win32 dc from
      a "backbuffer" - DibSection-based cairo surface created with
      This final patch allows the GDI compositor to be used on argb32
      surfaces.  For display surfaces, only copying is allowed with gdi (by
      BitBlt), since other operations are filtered by flags in
      But since copying pixels is the only operation used in the most common
      scenario (prepare an offscreen image and send it to the screen) - this
      is important for presenting argb32 windows with Cairo directly or with
      gtk+gdk (which nowadays always creates argb32 windows).
      Before this patch pixel copy worked by:
      1. mapping image to memory (by copying data from window dc to system
         memory which is very slow on windows maybe due to gpu or interprocess
      2. copying new data over that image.
      3. copying updated image from system memory back to window dc.
      After this patch there is only one step:
      2+3. Copying new data over window dc.
      Completely eliminating step 1 gives a very huge speedup and allows
      argb32 cairo drawing be as fast as typical dibsection-buffered gdi
      There is quick & dirty cairo-vs-gdi perf test made for this patch set:
      See the Cairo mailing list for April 2018 for data and discussion of
      performance improvements.
      End-user visible speedup does present too - it relates to the following bug
      This Cairo speedup allows more simultaneous meld windows
      without eating 100% of cpu core time on spinner rendering.
    • Vasily Galkin's avatar
      win32: CAIRO_WIN32_SURFACE_CAN_RGB_BRUSH and other argb32 flags set+check · 0cb7aad2
      Vasily Galkin authored
      This belongs to a patch series that speeds up CAIRO_OPERATOR_SOURCE when
      used to copy data to an argb32 cairo surface corresponding to a win32 dc
      from a "backbuffer" - DibSection-based cairo surface created with
      This patch introduces checks to ensure that no solid brush GDI operations
      are attempted when using argb32 surfaces.  Doing this allows enabling
      usage of the GDI compositor when these surfaces are in use.
      To make these checks work, _cairo_win32_flags_for_dc disables
      STRETCHBLT, STRETCHDIB and RGB_BRUSH in the argb32 flag.
      _cairo_win32_flags_for_dc() is also refactored to make the distinction
      between rgb24 and argb32 more readable.  All logic & flags for rgb24
      surfaces are retained, except for the addition of
      The logic of forbidding AlphaBlend on display surfaces is also
      kept as is without investigation.
    • Vasily Galkin's avatar
      win32: Introduce new flag to mark surfaces that support solid brush drawing · 884275c3
      Vasily Galkin authored
      This is part of a patch series to speed up CAIRO_OPERATOR_SOURCE when
      used to copy data to an argb32 cairo surface corresponding to a win32 dc
      from a "backbuffer" - DibSection-based cairo surface created with
      This initial patch presents only private header changes without changing
      any implementation logic.
      The big problem with argb32 surfaces and GDI is that GDI is unable to
      correctly set the alpha channel when using operations other than BitBlt
      and AlphaBlend.
      To solve this, a CAIRO_WIN32_SURFACE_CAN_RGB_BRUSH flag is introduced in
      this commit to be mark surfaces that correctly handle such brushes
      - essentially all surface types except argb32.
      The _cairo_win32_flags_for_dc() call receives a new argument that is
      used to calculate the flag.
  10. 29 May, 2018 1 commit
  11. 07 May, 2018 2 commits
  12. 21 Apr, 2018 1 commit
  13. 12 Apr, 2018 1 commit
  14. 11 Apr, 2018 1 commit
  15. 03 Apr, 2018 3 commits
    • Bryce Harrington's avatar
      Disable skia from configure · 38806bc3
      Bryce Harrington authored
      Implement suggestion by Adrian Johnson to comment out skia in
      configure.ac to avoid presenting it as an option to users.  This was
      discussed on the Cairo mailing list in September 2017.
      Skia is not API stable and is not available in packaged+versioned forms,
      resulting in it being a continually moving target.  I.e. it's pretty
      much always unusably out of date.  The last update to the skia backend
      was in 2014, and had not been updated very regularly prior to that.
      We'll simply disable it for now.  If no one complains by the next Cairo
      snapshot release, we'll assume no one is needing it and will drop the
      code entirely.
      Meanwhile, if anyone does need it, it can be uncommented and used.
      (The changes to the win32 build config appear to be automatically
      generated as a result of disabling the feature in configure.  I'm
      committing them to avoid confusion.)
    • Bryce Harrington's avatar
    • Unknown's avatar
      Cairo trivial typos · 12cb59be
      Unknown authored
      Found using `codespell -q 3 -I cairo-whitelist.txt`
      whereby whitelist contained:
      Reviewed-by: default avatarBryce Harrington <bryce@osg.samsung.com>