Mercurial > malikania
annotate client/main.cpp @ 27:0a1adf7dcca0
Common: update libjs and adapt code
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 12 Apr 2016 13:53:11 +0200 |
parents | 56cc058200b5 |
children | 80736513d699 |
rev | line source |
---|---|
0 | 1 /* |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
2 * main.cpp -- main client file |
0 | 3 * |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
4 * Copyright (c) 2013-2016 David Demelier <markand@malikania.fr> |
0 | 5 * |
6 * Permission to use, copy, modify, and/or distribute this software for any | |
7 * purpose with or without fee is hereby granted, provided that the above | |
8 * copyright notice and this permission notice appear in all copies. | |
9 * | |
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
17 */ | |
18 | |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
19 #include <chrono> |
0 | 20 #include <iostream> |
21 #include <thread> | |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
22 |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
23 #include <malikania/client-resources-loader.h> |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
24 #include <malikania/resources-locator.h> |
0 | 25 |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
26 #include <malikania/js-animation.h> |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
27 #include <malikania/js-animator.h> |
27
0a1adf7dcca0
Common: update libjs and adapt code
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
28 #include <malikania/js-client.h> |
0a1adf7dcca0
Common: update libjs and adapt code
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
29 #include <malikania/js-client-target.h> |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
30 #include <malikania/js-color.h> |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
31 #include <malikania/js-font.h> |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
32 #include <malikania/js-image.h> |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
33 #include <malikania/js-line.h> |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
34 #include <malikania/js-point.h> |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
35 #include <malikania/js-rectangle.h> |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
36 #include <malikania/js-size.h> |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
37 #include <malikania/js-sprite.h> |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
38 #include <malikania/js-window.h> |
0 | 39 |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
40 using namespace malikania; |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
41 |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
42 namespace { |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
43 |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
44 int usage() |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
45 { |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
46 std::cerr << "usage: mlk-client directory\n"; |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
47 |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
48 return 1; |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
49 } |
0 | 50 |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
51 duk::Context init() |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
52 { |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
53 duk::Context ctx; |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
54 |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
55 /* TODO: Put Malikania global somewhere else */ |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
56 duk::putGlobal(ctx, "Malikania", duk::Object()); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
57 |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
58 loadMalikaniaAnimation(ctx); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
59 loadMalikaniaAnimator(ctx); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
60 loadMalikaniaColor(ctx); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
61 loadMalikaniaFont(ctx); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
62 loadMalikaniaImage(ctx); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
63 loadMalikaniaLine(ctx); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
64 loadMalikaniaPoint(ctx); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
65 loadMalikaniaRectangle(ctx); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
66 loadMalikaniaSize(ctx); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
67 loadMalikaniaSprite(ctx); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
68 loadMalikaniaWindow(ctx); |
27
0a1adf7dcca0
Common: update libjs and adapt code
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
69 loadMalikaniaClient(ctx); |
0a1adf7dcca0
Common: update libjs and adapt code
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
70 loadMalikaniaClientTarget(ctx); |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
71 |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
72 return ctx; |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
73 } |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
74 |
27
0a1adf7dcca0
Common: update libjs and adapt code
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
75 void start(duk::Context &ctx, std::shared_ptr<Client> client) |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
76 { |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
77 duk::getGlobal<void>(ctx, "start"); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
78 |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
79 if (duk::is<duk::Function>(ctx, -1)) { |
27
0a1adf7dcca0
Common: update libjs and adapt code
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
80 duk::push(ctx, std::move(client)); |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
81 duk::pcall(ctx, 1); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
82 duk::pop(ctx); |
0 | 83 } else { |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
84 duk::pop(ctx); |
0 | 85 } |
86 } | |
87 | |
27
0a1adf7dcca0
Common: update libjs and adapt code
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
88 void update(duk::Context &ctx, std::shared_ptr<Client> client) |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
89 { |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
90 duk::getGlobal<void>(ctx, "update"); |
0 | 91 |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
92 if (duk::is<duk::Function>(ctx, -1)) { |
27
0a1adf7dcca0
Common: update libjs and adapt code
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
93 duk::push(ctx, std::move(client)); |
0a1adf7dcca0
Common: update libjs and adapt code
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
94 duk::pcall(ctx, 1); |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
95 duk::pop(ctx); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
96 } else { |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
97 duk::pop(ctx); |
27
0a1adf7dcca0
Common: update libjs and adapt code
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
98 client->update(); |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
99 } |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
100 } |
0 | 101 |
27
0a1adf7dcca0
Common: update libjs and adapt code
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
102 void draw(duk::Context &ctx, std::shared_ptr<Client> client) |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
103 { |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
104 duk::getGlobal<void>(ctx, "draw"); |
0 | 105 |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
106 if (duk::is<duk::Function>(ctx, -1)) { |
27
0a1adf7dcca0
Common: update libjs and adapt code
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
107 duk::push(ctx, std::move(client)); |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
108 duk::pcall(ctx, 1); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
109 duk::pop(ctx); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
110 } else { |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
111 duk::pop(ctx); |
27
0a1adf7dcca0
Common: update libjs and adapt code
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
112 client->draw(); |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
113 } |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
114 } |
0 | 115 |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
116 int run(duk::Context &ctx) |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
117 { |
27
0a1adf7dcca0
Common: update libjs and adapt code
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
118 auto running = true; |
0a1adf7dcca0
Common: update libjs and adapt code
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
119 auto client = std::make_shared<Client>(); |
0 | 120 |
27
0a1adf7dcca0
Common: update libjs and adapt code
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
121 client->setOnQuit([&] () { |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
122 running = false; |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
123 }); |
27
0a1adf7dcca0
Common: update libjs and adapt code
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
124 client->setOnKeyDown([&] (unsigned key) { |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
125 duk::getGlobal<void>(ctx, "keyDown"); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
126 |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
127 if (duk::is<duk::Function>(ctx, -1)) { |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
128 duk::push(ctx, static_cast<int>(key)); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
129 duk::pcall(ctx, 1); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
130 duk::pop(ctx); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
131 } else { |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
132 duk::pop(ctx); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
133 } |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
134 }); |
27
0a1adf7dcca0
Common: update libjs and adapt code
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
135 client->setOnKeyDown([&] (unsigned key) { |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
136 duk::getGlobal<void>(ctx, "keyUp"); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
137 |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
138 if (duk::is<duk::Function>(ctx, -1)) { |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
139 duk::push(ctx, static_cast<int>(key)); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
140 duk::pcall(ctx, 1); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
141 duk::pop(ctx); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
142 } else { |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
143 duk::pop(ctx); |
0 | 144 } |
145 }); | |
146 | |
27
0a1adf7dcca0
Common: update libjs and adapt code
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
147 start(ctx, client); |
0 | 148 |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
149 while (running) { |
27
0a1adf7dcca0
Common: update libjs and adapt code
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
150 client->poll(); |
0 | 151 |
27
0a1adf7dcca0
Common: update libjs and adapt code
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
152 update(ctx, client); |
0a1adf7dcca0
Common: update libjs and adapt code
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
153 draw(ctx, client); |
0 | 154 |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
155 // TODO: remove this with an appropriate FPS calculation. |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
156 std::this_thread::sleep_for(std::chrono::milliseconds(50)); |
0 | 157 } |
158 | |
159 return 0; | |
160 } | |
161 | |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
162 int boot(const std::string &directory) |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
163 { |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
164 std::string path = directory + "/client.js"; |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
165 duk::Context ctx = init(); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
166 |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
167 /* Store the loader */ |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
168 ResourcesLocatorDirectory locator(directory); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
169 ClientResourcesLoader loader(locator); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
170 |
27
0a1adf7dcca0
Common: update libjs and adapt code
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
171 duk::putGlobal(ctx, "\xff""\xff""loader", &loader); |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
172 |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
173 if (duk::pevalFile(ctx, path) != 0) { |
27
0a1adf7dcca0
Common: update libjs and adapt code
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
174 duk::Exception info = duk::exception(ctx, -1); |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
175 |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
176 std::cerr << info.fileName << ":" << info.lineNumber << ": " << info.stack << std::endl; |
0 | 177 |
26
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
178 return 1; |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
179 } |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
180 |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
181 return run(ctx); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
182 } |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
183 |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
184 } // !namespace |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
185 |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
186 int main(int argc, char **argv) |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
187 { |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
188 -- argc; |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
189 ++ argv; |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
190 |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
191 if (argc < 1) { |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
192 return usage(); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
193 } |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
194 |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
195 return boot(argv[0]); |
56cc058200b5
Client: add basic mlk-client code with an example, #472
David Demelier <markand@malikania.fr>
parents:
8
diff
changeset
|
196 } |