annotate examples/example-trace/main.c @ 366:19782ea1cf4a

misc: start rebranding
author David Demelier <markand@malikania.fr>
date Sun, 24 Oct 2021 15:57:42 +0200
parents 570ab19bf268
children 460c78706989
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
141
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * example-trace.c -- example on how to use custom trace handlers
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
314
d01e83210ca2 misc: update years
David Demelier <markand@malikania.fr>
parents: 300
diff changeset
4 * Copyright (c) 2020-2021 David Demelier <markand@malikania.fr>
141
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
156
c3a40062acc2 misc: create more generic startup function, closes #2500
David Demelier <markand@malikania.fr>
parents: 149
diff changeset
19 #include <core/core.h>
141
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 #include <core/event.h>
207
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
21 #include <core/game.h>
141
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 #include <core/sys.h>
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 #include <core/window.h>
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 #include <core/painter.h>
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 #include <core/panic.h>
207
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
26 #include <core/state.h>
141
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 #include <core/trace.h>
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 #include <core/util.h>
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
29
148
c577c15df07f misc: split libraries, closes #2496
David Demelier <markand@malikania.fr>
parents: 141
diff changeset
30 #include <ui/theme.h>
156
c3a40062acc2 misc: create more generic startup function, closes #2500
David Demelier <markand@malikania.fr>
parents: 149
diff changeset
31 #include <ui/ui.h>
148
c577c15df07f misc: split libraries, closes #2496
David Demelier <markand@malikania.fr>
parents: 141
diff changeset
32
364
570ab19bf268 misc: start removing adventure from library
David Demelier <markand@malikania.fr>
parents: 322
diff changeset
33 #include "trace_hud.h"
141
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
34
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 #define W 1280
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 #define H 720
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
37
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 static void
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 init(void)
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 {
366
19782ea1cf4a misc: start rebranding
David Demelier <markand@malikania.fr>
parents: 364
diff changeset
41 if (core_init("fr.malikania", "example-trace") < 0 || ui_init() < 0)
156
c3a40062acc2 misc: create more generic startup function, closes #2500
David Demelier <markand@malikania.fr>
parents: 149
diff changeset
42 panic();
298
196264679079 misc: remove usage of bool
David Demelier <markand@malikania.fr>
parents: 241
diff changeset
43 if (window_open("Example - Trace", W, H) < 0)
141
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 panic();
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
45
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 trace_handler = trace_hud_handler;
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 }
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
48
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 static void
207
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
50 handle(struct state *st, const union event *ev)
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
51 {
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
52 (void)st;
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
53
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
54 switch (ev->type) {
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
55 case EVENT_KEYDOWN:
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
56 switch (ev->key.key) {
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
57 case KEY_ESCAPE:
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
58 trace_hud_clear();
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
59 break;
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
60 default:
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
61 tracef("keydown pressed: %d", ev->key.key);
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
62 break;
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
63 }
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
64 break;
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
65 case EVENT_CLICKDOWN:
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
66 tracef("click at %d,%d", ev->click.x, ev->click.y);
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
67 break;
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
68 case EVENT_QUIT:
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
69 game_quit();
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
70 break;
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
71 default:
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
72 break;
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
73 }
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
74 }
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
75
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
76 static void
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
77 update(struct state *st, unsigned int ticks)
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
78 {
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
79 (void)st;
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
80
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
81 trace_hud_update(ticks);
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
82 }
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
83
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
84 static void
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
85 draw(struct state *st)
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
86 {
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
87 (void)st;
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
88
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
89 painter_set_color(0x4f8fbaff);
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
90 painter_clear();
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
91 trace_hud_draw();
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
92 painter_present();
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
93 }
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
94
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
95 static void
141
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 run(void)
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 {
207
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
98 struct state state = {
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
99 .handle = handle,
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
100 .update = update,
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
101 .draw = draw
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
102 };
141
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
103
300
3638b39ef2bf examples: fix with new game_push function
David Demelier <markand@malikania.fr>
parents: 298
diff changeset
104 game_push(&state);
207
133926e08d6e examples: use game_loop for all
David Demelier <markand@malikania.fr>
parents: 168
diff changeset
105 game_loop();
141
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
106 }
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
107
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 static void
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
109 quit(void)
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 {
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
111 window_finish();
156
c3a40062acc2 misc: create more generic startup function, closes #2500
David Demelier <markand@malikania.fr>
parents: 149
diff changeset
112 ui_finish();
c3a40062acc2 misc: create more generic startup function, closes #2500
David Demelier <markand@malikania.fr>
parents: 149
diff changeset
113 core_finish();
141
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
114 }
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
115
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 int
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
117 main(int argc, char **argv)
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
118 {
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
119 (void)argc;
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
120 (void)argv;
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
121
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 init();
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
123 run();
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 quit();
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
125 }
4eeeccf2b732 core: add trace/vtrace functions, closes #2493
David Demelier <markand@malikania.fr>
parents:
diff changeset
126