XXX NEED TO WRITE THIS LX_OP *lx_shape_query(LX_CONN *c, int *supp) void lx_shape_Rectangles(LX_CONN *c, LX_XID dstwin, LX_SHAPE_KIND dstkind, LX_SHAPE_OP op, int xoff, int yoff, LX_RECTORDER ord, int nrects, const LX_RECTANGLE *rects) void lx_shape_Mask(LX_CONN *c, LX_XID dstwin, LX_SHAPE_KIND dstkind, LX_SHAPE_OP op, int xoff, int yoff, LX_XID src) void lx_shape_Combine(LX_CONN *c, LX_XID dstwin, LX_SHAPE_KIND dstkind, LX_SHAPE_OP op, int xoff, int yoff, LX_XID src, LX_SHAPE_KIND srckind) void lx_shape_Offset(LX_CONN *c, LX_XID dstwin, LX_SHAPE_KIND dstkind, int xoff, int yoff); // shapedp uses the same bits as LX_SHAPE_EXTENTS.shaped LX_OP *lx_shape_QueryExtents(LX_CONN *c, LX_XID win, unsigned int *shapedp, int *bbxp, int *bbyp, int *bbwp, int *bbhp, int *clixp, int *cliyp, int *clipwp, int *cliphp) LX_OP *lx_shape_QueryExtents_extents(LX_CONN *c, LX_XID win, LX_SHAPE_EXTENTS *extp) void lx_shape_SelectInput(LX_CONN *c, LX_XID win, int enb) LX_OP *lx_shape_InputSelected(LX_CONN *c, LX_XID win, int *enbp) // rect list is allocated by library, freeable with free LX_OP *lx_shape_GetRectangles(LX_CONN *c, LX_XID win, LX_SHAPE_KIND kind, LX_RECTORDER *ord, int *nrectp, LX_RECTANGLE **rectsp)