1. 16 Jan, 2019 1 commit
  2. 15 Jan, 2019 1 commit
  3. 08 Jan, 2019 1 commit
    • Keith Packard's avatar
      composite: 0.5. Window scaling and events · 106cc9bc
      Keith Packard authored
      
      
      Output scaling:
      
       * Changes to mivaltree to reset window clip to owner window size
         instead of server window size when compositing
      
       * Allocate owner window size pixmap for composite pixmap
      
       * Paint scaled image for automatic compositing
      
       * Report owner window size in events to the window owner.
      
       * Scale exposure damage in compSetRedirectBorderClip from
         current size to owner size to make sure the correct parts of
         the window are repainted.
      
      Input scaling:
      
       * Change miSpriteTrace to scale cursor coordinates when transiting an
         owner-sized window. Do all computations in double to handle
         multiple such transitions without losing bits
      
       * Add ScaleRootCoordinate in events.c. This function takes a window
         and a root x/y and walks up the tree scaling each time there is an
         owner size set.
      
       * Use ScaleRootCoordinate in FixUpEventFromWindow.
      
       * Wrap event delivery in DeliverEvent in new
         SaveEventRootCoord/RestoreEventRootCoord functions so that
         different windows receiving the same event will all receive the
         correct coordinates.
      
      Composite events:
      
       * Deliver CompositePixmapNotify events from compSetPixmapVisitWindow
         so that applications will be notified each time the pixmap changes.
      
       * Deliver CompositeOwnerWindowSizeNotify events when owner window
         size is set.
      Signed-off-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
      106cc9bc
  4. 03 Oct, 2018 1 commit
    • Pierre Ossman (Work account)'s avatar
      Switch automatic composite update to WorkQueue · 1bd5d0a5
      Pierre Ossman (Work account) authored
      It is currently (ab)using the screen BlockHandler callback to do
      this. But this can cause problems with other extension as their
      block handlers might have executed before Composite's. And the
      operations Composite does might result in them wanting to change
      timeouts.
      
      Practically this caused problems for TigerVNC's VNC extension which
      failed to send out updates for Composite's screen updates.
      1bd5d0a5
  5. 24 Jan, 2018 1 commit
  6. 07 Dec, 2016 1 commit
    • Adam Jackson's avatar
      composite: Fix repaint of borders (v2) · f3187551
      Adam Jackson authored
      When going from border width zero to a non-zero border width, the
      Composite extension is informed via the ConfigNotify callback. The
      call-chain looks like this: compConfigNotify -> compReallocPixmap ->
      compSetPixmap -> TraverseTree -> compSetPixmapVisitWindow. However, at
      this time, pWindow->borderWidth was not yet updated. Thus, HasBorder()
      is false and the window border will not be repainted.
      
      To fix this, thread the new bw through to the window visitor, and
      inspect that rather than HasBorder(). For the other callers of
      compSetPixmap the border does not change size, so we can pass
      pWin->borderWidth instead.
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98499
      
      Signed-off-by: Adam Jackson's avatarAdam Jackson <ajax@redhat.com>
      Reviewed-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
      f3187551
  7. 12 Nov, 2014 1 commit
  8. 28 Oct, 2014 1 commit
  9. 01 Apr, 2014 1 commit
    • Kristian Høgsberg's avatar
      composite: Add exception mechanism for implicit redirection policy · 4ba7b594
      Kristian Høgsberg authored
      
      
      Normally composite will decide to add implicit redirection when a
      window with an alternate visual is a parent of a window with a regular
      visual or vice versa.  This uses extra pixmap memory and incurs an extra
      copy.  This exception mechanism provides a way for a DDX to override this
      if the DDX knows that its acceleration architecture will render correctly.
      
      The relevant case is that of an RGB window reparented into a ARGB parent
      frame window.  If the DDX knows that the acceleration architecture in use
      will pad the alpha channel to opaque when rendering to the RGB window,
      the implicit redirection can be avoided.
      
      This patch adds a new composite function:
      
        CompositeRegisterImplicitRedirectionException()
      
      which lets a DDX register a pair of parent and child window visuals, that
      will not be implicitly redirected even if the normal policy would have
      made that choice.
      Signed-off-by: Kristian H. Kristensen's avatarKristian Høgsberg <krh@bitplanet.net>
      Reviewed-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
      4ba7b594
  10. 12 Jan, 2014 1 commit
  11. 10 Jul, 2012 1 commit
  12. 28 Jun, 2012 1 commit
  13. 19 Apr, 2012 1 commit
  14. 21 Mar, 2012 1 commit
    • Keith Packard's avatar
      Introduce a consistent coding style · 9838b703
      Keith Packard authored
      This is strictly the application of the script 'x-indent-all.sh'
      from util/modular. Compared to the patch that Daniel posted in
      January, I've added a few indent flags:
      
      	-bap
      	-psl
      	-T PrivatePtr
      	-T pmWait
      	-T _XFUNCPROTOBEGIN
      	-T _XFUNCPROTOEND
      	-T _X_EXPORT
      
      The typedefs were needed to make the output of sdksyms.sh match the
      previous output, otherwise, the code is formatted badly enough that
      sdksyms.sh generates incorrect output.
      
      The generated code was compared with the previous version and found to
      be essentially identical -- "assert" line numbers and BUILD_TIME were
      the only differences found.
      
      The comparison was done with this script:
      
      dir1=$1
      dir2=$2
      
      for dir in $dir1 $dir2; do
      	(cd $dir && find . -name '*.o' | while read file; do
      		dir=`dirname $file`
      		base=`basename $file .o`
      		dump=$dir/$base.dump
      		objdump -d $file > $dump
      	done)
      done
      
      find $dir1 -name '*.dump' | while read dump; do
      	otherdump=`echo $dump | sed "s;$dir1;$dir2;"`
      	diff -u $dump $otherdump
      do...
      9838b703
  15. 04 May, 2011 1 commit
  16. 05 Jan, 2011 3 commits
  17. 31 Dec, 2010 1 commit
  18. 07 Dec, 2010 1 commit
  19. 30 Nov, 2010 1 commit
  20. 22 Jun, 2010 1 commit
  21. 06 Jun, 2010 1 commit
  22. 04 Jun, 2010 1 commit
    • Dave Airlie's avatar
      composite: use config notify hook to do pixmap resize. · 959a1eaf
      Dave Airlie authored
      
      
      Since reallocating the backing pixmap can fail, we need to try and do
      it before any other side effects of reconfiguring the window happen.
      
      This changes the ConfigNotify hook to return status, and moves the
      composite window reconfiguration wrappers to ConfigNotify. They all
      basically did the same thing, so we can drop the MoveWindow,
      ResizeWindow, ChangeBorderWidth wrappers, and allow ConfigNotify to do
      all the work. If reallocation fails we fail before we send any
      confiureNotify events, or enter the area we can't recover from.
      
      The only place we now enforce 32k limits are in EXA/UXA/fb, so drivers
      that don't use this should probably deal with it in their pixmap
      allocate if they don't already.
      
      This also breaks ABI, so we need an alternate fix for older servers,
      working on the X server makes me realise why I'm a kernel hacker.
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      Reviewed-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
      Signed-off-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
      959a1eaf
  23. 17 Dec, 2009 1 commit
  24. 15 May, 2009 1 commit
  25. 27 Apr, 2009 1 commit
  26. 05 May, 2008 1 commit
  27. 13 Sep, 2007 1 commit
    • Emma Anholt's avatar
      Remove the PaintWindow optimization. · e4d11e58
      Emma Anholt authored
      This was an attempt to avoid scratch gc creation and validation for paintwin
      because that was expensive.  This is not the case in current servers, and the
      danger of failure to implement it correctly (as seen in all previous
      implementations) is high enough to justify removing it.  No performance
      difference detected with x11perf -create -move -resize -circulate on Xvfb.
      Leave the screen hooks for PaintWindow* in for now to avoid ABI change.
      e4d11e58
  28. 02 Sep, 2007 1 commit
  29. 28 Aug, 2007 1 commit
  30. 25 Aug, 2007 1 commit
    • Adam Jackson's avatar
      Implement core protocol backing store exclusively in terms of Composite. · ae7f71a8
      Adam Jackson authored
      Composite's automatic redirection is a more general mechanism than the
      ad-hoc BS machinery, so it's much prettier to implement the one in terms
      of the other.  Composite now wraps ChangeWindowAttributes and activates
      automatic redirection for windows with backing store requested.  The old
      backing store infrastructure is completely gutted: ABI-visible structures
      retain the function pointers, but they never get called, and all the
      open-coded conditionals throughout the DIX layer to implement BS are gone.
      
      Note that this is still not a strictly complete implementation of backing
      store, since Composite will throw the bits away on unmap and therefore
      WhenMapped and Always hints are equivalent.
      ae7f71a8
  31. 29 Jun, 2007 1 commit
  32. 25 Mar, 2007 1 commit
  33. 09 Aug, 2006 1 commit
  34. 13 Mar, 2006 1 commit
  35. 03 Jul, 2005 2 commits
  36. 01 Jul, 2005 1 commit
  37. 15 Aug, 2004 1 commit