composite: simplify dispatcher
The dispatcher functions are much more complex than they're usually are (just switch/case statement). Bring them in line with the standard scheme used in the Xserver, so further steps become easier. It's also much cleaner to use the defines from proto headers instead of raw numbers. Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
parent
0bf08776c8
commit
7e120f0f03
|
@ -347,25 +347,32 @@ static int ProcCompositeUnredirectSubwindows(ClientPtr client);
|
||||||
static int ProcCompositeNameWindowPixmap(ClientPtr client);
|
static int ProcCompositeNameWindowPixmap(ClientPtr client);
|
||||||
static int ProcCompositeGetOverlayWindow(ClientPtr client);
|
static int ProcCompositeGetOverlayWindow(ClientPtr client);
|
||||||
|
|
||||||
static int (*ProcCompositeVector[CompositeNumberRequests]) (ClientPtr) = {
|
|
||||||
ProcCompositeQueryVersion,
|
|
||||||
ProcCompositeRedirectWindow,
|
|
||||||
ProcCompositeRedirectSubwindows,
|
|
||||||
ProcCompositeUnredirectWindow,
|
|
||||||
ProcCompositeUnredirectSubwindows,
|
|
||||||
ProcCompositeCreateRegionFromBorderClip,
|
|
||||||
ProcCompositeNameWindowPixmap,
|
|
||||||
ProcCompositeGetOverlayWindow, ProcCompositeReleaseOverlayWindow,};
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
ProcCompositeDispatch(ClientPtr client)
|
ProcCompositeDispatch(ClientPtr client)
|
||||||
{
|
{
|
||||||
REQUEST(xReq);
|
REQUEST(xReq);
|
||||||
|
switch (stuff->data) {
|
||||||
if (stuff->data < CompositeNumberRequests)
|
case X_CompositeQueryVersion:
|
||||||
return (*ProcCompositeVector[stuff->data]) (client);
|
return ProcCompositeQueryVersion(client);
|
||||||
else
|
case X_CompositeRedirectWindow:
|
||||||
return BadRequest;
|
return ProcCompositeRedirectWindow(client);
|
||||||
|
case X_CompositeRedirectSubwindows:
|
||||||
|
return ProcCompositeRedirectSubwindows(client);
|
||||||
|
case X_CompositeUnredirectWindow:
|
||||||
|
return ProcCompositeUnredirectWindow(client);
|
||||||
|
case X_CompositeUnredirectSubwindows:
|
||||||
|
return ProcCompositeUnredirectSubwindows(client);
|
||||||
|
case X_CompositeCreateRegionFromBorderClip:
|
||||||
|
return ProcCompositeCreateRegionFromBorderClip(client);
|
||||||
|
case X_CompositeNameWindowPixmap:
|
||||||
|
return ProcCompositeNameWindowPixmap(client);
|
||||||
|
case X_CompositeGetOverlayWindow:
|
||||||
|
return ProcCompositeGetOverlayWindow(client);
|
||||||
|
case X_CompositeReleaseOverlayWindow:
|
||||||
|
return ProcCompositeReleaseOverlayWindow(client);
|
||||||
|
default:
|
||||||
|
return BadRequest;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _X_COLD
|
static int _X_COLD
|
||||||
|
@ -375,7 +382,7 @@ SProcCompositeQueryVersion(ClientPtr client)
|
||||||
REQUEST_SIZE_MATCH(xCompositeQueryVersionReq);
|
REQUEST_SIZE_MATCH(xCompositeQueryVersionReq);
|
||||||
swapl(&stuff->majorVersion);
|
swapl(&stuff->majorVersion);
|
||||||
swapl(&stuff->minorVersion);
|
swapl(&stuff->minorVersion);
|
||||||
return (*ProcCompositeVector[stuff->compositeReqType]) (client);
|
return ProcCompositeQueryVersion(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _X_COLD
|
static int _X_COLD
|
||||||
|
@ -384,7 +391,7 @@ SProcCompositeRedirectWindow(ClientPtr client)
|
||||||
REQUEST(xCompositeRedirectWindowReq);
|
REQUEST(xCompositeRedirectWindowReq);
|
||||||
REQUEST_SIZE_MATCH(xCompositeRedirectWindowReq);
|
REQUEST_SIZE_MATCH(xCompositeRedirectWindowReq);
|
||||||
swapl(&stuff->window);
|
swapl(&stuff->window);
|
||||||
return (*ProcCompositeVector[stuff->compositeReqType]) (client);
|
return ProcCompositeRedirectWindow(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _X_COLD
|
static int _X_COLD
|
||||||
|
@ -393,7 +400,7 @@ SProcCompositeRedirectSubwindows(ClientPtr client)
|
||||||
REQUEST(xCompositeRedirectSubwindowsReq);
|
REQUEST(xCompositeRedirectSubwindowsReq);
|
||||||
REQUEST_SIZE_MATCH(xCompositeRedirectSubwindowsReq);
|
REQUEST_SIZE_MATCH(xCompositeRedirectSubwindowsReq);
|
||||||
swapl(&stuff->window);
|
swapl(&stuff->window);
|
||||||
return (*ProcCompositeVector[stuff->compositeReqType]) (client);
|
return ProcCompositeRedirectSubwindows(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _X_COLD
|
static int _X_COLD
|
||||||
|
@ -402,7 +409,7 @@ SProcCompositeUnredirectWindow(ClientPtr client)
|
||||||
REQUEST(xCompositeUnredirectWindowReq);
|
REQUEST(xCompositeUnredirectWindowReq);
|
||||||
REQUEST_SIZE_MATCH(xCompositeUnredirectWindowReq);
|
REQUEST_SIZE_MATCH(xCompositeUnredirectWindowReq);
|
||||||
swapl(&stuff->window);
|
swapl(&stuff->window);
|
||||||
return (*ProcCompositeVector[stuff->compositeReqType]) (client);
|
return ProcCompositeUnredirectWindow(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _X_COLD
|
static int _X_COLD
|
||||||
|
@ -411,7 +418,7 @@ SProcCompositeUnredirectSubwindows(ClientPtr client)
|
||||||
REQUEST(xCompositeUnredirectSubwindowsReq);
|
REQUEST(xCompositeUnredirectSubwindowsReq);
|
||||||
REQUEST_SIZE_MATCH(xCompositeUnredirectSubwindowsReq);
|
REQUEST_SIZE_MATCH(xCompositeUnredirectSubwindowsReq);
|
||||||
swapl(&stuff->window);
|
swapl(&stuff->window);
|
||||||
return (*ProcCompositeVector[stuff->compositeReqType]) (client);
|
return ProcCompositeUnredirectSubwindows(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _X_COLD
|
static int _X_COLD
|
||||||
|
@ -421,7 +428,7 @@ SProcCompositeCreateRegionFromBorderClip(ClientPtr client)
|
||||||
REQUEST_SIZE_MATCH(xCompositeCreateRegionFromBorderClipReq);
|
REQUEST_SIZE_MATCH(xCompositeCreateRegionFromBorderClipReq);
|
||||||
swapl(&stuff->region);
|
swapl(&stuff->region);
|
||||||
swapl(&stuff->window);
|
swapl(&stuff->window);
|
||||||
return (*ProcCompositeVector[stuff->compositeReqType]) (client);
|
return ProcCompositeCreateRegionFromBorderClip(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _X_COLD
|
static int _X_COLD
|
||||||
|
@ -431,7 +438,7 @@ SProcCompositeNameWindowPixmap(ClientPtr client)
|
||||||
REQUEST_SIZE_MATCH(xCompositeNameWindowPixmapReq);
|
REQUEST_SIZE_MATCH(xCompositeNameWindowPixmapReq);
|
||||||
swapl(&stuff->window);
|
swapl(&stuff->window);
|
||||||
swapl(&stuff->pixmap);
|
swapl(&stuff->pixmap);
|
||||||
return (*ProcCompositeVector[stuff->compositeReqType]) (client);
|
return ProcCompositeNameWindowPixmap(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _X_COLD
|
static int _X_COLD
|
||||||
|
@ -440,7 +447,7 @@ SProcCompositeGetOverlayWindow(ClientPtr client)
|
||||||
REQUEST(xCompositeGetOverlayWindowReq);
|
REQUEST(xCompositeGetOverlayWindowReq);
|
||||||
REQUEST_SIZE_MATCH(xCompositeGetOverlayWindowReq);
|
REQUEST_SIZE_MATCH(xCompositeGetOverlayWindowReq);
|
||||||
swapl(&stuff->window);
|
swapl(&stuff->window);
|
||||||
return (*ProcCompositeVector[stuff->compositeReqType]) (client);
|
return ProcCompositeGetOverlayWindow(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _X_COLD
|
static int _X_COLD
|
||||||
|
@ -449,31 +456,35 @@ SProcCompositeReleaseOverlayWindow(ClientPtr client)
|
||||||
REQUEST(xCompositeReleaseOverlayWindowReq);
|
REQUEST(xCompositeReleaseOverlayWindowReq);
|
||||||
REQUEST_SIZE_MATCH(xCompositeReleaseOverlayWindowReq);
|
REQUEST_SIZE_MATCH(xCompositeReleaseOverlayWindowReq);
|
||||||
swapl(&stuff->window);
|
swapl(&stuff->window);
|
||||||
return (*ProcCompositeVector[stuff->compositeReqType]) (client);
|
return ProcCompositeReleaseOverlayWindow(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
(*SProcCompositeVector[CompositeNumberRequests]) (ClientPtr) = {
|
|
||||||
SProcCompositeQueryVersion,
|
|
||||||
SProcCompositeRedirectWindow,
|
|
||||||
SProcCompositeRedirectSubwindows,
|
|
||||||
SProcCompositeUnredirectWindow,
|
|
||||||
SProcCompositeUnredirectSubwindows,
|
|
||||||
SProcCompositeCreateRegionFromBorderClip,
|
|
||||||
SProcCompositeNameWindowPixmap,
|
|
||||||
SProcCompositeGetOverlayWindow,
|
|
||||||
SProcCompositeReleaseOverlayWindow,
|
|
||||||
};
|
|
||||||
|
|
||||||
static int _X_COLD
|
static int _X_COLD
|
||||||
SProcCompositeDispatch(ClientPtr client)
|
SProcCompositeDispatch(ClientPtr client)
|
||||||
{
|
{
|
||||||
REQUEST(xReq);
|
REQUEST(xReq);
|
||||||
|
switch (stuff->data) {
|
||||||
if (stuff->data < CompositeNumberRequests)
|
case X_CompositeQueryVersion:
|
||||||
return (*SProcCompositeVector[stuff->data]) (client);
|
return SProcCompositeQueryVersion(client);
|
||||||
else
|
case X_CompositeRedirectWindow:
|
||||||
return BadRequest;
|
return SProcCompositeRedirectWindow(client);
|
||||||
|
case X_CompositeRedirectSubwindows:
|
||||||
|
return SProcCompositeRedirectSubwindows(client);
|
||||||
|
case X_CompositeUnredirectWindow:
|
||||||
|
return SProcCompositeUnredirectWindow(client);
|
||||||
|
case X_CompositeUnredirectSubwindows:
|
||||||
|
return SProcCompositeUnredirectSubwindows(client);
|
||||||
|
case X_CompositeCreateRegionFromBorderClip:
|
||||||
|
return SProcCompositeCreateRegionFromBorderClip(client);
|
||||||
|
case X_CompositeNameWindowPixmap:
|
||||||
|
return SProcCompositeNameWindowPixmap(client);
|
||||||
|
case X_CompositeGetOverlayWindow:
|
||||||
|
return SProcCompositeGetOverlayWindow(client);
|
||||||
|
case X_CompositeReleaseOverlayWindow:
|
||||||
|
return SProcCompositeReleaseOverlayWindow(client);
|
||||||
|
default:
|
||||||
|
return BadRequest;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @see GetDefaultBytes */
|
/** @see GetDefaultBytes */
|
||||||
|
|
Loading…
Reference in New Issue