'
' Screensaver demo using HUG.
'
' PvE March 2010 - GPL.
' Improvements in December 2010.
' Improved in July 2013.
'------------------------------------------------------------------------

INCLUDE "hug.bac", INIT, HUGOPTIONS, SCREENSIZE, CIRCLE, KEY, QUIT, WINDOW, SET, CANVAS, WINDOW, ATTACH, TIMEOUT, DISPLAY

INIT

HUGOPTIONS("NOSCALING")
'HUGOPTIONS("CANVAS GLEXT")

CONST x_size = SCREENSIZE(0)
CONST y_size = SCREENSIZE(1)

FUNCTION Draw_Screen

    LOCAL x, y, xradius, yradius, color_r, color_g, color_b
    LOCAL col$

    xradius = RANDOM(300) + 20
    yradius = RANDOM(400) + 20

    x = RANDOM(x_size+xradius) + 1
    y = RANDOM(y_size+yradius) + 1

    color$ = HEX$(RANDOM(16777216) + 1)

    CIRCLE("#" & color$, x-xradius, y-yradius, xradius, yradius, 1)
    CIRCLE("#000000", x-xradius, y-yradius, xradius, yradius, 0)

    IF KEY() = 65307 THEN QUIT

    RETURN TRUE

END FUNCTION

win = WINDOW("", x_size, y_size)
SET(win, 1)

canvas = CANVAS(x_size, y_size)
ATTACH(win, canvas, 0, 0)

TIMEOUT(120, Draw_Screen)
DISPLAY