Sat, 23 Aug 2025 21:01:41 +0200
move game over text to the UI scene
48 | 1 | /* |
2 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. | |
82
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
Mike Becker <universe@uap-core.de>
parents:
75
diff
changeset
|
3 | * Copyright 2025 Mike Becker. All rights reserved. |
48 | 4 | * |
5 | * Redistribution and use in source and binary forms, with or without | |
6 | * modification, are permitted provided that the following conditions are met: | |
7 | * | |
8 | * 1. Redistributions of source code must retain the above copyright | |
9 | * notice, this list of conditions and the following disclaimer. | |
10 | * | |
11 | * 2. Redistributions in binary form must reproduce the above copyright | |
12 | * notice, this list of conditions and the following disclaimer in the | |
13 | * documentation and/or other materials provided with the distribution. | |
14 | * | |
15 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |
16 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
17 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
18 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE | |
19 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
20 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
21 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
22 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
23 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
24 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |
25 | * POSSIBILITY OF SUCH DAMAGE. | |
26 | */ | |
27 | ||
82
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
Mike Becker <universe@uap-core.de>
parents:
75
diff
changeset
|
28 | #ifndef ASCENSION_2D_H |
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
Mike Becker <universe@uap-core.de>
parents:
75
diff
changeset
|
29 | #define ASCENSION_2D_H |
48 | 30 | |
151
42960d0c879b
adds first basic rectangle shader
Mike Becker <universe@uap-core.de>
parents:
143
diff
changeset
|
31 | #include "scene_node.h" |
42960d0c879b
adds first basic rectangle shader
Mike Becker <universe@uap-core.de>
parents:
143
diff
changeset
|
32 | #include "mesh.h" |
42960d0c879b
adds first basic rectangle shader
Mike Becker <universe@uap-core.de>
parents:
143
diff
changeset
|
33 | |
42960d0c879b
adds first basic rectangle shader
Mike Becker <universe@uap-core.de>
parents:
143
diff
changeset
|
34 | typedef struct asc_rectangle_s { |
42960d0c879b
adds first basic rectangle shader
Mike Becker <universe@uap-core.de>
parents:
143
diff
changeset
|
35 | AscSceneNode node; |
42960d0c879b
adds first basic rectangle shader
Mike Becker <universe@uap-core.de>
parents:
143
diff
changeset
|
36 | AscMesh mesh; |
256
60014484121c
remove the asc_col4i datatype in favor of a unified asc_color type
Mike Becker <universe@uap-core.de>
parents:
252
diff
changeset
|
37 | asc_color color; |
60014484121c
remove the asc_col4i datatype in favor of a unified asc_color type
Mike Becker <universe@uap-core.de>
parents:
252
diff
changeset
|
38 | asc_color border_color; |
167
8e6a661c87db
add functions to upload common uniforms
Mike Becker <universe@uap-core.de>
parents:
159
diff
changeset
|
39 | asc_vec2f size; |
158
f650994ec543
implement rounded corners
Mike Becker <universe@uap-core.de>
parents:
151
diff
changeset
|
40 | float radius; |
f650994ec543
implement rounded corners
Mike Becker <universe@uap-core.de>
parents:
151
diff
changeset
|
41 | float thickness; |
159
da7ebfcdd159
add combination of filled rectangle with a border
Mike Becker <universe@uap-core.de>
parents:
158
diff
changeset
|
42 | bool filled; |
151
42960d0c879b
adds first basic rectangle shader
Mike Becker <universe@uap-core.de>
parents:
143
diff
changeset
|
43 | } AscRectangle; |
42960d0c879b
adds first basic rectangle shader
Mike Becker <universe@uap-core.de>
parents:
143
diff
changeset
|
44 | |
42960d0c879b
adds first basic rectangle shader
Mike Becker <universe@uap-core.de>
parents:
143
diff
changeset
|
45 | struct asc_rectangle_create_args { |
252
42e8695372f7
add missing documentation for some rectangle creation parameters
Mike Becker <universe@uap-core.de>
parents:
250
diff
changeset
|
46 | /** |
42e8695372f7
add missing documentation for some rectangle creation parameters
Mike Becker <universe@uap-core.de>
parents:
250
diff
changeset
|
47 | * X-coordinate of the rectangle's origin. |
42e8695372f7
add missing documentation for some rectangle creation parameters
Mike Becker <universe@uap-core.de>
parents:
250
diff
changeset
|
48 | * When no alternate point of origin is specified, the (x,y) belongs to the top-left corner. |
42e8695372f7
add missing documentation for some rectangle creation parameters
Mike Becker <universe@uap-core.de>
parents:
250
diff
changeset
|
49 | */ |
151
42960d0c879b
adds first basic rectangle shader
Mike Becker <universe@uap-core.de>
parents:
143
diff
changeset
|
50 | int x; |
252
42e8695372f7
add missing documentation for some rectangle creation parameters
Mike Becker <universe@uap-core.de>
parents:
250
diff
changeset
|
51 | /** |
42e8695372f7
add missing documentation for some rectangle creation parameters
Mike Becker <universe@uap-core.de>
parents:
250
diff
changeset
|
52 | * Y-coordinate of the rectangle's origin. |
42e8695372f7
add missing documentation for some rectangle creation parameters
Mike Becker <universe@uap-core.de>
parents:
250
diff
changeset
|
53 | * When no alternate point of origin is specified, the (x,y) belongs to the top-left corner. |
42e8695372f7
add missing documentation for some rectangle creation parameters
Mike Becker <universe@uap-core.de>
parents:
250
diff
changeset
|
54 | */ |
151
42960d0c879b
adds first basic rectangle shader
Mike Becker <universe@uap-core.de>
parents:
143
diff
changeset
|
55 | int y; |
252
42e8695372f7
add missing documentation for some rectangle creation parameters
Mike Becker <universe@uap-core.de>
parents:
250
diff
changeset
|
56 | /** |
42e8695372f7
add missing documentation for some rectangle creation parameters
Mike Becker <universe@uap-core.de>
parents:
250
diff
changeset
|
57 | * X-offset for the point of origin in rectangle coordinates. |
42e8695372f7
add missing documentation for some rectangle creation parameters
Mike Becker <universe@uap-core.de>
parents:
250
diff
changeset
|
58 | * Zero means the left edge and the rectangle's width means the right edge. |
42e8695372f7
add missing documentation for some rectangle creation parameters
Mike Becker <universe@uap-core.de>
parents:
250
diff
changeset
|
59 | * The origin may lie outside the rectangle's bounds. |
42e8695372f7
add missing documentation for some rectangle creation parameters
Mike Becker <universe@uap-core.de>
parents:
250
diff
changeset
|
60 | */ |
215
a7c8e1727971
use new point-of-origin for 2d primitives
Mike Becker <universe@uap-core.de>
parents:
214
diff
changeset
|
61 | int origin_x; |
252
42e8695372f7
add missing documentation for some rectangle creation parameters
Mike Becker <universe@uap-core.de>
parents:
250
diff
changeset
|
62 | /** |
42e8695372f7
add missing documentation for some rectangle creation parameters
Mike Becker <universe@uap-core.de>
parents:
250
diff
changeset
|
63 | * Y-offset for the point of origin in rectangle coordinates. |
42e8695372f7
add missing documentation for some rectangle creation parameters
Mike Becker <universe@uap-core.de>
parents:
250
diff
changeset
|
64 | * Zero means the top edge and the rectangle's height means the bottom edge. |
42e8695372f7
add missing documentation for some rectangle creation parameters
Mike Becker <universe@uap-core.de>
parents:
250
diff
changeset
|
65 | * The origin may lie outside the rectangle's bounds. |
42e8695372f7
add missing documentation for some rectangle creation parameters
Mike Becker <universe@uap-core.de>
parents:
250
diff
changeset
|
66 | */ |
215
a7c8e1727971
use new point-of-origin for 2d primitives
Mike Becker <universe@uap-core.de>
parents:
214
diff
changeset
|
67 | int origin_y; |
252
42e8695372f7
add missing documentation for some rectangle creation parameters
Mike Becker <universe@uap-core.de>
parents:
250
diff
changeset
|
68 | /** |
42e8695372f7
add missing documentation for some rectangle creation parameters
Mike Becker <universe@uap-core.de>
parents:
250
diff
changeset
|
69 | * The horizontal length of the rectangle. |
42e8695372f7
add missing documentation for some rectangle creation parameters
Mike Becker <universe@uap-core.de>
parents:
250
diff
changeset
|
70 | */ |
151
42960d0c879b
adds first basic rectangle shader
Mike Becker <universe@uap-core.de>
parents:
143
diff
changeset
|
71 | unsigned int width; |
252
42e8695372f7
add missing documentation for some rectangle creation parameters
Mike Becker <universe@uap-core.de>
parents:
250
diff
changeset
|
72 | /** |
42e8695372f7
add missing documentation for some rectangle creation parameters
Mike Becker <universe@uap-core.de>
parents:
250
diff
changeset
|
73 | * The vertical length of the rectangle. |
42e8695372f7
add missing documentation for some rectangle creation parameters
Mike Becker <universe@uap-core.de>
parents:
250
diff
changeset
|
74 | */ |
151
42960d0c879b
adds first basic rectangle shader
Mike Becker <universe@uap-core.de>
parents:
143
diff
changeset
|
75 | unsigned int height; |
158
f650994ec543
implement rounded corners
Mike Becker <universe@uap-core.de>
parents:
151
diff
changeset
|
76 | /** |
f650994ec543
implement rounded corners
Mike Becker <universe@uap-core.de>
parents:
151
diff
changeset
|
77 | * Corner radius. |
f650994ec543
implement rounded corners
Mike Becker <universe@uap-core.de>
parents:
151
diff
changeset
|
78 | */ |
f650994ec543
implement rounded corners
Mike Becker <universe@uap-core.de>
parents:
151
diff
changeset
|
79 | unsigned int radius; |
f650994ec543
implement rounded corners
Mike Becker <universe@uap-core.de>
parents:
151
diff
changeset
|
80 | /** |
f650994ec543
implement rounded corners
Mike Becker <universe@uap-core.de>
parents:
151
diff
changeset
|
81 | * Border thickness |
f650994ec543
implement rounded corners
Mike Becker <universe@uap-core.de>
parents:
151
diff
changeset
|
82 | */ |
f650994ec543
implement rounded corners
Mike Becker <universe@uap-core.de>
parents:
151
diff
changeset
|
83 | unsigned int thickness; |
159
da7ebfcdd159
add combination of filled rectangle with a border
Mike Becker <universe@uap-core.de>
parents:
158
diff
changeset
|
84 | /** |
214
9d460888a83e
remove global active font and color (also fixes #693)
Mike Becker <universe@uap-core.de>
parents:
186
diff
changeset
|
85 | * The main color to use. |
9d460888a83e
remove global active font and color (also fixes #693)
Mike Becker <universe@uap-core.de>
parents:
186
diff
changeset
|
86 | * If filled is true, this is the fill color. |
9d460888a83e
remove global active font and color (also fixes #693)
Mike Becker <universe@uap-core.de>
parents:
186
diff
changeset
|
87 | * If filled is false, and no border_color is specified, this is used as border color. |
9d460888a83e
remove global active font and color (also fixes #693)
Mike Becker <universe@uap-core.de>
parents:
186
diff
changeset
|
88 | */ |
256
60014484121c
remove the asc_col4i datatype in favor of a unified asc_color type
Mike Becker <universe@uap-core.de>
parents:
252
diff
changeset
|
89 | asc_color color; |
214
9d460888a83e
remove global active font and color (also fixes #693)
Mike Becker <universe@uap-core.de>
parents:
186
diff
changeset
|
90 | /** |
171
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
91 | * Border color to be used when thickness is larger than zero and filled is true. |
159
da7ebfcdd159
add combination of filled rectangle with a border
Mike Becker <universe@uap-core.de>
parents:
158
diff
changeset
|
92 | */ |
256
60014484121c
remove the asc_col4i datatype in favor of a unified asc_color type
Mike Becker <universe@uap-core.de>
parents:
252
diff
changeset
|
93 | asc_color border_color; |
159
da7ebfcdd159
add combination of filled rectangle with a border
Mike Becker <universe@uap-core.de>
parents:
158
diff
changeset
|
94 | /** |
214
9d460888a83e
remove global active font and color (also fixes #693)
Mike Becker <universe@uap-core.de>
parents:
186
diff
changeset
|
95 | * If true, the rectangle will be filled with the specified color. |
171
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
96 | * If the thickness is larger than zero, an outline border with that thickness is drawn |
159
da7ebfcdd159
add combination of filled rectangle with a border
Mike Becker <universe@uap-core.de>
parents:
158
diff
changeset
|
97 | * using the border_color. |
da7ebfcdd159
add combination of filled rectangle with a border
Mike Becker <universe@uap-core.de>
parents:
158
diff
changeset
|
98 | */ |
151
42960d0c879b
adds first basic rectangle shader
Mike Becker <universe@uap-core.de>
parents:
143
diff
changeset
|
99 | bool filled; |
42960d0c879b
adds first basic rectangle shader
Mike Becker <universe@uap-core.de>
parents:
143
diff
changeset
|
100 | }; |
42960d0c879b
adds first basic rectangle shader
Mike Becker <universe@uap-core.de>
parents:
143
diff
changeset
|
101 | |
42960d0c879b
adds first basic rectangle shader
Mike Becker <universe@uap-core.de>
parents:
143
diff
changeset
|
102 | AscSceneNode *asc_rectangle_create(struct asc_rectangle_create_args args); |
42960d0c879b
adds first basic rectangle shader
Mike Becker <universe@uap-core.de>
parents:
143
diff
changeset
|
103 | |
42960d0c879b
adds first basic rectangle shader
Mike Becker <universe@uap-core.de>
parents:
143
diff
changeset
|
104 | #define asc_rectangle(...) asc_rectangle_create((struct asc_rectangle_create_args) { __VA_ARGS__ }) |
56
428fbb8355eb
add convenience function to add nodes to the UI of the active window
Mike Becker <universe@uap-core.de>
parents:
48
diff
changeset
|
105 | |
244
ceab8a9f0366
add a frame to the main scene + implement the necessary asc_rectangle_set_bounds() function
Mike Becker <universe@uap-core.de>
parents:
215
diff
changeset
|
106 | /** |
ceab8a9f0366
add a frame to the main scene + implement the necessary asc_rectangle_set_bounds() function
Mike Becker <universe@uap-core.de>
parents:
215
diff
changeset
|
107 | * Sets new bounds of the rectangle. |
ceab8a9f0366
add a frame to the main scene + implement the necessary asc_rectangle_set_bounds() function
Mike Becker <universe@uap-core.de>
parents:
215
diff
changeset
|
108 | * |
ceab8a9f0366
add a frame to the main scene + implement the necessary asc_rectangle_set_bounds() function
Mike Becker <universe@uap-core.de>
parents:
215
diff
changeset
|
109 | * Triggers a mesh-recalculation only if the new bounds are unequal to the current bounds. |
ceab8a9f0366
add a frame to the main scene + implement the necessary asc_rectangle_set_bounds() function
Mike Becker <universe@uap-core.de>
parents:
215
diff
changeset
|
110 | * |
ceab8a9f0366
add a frame to the main scene + implement the necessary asc_rectangle_set_bounds() function
Mike Becker <universe@uap-core.de>
parents:
215
diff
changeset
|
111 | * @param rect the rectangle |
ceab8a9f0366
add a frame to the main scene + implement the necessary asc_rectangle_set_bounds() function
Mike Becker <universe@uap-core.de>
parents:
215
diff
changeset
|
112 | * @param bounds the new bounds of the rectangle |
ceab8a9f0366
add a frame to the main scene + implement the necessary asc_rectangle_set_bounds() function
Mike Becker <universe@uap-core.de>
parents:
215
diff
changeset
|
113 | */ |
ceab8a9f0366
add a frame to the main scene + implement the necessary asc_rectangle_set_bounds() function
Mike Becker <universe@uap-core.de>
parents:
215
diff
changeset
|
114 | void asc_rectangle_set_bounds(AscRectangle *rect, asc_rect bounds); |
ceab8a9f0366
add a frame to the main scene + implement the necessary asc_rectangle_set_bounds() function
Mike Becker <universe@uap-core.de>
parents:
215
diff
changeset
|
115 | |
ceab8a9f0366
add a frame to the main scene + implement the necessary asc_rectangle_set_bounds() function
Mike Becker <universe@uap-core.de>
parents:
215
diff
changeset
|
116 | |
173
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
117 | typedef struct asc_ellipsis_s { |
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
118 | AscSceneNode node; |
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
119 | AscMesh mesh; |
256
60014484121c
remove the asc_col4i datatype in favor of a unified asc_color type
Mike Becker <universe@uap-core.de>
parents:
252
diff
changeset
|
120 | asc_color color; |
60014484121c
remove the asc_col4i datatype in favor of a unified asc_color type
Mike Becker <universe@uap-core.de>
parents:
252
diff
changeset
|
121 | asc_color border_color; |
173
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
122 | asc_vec2f radii; |
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
123 | float thickness; |
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
124 | bool filled; |
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
125 | } AscEllipsis; |
171
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
126 | |
172 | 127 | struct asc_ellipsis_create_args { |
173
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
128 | /** |
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
129 | * The bounds of the ellipsis. |
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
130 | * Preferred over all other settings. |
215
a7c8e1727971
use new point-of-origin for 2d primitives
Mike Becker <universe@uap-core.de>
parents:
214
diff
changeset
|
131 | * When you specify bounds, you cannot specify a center and radii. |
a7c8e1727971
use new point-of-origin for 2d primitives
Mike Becker <universe@uap-core.de>
parents:
214
diff
changeset
|
132 | * The origin point will be the center of the rectangle. |
173
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
133 | */ |
186
e9bb4d4f88a8
rename asc_recti to just asc_rect (there won't be an asc_rectu)
Mike Becker <universe@uap-core.de>
parents:
173
diff
changeset
|
134 | asc_rect bounds; |
173
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
135 | /** |
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
136 | * The center point of the ellipsis. |
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
137 | * Preferred over x and y. |
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
138 | */ |
171
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
139 | asc_vec2i center; |
173
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
140 | /** |
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
141 | * The x coordinate of the center, if center is not specified. |
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
142 | */ |
171
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
143 | int x; |
173
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
144 | /** |
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
145 | * The y coordinate of the center, if center is not specified. |
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
146 | */ |
171
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
147 | int y; |
173
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
148 | /** |
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
149 | * The radius in both directions (use for circles). |
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
150 | */ |
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
151 | unsigned int radius; |
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
152 | /** |
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
153 | * The radius in x-direction. |
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
154 | */ |
171
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
155 | unsigned int radius_x; |
173
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
156 | /** |
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
157 | * The radius in y-direction. |
bd57fe3f6360
add ellipsis shader - resolves #385
Mike Becker <universe@uap-core.de>
parents:
172
diff
changeset
|
158 | */ |
171
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
159 | unsigned int radius_y; |
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
160 | /** |
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
161 | * Border thickness |
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
162 | */ |
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
163 | unsigned int thickness; |
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
164 | /** |
214
9d460888a83e
remove global active font and color (also fixes #693)
Mike Becker <universe@uap-core.de>
parents:
186
diff
changeset
|
165 | * The main color to use. |
9d460888a83e
remove global active font and color (also fixes #693)
Mike Becker <universe@uap-core.de>
parents:
186
diff
changeset
|
166 | * If filled is true, this is the fill color. |
9d460888a83e
remove global active font and color (also fixes #693)
Mike Becker <universe@uap-core.de>
parents:
186
diff
changeset
|
167 | * If filled is false, and no border_color is specified, this is used as border color. |
9d460888a83e
remove global active font and color (also fixes #693)
Mike Becker <universe@uap-core.de>
parents:
186
diff
changeset
|
168 | */ |
256
60014484121c
remove the asc_col4i datatype in favor of a unified asc_color type
Mike Becker <universe@uap-core.de>
parents:
252
diff
changeset
|
169 | asc_color color; |
214
9d460888a83e
remove global active font and color (also fixes #693)
Mike Becker <universe@uap-core.de>
parents:
186
diff
changeset
|
170 | /** |
171
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
171 | * Border color to be used when thickness is larger than zero and filled is true. |
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
172 | */ |
256
60014484121c
remove the asc_col4i datatype in favor of a unified asc_color type
Mike Becker <universe@uap-core.de>
parents:
252
diff
changeset
|
173 | asc_color border_color; |
171
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
174 | /** |
214
9d460888a83e
remove global active font and color (also fixes #693)
Mike Becker <universe@uap-core.de>
parents:
186
diff
changeset
|
175 | * If true, the ellipsis will be filled with the specified color. |
171
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
176 | * If the thickness is larger than zero, an outline border with that thickness is drawn |
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
177 | * using the border_color. |
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
178 | */ |
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
179 | bool filled; |
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
180 | }; |
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
181 | |
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
182 | AscSceneNode *asc_ellipsis_create(struct asc_ellipsis_create_args args); |
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
183 | |
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
184 | #define asc_ellipsis(...) asc_ellipsis_create((struct asc_ellipsis_create_args) { __VA_ARGS__ }) |
7748713bb604
create prototype for creating ellipsis
Mike Becker <universe@uap-core.de>
parents:
167
diff
changeset
|
185 | |
82
4e1e698f4b0d
add generic mesh draw function and move sprite draw function to separate unit
Mike Becker <universe@uap-core.de>
parents:
75
diff
changeset
|
186 | #endif /* ASCENSION_2D_H */ |
48 | 187 |