$title('bltit - test the bit blt functions') $compact ram optimize(3) bltit: Do; $include(:rmx:inc/error.lit) $include(:rmx:inc/common.lit) $include(:rmx:inc/rmxplm.ext) $include(:rmx:inc/rgi.lit) $include(:rmx:inc/rgi.ext) Declare bmap_1 Literally '0', bmap_2 Literally '1', bmap_3 Literally '2', bmap_4 Literally '3', bmap_5 Literally '4', wind_1 Literally '0', wind_2 Literally '1', wind_3 Literally '2', wind_4 Literally '3'; Declare met1(*) Byte Data(10,'intel1.met'), met2(*) Byte Data(9,'rose4.met'), met3(*) Byte Data(11,'balloon.met'), met4(*) Byte Data(10,'intel2.met'); Declare cginame(*) Byte Data(5,':VDI:'), ciname(*) Byte Data(4,':CI:'), coname(*) Byte Data(4,':CO:'); Declare cgibuff(128) Byte, xferbuff(128) Byte; main: Do; Declare coconn Selector, cgiconn Selector, fileconn Selector, cgidev CGI$Device, i Integer, (actual,except) Word; /* Establish the console output connection */ coconn = dqcreate(@coname,@except); If except <> E$OK Then Call dqexit(1); Call dqopen(coconn,2,0,@except); If except <> E$OK Then Call dqexit(1); /* Establish the graphic server connection */ cgiconn = rqsattachfile(@cginame,@except); If except <> E$OK Then Call dqexit(1); Call rqsopen(cgiconn,3,0,@except); If except <> E$OK Then Call dqexit(1); cgidev = cgi_initialize(cgiconn,@cgibuff,SIZE(cgibuff),@except); If except <> E$OK Then Call dqexit(1); Call gq$deleteallbitmaps(cgidev); Call gq$create$bitmap(cgidev, bmap_1, 320, 240, 4); Call gq$create$bitmap(cgidev, bmap_2, 320, 240, 4); Call gq$create$bitmap(cgidev, bmap_3, 320, 240, 4); Call gq$create$bitmap(cgidev, bmap_4, 320, 240, 4); Call gq$create$bitmap(cgidev, bmap_5, 320, 240, 4); Call gq$create$window(cgidev, wind_1, bmap_1, 255, VISIBLE, 0, 0, 0, 0, 324, 240); Call gq$create$window(cgidev, wind_2, bmap_2, 255, VISIBLE, 0, 0, 320, 0, 324, 240); Call gq$create$window(cgidev, wind_3, bmap_3, 255, VISIBLE, 0, 0, 0, 240, 324, 240); Call gq$create$window(cgidev, wind_4, bmap_4, 255, VISIBLE, 0, 0, 320, 240, 324, 240); /* Copy Metafile 1 to bitmap 1 */ Call gq$select$drawing$bitmap(cgidev, bmap_1); Call cgi_flush(cgidev,@except); fileconn = rqsattachfile(@met1,@except); If except <> E$OK Then Call dqexit(1); Call rqsopen(fileconn,3,0,@except); If except <> E$OK Then Call dqexit(1); actual = size(xferbuff); Do while actual = size(xferbuff); actual = rqsreadmove(fileconn, @xferbuff, size(xferbuff), @except); If except <> E$OK Then Call dqexit(1); If actual <> 0 Then Do; actual = rqswritemove(cgiconn, @xferbuff, actual, @except); If except <> E$OK Then Call dqexit(1); End; End; Call dqclose(fileconn,@except); If except <> E$OK Then Call dqexit(1); Call dqdetach(fileconn,@except); If except <> E$OK Then Call dqexit(1); /* Copy Metafile 2 to bitmap 2 */ Call gq$select$drawing$bitmap(cgidev, bmap_2); Call cgi_flush(cgidev,@except); fileconn = rqsattachfile(@met2,@except); If except <> E$OK Then Call dqexit(1); Call rqsopen(fileconn,3,0,@except); If except <> E$OK Then Call dqexit(1); actual = size(xferbuff); Do while actual = size(xferbuff); actual = rqsreadmove(fileconn, @xferbuff, size(xferbuff), @except); If except <> E$OK Then Call dqexit(1); If actual <> 0 Then Do; actual = rqswritemove(cgiconn, @xferbuff, actual, @except); If except <> E$OK Then Call dqexit(1); End; End; Call dqclose(fileconn,@except); If except <> E$OK Then Call dqexit(1); Call dqdetach(fileconn,@except); If except <> E$OK Then Call dqexit(1); /* Copy Metafile 3 to bitmap 3 */ Call gq$select$drawing$bitmap(cgidev, bmap_3); Call cgi_flush(cgidev,@except); fileconn = rqsattachfile(@met3,@except); If except <> E$OK Then Call dqexit(1); Call rqsopen(fileconn,3,0,@except); If except <> E$OK Then Call dqexit(1); actual = size(xferbuff); Do while actual = size(xferbuff); actual = rqsreadmove(fileconn, @xferbuff, size(xferbuff), @except); If except <> E$OK Then Call dqexit(1); If actual <> 0 Then Do; actual = rqswritemove(cgiconn, @xferbuff, actual, @except); If except <> E$OK Then Call dqexit(1); End; End; Call dqclose(fileconn,@except); If except <> E$OK Then Call dqexit(1); Call dqdetach(fileconn,@except); If except <> E$OK Then Call dqexit(1); /* Copy Metafile 4 to bitmap 4 */ Call gq$select$drawing$bitmap(cgidev, bmap_4); Call cgi_flush(cgidev,@except); fileconn = rqsattachfile(@met4,@except); If except <> E$OK Then Call dqexit(1); Call rqsopen(fileconn,3,0,@except); If except <> E$OK Then Call dqexit(1); actual = size(xferbuff); Do while actual = size(xferbuff); actual = rqsreadmove(fileconn, @xferbuff, size(xferbuff), @except); If except <> E$OK Then Call dqexit(1); If actual <> 0 Then Do; actual = rqswritemove(cgiconn, @xferbuff, actual, @except); If except <> E$OK Then Call dqexit(1); End; End; Call dqclose(fileconn,@except); If except <> E$OK Then Call dqexit(1); Call dqdetach(fileconn,@except); If except <> E$OK Then Call dqexit(1); /* Now blt the images around */ Call gq$setdrawingmode( cgidev, OP_REPLACE ); Do i = 0 to 200; Call gq$selectdrawingbitmap( cgidev, bmap_5 ); Call gq$bitblt( cgidev, bmap_1, 0, 0, 0, 0, 319, 239 ); Call gq$selectdrawingbitmap( cgidev, bmap_1 ); Call gq$bitblt( cgidev, bmap_2, 0, 0, 0, 0, 319, 239 ); Call gq$selectdrawingbitmap( cgidev, bmap_2 ); Call gq$bitblt( cgidev, bmap_3, 0, 0, 0, 0, 319, 239 ); Call gq$selectdrawingbitmap( cgidev, bmap_3 ); Call gq$bitblt( cgidev, bmap_4, 0, 0, 0, 0, 319, 239 ); Call gq$selectdrawingbitmap( cgidev, bmap_4 ); Call gq$bitblt( cgidev, bmap_5, 0, 0, 0, 0, 319, 239 ); End; Call gq$deleteallbitmaps(cgidev); Call cgi_flush(cgidev,@except); Call cgi_terminate(cgidev,@except); If except <> E$OK Then Call dqexit(1); Call dqclose(cgiconn,@except); If except <> E$OK Then Call dqexit(1); Call dqdetach(cgiconn,@except); If except <> E$OK Then Call dqexit(1); Call dqclose(coconn,@except); If except <> E$OK Then Call dqexit(1); Call dqdetach(coconn,@except); If except <> E$OK Then Call dqexit(1); Call dqexit(0); End main; End bltit;