Nazara Engine

Moteur de jeu libre en C++14

a marqué ce sujet comme résolu.

J'ai mis en place les nouvelles bibliothèques, je me suis aperçu que j'utilisais Newton 3.8, j'ai donc fait la mise à jour vers Newton 3.13 et mis à jour les bibliothèques Windows et Linux.

J'en ai aussi profité pour ajouter les binaires précompilés pour les bibliothèques externes sous Linux, pour une raison obscure il faut quand même préciser à gmake qu'on veut inclure le Makefile des bibliothèques externes pour les utiliser cependant (sinon il ne les trouve pas).

Par contre, je ne sais pas si je me suis raté au niveau des binaires de Newton, mais j'échoue à chaque fois sur:

Linking DemoFirstScene ../../../lib/gmake/x64/libNazaraPhysics-d.so: référence indéfinie vers « dgBroadPhaseDefault::dgBroadPhaseDefault(dgWorld) » ../../../lib/gmake/x64/libNazaraPhysics-d.so: référence indéfinie vers « dgBroadPhasePersistent::dgBroadPhasePersistent(dgWorld) »

Si vous pouviez tester de votre côté, et dans le cas où ça ne marche pas m'envoyer vos binaires Newton (release, 32 et 64 bits).

Le dernier truc qui manque (mis à part le tutoriel) du coup, c'est le fameux "make install", c'est un problème connu de Premake, je ne sais pas s'il a été résolu ou pas, mais je peux simuler son fonctionnement.

Bref, on y est presque :)

+2 -0

Ça a compilé, même la nouvelle version (newton 3.13 compilé depuis les sources). :)

Avec la truculente ligne de commande suivante, j'ai pu compiler un fichier minimal (équivalent à tut00) placé dans le dossier build/gmake/examples/,

1
2
3
4
5
6
7
g++ -o test.bin -lNazaraSDK-d -lNazaraSDKServer-d -lNazaraCore-d -lNazaraAudio-d \
-lNazaraLua-d -lNazaraNetwork-d -lNazaraNoise-d -lNazaraPhysics-d \
-lNazaraUtility-d -lNazaraRenderer-d -lNazaraGraphics-d \
-L/usr/lib64/ -L../../../lib/ -L../../../extlibs/lib/common/x64/ \
-L../../../lib/gmake/x64/  -L../../../extlibs/lib/x64/ \
-I../../../include/ -I../../../extlibs/include/ -I../../../SDK/include/ \
test.cpp -std=c++14 

Je n'ai pas cherché à être minimal dans la ligne de commande.


Édit : en cherchant à minimser la ligne, je tombe sur

1
2
3
4
5
g++ -o test.bin -lNazaraSDK-d -lNazaraCore-d \
-lNazaraRenderer-d -lNazaraUtility-d \
-L../../../lib/gmake/x64/ \                             
-I../../../include/ -I../../../SDK/include/ \                            
test.cpp -std=c++14

Pour pouvoir exécuter le fichier test.bin ainsi créé, j'ai dû copier tout les .so de lib/gmake/x64/ dans le dossier courant. Je n'ai plus d'erreur de link, mais une jolie erreur, je crains que ce ne soit avec OpenGL,


