GCC Code Coverage Report


Directory: source/
File: source/utils/ecs_graphics.c
Date: 2023-12-18 09:27:49
Exec Total Coverage
Lines: 25 65 38.5%
Branches: 8 36 22.2%

Line Branch Exec Source
1 /*
2 * Filename: ecs_graphics.c
3 * Path: sources/utils
4 * Created Date: Saturday, September 30th 2023, 5:01:43 pm
5 * Author: osvegn
6 *
7 * Copyright (c) 2023 ECS
8 */
9
10 #include "utils/ecs_graphics.h"
11 #include <stdlib.h>
12 #include <string.h>
13
14 2 int set_shape_color(shape_t *shape, ecs_color_t *color, shape_color_t type)
15 {
16
2/4
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
2 if (!shape || !color)
17 return -1;
18 2 shape->color[type] = *color;
19 2 return 0;
20 }
21
22 1 ecs_color_t *get_shape_color(shape_t *shape, shape_color_t type)
23 {
24
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 if (!shape)
25 return 0;
26 1 return &shape->color[type];
27 }
28
29 2 int set_shape_thickness(shape_t *shape, float value)
30 {
31
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
2 if (!shape)
32 return -1;
33 2 shape->thickness = value;
34 2 return 0;
35 }
36
37 1 float get_shape_thickness(shape_t *shape)
38 {
39
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 if (!shape)
40 return -1;
41 1 return shape->thickness;
42 }
43
44 int set_shape_is_filled(shape_t *shape, bool value)
45 {
46 if (!shape)
47 return -1;
48 shape->is_filled = value;
49 return 0;
50 }
51
52 bool get_shape_is_filled(shape_t *shape)
53 {
54 return shape->is_filled;
55 }
56
57 6 int shape_constructor(shape_t *shape, int point_number)
58 {
59
2/2
✓ Branch 0 taken 12 times.
✓ Branch 1 taken 6 times.
18 for (unsigned int i = 0; i < MAX; i++) {
60 12 shape->color[i] = (ecs_color_t){0, 0, 0, 0};
61 }
62 6 shape->texture_filename = 0;
63 6 shape->thickness = 1.0f;
64 6 shape->is_filled = true;
65 6 return vector_constructor(&shape->points, sizeof(ecs_vector2f_t), point_number);
66 }
67
68 5 int shape_destructor(shape_t *shape)
69 {
70 5 shape->points.destructor(&shape->points);
71
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 5 times.
5 if (shape->texture_filename)
72 free(shape->texture_filename);
73 5 return 0;
74 }
75
76 int set_shape_points(shape_t *shape, vector_t *points)
77 {
78 if (!shape || !points)
79 return -1;
80 shape->points = *points;
81 return 0;
82 }
83
84 int set_shape_point(shape_t *shape, ecs_vector2f_t *point, int index)
85 {
86 if (!shape || !point)
87 return -1;
88 shape->points.emplace(&shape->points, point, index);
89 return 0;
90 }
91
92 int set_texture_filename(shape_t *shape, char *filename)
93 {
94 if (!shape || !filename)
95 return -1;
96 shape->texture_filename = strdup(filename);
97 return 0;
98 }
99
100 char *get_texture_filename(shape_t *shape)
101 {
102 if (!shape)
103 return 0;
104 return shape->texture_filename;
105 }
106
107 int set_texture(shape_t *shape, void *texture)
108 {
109 if (!shape || !texture)
110 return -1;
111 shape->texture = texture;
112 return 0;
113 }
114
115 void *get_texture(shape_t *shape)
116 {
117 if (!shape)
118 return 0;
119 return shape->texture;
120 }
121