#include #include "lx.h" #include "proto.h" #include "internal.h" void lx_PolyFillArc(LX_CONN *xc, LX_XID drawable, LX_XID gc, int narc, const LX_ARC *arcs) { unsigned char *req; int reqlen; int i; int o; const LX_ARC *a; if ( (xc->flags & XCF_FAIL) || (narc > ((65535-3)/3)) ) { lx__bad_call(xc,"lx_PolyFillArc"); return; } reqlen = 3 + (3 * narc); req = malloc(reqlen<<2); if (! req) { lx__nomem_fail(xc); return; } req[0] = XP_REQ_PolyFillArc; req[1] = 0; w_card16(&req[2],reqlen); w_card32(&req[4],drawable); w_card32(&req[8],gc); o = 12; for (i=0;ix < -32768) || (a->x > 32767) || (a->y < -32768) || (a->y > 32767) || (a->w > 65535) || (a->h > 65535) || (a->a1 < -32768) || (a->a1 > 32767) || (a->a2 < -32768) || (a->a2 > 32767) ) { free(req); lx__bad_call(xc,"lx_PolyFillArc"); return; } w_int16(&req[o],a->x); w_int16(&req[o+2],a->y); w_card16(&req[o+4],a->w); w_card16(&req[o+6],a->h); w_int16(&req[o+8],a->a1); w_int16(&req[o+10],a->a2); o += 12; } lx__send_req_free(xc,req,reqlen<<2); }