mirror of
https://github.com/X11Libre/xserver.git
synced 2026-03-24 03:44:06 +00:00
render: consolidate byte-swapping in ProcRenderCreateSolidFill()
No need for extra functions and call tables for the few trivial lines. Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
committed by
Enrico Weigelt
parent
f1c6f79819
commit
0d4e48188a
@@ -98,7 +98,6 @@ static int ProcRenderCreateConicalGradient(ClientPtr pClient);
|
||||
|
||||
static int ProcRenderDispatch(ClientPtr pClient);
|
||||
|
||||
static int SProcRenderCreateSolidFill(ClientPtr pClient);
|
||||
static int SProcRenderCreateLinearGradient(ClientPtr pClient);
|
||||
static int SProcRenderCreateRadialGradient(ClientPtr pClient);
|
||||
static int SProcRenderCreateConicalGradient(ClientPtr pClient);
|
||||
@@ -177,7 +176,7 @@ int (*SProcRenderVector[RenderNumberRequests]) (ClientPtr) = {
|
||||
ProcRenderSetPictureFilter,
|
||||
ProcRenderCreateAnimCursor,
|
||||
ProcRenderAddTraps,
|
||||
SProcRenderCreateSolidFill,
|
||||
ProcRenderCreateSolidFill,
|
||||
SProcRenderCreateLinearGradient,
|
||||
SProcRenderCreateRadialGradient, SProcRenderCreateConicalGradient};
|
||||
|
||||
@@ -1778,15 +1777,11 @@ SingleRenderAddTraps(ClientPtr client, xRenderAddTrapsReq *stuff)
|
||||
}
|
||||
|
||||
static int
|
||||
SingleRenderCreateSolidFill(ClientPtr client)
|
||||
SingleRenderCreateSolidFill(ClientPtr client, xRenderCreateSolidFillReq *stuff)
|
||||
{
|
||||
PicturePtr pPicture;
|
||||
int error = 0;
|
||||
|
||||
REQUEST(xRenderCreateSolidFillReq);
|
||||
|
||||
REQUEST_AT_LEAST_SIZE(xRenderCreateSolidFillReq);
|
||||
|
||||
LEGAL_NEW_RESOURCE(stuff->pid, client);
|
||||
|
||||
pPicture = CreateSolidPicture(stuff->pid, &stuff->color, &error);
|
||||
@@ -1931,20 +1926,6 @@ ProcRenderDispatch(ClientPtr client)
|
||||
return BadRequest;
|
||||
}
|
||||
|
||||
static int _X_COLD
|
||||
SProcRenderCreateSolidFill(ClientPtr client)
|
||||
{
|
||||
REQUEST(xRenderCreateSolidFillReq);
|
||||
REQUEST_AT_LEAST_SIZE(xRenderCreateSolidFillReq);
|
||||
|
||||
swapl(&stuff->pid);
|
||||
swaps(&stuff->color.alpha);
|
||||
swaps(&stuff->color.red);
|
||||
swaps(&stuff->color.green);
|
||||
swaps(&stuff->color.blue);
|
||||
return ProcRenderCreateSolidFill(client);
|
||||
}
|
||||
|
||||
static void _X_COLD
|
||||
swapStops(void *stuff, int num)
|
||||
{
|
||||
@@ -2576,14 +2557,11 @@ PanoramiXRenderAddTraps(ClientPtr client, xRenderAddTrapsReq *stuff)
|
||||
}
|
||||
|
||||
static int
|
||||
PanoramiXRenderCreateSolidFill(ClientPtr client)
|
||||
PanoramiXRenderCreateSolidFill(ClientPtr client, xRenderCreateSolidFillReq *stuff)
|
||||
{
|
||||
REQUEST(xRenderCreateSolidFillReq);
|
||||
PanoramiXRes *newPict;
|
||||
int result = Success;
|
||||
|
||||
REQUEST_AT_LEAST_SIZE(xRenderCreateSolidFillReq);
|
||||
|
||||
if (!(newPict = calloc(1, sizeof(PanoramiXRes))))
|
||||
return BadAlloc;
|
||||
|
||||
@@ -2593,7 +2571,7 @@ PanoramiXRenderCreateSolidFill(ClientPtr client)
|
||||
|
||||
XINERAMA_FOR_EACH_SCREEN_BACKWARD({
|
||||
stuff->pid = newPict->info[walkScreenIdx].id;
|
||||
result = SingleRenderCreateSolidFill(client);
|
||||
result = SingleRenderCreateSolidFill(client, stuff);
|
||||
if (result != Success)
|
||||
break;
|
||||
});
|
||||
@@ -3096,11 +3074,22 @@ ProcRenderAddTraps(ClientPtr client)
|
||||
static int
|
||||
ProcRenderCreateSolidFill(ClientPtr client)
|
||||
{
|
||||
REQUEST(xRenderCreateSolidFillReq);
|
||||
REQUEST_AT_LEAST_SIZE(xRenderCreateSolidFillReq);
|
||||
|
||||
if (client->swapped) {
|
||||
swapl(&stuff->pid);
|
||||
swaps(&stuff->color.alpha);
|
||||
swaps(&stuff->color.red);
|
||||
swaps(&stuff->color.green);
|
||||
swaps(&stuff->color.blue);
|
||||
}
|
||||
|
||||
#ifdef XINERAMA
|
||||
return (usePanoramiX ? PanoramiXRenderCreateSolidFill(client)
|
||||
: SingleRenderCreateSolidFill(client));
|
||||
return (usePanoramiX ? PanoramiXRenderCreateSolidFill(client, stuff)
|
||||
: SingleRenderCreateSolidFill(client, stuff));
|
||||
#else
|
||||
return SingleRenderCreateSolidFill(client);
|
||||
return SingleRenderCreateSolidFill(client, stuff);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user