examples/shapes.c
1#include "alba.h"
2
3int main()
4{
5 AlbaWindowOptions options = {0};
6 options.clear_color.r = 0.02;
7 options.clear_color.g = 0.02;
8 options.clear_color.b = 0.02;
9 AlbaWindow* window = alba_create_window(&options);
10
11 const AlbaVector tri_vertices[] = {
12 100, 100,
13 100, 400,
14 200, 100,
15 //
16 300, 150,
17 150, 300
18 };
19 const AlbaAttribute attributes[] = {
20 {{1, 0, 0, 1}, {1, -1}},
21 {{0, 1, 0, 1}, {-1, -1}},
22 {{0, 0, 1, 1}, {-1, -1}},
23 {{1, 1, 1, 0.5}, {-1, -1}},
24 {{1, 1, 1, 0.2}, {-1, -1}},
25 };
26 uint32_t indices[] = {0, 1, 2, 0, 3, 4};
27 alba_draw_triangles_indexed(window, 5, tri_vertices, attributes, 6, indices);
28
29 const AlbaColor blue = {0, 0.4, 1, 1};
30 alba_draw_rect_aa(window, 350, 100, 500, 150, blue);
31
32 const AlbaVector rect_vertices[] = {350, 300, 500, 350, 450, 400, 300, 350};
33 alba_draw_quad(window, rect_vertices, blue);
34
35 alba_draw_regular_polygon(window, 5, 320, 240, 20, blue);
36 alba_draw_circle(window, 400, 240, 5, blue);
37 alba_draw_circle(window, 420, 240, 6, blue);
38 alba_draw_circle(window, 440, 240, 7, blue);
39 alba_draw_circle(window, 460, 240, 10, blue);
40 alba_draw_circle(window, 480, 240, 15, blue);
41 alba_draw_circle(window, 500, 240, 20, blue);
42 alba_draw_circle(window, 400, 640, 200, blue);
43
44 alba_draw_rounded_rect_aa(window, 350, 30, 500, 80, 10, blue);
45
46 while (!alba_window_should_close(window))
47 {
48 alba_window_render(window);
49 }
50
51 alba_window_release(window);
52 alba_release();
53}