Subversion Repositories programming

Rev

Rev 309 | Rev 312 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
292 ira 1
/*******************************************************************************
310 ira 2
 * draw_test.c - a simple test of the draw library
292 ira 3
 *
4
 * Copyright (c) 2006, Ira W. Snyder (devel@irasnyder.com)
5
 ******************************************************************************/
6
 
290 ira 7
#include <stdio.h>
297 ira 8
#include <math.h>
9
 
292 ira 10
#include "draw.h"
290 ira 11
 
310 ira 12
void wait_for_newline ()
13
{
14
    char c;
15
 
16
    while ((c = getchar()) != '\n')
17
        usleep (10000);
18
}
19
 
290 ira 20
int main ()
21
{
291 ira 22
    int i;
310 ira 23
    int sinpos;
24
    const int strsiz = 100;
25
    char *tempstr;
291 ira 26
 
310 ira 27
    /* Initialize the draw library */
290 ira 28
    draw_init ();
310 ira 29
    tempstr = (char*) malloc (strsiz * sizeof(char));
290 ira 30
 
310 ira 31
    /* Testcase #1, a few boxes, a line, and a pixel */
292 ira 32
    draw_clearscreen ();
290 ira 33
    draw_putpixel (20, 20, RED);
34
    draw_box (50, 50, 100, 100, GREEN);
35
    draw_line (30, 20, 300, 180, BLUE);
36
    draw_box (100, 80, 100, 100, WHITE);
37
 
310 ira 38
    wait_for_newline ();
290 ira 39
 
310 ira 40
    /* Testcase #2, all of the possible colors */
292 ira 41
    draw_clearscreen ();
297 ira 42
 
43
    for (i=0; i<16; i++)
310 ira 44
    {
45
        draw_box (10, (i+1)*22, 20, 20, i);
297 ira 46
 
310 ira 47
        snprintf (tempstr, strsiz, "color: #%d", i);
48
        draw_puts (36, (i+1)*22+8, tempstr, WHITE);
49
    }
290 ira 50
 
310 ira 51
    wait_for_newline ();
52
 
53
    /* Testcase #3, draw the sin() function, labeling it as we go */
292 ira 54
    draw_clearscreen ();
291 ira 55
 
56
    for (i=0; i<800; i++)
57
    {
310 ira 58
        /* sin itself */
59
        sinpos = 400+(50.0 * sin (i / 50.0));
60
        draw_putpixel (i, sinpos, GREEN);
61
 
62
        /* labels */
63
        if (i % 100 == 0)
64
        {
65
            snprintf (tempstr, strsiz, "%d sec", i / 100);
66
            draw_puts (i, sinpos + 10, tempstr, WHITE);
67
            draw_line (i, sinpos, i, sinpos+8, WHITE);
68
        }
69
 
70
        /* slow it down */
291 ira 71
        usleep (10000);
72
    }
73
 
310 ira 74
    wait_for_newline ();
75
 
76
    /* Testcase #4, text output */
295 ira 77
    draw_clearscreen ();
78
 
310 ira 79
    draw_puts (0, 80, "Hello world!", WHITE);
80
    draw_puts (20, 100, "Some more test text", RED);
295 ira 81
 
310 ira 82
    wait_for_newline ();
295 ira 83
 
310 ira 84
    /* Cleanup */
290 ira 85
    draw_close ();
310 ira 86
    free (tempstr);
290 ira 87
 
88
    return (0);
89
}
292 ira 90