This rolls up the following commits and also keeps the image_from_pict
API compatiblity. It introduces a new image_from_pict_18 API that is
used by the server leaving the old API alone.
I've rolled this up as I don't want to introduce ABI breaks in bisection.
a72c65e917 fb: Adjust transform or composite coordinates for pixman operations
bd567061c8 Split fbGetDrawable into fbGetDrawablePixmap and fbGetPixmapBitsData
6133505297 Revert "Fix clipping when windows are used as sources"
071b3c1810 Revert "Use IncludeInferiors when copying windows before compositing."
8e640d6b13 Revert "Reserve space for two GC values in copy_drawable()."
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
"An experimental pseudocolor emulation layer. Not fully completed,
currently only works for 16bpp." That was almost four years ago.
It still doesn't work, only one driver even attempts to use it, it
contains an ad-hoc implementation of damage, and should really be
done up in Composite now anyway.
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.
over to new system.
Need to update documentation and address some remaining vestiges of
old system such as CursorRec structure, fb "offman" structure, and
FontRec privates.
Don't call fbFinishWrap until the pixman_image_t that stores the pointer is
actually freed. This prevents corruption or crashes caused by accessing a
wrapped pointer after the wrapping is torn down.
Create fbPrepareAccess macros to call into the driver to set up the
wfbReadMemory and wfbWriteWemory pointers. Call these from fbGetDrawable and
fbGetStipDrawable.
Add the READ and WRITE macros, which expand to simple memory accesses for fb,
and calls through the function pointers for wfb.
Add fbFinishAccess macro to give the driver an opportunity to clean up. Add
calls to this in the appropriate places.
For now, just #define all of the exported symbols in wfbrename.h. Later,
we should add FBPREFIX() around the exported symbols and use -fvisiblity=hidden
to hide the rest.