Mercurial > molko
annotate libmlk-core/mlk/core/painter.h @ 584:f2737a931658
cmake: start installing
author | David Demelier <markand@malikania.fr> |
---|---|
date | Sat, 18 Mar 2023 10:57:29 +0100 |
parents | d307f93d79af |
children |
rev | line source |
---|---|
28
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * painter.h -- basic drawing routines |
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
445
773a082f0b91
misc: update copyright years
David Demelier <markand@malikania.fr>
parents:
431
diff
changeset
|
4 * Copyright (c) 2020-2023 David Demelier <markand@malikania.fr> |
28
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * |
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * |
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 */ |
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
366
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
320
diff
changeset
|
19 #ifndef MLK_CORE_PAINTER_H |
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
320
diff
changeset
|
20 #define MLK_CORE_PAINTER_H |
28
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 |
566
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
22 /** |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
23 * \file painter.h |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
24 * \brief Basic drawing routines |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
25 * |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
26 * Primitive drawing routines. |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
27 * |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
28 * Drawing using this module operates on a texture which can be the window |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
29 * itself or a custom off-screen texture. To select a texture use |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
30 * ::mlk_painter_set_target with a texture, to resume drawing to the window |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
31 * pass NULL as argument. |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
32 * |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
33 * The convenient macros ::MLK_PAINTER_BEGIN and ::MLK_PAINTER_END can be used |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
34 * to create a scoped block for a given texture and switch back to the previous |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
35 * one. |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
36 * |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
37 * ## Drawing in the main loop |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
38 * |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
39 * In your game loop, you should always clear, draw and present the screen in |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
40 * this order. |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
41 * |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
42 * ```c |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
43 * mlk_painter_set_color(0x00000000); |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
44 * mlk_painter_clear(); |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
45 * // use your favorite draw functions. |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
46 * mlk_painter_present(); |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
47 * ``` |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
48 * |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
49 * ## Switching between textures |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
50 * |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
51 * This example demonstrates how to draw to a texture and back to the screen. |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
52 * |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
53 * ```c |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
54 * struct mlk_texture texture; |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
55 * |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
56 * mlk_texture_new(&texture, 100, 100); |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
57 * |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
58 * // Switch to this texture for next rendering functions. |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
59 * MLK_PAINTER_BEGIN(&texture); |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
60 * mlk_painter_set_color(0xffffffff); |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
61 * mlk_painter_clear(); |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
62 * mlk_painter_set_color(0xff00ffff); |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
63 * mlk_painter_draw_rectangle(10, 10, 80, 80); |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
64 * MLK_PAINTER_END(); |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
65 * |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
66 * // Now, drawing this texture is done on the last texture target. |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
67 * mlk_texture_draw(&texture, 10, 10); |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
68 * ``` |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
69 */ |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
70 |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
71 /** |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
72 * Store the current texture in a temporary variable and switch to the |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
73 * rendering target provided as argument. |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
74 * |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
75 * \param tex the texture to use |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
76 */ |
517
6e8f6640e05b
misc: use extern C manually
David Demelier <markand@malikania.fr>
parents:
472
diff
changeset
|
77 #define MLK_PAINTER_BEGIN(tex) \ |
6e8f6640e05b
misc: use extern C manually
David Demelier <markand@malikania.fr>
parents:
472
diff
changeset
|
78 do { \ |
6e8f6640e05b
misc: use extern C manually
David Demelier <markand@malikania.fr>
parents:
472
diff
changeset
|
79 struct mlk_texture *__current_texture__; \ |
6e8f6640e05b
misc: use extern C manually
David Demelier <markand@malikania.fr>
parents:
472
diff
changeset
|
80 \ |
6e8f6640e05b
misc: use extern C manually
David Demelier <markand@malikania.fr>
parents:
472
diff
changeset
|
81 __current_texture__ = mlk_painter_get_target(); \ |
6e8f6640e05b
misc: use extern C manually
David Demelier <markand@malikania.fr>
parents:
472
diff
changeset
|
82 mlk_painter_set_target((tex)) |
6e8f6640e05b
misc: use extern C manually
David Demelier <markand@malikania.fr>
parents:
472
diff
changeset
|
83 |
566
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
84 /** |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
85 * Pop the current rendering texture and restore the previous one. |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
86 */ |
517
6e8f6640e05b
misc: use extern C manually
David Demelier <markand@malikania.fr>
parents:
472
diff
changeset
|
87 #define MLK_PAINTER_END() \ |
6e8f6640e05b
misc: use extern C manually
David Demelier <markand@malikania.fr>
parents:
472
diff
changeset
|
88 mlk_painter_set_target(__current_texture__); \ |
6e8f6640e05b
misc: use extern C manually
David Demelier <markand@malikania.fr>
parents:
472
diff
changeset
|
89 } while (0) |
292
08ab73b32832
misc: add extern "C" {} blocks for C++ friends
David Demelier <markand@malikania.fr>
parents:
253
diff
changeset
|
90 |
472
bc5483849614
core: texture -> mlk_texture
David Demelier <markand@malikania.fr>
parents:
462
diff
changeset
|
91 struct mlk_texture; |
28
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 |
517
6e8f6640e05b
misc: use extern C manually
David Demelier <markand@malikania.fr>
parents:
472
diff
changeset
|
93 #if defined(__cplusplus) |
6e8f6640e05b
misc: use extern C manually
David Demelier <markand@malikania.fr>
parents:
472
diff
changeset
|
94 extern "C" { |
6e8f6640e05b
misc: use extern C manually
David Demelier <markand@malikania.fr>
parents:
472
diff
changeset
|
95 #endif |
292
08ab73b32832
misc: add extern "C" {} blocks for C++ friends
David Demelier <markand@malikania.fr>
parents:
253
diff
changeset
|
96 |
566
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
97 /** |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
98 * Get the current rendering texture target. |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
99 * |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
100 * \return the current target (or NULL in case of direct window rendering) |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
101 */ |
472
bc5483849614
core: texture -> mlk_texture
David Demelier <markand@malikania.fr>
parents:
462
diff
changeset
|
102 struct mlk_texture * |
457
04797b35565c
core: painter -> mlk_painter
David Demelier <markand@malikania.fr>
parents:
445
diff
changeset
|
103 mlk_painter_get_target(void); |
41
3996f873a54b
core: implement walksprite, closes #2455
David Demelier <markand@malikania.fr>
parents:
28
diff
changeset
|
104 |
566
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
105 /** |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
106 * Change the rendering target. |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
107 * |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
108 * \param texture the texture (or NULL for rendering to the window) |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
109 */ |
28
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
110 void |
566
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
111 mlk_painter_set_target(struct mlk_texture *texture); |
28
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
112 |
566
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
113 /** |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
114 * Get the current rendering color. |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
115 * |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
116 * \return the color |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
117 */ |
46
b815621df3e3
core: remove all fixed width integers, closes #2460
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
118 unsigned long |
457
04797b35565c
core: painter -> mlk_painter
David Demelier <markand@malikania.fr>
parents:
445
diff
changeset
|
119 mlk_painter_get_color(void); |
28
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
120 |
566
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
121 /** |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
122 * Set the rendering color. |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
123 * |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
124 * \param color the color |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
125 */ |
28
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
126 void |
566
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
127 mlk_painter_set_color(unsigned long color); |
28
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
128 |
566
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
129 /** |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
130 * Draw a line. |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
131 * |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
132 * \param x1 start x coordinate |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
133 * \param y1 start y coordinate |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
134 * \param x2 end x coordinate |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
135 * \param y2 end y coordinate |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
136 */ |
28
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
137 void |
566
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
138 mlk_painter_draw_line(int x1, int y1, int x2, int y2); |
28
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
139 |
566
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
140 /** |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
141 * Draw a unique point. |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
142 * |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
143 * \param x the x coordinate |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
144 * \param y the y coordinate |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
145 */ |
28
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
146 void |
566
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
147 mlk_painter_draw_point(int x, int y); |
28
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
148 |
566
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
149 /** |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
150 * Draw a rectangle. |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
151 * |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
152 * \param x the x coordinate |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
153 * \param y the y coordinate |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
154 * \param w rectangle width |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
155 * \param h rectangle height |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
156 */ |
28
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
157 void |
566
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
158 mlk_painter_draw_rectangle(int x, int y, unsigned int w, unsigned int h); |
28
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
159 |
566
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
160 /** |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
161 * Draw a circle. |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
162 * |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
163 * \param x the x coordinate |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
164 * \param y the y coordinate |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
165 * \param radius circle radius |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
166 */ |
106
ed1a6bb02a78
inventory_dialog: use a small circle as test
David Demelier <markand@malikania.fr>
parents:
96
diff
changeset
|
167 void |
566
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
168 mlk_painter_draw_circle(int x, int y, int radius); |
106
ed1a6bb02a78
inventory_dialog: use a small circle as test
David Demelier <markand@malikania.fr>
parents:
96
diff
changeset
|
169 |
566
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
170 /** |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
171 * Clear the texture with the current rendering color. |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
172 */ |
28
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
173 void |
457
04797b35565c
core: painter -> mlk_painter
David Demelier <markand@malikania.fr>
parents:
445
diff
changeset
|
174 mlk_painter_clear(void); |
28
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
175 |
566
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
176 /** |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
177 * Present the rendering context. |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
178 * |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
179 * \note This function should be called only once in your main loop. |
d307f93d79af
core: doxygenize painter
David Demelier <markand@malikania.fr>
parents:
517
diff
changeset
|
180 */ |
28
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
181 void |
457
04797b35565c
core: painter -> mlk_painter
David Demelier <markand@malikania.fr>
parents:
445
diff
changeset
|
182 mlk_painter_present(void); |
28
783841af4033
core: implement painter API, closes #2451 @1h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
183 |
517
6e8f6640e05b
misc: use extern C manually
David Demelier <markand@malikania.fr>
parents:
472
diff
changeset
|
184 #if defined(__cplusplus) |
6e8f6640e05b
misc: use extern C manually
David Demelier <markand@malikania.fr>
parents:
472
diff
changeset
|
185 } |
6e8f6640e05b
misc: use extern C manually
David Demelier <markand@malikania.fr>
parents:
472
diff
changeset
|
186 #endif |
43
291be94202c7
core: add PAINTER_(BEGIN|END) helpers, closes #2456
David Demelier <markand@malikania.fr>
parents:
41
diff
changeset
|
187 |
366
19782ea1cf4a
misc: start rebranding
David Demelier <markand@malikania.fr>
parents:
320
diff
changeset
|
188 #endif /* !MLK_CORE_PAINTER_H */ |