Subversion Repositories programming

Rev

Rev 309 | Rev 312 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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