1. 07 Jan, 2021 1 commit
    • Uli Schlachter's avatar
      Slightly improve dealing with error snapshots · 66c99118
      Uli Schlachter authored
      An error in _cairo_surface_snapshot_copy_on_write() results in a
      snapshot in an error state and the snapshot's ->target could now point
      to a surface from _cairo_surface_create_in_error(). These surfaces e.g.
      have ->backend == NULL. Thus, anything looking at ->backend->type now
      explodes. This commit deals with two places which caused segfaults in
      this situation.
      There is no test case for this, because
      _cairo_surface_snapshot_copy_on_write() really is not supposed to fail.
      Found-while-investigating: cairo/cairo#448
      Signed-off-by: Uli Schlachter's avatarUli Schlachter <psychon@znc.in>
  2. 04 Jan, 2021 1 commit
  3. 27 Dec, 2020 1 commit
  4. 26 Dec, 2020 1 commit
  5. 07 May, 2018 1 commit
  6. 01 Oct, 2016 1 commit
  7. 03 Jul, 2016 1 commit
  8. 05 Jun, 2016 2 commits
  9. 11 Apr, 2016 1 commit
  10. 17 Oct, 2015 1 commit
  11. 26 Jun, 2015 1 commit
  12. 11 Sep, 2013 3 commits
    • Uli Schlachter's avatar
      recording: Correctly determine alpha of all surfaces · 279d5a2e
      Uli Schlachter authored
      This code has special cases for recording and image surfaces. For all other
      kinds of source surfaces, has_bilevel_alpha was not modified, even though the
      source surface could have an alpha channel.
      Fix this by using the same checks as in the general path at the end of this
      Signed-off-by: Uli Schlachter's avatarUli Schlachter <psychon@znc.in>
    • Uli Schlachter's avatar
      recording: Fix unitialized variable 'free_me' · a6f51fed
      Uli Schlachter authored
      This variable should be NULL by default and gets set only if a new reference to
      a surface was acquired through _cairo_surface_snapshot_get_target(). This works,
      because cairo_surface_destroy(NULL) is well-defined and doesn't do anything.
      Fixes the following compiler warning:
      cairo-recording-surface.c:1642:24: warning: 'free_me' may be used uninitialized
      in this function [-Wmaybe-uninitialized]
      Signed-off-by: Uli Schlachter's avatarUli Schlachter <psychon@znc.in>
    • Adrian Johnson's avatar
      pdf: avoid making groups a transparency group if not required · 8addb479
      Adrian Johnson authored
      If the group contains only a combination of clear and opaque alpha and
      only OPERATOR_OVER is used in the group and to paint the group, a
      transparency group is not required. This allows the pdf viewer to
      replay the group in place.
  13. 18 Jun, 2013 1 commit
  14. 11 Jun, 2013 1 commit
  15. 12 Feb, 2013 1 commit
  16. 03 Jan, 2013 1 commit
  17. 10 Nov, 2012 1 commit
    • teknos293's avatar
      recording: Append new elements to the end of the bbtree chain · 62b795fe
      teknos293 authored
      I have noticed that some of my objects were lost when drawing them on
      a recording surface and playing them back. Later elements with the same
      extents as a prior one tend to disappear from the chain of headers
      having similar extents. After doing some debugging, I found that they
      are not properly added to the bbtree during playback, and were instead
      clobbering the existing chain.
  18. 11 Oct, 2012 2 commits
  19. 03 Oct, 2012 1 commit
  20. 19 Apr, 2012 2 commits
  21. 29 Mar, 2012 2 commits
    • Andrea Canciani's avatar
      doc: Make doc ids more consistent my always putting ':' after them · 7f635e4e
      Andrea Canciani authored
      This makes the documentations comments more consistent and fixes many
      reports of 'invalid doc id'.
    • Andrea Canciani's avatar
      doc: Make documentation comments symmetric · f717341a
      Andrea Canciani authored
      Documentation comments should always start with "/**" and end with
      "**/". This is not required by gtk-doc, but it makes the
      documentations formatting more consistent and simplifies the checking
      of documentation comments.
      The following Python script tries to enforce this.
      from sys import argv
      from sre import search
      for filename in argv[1:]:
          in_doc = False
          lines = open(filename, "r").read().split("\n")
          for i in range(len(lines)):
              ls = lines[i].strip()
              if ls == "/**":
                  in_doc = True
              elif in_doc and ls == "*/":
                  lines[i] = " **/"
              if ls.endswith("*/"):
                  in_doc = False
          out = open(filename, "w")
      This fixes most 'documentation comment not closed with **/' warnings
      by check-doc-syntax.awk.
  22. 10 Mar, 2012 1 commit
  23. 24 Feb, 2012 3 commits
  24. 09 Feb, 2012 1 commit
  25. 12 Oct, 2011 3 commits
  26. 12 Sep, 2011 1 commit
    • Chris Wilson's avatar
      Introduce a new compositor architecture · af9fbd17
      Chris Wilson authored
      Having spent the last dev cycle looking at how we could specialize the
      compositors for various backends, we once again look for the
      commonalities in order to reduce the duplication. In part this is
      motivated by the idea that spans is a good interface for both the
      existent GL backend and pixman, and so they deserve a dedicated
      compositor. xcb/xlib target an identical rendering system and so they
      should be using the same compositor, and it should be possible to run
      that same compositor locally against pixman to generate reference tests.
      Signed-off-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
      P.S. This brings massive upheaval (read breakage) I've tried delaying in
      order to fix as many things as possible but now this one patch does far,
      far, far too much. Apologies in advance for breaking your favourite
      backend, but trust me in that the end result will be much better. :)
  27. 20 Aug, 2011 2 commits
  28. 14 Aug, 2011 2 commits