Mercurial > public > algo-animator
annotate main.c @ 4:035d3880da04
render text with number of elements on screen
author | Dennis C. M. <dennis@denniscm.com> |
---|---|
date | Mon, 12 Jun 2023 23:10:08 +0100 |
parents | e4003f606e07 |
children | 6be2faa7ed6e |
rev | line source |
---|---|
4
035d3880da04
render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
3
diff
changeset
|
1 #include "utils.h" |
0 | 2 |
3 | |
4 #define HEIGHT 1080 | |
5 #define WIDTH 1920 | |
6 | |
7 | |
8 void setup() { | |
2
ea3c427d922d
draw a weird filled rectangle
Dennis C. M. <dennis@denniscm.com>
parents:
0
diff
changeset
|
9 |
0 | 10 // Set background dark |
11 glClearColor(0.0, 0.0, 0.0, 1.0); | |
12 | |
13 // Set point color and size to 1 pixel | |
14 glColor3f(0.0, 1.0, 0.0); | |
15 glPointSize(5.0); | |
16 | |
17 // Matrix projection and reset with identity | |
18 glMatrixMode(GL_PROJECTION); | |
19 glLoadIdentity(); | |
2
ea3c427d922d
draw a weird filled rectangle
Dennis C. M. <dennis@denniscm.com>
parents:
0
diff
changeset
|
20 |
0 | 21 // Set the coordinates to be used with the viewport |
3
e4003f606e07
draw multiple rectangles with loop
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
22 gluOrtho2D(0, WIDTH, HEIGHT, 0); |
0 | 23 } |
24 | |
25 | |
26 void display() { | |
27 glClear(GL_COLOR_BUFFER_BIT); | |
3
e4003f606e07
draw multiple rectangles with loop
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
28 glBegin(GL_QUADS); |
e4003f606e07
draw multiple rectangles with loop
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
29 |
4
035d3880da04
render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
3
diff
changeset
|
30 float x = 1; |
3
e4003f606e07
draw multiple rectangles with loop
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
31 float rect_width = 5.0; |
4
035d3880da04
render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
3
diff
changeset
|
32 float space = 5.0; |
035d3880da04
render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
3
diff
changeset
|
33 int max_rects = floor((WIDTH - rect_width) / (rect_width + space)) + x; |
035d3880da04
render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
3
diff
changeset
|
34 |
035d3880da04
render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
3
diff
changeset
|
35 int rect_counter = 0; |
035d3880da04
render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
3
diff
changeset
|
36 while (rect_counter < max_rects) { |
035d3880da04
render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
3
diff
changeset
|
37 glVertex2f(x, 100.0); |
035d3880da04
render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
3
diff
changeset
|
38 glVertex2f(x + rect_width, 100.0); |
035d3880da04
render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
3
diff
changeset
|
39 glVertex2f(x + rect_width, HEIGHT - 300); |
035d3880da04
render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
3
diff
changeset
|
40 glVertex2d(x, HEIGHT - 300); |
3
e4003f606e07
draw multiple rectangles with loop
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
41 |
4
035d3880da04
render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
3
diff
changeset
|
42 x += rect_width + space; |
035d3880da04
render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
3
diff
changeset
|
43 rect_counter++; |
3
e4003f606e07
draw multiple rectangles with loop
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
44 } |
e4003f606e07
draw multiple rectangles with loop
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
45 |
e4003f606e07
draw multiple rectangles with loop
Dennis C. M. <dennis@denniscm.com>
parents:
2
diff
changeset
|
46 glEnd(); |
4
035d3880da04
render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
3
diff
changeset
|
47 |
035d3880da04
render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
3
diff
changeset
|
48 char text[256]; |
035d3880da04
render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
3
diff
changeset
|
49 sprintf(text, "Number of elements: %i", rect_counter); |
035d3880da04
render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
3
diff
changeset
|
50 render_text(text, 20.0, HEIGHT - 200); |
0 | 51 glFlush(); |
52 } | |
53 | |
54 | |
55 int main(int argc, char** argv) { | |
56 glutInit(&argc, argv); | |
57 glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); | |
58 glutInitWindowSize(WIDTH, HEIGHT); | |
59 glutCreateWindow("OpenGL Window"); | |
60 setup(); | |
61 glutDisplayFunc(display); | |
62 glutMainLoop(); | |
63 | |
64 return 0; | |
65 } |