; hgimg3 fullscreen sample. #include "hgimg3.as" #include "d3m.hsp" #packopt name "04_fullscreen_hgimg3" ; file name #packopt type 0 ; generate ".exe" #define TEXFILE "tex.png" #define FONTFILE "font.png" #pack TEXFILE #pack FONTFILE #define KB_ESC $00080 #define FRAMERATE 60 ; get desktop size dispx = ginfo_dispx dispy = ginfo_dispy ; initialize window without frame bgscr 0, dispx, dispy, 0, 0, 0 hgini ; initialize hgimg3 ; init bimap font, load font texture setfont 20, 20, 18, 1 ; 20x20 font texload FONTFILE ; load texture texload2 TEXFILE texid = stat ; get texture ID texw = 512 texh = 512 ; Set the buffer to draw from. Windows ID 0 gsel 0, 1 clscolor $4080c0 ; set clear color angle = 0.0 time_start = d3timer() *mainloop ; get FPS tm = d3timer() - time_start fps = d3getfps() ; ESC key to exit stick k, 0 if k & KB_ESC : goto *job_end angle += 0.5 ; ---------------------------------------- ; draw start hgdraw objmax = 64 repeat objmax r = double(dispy) * 0.5 a = angle + (270.0 / double(objmax)) * double(cnt) x = int(r * cos(deg2rad(a))) + (dispx / 2) y = int(r * sin(deg2rad(a))) + (dispy / 2) d = double(cnt) / double(objmax) ; draw image by crlput gmode gmode_rgb0, texw, texh pos x, y src_x = (idx \ 2) * texw src_y = ((idx / 2) \2) * texh idx = (cnt \ 4) rot = deg2rad(angle * 2.0 + 360.0 * d) scale = 8.0 - (7.5 * d) dst_w = int(double(texw) * scale) dst_h = int(double(texh) * scale) ; draw texture hgrotate texid, src_x, src_y, rot, dst_w, dst_h loop ; draw text gmode gmode_rgb0 fprt strf("[%dx%d] %d/%dFPS", dispx, dispy, fps, FRAMERATE), 10, 10 hgsync (1000 / FRAMERATE) - 1 ; draw end and wait goto *mainloop *job_end hgbye ; release HGIMG3 plugin end