diff options
author | David Reveman <davidr@novell.com> | 2010-01-05 15:35:10 -0500 |
---|---|---|
committer | Adam Jackson <ajax@redhat.com> | 2010-11-30 13:47:41 -0500 |
commit | 6dea617e0f71a6fc7937e3a1e10474fa87488284 (patch) | |
tree | 7e2972868d34eabffeaf63111937a1330095bbbe /xfixes/region.c | |
parent | 1b3c57f075049250c6d059412af3d6954468a5b7 (diff) |
fixes: Add panoramix support
Taken from:
583f4dde81d8d5e9101b0289946e1914ea1ee124
With minor style fixes and ported to dixLookupResourceByType.
Reviewed-by: Dave Airlie <airlied@gmail.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
Diffstat (limited to 'xfixes/region.c')
-rw-r--r-- | xfixes/region.c | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/xfixes/region.c b/xfixes/region.c index 42d5d7c54..81ead4d1c 100644 --- a/xfixes/region.c +++ b/xfixes/region.c @@ -842,3 +842,81 @@ SProcXFixesExpandRegion (ClientPtr client) return (*ProcXFixesVector[stuff->xfixesReqType]) (client); } +#ifdef PANORAMIX +#include "panoramiX.h" +#include "panoramiXsrv.h" + +int +PanoramiXFixesSetGCClipRegion (ClientPtr client) +{ + REQUEST(xXFixesSetGCClipRegionReq); + int result = Success, j; + PanoramiXRes *gc; + REQUEST_SIZE_MATCH(xXFixesSetGCClipRegionReq); + + if ((result = dixLookupResourceByType((void **)&gc, stuff->gc, XRT_GC, + client, DixWriteAccess))) { + client->errorValue = stuff->gc; + return result; + } + + FOR_NSCREENS_BACKWARD(j) { + stuff->gc = gc->info[j].id; + result = (*PanoramiXSaveXFixesVector[X_XFixesSetGCClipRegion]) (client); + if(result != Success) break; + } + + return result; +} + +int +PanoramiXFixesSetWindowShapeRegion (ClientPtr client) +{ + int result = Success, j; + PanoramiXRes *win; + REQUEST(xXFixesSetWindowShapeRegionReq); + + REQUEST_SIZE_MATCH(xXFixesSetWindowShapeRegionReq); + + if ((result = dixLookupResourceByType((void **)&win, stuff->dest, + XRT_WINDOW, client, + DixWriteAccess))) { + client->errorValue = stuff->dest; + return result; + } + + FOR_NSCREENS_FORWARD(j) { + stuff->dest = win->info[j].id; + result = (*PanoramiXSaveXFixesVector[X_XFixesSetWindowShapeRegion]) (client); + if(result != Success) break; + } + + return result; +} + +int +PanoramiXFixesSetPictureClipRegion (ClientPtr client) +{ + REQUEST(xXFixesSetPictureClipRegionReq); + int result = Success, j; + PanoramiXRes *pict; + + REQUEST_SIZE_MATCH (xXFixesSetPictureClipRegionReq); + + if ((result = dixLookupResourceByType((void **)&pict, stuff->picture, + XRT_PICTURE, client, + DixWriteAccess))) { + client->errorValue = stuff->picture; + return result; + } + + FOR_NSCREENS_BACKWARD(j) { + stuff->picture = pict->info[j].id; + result = (*PanoramiXSaveXFixesVector[X_XFixesSetPictureClipRegion]) (client); + if(result != Success) break; + } + + return result; +} + +#endif |