Windows 10で動かしたらDirectX動いたので作ってみました。
画像IDに数値をそのまま使われているようなので、それに対応させました。
pos+hgrotateの座標がpos+gcopyに合わない、という問題は考えてないので、適当に改造してください。
使用可能なbufferの数はMAX_PICTで調整してください。
あと、gmodeは2に固定しているので、そこも仕様に合わせて変えてください。
#include "hgimg3.as"
#module "alternative"
// del
#undef buffer
#undef picload
#undef gcopy
// max texture
#const MAX_PICT 256
// hgini
#define global hgini_ hgini : dim link, MAX_PICT : LAST = -1
// picload
#define global picload(%1, %2) _picload_ %1
#deffunc _picload_ str f
texload f
link(LAST) = stat
return 0
// buffer
#deffunc buffer int _id_
link(_id_) = 0
LAST = _id_
return
// gcopy
#define global gcopy(%1, %2=0, %3=0, %4=0, %5=0) _gcopy_ %1, %2, %3, %4, %5
#deffunc _gcopy_ int p1, int p2, int p3, int p4, int p5
gmode 2, p4, p5
hgrotate link(p1), p2, p3, 0.0, p4, p5
return 0
#global
// main
hgini_
buffer 1
picload "test.bmp"
buffer 2
picload "test.bmp"
*main
hgdraw
pos 160, 120
gcopy 1, 0, 0, 64, 64
pos 100, 100
gcopy 2, 0, 0, 32, 32
hgsync 20
goto *main
同じようにgzoom等も作れると思います。
picloadの前にhginiの呼び出しが必要なので、初期化をhgini_にしています。