Édit : avec la ligne de commande courte, j'ai une erreur un peu plus courte, mais similaire (et donc j’espère plus lisible) :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
Initialized: Core
Initialized: Lua module
Initialized: Noise module
Initialized: Physics module
Warning: Pixel format 0x21 (RGB32F) failed validation tests (in static bool Nz::PixelFormat::Initialize() at ../../../src/Nazara/Utility/PixelFormat.cpp:1344)
Warning: Pixel format 0x22 (RGB32I) failed validation tests (in static bool Nz::PixelFormat::Initialize() at ../../../src/Nazara/Utility/PixelFormat.cpp:1344)
Warning: Pixel format 0x23 (RGB32UI) failed validation tests (in static bool Nz::PixelFormat::Initialize() at ../../../src/Nazara/Utility/PixelFormat.cpp:1344)
Warning: Pixel format 0x29 (RGBA32F) failed validation tests (in static bool Nz::PixelFormat::Initialize() at ../../../src/Nazara/Utility/PixelFormat.cpp:1344)
Warning: Pixel format 0x2A (RGBA32I) failed validation tests (in static bool Nz::PixelFormat::Initialize() at ../../../src/Nazara/Utility/PixelFormat.cpp:1344)
Warning: Pixel format 0x2B (RGBA32UI) failed validation tests (in static bool Nz::PixelFormat::Initialize() at ../../../src/Nazara/Utility/PixelFormat.cpp:1344)
Initialized: Utility module
OpenAL version: 1.1
Initialized: Audio module
OpenGL version: 3.3
OpenGL debug message (ID: 0x20071):
Sent by context: 0x0xa6e870
-Source: OpenGL API
-Type: Other
-Severity: Unknown
Message: Buffer detailed info: Buffer object 1 (bound to GL_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.

Initialized: Renderer module
OpenGL debug message (ID: 0x20071):
Sent by context: 0x0xa6e870
-Source: OpenGL API
-Type: Other
-Severity: Unknown
Message: Buffer detailed info: Buffer object 3 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.

OpenGL debug message (ID: 0x20071):
Sent by context: 0x0xa6e870
-Source: OpenGL API
-Type: Other
-Severity: Unknown
Message: Buffer detailed info: Buffer object 4 (bound to GL_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.

OpenGL debug message (ID: 0x20071):
Sent by context: 0x0xa6e870
-Source: OpenGL API
-Type: Other
-Severity: Unknown
Message: Buffer detailed info: Buffer object 5 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.

OpenGL debug message (ID: 0x20071):
Sent by context: 0x0xa6e870
-Source: OpenGL API
-Type: Other
-Severity: Unknown
Message: Buffer detailed info: Buffer object 5 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) has been mapped in HOST memory.

OpenGL debug message (ID: 0x20071):
Sent by context: 0x0xa6e870
-Source: OpenGL API
-Type: Other
-Severity: Unknown
Message: Buffer detailed info: Buffer object 6 (bound to GL_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.

OpenGL debug message (ID: 0x20071):
Sent by context: 0x0xa6e870
-Source: OpenGL API
-Type: Other
-Severity: Unknown
Message: Buffer detailed info: Buffer object 7 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.

OpenGL debug message (ID: 0x20071):
Sent by context: 0x0xa6e870
-Source: OpenGL API
-Type: Other
-Severity: Unknown
Message: Buffer detailed info: Buffer object 7 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) has been mapped in HOST memory.

OpenGL debug message (ID: 0x20071):
Sent by context: 0x0xa6e870
-Source: OpenGL API
-Type: Other
-Severity: Unknown
Message: Buffer detailed info: Buffer object 8 (bound to GL_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.

Initialized: Graphics module
Initialized: SDK
Uninitialized: Audio module
Uninitialized: Graphics module
Uninitialized: Renderer module
Uninitialized: Lua module
Uninitialized: Noise module
Uninitialized: Physics module
Uninitialized: Utility module
Uninitialized: Core
Uninitialized: SDK


  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
Initialized: Core
Initialized: Lua module
Initialized: Noise module
Initialized: Physics module
Warning: Pixel format 0x21 (RGB32F) failed validation tests (in static bool Nz::PixelFormat::Initialize() at ../../../src/Nazara/Utility/PixelFormat.cpp:1344)
Warning: Pixel format 0x22 (RGB32I) failed validation tests (in static bool Nz::PixelFormat::Initialize() at ../../../src/Nazara/Utility/PixelFormat.cpp:1344)
Warning: Pixel format 0x23 (RGB32UI) failed validation tests (in static bool Nz::PixelFormat::Initialize() at ../../../src/Nazara/Utility/PixelFormat.cpp:1344)
Warning: Pixel format 0x29 (RGBA32F) failed validation tests (in static bool Nz::PixelFormat::Initialize() at ../../../src/Nazara/Utility/PixelFormat.cpp:1344)
Warning: Pixel format 0x2A (RGBA32I) failed validation tests (in static bool Nz::PixelFormat::Initialize() at ../../../src/Nazara/Utility/PixelFormat.cpp:1344)
Warning: Pixel format 0x2B (RGBA32UI) failed validation tests (in static bool Nz::PixelFormat::Initialize() at ../../../src/Nazara/Utility/PixelFormat.cpp:1344)
Initialized: Utility module
OpenAL version: 1.1
Initialized: Audio module
OpenGL version: 3.3
OpenGL debug message (ID: 0x20071):
Sent by context: 0x0x9aef10
-Source: OpenGL API
-Type: Other
-Severity: Unknown
Message: Buffer detailed info: Buffer object 1 (bound to GL_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.

Initialized: Renderer module
OpenGL debug message (ID: 0x20071):
Sent by context: 0x0x9aef10
-Source: OpenGL API
-Type: Other
-Severity: Unknown
Message: Buffer detailed info: Buffer object 3 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.

OpenGL debug message (ID: 0x20071):
Sent by context: 0x0x9aef10
-Source: OpenGL API
-Type: Other
-Severity: Unknown
Message: Buffer detailed info: Buffer object 4 (bound to GL_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.

OpenGL debug message (ID: 0x20071):
Sent by context: 0x0x9aef10
-Source: OpenGL API
-Type: Other
-Severity: Unknown
Message: Buffer detailed info: Buffer object 5 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.

OpenGL debug message (ID: 0x20071):
Sent by context: 0x0x9aef10
-Source: OpenGL API
-Type: Other
-Severity: Unknown
Message: Buffer detailed info: Buffer object 5 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) has been mapped in HOST memory.

OpenGL debug message (ID: 0x20071):
Sent by context: 0x0x9aef10
-Source: OpenGL API
-Type: Other
-Severity: Unknown
Message: Buffer detailed info: Buffer object 6 (bound to GL_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.

OpenGL debug message (ID: 0x20071):
Sent by context: 0x0x9aef10
-Source: OpenGL API
-Type: Other
-Severity: Unknown
Message: Buffer detailed info: Buffer object 7 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.

OpenGL debug message (ID: 0x20071):
Sent by context: 0x0x9aef10
-Source: OpenGL API
-Type: Other
-Severity: Unknown
Message: Buffer detailed info: Buffer object 7 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) has been mapped in HOST memory.

OpenGL debug message (ID: 0x20071):
Sent by context: 0x0x9aef10
-Source: OpenGL API
-Type: Other
-Severity: Unknown
Message: Buffer detailed info: Buffer object 8 (bound to GL_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.

Initialized: Graphics module
Initialized: SDK
Uninitialized: Audio module
Uninitialized: Graphics module
Uninitialized: Renderer module
Uninitialized: Lua module
Uninitialized: Noise module
Uninitialized: Physics module
Uninitialized: Utility module
Uninitialized: Core
Uninitialized: SDK
*** Error in `./test.bin': double free or corruption (fasttop): 0x0000000000e802a0 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x7275f)[0x7f4a06bf175f]
/lib64/libc.so.6(+0x77fce)[0x7f4a06bf6fce]
/lib64/libc.so.6(+0x78ce6)[0x7f4a06bf7ce6]
libNazaraSDK-d.so(_ZN9__gnu_cxx13new_allocatorIPNSt8__detail15_Hash_node_baseEE10deallocateEPS3_m+0x20)[0x7f4a099fb374]
libNazaraSDK-d.so(_ZNSt16allocator_traitsISaIPNSt8__detail15_Hash_node_baseEEE10deallocateERS3_PS2_m+0x2b)[0x7f4a099faea2]
libNazaraSDK-d.so(_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKmjELb0EEEEE21_M_deallocate_bucketsEPPNS_15_Hash_node_baseEm+0x5a)[0x7f4a099fa9b2]
libNazaraSDK-d.so(_ZNSt10_HashtableImSt4pairIKmjESaIS2_ENSt8__detail10_Select1stESt8equal_toImESt4hashImENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_deallocate_bucketsEPPNS4_15_Hash_node_baseEm+0x42)[0x7f4a099fa522]
libNazaraSDK-d.so(_ZNSt10_HashtableImSt4pairIKmjESaIS2_ENSt8__detail10_Select1stESt8equal_toImESt4hashImENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_deallocate_bucketsEv+0x2a)[0x7f4a099fa27e]
libNazaraSDK-d.so(_ZNSt10_HashtableImSt4pairIKmjESaIS2_ENSt8__detail10_Select1stESt8equal_toImESt4hashImENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb1EEEED1Ev+0x24)[0x7f4a099fa044]
libNazaraSDK-d.so(_ZNSt13unordered_mapImjSt4hashImESt8equal_toImESaISt4pairIKmjEEED2Ev+0x18)[0x7f4a099fb7f8]
/lib64/libc.so.6(__cxa_finalize+0x8f)[0x7f4a06bb6e9f]
libNazaraSDKServer-d.so(+0x1c15b3)[0x7f4a093cf5b3]
======= Memory map: ========
00400000-00404000 r-xp 00000000 08:06 15734043                           /home/etienne/Bin/NazaraEngine/build/gmake/examples/test.bin
00603000-00604000 r--p 00003000 08:06 15734043                           /home/etienne/Bin/NazaraEngine/build/gmake/examples/test.bin
00604000-00605000 rw-p 00004000 08:06 15734043                           /home/etienne/Bin/NazaraEngine/build/gmake/examples/test.bin
008af000-00ea1000 rw-p 00000000 00:00 0                                  [heap]
7f49e8000000-7f49e8021000 rw-p 00000000 00:00 0 
7f49e8021000-7f49ec000000 ---p 00000000 00:00 0 
7f49eeffc000-7f49eeffd000 ---p 00000000 00:00 0 
7f49eeffd000-7f49ef7fd000 rw-p 00000000 00:00 0 
7f49ef7fd000-7f49ef7fe000 ---p 00000000 00:00 0 
7f49ef7fe000-7f49efffe000 rw-p 00000000 00:00 0 
7f49f8000000-7f49f8021000 rw-p 00000000 00:00 0 
7f49f8021000-7f49fc000000 ---p 00000000 00:00 0 
7f49fc494000-7f49fc495000 ---p 00000000 00:00 0 
7f49fc495000-7f49fcc95000 rw-p 00000000 00:00 0 
7f49fcc95000-7f49fcc96000 ---p 00000000 00:00 0 
7f49fcc96000-7f49fd496000 rw-p 00000000 00:00 0 
7f49fd496000-7f49fd516000 rw-s 34bd3000 00:06 10343                      /dev/nvidiactl
7f49fd516000-7f49fd616000 rw-s a6917000 00:06 10343                      /dev/nvidiactl
7f49fd616000-7f49fd6ca000 rw-s 131c1b000 00:06 10343                     /dev/nvidiactl
7f49fdecb000-7f49fdecf000 r-xp 00000000 08:11 5778109                    /usr/lib64/libgpg-error.so.0.11.0
7f49fdecf000-7f49fe0ce000 ---p 00004000 08:11 5778109                    /usr/lib64/libgpg-error.so.0.11.0
7f49fe0ce000-7f49fe0cf000 r--p 00003000 08:11 5778109                    /usr/lib64/libgpg-error.so.0.11.0
7f49fe0cf000-7f49fe0d0000 rw-p 00004000 08:11 5778109                    /usr/lib64/libgpg-error.so.0.11.0
7f49fe0d0000-7f49fe0e4000 r-xp 00000000 08:11 7081539                    /lib64/libresolv-2.19.so
7f49fe0e4000-7f49fe2e3000 ---p 00014000 08:11 7081539                    /lib64/libresolv-2.19.so
7f49fe2e3000-7f49fe2e4000 r--p 00013000 08:11 7081539                    /lib64/libresolv-2.19.so
7f49fe2e4000-7f49fe2e5000 rw-p 00014000 08:11 7081539                    /lib64/libresolv-2.19.so
7f49fe2e5000-7f49fe2e7000 rw-p 00000000 00:00 0 
7f49fe2e7000-7f49fe3c3000 r-xp 00000000 08:11 5769509                    /usr/lib64/libgcrypt.so.20.0.1
7f49fe3c3000-7f49fe5c3000 ---p 000dc000 08:11 5769509                    /usr/lib64/libgcrypt.so.20.0.1
7f49fe5c3000-7f49fe5c4000 r--p 000dc000 08:11 5769509                    /usr/lib64/libgcrypt.so.20.0.1
7f49fe5c4000-7f49fe5cd000 rw-p 000dd000 08:11 5769509                    /usr/lib64/libgcrypt.so.20.0.1
7f49fe5cd000-7f49fe5f2000 r-xp 00000000 08:11 5777796                    /usr/lib64/liblzma.so.5.0.5
7f49fe5f2000-7f49fe7f1000 ---p 00025000 08:11 5777796                    /usr/lib64/liblzma.so.5.0.5
7f49fe7f1000-7f49fe7f2000 r--p 00024000 08:11 5777796                    /usr/lib64/liblzma.so.5.0.5
7f49fe7f2000-7f49fe7f3000 rw-p 00025000 08:11 5777796                    /usr/lib64/liblzma.so.5.0.5
7f49fe7f3000-7f49fe81a000 r-xp 00000000 08:11 5776677                    /usr/lib64/libsystemd.so.0.0.1
7f49fe81a000-7f49fea1a000 ---p 00027000 08:11 5776677                    /usr/lib64/libsystemd.so.0.0.1
7f49fea1a000-7f49fea1b000 r--p 00027000 08:11 5776677                    /usr/lib64/libsystemd.so.0.0.1
7f49fea1b000-7f49fea1c000 rw-p 00028000 08:11 5776677                    /usr/lib64/libsystemd.so.0.0.1
7f49fea1c000-7f49fea62000 r-xp 00000000 08:11 7081725                    /lib64/libdbus-1.so.3.8.11
7f49fea62000-7f49fec61000 ---p 00046000 08:11 7081725                    /lib64/libdbus-1.so.3.8.11
7f49fec61000-7f49fec62000 r--p 00045000 08:11 7081725                    /lib64/libdbus-1.so.3.8.11
7f49fec62000-7f49fec63000 rw-p 00046000 08:11 7081725                    /lib64/libdbus-1.so.3.8.11
7f49fec63000-7f49fec6d000 r-xp 00000000 08:11 5777974                    /usr/lib64/libjson-c.so.2.0.1
7f49fec6d000-7f49fee6c000 ---p 0000a000 08:11 5777974                    /usr/lib64/libjson-c.so.2.0.1
7f49fee6c000-7f49fee6d000 r--p 00009000 08:11 5777974                    /usr/lib64/libjson-c.so.2.0.1
7f49fee6d000-7f49fee6e000 rw-p 0000a000 08:11 5777974                    /usr/lib64/libjson-c.so.2.0.1
7f49fee6e000-7f49feee6000 r-xp 00000000 08:11 5786887                    /usr/lib64/pulseaudio/libpulsecommon-7.0.so
7f49feee6000-7f49ff0e6000 ---p 00078000 08:11 5786887                    /usr/lib64/pulseaudio/libpulsecommon-7.0.so
7f49ff0e6000-7f49ff0e7000 r--p 00078000 08:11 5786887                    /usr/lib64/pulseaudio/libpulsecommon-7.0.so
7f49ff0e7000-7f49ff0e9000 rw-p 00079000 08:11 5786887                    /usr/lib64/pulseaudio/libpulsecommon-7.0.so
7f49ff0e9000-7f49ff134000 r-xp 00000000 08:11 5778290                    /usr/lib64/libpulse.so.0.18.2
7f49ff134000-7f49ff334000 ---p 0004b000 08:11 5778290                    /usr/lib64/libpulse.so.0.18.2
7f49ff334000-7f49ff335000 r--p 0004b000 08:11 5778290                    /usr/lib64/libpulse.so.0.18.2
7f49ff335000-7f49ff336000 rw-p 0004c000 08:11 5778290                    /usr/lib64/libpulse.so.0.18.2
7f49ff336000-7f49ff33d000 r-xp 00000000 08:11 7081548                    /lib64/librt-2.19.so
7f49ff33d000-7f49ff53c000 ---p 00007000 08:11 7081548                    /lib64/librt-2.19.so
7f49ff53c000-7f49ff53d000 r--p 00006000 08:11 7081548                    /lib64/librt-2.19.so
7f49ff53d000-7f49ff53e000 rw-p 00007000 08:11 7081548                    /lib64/librt-2.19.so
7f49ff7a9000-7f49ff7ae000 r-xp 00000000 08:11 5780983                    /usr/lib64/libxcb-util.so.1.0.0
7f49ff7ae000-7f49ff9ad000 ---p 00005000 08:11 5780983                    /usr/lib64/libxcb-util.so.1.0.0
7f49ff9ad000-7f49ff9ae000 r--p 00004000 08:11 5780983                    /usr/lib64/libxcb-util.so.1.0.0
7f49ff9ae000-7f49ff9af000 rw-p 00005000 08:11 5780983                    /usr/lib64/libxcb-util.so.1.0.0
7f49ff9af000-7f49ff9b1000 r-xp 00000000 08:11 5783593                    /usr/lib64/libxcb-shm.so.0.0.0
7f49ff9b1000-7f49ffbb0000 ---p 00002000 08:11 5783593                    /usr/lib64/libxcb-shm.so.0.0.0
7f49ffbb0000-7f49ffbb1000 r--p 00001000 08:11 5783593                    /usr/lib64/libxcb-shm.so.0.0.0
7f49ffbb1000-7f49ffbb2000 rw-p 00002000 08:11 5783593                    /usr/lib64/libxcb-shm.so.0.0.0
7f49ffbb2000-7f49ffbde000 r-xp 00000000 08:11 5779008                    /usr/lib64/libvorbis.so.0.4.6
7f49ffbde000-7f49ffdde000 ---p 0002c000 08:11 5779008                    /usr/lib64/libvorbis.so.0.4.6
7f49ffdde000-7f49ffddf000 r--p 0002c000 08:11 5779008                    /usr/lib64/libvorbis.so.0.4.6
7f49ffddf000-7f49ffde0000 rw-p 0002d000 08:11 5779008                    /usr/lib64/libvorbis.so.0.4.6
7f49ffde0000-7f49ffde6000 r-xp 00000000 08:11 5777268                    /usr/lib64/libogg.so.0.8.0
7f49ffde6000-7f49fffe5000 ---p 00006000 08:11 5777268                    /usr/lib64/libogg.so.0.8.0
7f49fffe5000-7f49fffe6000 r--p 00005000 08:11 5777268                    /usr/lib64/libogg.so.0.8.0
7f49fffe6000-7f49fffe7000 rw-p 00006000 08:11 5777268                    /usr/lib64/libogg.so.0.8.0
7f49fffe7000-7f4a001b0000 r-xp 00000000 08:11 7080377                    /lib64/libcrypto.so.1.0.0
7f4a001b0000-7f4a003b0000 ---p 001c9000 08:11 7080377                    /lib64/libcrypto.so.1.0.0
7f4a003b0000-7f4a003ca000 r--p 001c9000 08:11 7080377                    /lib64/libcrypto.so.1.0.0
7f4a003ca000-7f4a003d7000 rw-p 001e3000 08:11 7080377                    /lib64/libcrypto.so.1.0.0
7f4a003d7000-7f4a003db000 rw-p 00000000 00:00 0 
7f4a003db000-7f4a003ec000 r-xp 00000000 08:11 5778217                    /usr/lib64/libXext.so.6.4.0
7f4a003ec000-7f4a005eb000 ---p 00011000 08:11 5778217                    /usr/lib64/libXext.so.6.4.0
7f4a005eb000-7f4a005ec000 r--p 00010000 08:11 5778217                    /usr/lib64/libXext.so.6.4.0
7f4a005ec000-7f4a005ed000 rw-p 00011000 08:11 5778217                    /usr/lib64/libXext.so.6.4.0
7f4a005ed000-7f4a01faf000 r-xp 00000000 08:11 5769477                    /usr/lib64/libnvidia-glcore.so.340.96
7f4a01faf000-7f4a01fcd000 rwxp 019c2000 08:11 5769477                    /usr/lib64/libnvidia-glcore.so.340.96
7f4a01fcd000-7f4a0244b000 r-xp 019e0000 08:11 5769477                    /usr/lib64/libnvidia-glcore.so.340.96
7f4a0244b000-7f4a0264a000 ---p 01e5e000 08:11 5769477                    /usr/lib64/libnvidia-glcore.so.340.96
7f4a0264a000-7f4a031e4000 rw-p 01e5d000 08:11 5769477                    /usr/lib64/libnvidia-glcore.so.340.96
7f4a031e4000-7f4a03201000 rw-p 00000000 00:00 0 
7f4a03201000-7f4a03204000 r-xp 00000000 08:11 6170269                    /usr/lib64/tls/libnvidia-tls.so.340.96
7f4a03204000-7f4a03403000 ---p 00003000 08:11 6170269                    /usr/lib64/tls/libnvidia-tls.so.340.96
7f4a03403000-7f4a03404000 rw-p 00002000 08:11 6170269                    /usr/lib64/tls/libnvidia-tls.so.340.96
7f4a03404000-7f4a03408000 r-xp 00000000 08:11 5780239                    /usr/lib64/libxcb-image.so.0.0.0
7f4a03408000-7f4a03607000 ---p 00004000 08:11 5780239                    /usr/lib64/libxcb-image.so.0.0.0
7f4a03607000-7f4a03608000 r--p 00003000 08:11 5780239                    /usr/lib64/libxcb-image.so.0.0.0
7f4a03608000-7f4a03609000 rw-p 00004000 08:11 5780239                    /usr/lib64/libxcb-image.so.0.0.0
7f4a03609000-7f4a03611000 r-xp 00000000 08:11 5781247                    /usr/lib64/libxcb-render.so.0.0.0
7f4a03611000-7f4a03811000 ---p 00008000 08:11 5781247                    /usr/lib64/libxcb-render.so.0.0.0
7f4a03811000-7f4a03812000 r--p 00008000 08:11 5781247                    /usr/lib64/libxcb-render.so.0.0.0
7f4a03812000-7f4a03813000 rw-p 00009000 08:11 5781247                    /usr/lib64/libxcb-render.so.0.0.0
7f4a03813000-7f4a03816000 r-xp 00000000 08:11 5778685                    /usr/lib64/libxcb-render-util.so.0.0.0
7f4a03816000-7f4a03a15000 ---p 00003000 08:11 5778685                    /usr/lib64/libxcb-render-util.so.0.0.0
7f4a03a15000-7f4a03a16000 r--p 00002000 08:11 5778685                    /usr/lib64/libxcb-render-util.so.0.0.0
7f4a03a16000-7f4a03a17000 rw-p 00003000 08:11 5778685                    /usr/lib64/libxcb-render-util.so.0.0.0
7f4a03a17000-7f4a03a1a000 r-xp 00000000 08:11 5777923                    /usr/lib64/libXau.so.6.0.0
7f4a03a1a000-7f4a03c19000 ---p 00003000 08:11 5777923                    /usr/lib64/libXau.so.6.0.0
7f4a03c19000-7f4a03c1a000 r--p 00002000 08:11 5777923                    /usr/lib64/libXau.so.6.0.0
7f4a03c1a000-7f4a03c1b000 rw-p 00003000 08:11 5777923                    /usr/lib64/libXau.so.6.0.0
7f4a03c1b000-7f4a03c57000 r-xp 00000000 08:11 5777052                    /usr/lib64/libpng16.so.16.8.0
7f4a03c57000-7f4a03e56000 ---p 0003c000 08:11 5777052                    /usr/lib64/libpng16.so.16.8.0
7f4a03e56000-7f4a03e57000 r--p 0003b000 08:11 5777052                    /usr/lib64/libpng16.so.16.8.0
7f4a03e57000-7f4a03e58000 rw-p 0003c000 08:11 5777052                    /usr/lib64/libpng16.so.16.8.0
7f4a03e58000-7f4a03e66000 r-xp 00000000 08:11 5781768                    /usr/lib64/libbz2.so.1.0.6
7f4a03e66000-7f4a04065000 ---p 0000e000 08:11 5781768                    /usr/lib64/libbz2.so.1.0.6
7f4a04065000-7f4a04066000 r--p 0000d000 08:11 5781768                    /usr/lib64/libbz2.so.1.0.6
7f4a04066000-7f4a04067000 rw-p 0000e000 08:11 5781768                    /usr/lib64/libbz2.so.1.0.6
7f4a04067000-7f4a0407c000 r-xp 00000000 08:11 7080267                    /lib64/libz.so.1.2.8
7f4a0407c000-7f4a0427b000 ---p 00015000 08:11 7080267                    /lib64/libz.so.1.2.8
7f4a0427b000-7f4a0427c000 r--p 00014000 08:11 7080267                    /lib64/libz.so.1.2.8
7f4a0427c000-7f4a0427d000 rw-p 00015000 08:11 7080267                    /lib64/libz.so.1.2.8
7f4a0427d000-7f4a04294000 r-xp 00000000 08:11 5773528                    /usr/lib64/libspeex.so.1.5.0
7f4a04294000-7f4a04494000 ---p 00017000 08:11 5773528                    /usr/lib64/libspeex.so.1.5.0
7f4a04494000-7f4a04495000 r--p 00017000 08:11 5773528                    /usr/lib64/libspeex.so.1.5.0
7f4a04495000-7f4a04496000 rw-p 00018000 08:11 5773528                    /usr/lib64/libspeex.so.1.5.0
7f4a04496000-7f4a04749000 r-xp 00000000 08:11 5778303                    /usr/lib64/libvorbisenc.so.2.0.9
7f4a04749000-7f4a04948000 ---p 002b3000 08:11 5778303                    /usr/lib64/libvorbisenc.so.2.0.9
7f4a04948000-7f4a04964000 r--p 002b2000 08:11 5778303                    /usr/lib64/libvorbisenc.so.2.0.9
7f4a04964000-7f4a04965000 rw-p 002ce000 08:11 5778303                    /usr/lib64/libvorbisenc.so.2.0.9
7f4a04965000-7f4a049a2000 r-xp 00000000 08:11 5780036                    /usr/lib64/libFLAC.so.8.3.0
7f4a049a2000-7f4a04ba2000 ---p 0003d000 08:11 5780036                    /usr/lib64/libFLAC.so.8.3.0
7f4a04ba2000-7f4a04ba3000 r--p 0003d000 08:11 5780036                    /usr/lib64/libFLAC.so.8.3.0
7f4a04ba3000-7f4a04ba4000 rw-p 0003e000 08:11 5780036                    /usr/lib64/libFLAC.so.8.3.0
7f4a04ba4000-7f4a04c6b000 r-xp 00000000 08:11 6422813                    /usr/X11R6/lib64/libGL.so.340.96
7f4a04c6b000-7f4a04c9a000 rwxp 000c7000 08:11 6422813                    /usr/X11R6/lib64/libGL.so.340.96
7f4a04c9a000-7f4a04cb6000 r-xp 000f6000 08:11 6422813                    /usr/X11R6/lib64/libGL.so.340.96
7f4a04cb6000-7f4a04eb5000 ---p 00112000 08:11 6422813                    /usr/X11R6/lib64/libGL.so.340.96
7f4a04eb5000-7f4a04eda000 rw-p 00111000 08:11 6422813                    /usr/X11R6/lib64/libGL.so.340.96
7f4a04eda000-7f4a04ef0000 rw-p 00000000 00:00 0 
7f4a04ef0000-7f4a04efc000 r-xp 00000000 08:11 5781308                    /usr/lib64/libxcb-randr.so.0.1.0
7f4a04efc000-7f4a050fc000 ---p 0000c000 08:11 5781308                    /usr/lib64/libxcb-randr.so.0.1.0
7f4a050fc000-7f4a050fd000 r--p 0000c000 08:11 5781308                    /usr/lib64/libxcb-randr.so.0.1.0
7f4a050fd000-7f4a050fe000 rw-p 0000d000 08:11 5781308                    /usr/lib64/libxcb-randr.so.0.1.0
7f4a050fe000-7f4a05100000 r-xp 00000000 08:11 5781331                    /usr/lib64/libxcb-keysyms.so.1.0.0
7f4a05100000-7f4a052ff000 ---p 00002000 08:11 5781331                    /usr/lib64/libxcb-keysyms.so.1.0.0
7f4a052ff000-7f4a05300000 r--p 00001000 08:11 5781331                    /usr/lib64/libxcb-keysyms.so.1.0.0
7f4a05300000-7f4a05301000 rw-p 00002000 08:11 5781331                    /usr/lib64/libxcb-keysyms.so.1.0.0
7f4a05301000-7f4a05305000 r-xp 00000000 08:11 5778083                    /usr/lib64/libxcb-icccm.so.4.0.0
7f4a05305000-7f4a05505000 ---p 00004000 08:11 5778083                    /usr/lib64/libxcb-icccm.so.4.0.0
7f4a05505000-7f4a05506000 r--p 00004000 08:11 5778083                    /usr/lib64/libxcb-icccm.so.4.0.0
7f4a05506000-7f4a05507000 rw-p 00005000 08:11 5778083                    /usr/lib64/libxcb-icccm.so.4.0.0
7f4a05507000-7f4a05513000 r-xp 00000000 08:11 5786959                    /usr/lib64/libxcb-ewmh.so.2.0.0
7f4a05513000-7f4a05712000 ---p 0000c000 08:11 5786959                    /usr/lib64/libxcb-ewmh.so.2.0.0
7f4a05712000-7f4a05713000 r--p 0000b000 08:11 5786959                    /usr/lib64/libxcb-ewmh.so.2.0.0
7f4a05713000-7f4a05714000 rw-p 0000c000 08:11 5786959                    /usr/lib64/libxcb-ewmh.so.2.0.0
7f4a05714000-7f4a05719000 r-xp 00000000 08:11 5783885                    /usr/lib64/libxcb-cursor.so.0.0.0
7f4a05719000-7f4a05918000 ---p 00005000 08:11 5783885                    /usr/lib64/libxcb-cursor.so.0.0.0
7f4a05918000-7f4a05919000 r--p 00004000 08:11 5783885                    /usr/lib64/libxcb-cursor.so.0.0.0
7f4a05919000-7f4a0591a000 rw-p 00005000 08:11 5783885                    /usr/lib64/libxcb-cursor.so.0.0.0
7f4a0591a000-7f4a05939000 r-xp 00000000 08:11 5780142                    /usr/lib64/libxcb.so.1.1.0
7f4a05939000-7f4a05b38000 ---p 0001f000 08:11 5780142                    /usr/lib64/libxcb.so.1.1.0
7f4a05b38000-7f4a05b39000 r--p 0001e000 08:11 5780142                    /usr/lib64/libxcb.so.1.1.0
7f4a05b39000-7f4a05b3a000 rw-p 0001f000 08:11 5780142                    /usr/lib64/libxcb.so.1.1.0
7f4a05b3a000-7f4a05c72000 r-xp 00000000 08:11 5784401                    /usr/lib64/libX11.so.6.3.0[1]    5760 abort      ./test.bin

Ma carte graphique est une GeForce 210 (pilote nvidia propriétaires). Si tu crains que ce ne soit dû à une carte graphique trop vieille, je peux tester avec une un peu plus récente (parce que tu parles de Vulkan et tout plein de trucs fun et récent, mais j'ignore le support des PC un peu ancien :-° — sisi, c'est mon ordi principal, et il fait ce que je lui demande 99 % du temps).

+0 -0

Ça a compilé, même la nouvelle version (newton 3.13 compilé depuis les sources). :)

Gabbro

Avec tes binaires ça fonctionne donc, et avec ceux du repo ?

Avec la truculente ligne de commande suivante, j'ai pu compiler un fichier minimal (équivalent à tut00) placé dans le dossier build/gmake/examples/,

1
2
3
4
5
6
7
g++ -o test.bin -lNazaraSDK-d -lNazaraSDKServer-d -lNazaraCore-d -lNazaraAudio-d \
-lNazaraLua-d -lNazaraNetwork-d -lNazaraNoise-d -lNazaraPhysics-d \
-lNazaraUtility-d -lNazaraRenderer-d -lNazaraGraphics-d \
-L/usr/lib64/ -L../../../lib/ -L../../../extlibs/lib/common/x64/ \
-L../../../lib/gmake/x64/  -L../../../extlibs/lib/x64/ \
-I../../../include/ -I../../../extlibs/include/ -I../../../SDK/include/ \
test.cpp -std=c++14 

Gabbro

Les makefiles de premake ne suffisent pas pour les exemples ?

Pour pouvoir exécuter le fichier test.bin ainsi créé, j'ai dû copier tout les .so de lib/gmake/x64/ dans le dossier courant. Je n'ai plus d'erreur de link, mais une jolie erreur, je crains que ce ne soit avec OpenGL,

Gabbro

Il manque une étape qui copierait les .so de Nazara dans le bon dossier, ou en tout cas dans le dossier "examples" (comme c'est le cas sous Windows).

L'erreur n'est pas liée à OpenGL (les messages ne sont que des messages d'informations venant de ton driver), OpenGL est complètement libéré une fois le module de rendu lui-même libéré.

Ça parle d'un double delete avec un unordered_map statique (car libéré à la toute fin) dans le SDK, c'est celui-ci:
static std::unordered_map<ComponentId, ComponentIndex> BaseComponent::s_idToIndex;

Je ne comprends pas pourquoi ça pose problème, mais de toute façon il y a un oubli dans le moteur, la map devrait être vidée à la libération du SDK, je vais corriger ça.

Donc non, aucun rapport avec OpenGL ou ta carte graphique jusqu'ici :)

Merci en tout cas pour tes retours !

+0 -0

Les makefiles de premake ne suffisent pas pour les exemples ?

Ils ont la mauvaise idée de créer des .o (fichiers objets sous linux), plutôt que des exécutables. Ils ont les bonnes ressources (j'ai récupéré les -I et -L dedans), mais pas le bon but.

Ah, les joies du multi-plateformes ! :D

+0 -0

J'ai fait le ménage pour tester de 0 (ce qui inclut de virer libNewton du système), et j'ai le même message d'erreur que toi. Ça marche avec la version compilé depuis les sources de Newton.

dans le dossier examples/bin

Exact, je ne cherchais pas au bon endroit.

Sinon, ça marche.

Nazara on linux

Ça va de 80 (quand je joue à rentrer dans le vaisseau) à 160 FPS.

+7 -0

Oh mon dieu, un rendu :D

Je viens de faire un commit qui permet de se passer de l'option "with-extlibs" et par conséquent d'avoir un seul Makefile, la liste des commandes vient donc de devenir:

1
2
3
4
5
sudo apt-get install libopenal-dev libsndfile1-dev libxcb-cursor-dev libxcb-ewmh-dev libxcb-randr0-dev libxcb-icccm4-dev libxcb-keysyms1-dev libx11-dev libfreetype6-dev mesa-common-dev libgl1-mesa-dev libassimp-dev
cd build
./premake5-linux --with-examples gmake
cd gmake
make (-jX)

Ce qui est plutôt pas mal :D

Il ne manque vraiment que les bons binaires de Newton 3.13 sous Linux (si tu arrives à le compiler en 32 bits, je suis preneur).

Ça et le fameux "make install" que je pense faire à la main, soit en copiant automatiquement les .so générés dans examples/bin (façon Windows), soit en les copiant dans le bon dossier du système..

Pour ce dernier point j'aurais besoin de l'avis des manchots ici présents.

+3 -0

Normalement, je crois que c'est /usr/local/lib(64)/, l'emplacement standard. Malheureusement, certaines distributions (dont la mienne) n'inclut pas cet emplacement par défaut, et il faut soit les copier dans /usr/lib(64)/ (mais c'est mal), soit ajouter export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib(64)" dans son .bashrc (et ça, c'est bien, mais c'est à l'utilisateur de le faire).

+0 -0

Ça y est, les bonnes bibliothèques sont enfin sur le dépôt, le moteur compile parfaitement chez moi (pour ce qui est de l'exécution, il ne semble pas aimer le driver OpenGL de Virtual Box.. :D ).

J'ai aussi renommé les exécutables premake en 64 bits (ça a été ma surprise en les exécutant sur une VM 32 bits) et compilé premake5 en 32bits.

Pour le make install je suis emmerdé car je ne trouve pas de moyen simple pour récupérer l'endroit où je dois copier les bibliothèques (chez moi c'est /usr/lib et /usr/lib32), sans oublier qu'il faut bien sûr les droits root pour toucher à ce dossier.

Enfin bon, je vais m'atteler à finir le tutoriel dans les prochains jours, je tiens à vous remercier, toi et Gawaboumga pour l'aide apportée sur Linux.

Je pense installer un Linux natif sur mon pc un jour à venir, ce serait bien que je participe activement au développement sur cette plateforme également :)

+7 -0

En fait c'est un éditeur de modèles fait avec Qt et Nazara (ça montre l'intégration de Nazara dans Qt), permettant de charger un modèle au choix et de l'observer (en tournant autour, mais je galère un peu avec cette caméra pour le moment).

Ça permet de voir ce que donne un modèle quand chargé/affiché par le moteur, de voir les différents submeshes qui le composent (ça se voit mal mais ici seul le submesh que j'ai sélectionné est affiché normalement), et à terme j'aimerai aussi:

  • Ajouter la possibilité de le modifier (de regénérer/inverser ses normales, changer l'ordre des sommets d'une face, modifier les matériaux)
  • Gérer le LOD du modèle (l'auto-générer, ou en tout cas voir ce que ça donne).
  • Rajouter un maillage physique (via composition de plusieurs primitives physiques par exemple).
  • L'exporter vers un autre format, typiquement un format binaire interne au moteur (pouvant contenir le maillage physique, le LOD, etc.).

Ça fait un long moment que j'ai envie de faire cet outil, et je me suis lancé il y a quelques jours (jusqu'ici, ça représente une journée entière de boulot).

Il y a eu aussi pas mal de nouveautés côté moteur, j'en parlerai prochainement :)

+5 -0

Image utilisateur

On peut maintenant éditer les matériaux en temps réel !
Je rendrais l'outil disponible dès qu'il sera un minimum utile (qu'on puisse sauvegarder son travail, ça me paraît pas mal).

Côté Vulkan je viens de push ce que j'avais fait récemment, pour ceux que ça intéresse (bientôt un rendu en vue).

+6 -0

Une critique sur l'image, les fenêtres volantes c'est vraiment une sinécure. On peut les encapsuler dans l'interface ?

stilobique

Je peux, après pour faire un truc "moderne" où on peut retirer des morceaux de l'UI et les faire se promener dans des fenêtres indépendantes à sa guise, il va falloir m'expliquer comment je suis censé faire ça avec Qt.. :D

+2 -0

Me voici revenu de vacances, et j'ai un peu plus de temps pour expliquer.

Image utilisateur

Cette image a été rendue par Nazara à l'aide de Vulkan, elle est très loin d'être parfaite (pour l'instant je n'ai pas encore créé le depth buffer ni utilisé la texture du modèle - il est coloré au niveau des sommets) mais le plus dur est fait: j'ai eu mes premiers rendus avec Vulkan.

Dans les prochains jours je vais procéder à quelques ajustements au niveau du renderer déjà en place pour faciliter la migration plus tard vers le nouveau renderer.

Je vais devoir casser l'interface haut-niveau, pour séparer la classe Material en deux (c'était une bêtise de ne pas le faire dès le début), la classe MaterialInstance va faire son apparition, sera basée sur un Material et ne permettra que de changer les couleurs et textures (propriétés qui vont se déplacer de Material vers MaterialInstance).

Les MaterialInstance seront utilisées en lieu et place des Material actuel (sprite, modèles, etc), ceci permettra donc enfin de pouvoir spécifier une couleur/texture de façon locale sans pour autant changer le Material derrière, ceci va aussi énormément aider au niveau du batching :)

Au niveau de l'éditeur, il est maintenant disponible sur GitHub et peut importer tous les formats supportés par le moteur et exporter en .obj (d'autres formats à venir).

+8 -0

Hello !

Dites bonjour à une nouvelle classe graphique que vous avez été nombreux à me demander: Nz::TileMap (oui, elle est documentée !).

Elle permet d'afficher une grille de sprites de même dimension bien plus rapidement qu'en utilisant un Sprite par case.

Voici notamment un TileMap en action: Image utilisateur

Le commit.

Bonne journée !

Et bien ça avance mine de rien ce rendu Vulkan ! :D
Pour la différentiation Material et MaterialInstance, je suis complètement d'accord avec tes arguments (surtout pour le batching).

Continue comme ça !

Glordim

Merci !

+8 -0

Salut tout le monde !

Alors, ça faisait longtemps, j'ai pas mal de choses à vous annoncer !

Tout d'abord, petite liste des nouveautés:

Ça ressemble à ceci:

1
2
3
4
5
Nz::EventHandler& eventHandler = window.GetEventHandler();
eventHandler.OnKeyPressed.Connect([](Nz::EventHandler*, const WindowEvent::KeyEvent&)
{
    // Action en cas d'appui sur une touche
});

La boucle événementielle de la fenêtre est donc maintenant gérée directement par l'application, et de plus la fenêtre se ferme maintenant toute seule par défaut lorsque le système lui demande (cela comprend la fermeture par la croix en haut à droite sous Windows).

Désolé pour le gros bloc de texte indigeste, mais je vous avais promis du progrès !

Viennent ensuite d'autres changements qui ne touchent pas directement au code:

Tout d'abord dans un avenir proche je pense intégrer (enfin) le PBR dans Nazara, ainsi que d'autres améliorations graphiques (dont une presque terminée que je vous laisserai en aperçu à la fin de ce message).

Une autre nouvelle, concernant le logo vieillissant, celui-ci va être changé, pour l'instant j'hésite sur deux variations que voici:

Image utilisateur

Image utilisateur

Personnellement je préfère les traits du premier mais votre avis m'intéresse :)

Merci d'avoir lu jusqu'au bout !

Démonstration du compteur de FPS, entre autres

+18 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte