Age | Commit message (Collapse) | Author |
|
dixLookupResource attempted to automatically detect whether the caller
wanted a lookup by-type or by-class, unfortunately, it guessed wrong for
RT_NONE. Instead of trying to make the guess better, this patch just reverts
the unification and creates separate functions for each operation.
(cherry picked from commit f8dd80d13bb5313a11b38b280f8ad3e22f0a6300)
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
When changing a window from automatic redirection to manual redirection, the
parent clip list needs to be recomputed; the easy way to get that computed
right is to unmap/map the window, just as when redirecting the window the
first time.
Thanks to Owen Taylor for helping diagnose this.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
(cherry picked from commit 37876602957924c7cff759a800eddd574ee2385a)
|
|
|
|
- Redo damage naming for more consistency.
- Call post submission functions only where appropriate.
- EXA can now live without it's odd damage workarounds.
|
|
TODO: static indices can be made just an int; some indices
can be combined.
|
|
|
|
|
|
The -wm (when mapped) option for the BackingStore support has been
causing the server to dereference a NULL pointer.
This has probably been the case since backing store has been
implemented on top of Composite.
It looks like (some of?) Composite didn’t expect its WIndowPtr
argument to be the root window.
In Composite’s compCheckRedirect() function we now avoid calling
compAllocPixmap() and compFreePixmap() when the pWin pointer’s
parent member is NULL, as is it the case with a server’s root window.
This addresses:
https://bugs.freedesktop.org/show_bug.cgi?id=15878
|
|
|
|
The composite overlay window code had several misunderstandings of the
workings of the X server, in particular error handling paths would often
double-free objects. Clean all of this up by using resource destruction as
the sole mechanism for freeing resource-based objects.
|
|
Avoids incrementing the refcnt if the hook fails.
|
|
|
|
|
|
- This allows some compositing managers to work, even after randr12 has changed the root window size.
- Thanks to ajax for figuring out the best place to put this.
- Example:
- xf86RandR12SetMode() calls EnableDisableFBAccess().
- That calls xf86SetRootClip() which in turn calls ResizeChildrenWinSize().
- The final step is the call to PositionWindow().
|
|
This reverts commit 166ef972febc00c665e1d5aeb68e75d7bbcf9879.
Moving all the names into dix/registry.c
|
|
Conflicts:
dix/dispatch.c
dix/property.c
hw/xfree86/common/xf86VidMode.c
include/xkbsrv.h
render/glyph.c
xkb/xkbActions.c
|
|
These hints allow an acceleration architecture to optimize allocation of certain
types of pixmaps, such as pixmaps that will serve as backing pixmaps for
redirected windows.
|
|
|
|
Conflicts:
dix/devices.c
|
|
(e.g. when Xinerama is enabled).
|
|
Conflicts:
afb/afbpntwin.c
afb/afbscrinit.c
afb/afbwindow.c
cfb/cfb.h
cfb/cfballpriv.c
cfb/cfbscrinit.c
cfb/cfbwindow.c
configure.ac
fb/wfbrename.h
hw/xfree86/xf4bpp/ppcIO.c
hw/xfree86/xf4bpp/ppcPntWin.c
hw/xfree86/xf4bpp/ppcWindow.c
hw/xfree86/xf8_32bpp/cfbscrinit.c
mfb/mfb.h
mfb/mfbpntwin.c
mfb/mfbscrinit.c
mfb/mfbwindow.c
mi/miexpose.c
Note: conflicts caused by devPrivates rework vs. paintwindow changes.
|
|
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.
|
|
to be passed in at create time. Also added a missing devPrivates initializer.
|
|
compNewPixmap copies bits from the parent window to the redirected child
pixmap to populate the pixmap with reasonable data. It cannot always use
CopyArea as that only works across matching depths. Use Composite when
the depths do not match.
|
|
|
|
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.
|
|
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.
|
|
|
|
Besides being slightly simpler to read, it's now trivial to add a depth-16
visual to a depth-24 screen just by adding a line for it in the alternate
visual list. Visuals for indexed depths are slightly tricky still.
|
|
A window with redirect manual *and* redirect automatic which loses the
manual redirecting client becomes redirect automatic.
|
|
One pWin->redirectDraw test was converted incorrectly, causing incorrect
rendering in some cases.
|
|
It was reporting the lessor of the server and client versions, which doesn't
make sense with the 0.4 semantic change in clipping.
|
|
Installed protocol header version may be newer than the server code base.
Use internal version number for Composite extension to make sure the server
doesn't advertise capabilities it doesn't support.
|
|
This patch changes the semantics of manual redirect windows so that they no
longer affect the clip list of their parent. Doing this means the parent can
draw to the area covered by the child without using IncludeInferiors. More
importantly, this also means that the parent receives expose events when
that region is damaged by other actions.
|
|
|
|
|
|
It will likely take a decent bit of work to make that work right.
|
|
Rendering fails badly in this case, and I don't care enough to fix it.
|
|
Composite relies on the presence of Render, in particular for the automatic
compositing.
|
|
|
|
|
|
windows too.
|
|
unrealized window.
Before this change, ProcCompositeNameWindowPixmap would name the screen pixmap
if !pWin->realized.
|
|
This provides drivers the ability to add their own alternate visuals and then
register them with Composite for implicit redirection.
|
|
Get rid of almost all uses of these definitions. They're still defined for
delinquent out-of-tree drivers, and also for the Mesa build. As well as
for miinitext.c. But largely gone.
|
|
Use FreeResource instead of deleteCompOverlayClient()
|
|
|
|
CompositeGetOverlayWindow, CompositeReleaseOverlayWindow Xfixes Version
4.0: XFixesHideCursor, XFixesShowCursor
|
|
Add new functions to enable and disable events on Map and Unmap.
Use them here to make sure Composite redirect doesn't cause Map/UnmapNotify
events that would confuse window managers.
|