// Copyright status: this file is in the public domain. #include "lx.h" #include "proto.h" #include "internal.h" static LX_XID do_CreateGlyphCursor( const char *call, LX_CONN *xc, LX_XID srcfont, LX_XID maskfont, int srcchar, int maskchar, int fr, int fg, int fb, int br, int bg, int bb ) { LX_XID cid; unsigned char req[32]; if ( (xc->flags & XCF_FAIL) || (srcchar < 0) || (srcchar > 65535) || (maskchar < 0) || (maskchar > 65535) || (fr < 0) || (fr > 65535) || (fg < 0) || (fg > 65535) || (fb < 0) || (fb > 65535) || (br < 0) || (br > 65535) || (bg < 0) || (bg > 65535) || (bb < 0) || (bb > 65535) ) { lx__bad_call(xc,call); return(LX_CURSOR_None); } lx__nochain(xc); cid = lx__new_resource_id(xc); req[0] = XP_REQ_CreateGlyphCursor; req[1] = 0; // unused w_card16(&req[2],8); w_card32(&req[4],cid); w_card32(&req[8],srcfont); w_card32(&req[12],(maskfont==LX_FONT_None)?0:maskfont); w_card16(&req[16],srcchar); w_card16(&req[18],maskchar); w_card16(&req[20],fr); w_card16(&req[22],fr); w_card16(&req[24],fg); w_card16(&req[26],fb); w_card16(&req[28],br); w_card16(&req[30],bg); lx__send_req(xc,&req[0],-1); return(cid); } LX_XID lx_CreateGlyphCursor( LX_CONN *xc, LX_XID srcfont, LX_XID maskfont, int srcchar, int maskchar, int fr, int fg, int fb, int br, int bg, int bb ) { return(do_CreateGlyphCursor("lx_CreateGlyphCursor",xc,srcfont,maskfont,srcchar,maskchar,fr,fg,fb,br,bg,bb)); } LX_XID lx_CreateGlyphCursor_rgb(LX_CONN *xc, LX_XID srcfont, LX_XID maskfont, int srcchar, int maskchar, LX_RGB fg, LX_RGB bg) { return(do_CreateGlyphCursor("lx_CreateGlyphCursor_rgb",xc,srcfont,maskfont,srcchar,maskchar,fg.r,fg.g,fg.b,bg.r,bg.g,bg.b)); }