VGAclocks


Author Message
dddns
Guru

Joined: 20/09/2024
Location: Germany
Posts: 353
Posted: 02:58pm 11 Apr 2025      

This is VGAclocks Version1

VGAclocksV1RC1.bas.zip


This is a library to draw in a convenient way clock objects.

A clock object consists of parameters stored in a database at the end.
Variables and their content are dynamically created during INIT.
> list variables
DIM CLK_TIMEZONE$(5)
DIM INTEGER CLK_AMOUNT
DIM INTEGER CLK_COLOURS(15)
DIM INTEGER CLK_FACE_5MIN_COL(5)
DIM INTEGER CLK_FACE_5MIN_LENGTH(5)
DIM INTEGER CLK_FACE_5MIN_LW(5)
DIM INTEGER CLK_FACE_BC(5)
DIM INTEGER CLK_FACE_FC(5)
DIM INTEGER CLK_FACE_LW(5)
DIM INTEGER CLK_FACE_SEC_COL(5)
DIM INTEGER CLK_FACE_SEC_LENGTH(5)
DIM INTEGER CLK_FACE_SEC_LW(5)
DIM INTEGER CLK_HAND_BC_HR(5)
DIM INTEGER CLK_HAND_BC_MIN(5)
DIM INTEGER CLK_HAND_BC_SEC(5)
DIM INTEGER CLK_HAND_COVER_BC(5)
DIM INTEGER CLK_HAND_COVER_FC(5)
DIM INTEGER CLK_HAND_COVER_LW(5)
DIM INTEGER CLK_HAND_COVER_RADIUS(5)
DIM INTEGER CLK_HAND_FC_HR(5)
DIM INTEGER CLK_HAND_FC_MIN(5)
DIM INTEGER CLK_HAND_FC_SEC(5)
DIM INTEGER CLK_HAND_LENGTH_HR(5)
DIM INTEGER CLK_HAND_LENGTH_MIN(5)
DIM INTEGER CLK_HAND_LENGTH_SEC(5)
DIM INTEGER CLK_HAND_WIDTH_HR(5)
DIM INTEGER CLK_HAND_WIDTH_MIN(5)
DIM INTEGER CLK_HAND_WIDTH_SEC(5)
DIM INTEGER CLK_POS_X(5)
DIM INTEGER CLK_POS_Y(5)
DIM INTEGER CLK_RADIUS(5)
DIM INTEGER CLK_REGION(5)
DIM INTEGER CLK_RING_BC(5)
DIM INTEGER CLK_RING_LW(5)
DIM INTEGER CLK_RING_RADIUS(5)
DIM INTEGER CLK_SCALE(5)
DIM INTEGER CLK_TEXT_COL(5)
DIM INTEGER CLK_TEXT_FONT(5)
DIM INTEGER CLK_TEXT_XOFF(5)
DIM INTEGER CLK_TEXT_YOFF(5)
DIM INTEGER CLK_UTC_OFFSET(5)
DIM INTEGER COUNT
LOCAL CLK_BASE_TIME$
LOCAL CLK_INIT_ACTION$
LOCAL FLOAT CLK_DEBUG
LOCAL FLOAT CLK_DEST
LOCAL FLOAT CLK_DRAW_SCALE
LOCAL FLOAT CLK_OBJECT
LOCAL FLOAT CLK_SOURCE


The command has the syntax:
VGAclocks(clk_object,clk_init_action$,clk_draw_scale,clk_source,clk_dest,clk_debug,clk_base_time$)

Draw:
VGAclocks(clk_object,"", clk_x_pos, clk_y_pos, clk_draw_scale,clk_base_time$, clk_debug)

targets for init_action$: INIT, SET_Timezone, SET_SIZE, SET_COLOUR

max objects are 30

object count starts from 1

parameters can be omitted except clk_object


I hope I got the parsing right as this work is directly published and not tested

Have fun

> list
Option explicit
Option console serial
VGAclocks(5,"INIT",,,,1)
VGAclocks(3,"SET_TIMEZONE",,10,,1)
MODE 3 : Font 1
FRAMEBUFFER create
FRAMEBUFFER write f
CLS RGB(white)
Dim integer count

Do
 For count = 1 To clk_amount

   VGAclocks(count,,,,,1) 'draw the clock, debug on
 Next count
 Print Timer
 Timer = 0
 FRAMEBUFFER copy f,n
 FRAMEBUFFER write f
 CLS RGB(white)
Loop

Edited 2025-04-12 01:23 by dddns