1. 30 Apr, 2010 2 commits
  2. 28 Apr, 2010 2 commits
  3. 27 Apr, 2010 2 commits
  4. 15 Apr, 2010 1 commit
  5. 24 Mar, 2010 1 commit
  6. 22 Mar, 2010 1 commit
  7. 22 Jan, 2010 2 commits
    • Chris Wilson's avatar
      Add cairo_device_t · f617d5fc
      Chris Wilson authored
      The device is a generic method for accessing the underlying interface
      with the native graphics subsystem, typically the X connection or
      perhaps the GL context. By exposing a cairo_device_t on a surface and
      its various methods we enable finer control over interoperability with
      external interactions of the device by applications. The use case in
      mind is, for example, a multi-threaded gstreamer which needs to serialise
      its own direct access to the device along with Cairo's across many
      threads.
      
      Secondly, the cairo_device_t is a unifying API for the mismash of
      backend specific methods for controlling creation of surfaces with
      explicit devices and a convenient hook for debugging and introspection.
      
      The principal components of the API are the memory management of:
      
        cairo_device_reference(),
        cairo_device_finish() and
        cairo_device_destroy();
      
      along with a pair of routines for serialising interaction:
      
        cairo_device_acquire() and
        cairo_device_release()
      
      and a method to flush any outstanding accesses:
      
        cairo_device_flush().
      
      The device for a particular surface may be retrieved using:
      
        cairo_surface_get_device().
      
      The device returned is owned by the surface.
      f617d5fc
    • Chris Wilson's avatar
      Real zero-copy cow snapshotting · 934d0d0d
      Chris Wilson authored
      The first iteration of COW snapshotting always made an initial copy when
      the snapshot was requested (and reused that copy until the surface was
      modified). However, in a few circumstances we can avoid even that copy
      so long as the surface is still alive and unmodified between the
      snapshotting and its use. In order to do so, we need a new proxy surface
      that can automatically perform the copy if the target should disappear
      prior to use.
      934d0d0d