' Draw to image buffer sample ' ' Last updated: <2024/02/12 01:41:58 +0900> ' License : CC0 / Public Domain 'Const SCRW = 320 : Const SCRH = 180 Const SCRW = 320 : Const SCRH = 240 #include "fbgfx.bi" Using fb ' set screen depth Dim As Integer sdepth = 32 Select Case Command(1) Case "8" : sdepth = 8 Case "16" : sdepth = 16 Case "32" : sdepth = 32 End Select ' get desktop size Dim As Integer dispw, disph ScreenInfo dispw, disph ' get scale (Integer) Dim As Double dscale = dispw / SCRW If dscale > (disph / SCRH) Then dscale = disph / SCRH ScreenRes dispw, disph, sdepth, , GFX_NO_FRAME Dim As Any Ptr gbuf = ImageCreate(SCRW, SCRH) Color RGB(255, 255, 255), RGB(0, 0, 0) cls Const PI = 3.1415926535897932 Dim As Double angle = 0.0 Dim As Boolean running = True ' Main Loop While running If Inkey <> "" Then running = False ' draw to image buffer line gbuf, (0, 0) - (SCRW - 1, SCRH - 1), RGB(30, 60, 120), BF ' clear image buffer Circle gbuf, (SCRW \ 2, SCRH \ 2), (SCRH \ 2 - 1), RGB(0, 255, 0) Dim As Integer x, y, r r = SCRH / 4 x = (SCRW / 2 - r - 1) * Cos(angle * PI / 180.0) + (SCRW / 2) y = (SCRH / 2 - r - 1) * Sin(angle * PI / 180.0) + (SCRH / 2) Circle gbuf, (x, y), r, RGB(0, 255, 255) Draw String gbuf, (0, 0), Str(SCRW) & "x" & SCRH, RGB(255, 255, 255) ' draw to screen ScreenLock Put (0, 0), gbuf, Pset ScreenUnlock angle += 1.0 sleep 10 Wend