Subversion Repositories programming

Rev

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