浏览代码

Switch from servo-glutin to glutin, update dependencies

Johannes Hofmann 7 年前
父节点
当前提交
5f2d077f41
共有 5 个文件被更改,包括 450 次插入361 次删除
  1. 282
    179
      Cargo.lock
  2. 3
    3
      Cargo.toml
  3. 2
    3
      build.rs
  4. 2
    1
      src/context.rs
  5. 161
    175
      src/main.rs

+ 282
- 179
Cargo.lock 查看文件

@@ -92,7 +92,7 @@ version = "0.4.6"
92 92
 source = "registry+https://github.com/rust-lang/crates.io-index"
93 93
 dependencies = [
94 94
  "byteorder 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
95
- "iovec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
95
+ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
96 96
 ]
97 97
 
98 98
 [[package]]
@@ -110,7 +110,7 @@ name = "cgl"
110 110
 version = "0.2.1"
111 111
 source = "registry+https://github.com/rust-lang/crates.io-index"
112 112
 dependencies = [
113
- "gleam 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)",
113
+ "gleam 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)",
114 114
  "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
115 115
 ]
116 116
 
@@ -125,13 +125,13 @@ dependencies = [
125 125
 
126 126
 [[package]]
127 127
 name = "clap"
128
-version = "2.29.2"
128
+version = "2.29.4"
129 129
 source = "registry+https://github.com/rust-lang/crates.io-index"
130 130
 dependencies = [
131 131
  "ansi_term 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
132 132
  "atty 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
133 133
  "bitflags 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
134
- "strsim 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
134
+ "strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
135 135
  "textwrap 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
136 136
  "unicode-width 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
137 137
  "vec_map 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -148,12 +148,12 @@ dependencies = [
148 148
 
149 149
 [[package]]
150 150
 name = "cocoa"
151
-version = "0.13.0"
151
+version = "0.14.0"
152 152
 source = "registry+https://github.com/rust-lang/crates.io-index"
153 153
 dependencies = [
154 154
  "bitflags 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
155 155
  "block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
156
- "core-graphics 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)",
156
+ "core-graphics 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
157 157
  "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
158 158
  "objc 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
159 159
 ]
@@ -174,10 +174,10 @@ dependencies = [
174 174
 
175 175
 [[package]]
176 176
 name = "core-foundation"
177
-version = "0.4.6"
177
+version = "0.5.1"
178 178
 source = "registry+https://github.com/rust-lang/crates.io-index"
179 179
 dependencies = [
180
- "core-foundation-sys 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
180
+ "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
181 181
  "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
182 182
 ]
183 183
 
@@ -191,7 +191,7 @@ dependencies = [
191 191
 
192 192
 [[package]]
193 193
 name = "core-foundation-sys"
194
-version = "0.4.6"
194
+version = "0.5.1"
195 195
 source = "registry+https://github.com/rust-lang/crates.io-index"
196 196
 dependencies = [
197 197
  "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -199,11 +199,11 @@ dependencies = [
199 199
 
200 200
 [[package]]
201 201
 name = "core-graphics"
202
-version = "0.12.4"
202
+version = "0.13.0"
203 203
 source = "registry+https://github.com/rust-lang/crates.io-index"
204 204
 dependencies = [
205 205
  "bitflags 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
206
- "core-foundation 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
206
+ "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
207 207
  "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
208 208
  "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
209 209
 ]
@@ -229,33 +229,32 @@ dependencies = [
229 229
 name = "deltamap"
230 230
 version = "0.1.0"
231 231
 dependencies = [
232
- "clap 2.29.2 (registry+https://github.com/rust-lang/crates.io-index)",
233
- "env_logger 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
234
- "gl 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
235
- "gl_generator 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
232
+ "clap 2.29.4 (registry+https://github.com/rust-lang/crates.io-index)",
233
+ "env_logger 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
234
+ "gl 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
235
+ "gl_generator 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
236
+ "glutin 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)",
236 237
  "image 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)",
237
- "linked-hash-map 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
238
+ "linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
238 239
  "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
239 240
  "osmpbf 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
240
- "reqwest 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
241
- "servo-glutin 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)",
241
+ "reqwest 0.8.4 (registry+https://github.com/rust-lang/crates.io-index)",
242 242
  "toml 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
243 243
  "xdg 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
244 244
 ]
245 245
 
246 246
 [[package]]
247
-name = "dtoa"
248
-version = "0.4.2"
247
+name = "dlib"
248
+version = "0.4.0"
249 249
 source = "registry+https://github.com/rust-lang/crates.io-index"
250
+dependencies = [
251
+ "libloading 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
252
+]
250 253
 
251 254
 [[package]]
252
-name = "dwmapi-sys"
253
-version = "0.1.1"
255
+name = "dtoa"
256
+version = "0.4.2"
254 257
 source = "registry+https://github.com/rust-lang/crates.io-index"
255
-dependencies = [
256
- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
257
- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
258
-]
259 258
 
260 259
 [[package]]
261 260
 name = "either"
@@ -267,12 +266,12 @@ name = "enum_primitive"
267 266
 version = "0.1.1"
268 267
 source = "registry+https://github.com/rust-lang/crates.io-index"
269 268
 dependencies = [
270
- "num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
269
+ "num-traits 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
271 270
 ]
272 271
 
273 272
 [[package]]
274 273
 name = "env_logger"
275
-version = "0.5.2"
274
+version = "0.5.3"
276 275
 source = "registry+https://github.com/rust-lang/crates.io-index"
277 276
 dependencies = [
278 277
  "atty 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -328,7 +327,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
328 327
 
329 328
 [[package]]
330 329
 name = "futures"
331
-version = "0.1.17"
330
+version = "0.1.18"
332 331
 source = "registry+https://github.com/rust-lang/crates.io-index"
333 332
 
334 333
 [[package]]
@@ -336,19 +335,10 @@ name = "futures-cpupool"
336 335
 version = "0.1.8"
337 336
 source = "registry+https://github.com/rust-lang/crates.io-index"
338 337
 dependencies = [
339
- "futures 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
338
+ "futures 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
340 339
  "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
341 340
 ]
342 341
 
343
-[[package]]
344
-name = "gdi32-sys"
345
-version = "0.2.0"
346
-source = "registry+https://github.com/rust-lang/crates.io-index"
347
-dependencies = [
348
- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
349
- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
350
-]
351
-
352 342
 [[package]]
353 343
 name = "gif"
354 344
 version = "0.9.2"
@@ -360,10 +350,10 @@ dependencies = [
360 350
 
361 351
 [[package]]
362 352
 name = "gl"
363
-version = "0.9.0"
353
+version = "0.10.0"
364 354
 source = "registry+https://github.com/rust-lang/crates.io-index"
365 355
 dependencies = [
366
- "gl_generator 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
356
+ "gl_generator 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
367 357
 ]
368 358
 
369 359
 [[package]]
@@ -371,20 +361,52 @@ name = "gl_generator"
371 361
 version = "0.8.0"
372 362
 source = "registry+https://github.com/rust-lang/crates.io-index"
373 363
 dependencies = [
374
- "khronos_api 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
364
+ "khronos_api 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
375 365
  "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
376 366
  "xml-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
377 367
 ]
378 368
 
369
+[[package]]
370
+name = "gl_generator"
371
+version = "0.9.0"
372
+source = "registry+https://github.com/rust-lang/crates.io-index"
373
+dependencies = [
374
+ "khronos_api 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
375
+ "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
376
+ "xml-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
377
+]
378
+
379 379
 [[package]]
380 380
 name = "gleam"
381
-version = "0.4.19"
381
+version = "0.4.20"
382 382
 source = "registry+https://github.com/rust-lang/crates.io-index"
383 383
 dependencies = [
384 384
  "gl_generator 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
385 385
  "pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
386 386
 ]
387 387
 
388
+[[package]]
389
+name = "glutin"
390
+version = "0.12.1"
391
+source = "registry+https://github.com/rust-lang/crates.io-index"
392
+dependencies = [
393
+ "android_glue 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
394
+ "cgl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
395
+ "cocoa 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
396
+ "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
397
+ "core-graphics 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
398
+ "gl_generator 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
399
+ "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
400
+ "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
401
+ "objc 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
402
+ "osmesa-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
403
+ "shared_library 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
404
+ "wayland-client 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)",
405
+ "winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
406
+ "winit 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
407
+ "x11-dl 2.17.2 (registry+https://github.com/rust-lang/crates.io-index)",
408
+]
409
+
388 410
 [[package]]
389 411
 name = "httparse"
390 412
 version = "1.2.4"
@@ -392,19 +414,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
392 414
 
393 415
 [[package]]
394 416
 name = "hyper"
395
-version = "0.11.14"
417
+version = "0.11.17"
396 418
 source = "registry+https://github.com/rust-lang/crates.io-index"
397 419
 dependencies = [
398 420
  "base64 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
399 421
  "bytes 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
400
- "futures 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
422
+ "futures 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
401 423
  "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
402 424
  "httparse 1.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
425
+ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
403 426
  "language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
404 427
  "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
405 428
  "mime 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
406 429
  "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
407
- "relay 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
430
+ "relay 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
408 431
  "time 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)",
409 432
  "tokio-core 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
410 433
  "tokio-io 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -418,8 +441,8 @@ name = "hyper-tls"
418 441
 version = "0.1.2"
419 442
 source = "registry+https://github.com/rust-lang/crates.io-index"
420 443
 dependencies = [
421
- "futures 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
422
- "hyper 0.11.14 (registry+https://github.com/rust-lang/crates.io-index)",
444
+ "futures 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
445
+ "hyper 0.11.17 (registry+https://github.com/rust-lang/crates.io-index)",
423 446
  "native-tls 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
424 447
  "tokio-core 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
425 448
  "tokio-io 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -437,22 +460,6 @@ dependencies = [
437 460
  "unicode-normalization 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
438 461
 ]
439 462
 
440
-[[package]]
441
-name = "image"
442
-version = "0.17.0"
443
-source = "registry+https://github.com/rust-lang/crates.io-index"
444
-dependencies = [
445
- "byteorder 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
446
- "enum_primitive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
447
- "gif 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
448
- "jpeg-decoder 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
449
- "num-iter 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)",
450
- "num-rational 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
451
- "num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
452
- "png 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
453
- "scoped_threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
454
-]
455
-
456 463
 [[package]]
457 464
 name = "image"
458 465
 version = "0.18.0"
@@ -463,15 +470,15 @@ dependencies = [
463 470
  "gif 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
464 471
  "jpeg-decoder 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
465 472
  "num-iter 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)",
466
- "num-rational 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
467
- "num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
473
+ "num-rational 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
474
+ "num-traits 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
468 475
  "png 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
469 476
  "scoped_threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
470 477
 ]
471 478
 
472 479
 [[package]]
473 480
 name = "inflate"
474
-version = "0.3.3"
481
+version = "0.3.4"
475 482
 source = "registry+https://github.com/rust-lang/crates.io-index"
476 483
 dependencies = [
477 484
  "adler32 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -479,7 +486,7 @@ dependencies = [
479 486
 
480 487
 [[package]]
481 488
 name = "iovec"
482
-version = "0.1.1"
489
+version = "0.1.2"
483 490
 source = "registry+https://github.com/rust-lang/crates.io-index"
484 491
 dependencies = [
485 492
  "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -511,7 +518,7 @@ dependencies = [
511 518
 
512 519
 [[package]]
513 520
 name = "khronos_api"
514
-version = "2.0.0"
521
+version = "2.1.0"
515 522
 source = "registry+https://github.com/rust-lang/crates.io-index"
516 523
 
517 524
 [[package]]
@@ -549,9 +556,19 @@ dependencies = [
549 556
  "crc 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
550 557
 ]
551 558
 
559
+[[package]]
560
+name = "libloading"
561
+version = "0.4.3"
562
+source = "registry+https://github.com/rust-lang/crates.io-index"
563
+dependencies = [
564
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
565
+ "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
566
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
567
+]
568
+
552 569
 [[package]]
553 570
 name = "linked-hash-map"
554
-version = "0.5.0"
571
+version = "0.5.1"
555 572
 source = "registry+https://github.com/rust-lang/crates.io-index"
556 573
 
557 574
 [[package]]
@@ -635,12 +652,12 @@ dependencies = [
635 652
 
636 653
 [[package]]
637 654
 name = "mio"
638
-version = "0.6.12"
655
+version = "0.6.13"
639 656
 source = "registry+https://github.com/rust-lang/crates.io-index"
640 657
 dependencies = [
641 658
  "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
642 659
  "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
643
- "iovec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
660
+ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
644 661
  "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
645 662
  "lazycell 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
646 663
  "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -673,7 +690,7 @@ dependencies = [
673 690
  "schannel 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
674 691
  "security-framework 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
675 692
  "security-framework-sys 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
676
- "tempdir 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
693
+ "tempdir 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
677 694
 ]
678 695
 
679 696
 [[package]]
@@ -695,7 +712,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
695 712
 dependencies = [
696 713
  "num-integer 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
697 714
  "num-iter 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)",
698
- "num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
715
+ "num-traits 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
699 716
 ]
700 717
 
701 718
 [[package]]
@@ -703,7 +720,7 @@ name = "num-integer"
703 720
 version = "0.1.35"
704 721
 source = "registry+https://github.com/rust-lang/crates.io-index"
705 722
 dependencies = [
706
- "num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
723
+ "num-traits 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
707 724
 ]
708 725
 
709 726
 [[package]]
@@ -712,21 +729,21 @@ version = "0.1.34"
712 729
 source = "registry+https://github.com/rust-lang/crates.io-index"
713 730
 dependencies = [
714 731
  "num-integer 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
715
- "num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
732
+ "num-traits 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
716 733
 ]
717 734
 
718 735
 [[package]]
719 736
 name = "num-rational"
720
-version = "0.1.40"
737
+version = "0.1.41"
721 738
 source = "registry+https://github.com/rust-lang/crates.io-index"
722 739
 dependencies = [
723 740
  "num-integer 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
724
- "num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
741
+ "num-traits 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
725 742
 ]
726 743
 
727 744
 [[package]]
728 745
 name = "num-traits"
729
-version = "0.1.41"
746
+version = "0.1.42"
730 747
 source = "registry+https://github.com/rust-lang/crates.io-index"
731 748
 
732 749
 [[package]]
@@ -784,7 +801,7 @@ dependencies = [
784 801
  "byteorder 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
785 802
  "error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
786 803
  "flate2 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
787
- "inflate 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
804
+ "inflate 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
788 805
  "memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
789 806
  "protobuf 1.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
790 807
  "rayon 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -818,7 +835,7 @@ version = "0.7.21"
818 835
 source = "registry+https://github.com/rust-lang/crates.io-index"
819 836
 dependencies = [
820 837
  "phf_shared 0.7.21 (registry+https://github.com/rust-lang/crates.io-index)",
821
- "rand 0.3.20 (registry+https://github.com/rust-lang/crates.io-index)",
838
+ "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)",
822 839
 ]
823 840
 
824 841
 [[package]]
@@ -842,7 +859,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
842 859
 dependencies = [
843 860
  "bitflags 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
844 861
  "deflate 0.7.17 (registry+https://github.com/rust-lang/crates.io-index)",
845
- "inflate 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
862
+ "inflate 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
846 863
  "num-iter 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)",
847 864
 ]
848 865
 
@@ -853,11 +870,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
853 870
 
854 871
 [[package]]
855 872
 name = "rand"
856
-version = "0.3.20"
873
+version = "0.3.22"
874
+source = "registry+https://github.com/rust-lang/crates.io-index"
875
+dependencies = [
876
+ "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
877
+ "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
878
+ "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
879
+]
880
+
881
+[[package]]
882
+name = "rand"
883
+version = "0.4.2"
857 884
 source = "registry+https://github.com/rust-lang/crates.io-index"
858 885
 dependencies = [
859 886
  "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
860 887
  "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
888
+ "winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
861 889
 ]
862 890
 
863 891
 [[package]]
@@ -886,7 +914,7 @@ dependencies = [
886 914
  "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
887 915
  "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
888 916
  "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
889
- "rand 0.3.20 (registry+https://github.com/rust-lang/crates.io-index)",
917
+ "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)",
890 918
 ]
891 919
 
892 920
 [[package]]
@@ -921,20 +949,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
921 949
 
922 950
 [[package]]
923 951
 name = "relay"
924
-version = "0.1.0"
952
+version = "0.1.1"
925 953
 source = "registry+https://github.com/rust-lang/crates.io-index"
926 954
 dependencies = [
927
- "futures 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
955
+ "futures 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
956
+]
957
+
958
+[[package]]
959
+name = "remove_dir_all"
960
+version = "0.3.0"
961
+source = "registry+https://github.com/rust-lang/crates.io-index"
962
+dependencies = [
963
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
964
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
928 965
 ]
929 966
 
930 967
 [[package]]
931 968
 name = "reqwest"
932
-version = "0.8.3"
969
+version = "0.8.4"
933 970
 source = "registry+https://github.com/rust-lang/crates.io-index"
934 971
 dependencies = [
935 972
  "bytes 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
936
- "futures 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
937
- "hyper 0.11.14 (registry+https://github.com/rust-lang/crates.io-index)",
973
+ "futures 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
974
+ "hyper 0.11.17 (registry+https://github.com/rust-lang/crates.io-index)",
938 975
  "hyper-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
939 976
  "libflate 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
940 977
  "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1016,7 +1053,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1016 1053
 dependencies = [
1017 1054
  "dtoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
1018 1055
  "itoa 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
1019
- "num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
1056
+ "num-traits 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
1020 1057
  "serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)",
1021 1058
 ]
1022 1059
 
@@ -1031,32 +1068,6 @@ dependencies = [
1031 1068
  "url 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
1032 1069
 ]
1033 1070
 
1034
-[[package]]
1035
-name = "servo-glutin"
1036
-version = "0.13.4"
1037
-source = "registry+https://github.com/rust-lang/crates.io-index"
1038
-dependencies = [
1039
- "android_glue 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
1040
- "cgl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
1041
- "cocoa 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
1042
- "core-foundation 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
1043
- "core-graphics 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)",
1044
- "dwmapi-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
1045
- "gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
1046
- "gl_generator 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
1047
- "image 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)",
1048
- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
1049
- "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
1050
- "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
1051
- "objc 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
1052
- "osmesa-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
1053
- "shared_library 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
1054
- "shell32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
1055
- "user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
1056
- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
1057
- "x11-dl 2.17.2 (registry+https://github.com/rust-lang/crates.io-index)",
1058
-]
1059
-
1060 1071
 [[package]]
1061 1072
 name = "shared_library"
1062 1073
 version = "0.1.8"
@@ -1066,15 +1077,6 @@ dependencies = [
1066 1077
  "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
1067 1078
 ]
1068 1079
 
1069
-[[package]]
1070
-name = "shell32-sys"
1071
-version = "0.1.2"
1072
-source = "registry+https://github.com/rust-lang/crates.io-index"
1073
-dependencies = [
1074
- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
1075
- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
1076
-]
1077
-
1078 1080
 [[package]]
1079 1081
 name = "siphasher"
1080 1082
 version = "0.2.2"
@@ -1097,7 +1099,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1097 1099
 
1098 1100
 [[package]]
1099 1101
 name = "strsim"
1100
-version = "0.6.0"
1102
+version = "0.7.0"
1101 1103
 source = "registry+https://github.com/rust-lang/crates.io-index"
1102 1104
 
1103 1105
 [[package]]
@@ -1107,10 +1109,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1107 1109
 
1108 1110
 [[package]]
1109 1111
 name = "tempdir"
1110
-version = "0.3.5"
1112
+version = "0.3.6"
1111 1113
 source = "registry+https://github.com/rust-lang/crates.io-index"
1112 1114
 dependencies = [
1113
- "rand 0.3.20 (registry+https://github.com/rust-lang/crates.io-index)",
1115
+ "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
1116
+ "remove_dir_all 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
1117
+]
1118
+
1119
+[[package]]
1120
+name = "tempfile"
1121
+version = "2.2.0"
1122
+source = "registry+https://github.com/rust-lang/crates.io-index"
1123
+dependencies = [
1124
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
1125
+ "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
1126
+ "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)",
1127
+ "redox_syscall 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)",
1128
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
1114 1129
 ]
1115 1130
 
1116 1131
 [[package]]
@@ -1118,7 +1133,7 @@ name = "termcolor"
1118 1133
 version = "0.3.3"
1119 1134
 source = "registry+https://github.com/rust-lang/crates.io-index"
1120 1135
 dependencies = [
1121
- "wincolor 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
1136
+ "wincolor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
1122 1137
 ]
1123 1138
 
1124 1139
 [[package]]
@@ -1158,16 +1173,21 @@ dependencies = [
1158 1173
  "winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
1159 1174
 ]
1160 1175
 
1176
+[[package]]
1177
+name = "token_store"
1178
+version = "0.1.2"
1179
+source = "registry+https://github.com/rust-lang/crates.io-index"
1180
+
1161 1181
 [[package]]
1162 1182
 name = "tokio-core"
1163 1183
 version = "0.1.12"
1164 1184
 source = "registry+https://github.com/rust-lang/crates.io-index"
1165 1185
 dependencies = [
1166 1186
  "bytes 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
1167
- "futures 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
1168
- "iovec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
1187
+ "futures 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
1188
+ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
1169 1189
  "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
1170
- "mio 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
1190
+ "mio 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
1171 1191
  "scoped-tls 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
1172 1192
  "slab 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
1173 1193
  "tokio-io 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1179,7 +1199,7 @@ version = "0.1.4"
1179 1199
 source = "registry+https://github.com/rust-lang/crates.io-index"
1180 1200
 dependencies = [
1181 1201
  "bytes 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
1182
- "futures 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
1202
+ "futures 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
1183 1203
  "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
1184 1204
 ]
1185 1205
 
@@ -1188,10 +1208,10 @@ name = "tokio-proto"
1188 1208
 version = "0.1.1"
1189 1209
 source = "registry+https://github.com/rust-lang/crates.io-index"
1190 1210
 dependencies = [
1191
- "futures 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
1211
+ "futures 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
1192 1212
  "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
1193 1213
  "net2 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)",
1194
- "rand 0.3.20 (registry+https://github.com/rust-lang/crates.io-index)",
1214
+ "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)",
1195 1215
  "slab 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
1196 1216
  "smallvec 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
1197 1217
  "take 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1205,7 +1225,7 @@ name = "tokio-service"
1205 1225
 version = "0.1.0"
1206 1226
 source = "registry+https://github.com/rust-lang/crates.io-index"
1207 1227
 dependencies = [
1208
- "futures 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
1228
+ "futures 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
1209 1229
 ]
1210 1230
 
1211 1231
 [[package]]
@@ -1213,7 +1233,7 @@ name = "tokio-tls"
1213 1233
 version = "0.1.4"
1214 1234
 source = "registry+https://github.com/rust-lang/crates.io-index"
1215 1235
 dependencies = [
1216
- "futures 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
1236
+ "futures 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
1217 1237
  "native-tls 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
1218 1238
  "tokio-core 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
1219 1239
  "tokio-io 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1279,15 +1299,6 @@ dependencies = [
1279 1299
  "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
1280 1300
 ]
1281 1301
 
1282
-[[package]]
1283
-name = "user32-sys"
1284
-version = "0.2.0"
1285
-source = "registry+https://github.com/rust-lang/crates.io-index"
1286
-dependencies = [
1287
- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
1288
- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
1289
-]
1290
-
1291 1302
 [[package]]
1292 1303
 name = "utf8-ranges"
1293 1304
 version = "1.0.0"
@@ -1298,7 +1309,7 @@ name = "uuid"
1298 1309
 version = "0.5.1"
1299 1310
 source = "registry+https://github.com/rust-lang/crates.io-index"
1300 1311
 dependencies = [
1301
- "rand 0.3.20 (registry+https://github.com/rust-lang/crates.io-index)",
1312
+ "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)",
1302 1313
 ]
1303 1314
 
1304 1315
 [[package]]
@@ -1321,6 +1332,69 @@ name = "void"
1321 1332
 version = "1.0.2"
1322 1333
 source = "registry+https://github.com/rust-lang/crates.io-index"
1323 1334
 
1335
+[[package]]
1336
+name = "wayland-client"
1337
+version = "0.12.5"
1338
+source = "registry+https://github.com/rust-lang/crates.io-index"
1339
+dependencies = [
1340
+ "bitflags 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
1341
+ "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
1342
+ "token_store 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
1343
+ "wayland-scanner 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)",
1344
+ "wayland-sys 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)",
1345
+]
1346
+
1347
+[[package]]
1348
+name = "wayland-kbd"
1349
+version = "0.13.1"
1350
+source = "registry+https://github.com/rust-lang/crates.io-index"
1351
+dependencies = [
1352
+ "bitflags 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
1353
+ "dlib 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
1354
+ "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
1355
+ "memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
1356
+ "wayland-client 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)",
1357
+]
1358
+
1359
+[[package]]
1360
+name = "wayland-protocols"
1361
+version = "0.12.5"
1362
+source = "registry+https://github.com/rust-lang/crates.io-index"
1363
+dependencies = [
1364
+ "bitflags 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
1365
+ "wayland-client 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)",
1366
+ "wayland-scanner 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)",
1367
+ "wayland-sys 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)",
1368
+]
1369
+
1370
+[[package]]
1371
+name = "wayland-scanner"
1372
+version = "0.12.5"
1373
+source = "registry+https://github.com/rust-lang/crates.io-index"
1374
+dependencies = [
1375
+ "xml-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
1376
+]
1377
+
1378
+[[package]]
1379
+name = "wayland-sys"
1380
+version = "0.12.5"
1381
+source = "registry+https://github.com/rust-lang/crates.io-index"
1382
+dependencies = [
1383
+ "dlib 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
1384
+ "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
1385
+]
1386
+
1387
+[[package]]
1388
+name = "wayland-window"
1389
+version = "0.13.2"
1390
+source = "registry+https://github.com/rust-lang/crates.io-index"
1391
+dependencies = [
1392
+ "memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
1393
+ "tempfile 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
1394
+ "wayland-client 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)",
1395
+ "wayland-protocols 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)",
1396
+]
1397
+
1324 1398
 [[package]]
1325 1399
 name = "winapi"
1326 1400
 version = "0.2.8"
@@ -1352,11 +1426,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1352 1426
 
1353 1427
 [[package]]
1354 1428
 name = "wincolor"
1355
-version = "0.1.4"
1429
+version = "0.1.5"
1356 1430
 source = "registry+https://github.com/rust-lang/crates.io-index"
1357 1431
 dependencies = [
1358
- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
1359
- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
1432
+ "winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
1433
+]
1434
+
1435
+[[package]]
1436
+name = "winit"
1437
+version = "0.10.1"
1438
+source = "registry+https://github.com/rust-lang/crates.io-index"
1439
+dependencies = [
1440
+ "android_glue 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
1441
+ "cocoa 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
1442
+ "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
1443
+ "core-graphics 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
1444
+ "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
1445
+ "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
1446
+ "objc 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
1447
+ "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
1448
+ "wayland-client 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)",
1449
+ "wayland-kbd 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)",
1450
+ "wayland-protocols 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)",
1451
+ "wayland-window 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)",
1452
+ "winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
1453
+ "x11-dl 2.17.2 (registry+https://github.com/rust-lang/crates.io-index)",
1360 1454
 ]
1361 1455
 
1362 1456
 [[package]]
@@ -1410,54 +1504,55 @@ dependencies = [
1410 1504
 "checksum cfg-if 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d4c819a1287eb618df47cc647173c5c4c66ba19d888a6e50d605672aed3140de"
1411 1505
 "checksum cgl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "86765cb42c2a2c497e142af72517c1b4d7ae5bb2f25dfa77a5c69642f2342d89"
1412 1506
 "checksum chrono 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7c20ebe0b2b08b0aeddba49c609fe7957ba2e33449882cb186a180bc60682fa9"
1413
-"checksum clap 2.29.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4151c5790817c7d21bbdc6c3530811f798172915f93258244948b93ba19604a6"
1507
+"checksum clap 2.29.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7b8f59bcebcfe4269b09f71dab0da15b355c75916a8f975d3876ce81561893ee"
1414 1508
 "checksum coco 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c06169f5beb7e31c7c67ebf5540b8b472d23e3eade3b2ec7d1f5b504a85f91bd"
1415
-"checksum cocoa 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac0d785ff4faf0ff23d7b5561346bb50dc7ef9a11cb0e65e07ef776b7752938f"
1509
+"checksum cocoa 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b0c23085dde1ef4429df6e5896b89356d35cdd321fb43afe3e378d010bb5adc6"
1416 1510
 "checksum color_quant 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a475fc4af42d83d28adf72968d9bcfaf035a1a9381642d8e85d8a04957767b0d"
1417 1511
 "checksum core-foundation 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "25bfd746d203017f7d5cbd31ee5d8e17f94b6521c7af77ece6c9e4b2d4b16c67"
1418
-"checksum core-foundation 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "8047f547cd6856d45b1cdd75ef8d2f21f3d0e4bf1dab0a0041b0ae9a5dda9c0e"
1512
+"checksum core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "286e0b41c3a20da26536c6000a280585d519fd07b3956b43aed8a79e9edce980"
1419 1513
 "checksum core-foundation-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "065a5d7ffdcbc8fa145d6f0746f3555025b9097a9e9cda59f7467abae670c78d"
1420
-"checksum core-foundation-sys 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "152195421a2e6497a8179195672e9d4ee8e45ed8c465b626f1606d27a08ebcd5"
1421
-"checksum core-graphics 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8de78908c558a9ba526877d165635c9eaed0818a785a93efddde1c5bfd2ce5d1"
1514
+"checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa"
1515
+"checksum core-graphics 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fb0ed45fdc32f9ab426238fba9407dfead7bacd7900c9b4dd3f396f46eafdae3"
1422 1516
 "checksum crc 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bd5d02c0aac6bd68393ed69e00bbc2457f3e89075c6349db7189618dc4ddc1d7"
1423 1517
 "checksum deflate 0.7.17 (registry+https://github.com/rust-lang/crates.io-index)" = "4dddda59aaab719767ab11d3efd9a714e95b610c4445d4435765021e9d52dfb1"
1518
+"checksum dlib 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "95518d8f88d556e62c9b3014629f21bdad97a9fdfee85c68a185e3980af29e7c"
1424 1519
 "checksum dtoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "09c3753c3db574d215cba4ea76018483895d7bff25a31b49ba45db21c48e50ab"
1425
-"checksum dwmapi-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b44b6442aeab12e609aee505bd1066bdfd36b79c3fe5aad604aae91537623e76"
1426 1520
 "checksum either 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "740178ddf48b1a9e878e6d6509a1442a2d42fd2928aae8e7a6f8a36fb01981b3"
1427 1521
 "checksum enum_primitive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "be4551092f4d519593039259a9ed8daedf0da12e5109c5280338073eaeb81180"
1428
-"checksum env_logger 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f98112cf5e30982be3514040871a6f310504a7406ce1936691649353ec0607e9"
1522
+"checksum env_logger 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f15f0b172cb4f52ed5dbf47f774a387cd2315d1bf7894ab5af9b083ae27efa5a"
1429 1523
 "checksum error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff511d5dc435d703f4971bc399647c9bc38e20cb41452e3b9feb4765419ed3f3"
1430 1524
 "checksum flate2 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)" = "e6234dd4468ae5d1e2dbb06fe2b058696fdc50a339c68a393aefbf00bc81e423"
1431 1525
 "checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
1432 1526
 "checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
1433 1527
 "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
1434 1528
 "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
1435
-"checksum futures 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "118b49cac82e04121117cbd3121ede3147e885627d82c4546b87c702debb90c1"
1529
+"checksum futures 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "0bab5b5e94f5c31fc764ba5dd9ad16568aae5d4825538c01d6bca680c9bf94a7"
1436 1530
 "checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4"
1437
-"checksum gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0912515a8ff24ba900422ecda800b52f4016a56251922d397c576bf92c690518"
1438 1531
 "checksum gif 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e2e41945ba23db3bf51b24756d73d81acb4f28d85c3dccc32c6fae904438c25f"
1439
-"checksum gl 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8067824a3f3794cb508bf89a1937bada36a9f235680911fd30d919ebcd12aa36"
1532
+"checksum gl 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "81457bb802910ad5b535eb48541c51830a761804aa5b7087adbc9d049aa57aca"
1440 1533
 "checksum gl_generator 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4f5c19cde55637681450c92f7a05ea16c78e2b6d0587e601ec1ebdab6960854b"
1441
-"checksum gleam 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)" = "4f756699879522bc654ecc44ad42ad14c59803c2dacfa5a67a7fc27257a8b4e9"
1534
+"checksum gl_generator 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a795170cbd85b5a7baa58d6d7525cae6a03e486859860c220f7ebbbdd379d0a"
1535
+"checksum gleam 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)" = "959c818d9bbe9f7b7db55dce0bc44673c4da4f4ee122536c40550f984c3b8017"
1536
+"checksum glutin 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e06dc8e019f9cca3204635c5f9208e1370d8969719e2b30ad5a88972b152a2d4"
1442 1537
 "checksum httparse 1.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c2f407128745b78abc95c0ffbe4e5d37427fdc0d45470710cfef8c44522a2e37"
1443
-"checksum hyper 0.11.14 (registry+https://github.com/rust-lang/crates.io-index)" = "f57f74deb81fb91b776012ed7605e96b1ffb88c4fd5c031ce5c90534b604a6e0"
1538
+"checksum hyper 0.11.17 (registry+https://github.com/rust-lang/crates.io-index)" = "7f4de6edd503089841ebfa88341e1c00fb19b6bf93d820d908db15960fd31226"
1444 1539
 "checksum hyper-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c81fa95203e2a6087242c38691a0210f23e9f3f8f944350bd676522132e2985"
1445 1540
 "checksum idna 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "014b298351066f1512874135335d62a789ffe78a9974f94b43ed5621951eaf7d"
1446
-"checksum image 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d1576ffa01849c91b484b95c01d54dddc242b4d50923eaa2d4d74a58c4b9e8fd"
1447 1541
 "checksum image 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = "545f000e8aa4e569e93f49c446987133452e0091c2494ac3efd3606aa3d309f2"
1448
-"checksum inflate 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "10ec05638adf7c5c788bc0cfa608cd479a13572beda20feb4898fe1d85d2c64b"
1449
-"checksum iovec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b6e8b9c2247fcf6c6a1151f1156932be5606c9fd6f55a2d7f9fc1cb29386b2f7"
1542
+"checksum inflate 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f5f9f47468e9a76a6452271efadc88fe865a82be91fe75e6c0c57b87ccea59d4"
1543
+"checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08"
1450 1544
 "checksum itoa 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8324a32baf01e2ae060e9de58ed0bc2320c9a2833491ee36cd3b4c414de4db8c"
1451 1545
 "checksum jpeg-decoder 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2805ccb10ffe4d10e06ef68a158ff94c255211ecbae848fbde2146b098f93ce7"
1452 1546
 "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
1453
-"checksum khronos_api 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d867c645cfeb8a7fec503731679eac03ac11b7105aa5a71cb8f8ee5271636add"
1547
+"checksum khronos_api 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d9ef23fcc4059260c5936f638c9805ebfc87cb172fa6661d130cba7f97d58f55"
1454 1548
 "checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a"
1455 1549
 "checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73"
1456 1550
 "checksum lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c8f31047daa365f19be14b47c29df4f7c3b581832407daabe6ae77397619237d"
1457 1551
 "checksum lazycell 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a6f08839bc70ef4a3fe1d566d5350f519c5912ea86be0df1740a7d247c7fc0ef"
1458 1552
 "checksum libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)" = "1e5d97d6708edaa407429faa671b942dc0f2727222fb6b6539bf1db936e4b121"
1459 1553
 "checksum libflate 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "1a429b86418868c7ea91ee50e9170683f47fd9d94f5375438ec86ec3adb74e8e"
1460
-"checksum linked-hash-map 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d2aab0478615bb586559b0114d94dd8eca4fdbb73b443adcb0d00b61692b4bf"
1554
+"checksum libloading 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fd38073de8f7965d0c17d30546d4bb6da311ab428d1c7a3fc71dff7f9d4979b9"
1555
+"checksum linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "70fb39025bc7cdd76305867c4eccf2f2dcf6e9a57f5b21a93e1c2d86cd03ec9e"
1461 1556
 "checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
1462 1557
 "checksum log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "89f010e843f2b1a31dbd316b3b8d443758bc634bed37aabade59c686d644e0a2"
1463 1558
 "checksum lzw 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7d947cbb889ed21c2a84be6ffbaebf5b4e0f4340638cba0444907e38b56be084"
@@ -1468,15 +1563,15 @@ dependencies = [
1468 1563
 "checksum mime 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e2e00e17be181010a91dbfefb01660b17311059dc8c7f48b9017677721e732bd"
1469 1564
 "checksum mime_guess 2.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)" = "013572795763289e14710c7b279461295f2673b2b338200c235082cd7ca9e495"
1470 1565
 "checksum miniz-sys 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "609ce024854aeb19a0ef7567d348aaa5a746b32fb72e336df7fcc16869d7e2b4"
1471
-"checksum mio 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "75f72a93f046f1517e3cfddc0a096eb756a2ba727d36edc8227dee769a50a9b0"
1566
+"checksum mio 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "7da01a5e23070d92d99b1ecd1cd0af36447c6fd44b0fe283c2db199fa136724f"
1472 1567
 "checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
1473 1568
 "checksum native-tls 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f74dbadc8b43df7864539cedb7bc91345e532fdd913cfdc23ad94f4d2d40fbc0"
1474 1569
 "checksum net2 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)" = "3a80f842784ef6c9a958b68b7516bc7e35883c614004dd94959a4dca1b716c09"
1475 1570
 "checksum num 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "cc4083e14b542ea3eb9b5f33ff48bd373a92d78687e74f4cc0a30caeb754f0ca"
1476 1571
 "checksum num-integer 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "d1452e8b06e448a07f0e6ebb0bb1d92b8890eea63288c0b627331d53514d0fba"
1477 1572
 "checksum num-iter 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)" = "7485fcc84f85b4ecd0ea527b14189281cf27d60e583ae65ebc9c088b13dffe01"
1478
-"checksum num-rational 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "0c7cb72a95250d8a370105c828f388932373e0e94414919891a0f945222310fe"
1479
-"checksum num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "cacfcab5eb48250ee7d0c7896b51a2c5eec99c1feea5f32025635f5ae4b00070"
1573
+"checksum num-rational 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "0b950f75e042fdd710460084d19c8efdcd72d65183ead8ecd04b90483f5a55d2"
1574
+"checksum num-traits 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "9936036cc70fe4a8b2d338ab665900323290efb03983c86cbe235ae800ad8017"
1480 1575
 "checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30"
1481 1576
 "checksum objc 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "877f30f37acef6749b1841cceab289707f211aecfc756553cd63976190e6cc2e"
1482 1577
 "checksum openssl 0.9.23 (registry+https://github.com/rust-lang/crates.io-index)" = "169a4b9160baf9b9b1ab975418c673686638995ba921683a7f1e01470dcb8854"
@@ -1491,7 +1586,8 @@ dependencies = [
1491 1586
 "checksum pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "3a8b4c6b8165cd1a1cd4b9b120978131389f64bdaf456435caa41e630edba903"
1492 1587
 "checksum png 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f0b0cabbbd20c2d7f06dbf015e06aad59b6ca3d9ed14848783e98af9aaf19925"
1493 1588
 "checksum protobuf 1.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bec26e67194b7d991908145fdf21b7cae8b08423d96dcb9e860cd31f854b9506"
1494
-"checksum rand 0.3.20 (registry+https://github.com/rust-lang/crates.io-index)" = "512870020642bb8c221bf68baa1b2573da814f6ccfe5c9699b1c303047abe9b1"
1589
+"checksum rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)" = "15a732abf9d20f0ad8eeb6f909bf6868722d9a06e1e50802b6a70351f40b4eb1"
1590
+"checksum rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "eba5f8cb59cc50ed56be8880a5c7b496bfd9bd26394e176bc67884094145c2c5"
1495 1591
 "checksum rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b614fe08b6665cb9a231d07ac1364b0ef3cb3698f1239ee0c4c3a88a524f54c8"
1496 1592
 "checksum rayon 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ed02d09394c94ffbdfdc755ad62a132e94c3224a8354e78a1200ced34df12edf"
1497 1593
 "checksum rayon-core 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e64b609139d83da75902f88fd6c01820046840a18471e4dfcd5ac7c0f46bea53"
@@ -1499,8 +1595,9 @@ dependencies = [
1499 1595
 "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"
1500 1596
 "checksum regex 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "744554e01ccbd98fff8c457c3b092cd67af62a555a43bfe97ae8a0451f7799fa"
1501 1597
 "checksum regex-syntax 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8e931c58b93d86f080c734bfd2bce7dd0079ae2331235818133c8be7f422e20e"
1502
-"checksum relay 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f301bafeb60867c85170031bdb2fcf24c8041f33aee09e7b116a58d4e9f781c5"
1503
-"checksum reqwest 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8080379de728e9bf2be6bd5b52348978a5525e7d4a25f106ce73953fe7e810d9"
1598
+"checksum relay 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1576e382688d7e9deecea24417e350d3062d97e32e45d70b1cde65994ff1489a"
1599
+"checksum remove_dir_all 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b5d2f806b0fcdabd98acd380dc8daef485e22bcb7cddc811d1337967f2528cf5"
1600
+"checksum reqwest 0.8.4 (registry+https://github.com/rust-lang/crates.io-index)" = "449c45f593ce9af9417c91e22f274fb8cea013bcf3d37ec1b5fb534b623bc708"
1504 1601
 "checksum rustc-demangle 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "aee45432acc62f7b9a108cc054142dac51f979e69e71ddce7d6fc7adf29e817e"
1505 1602
 "checksum safemem 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e27a8b19b835f7aea908818e871f5cc3a5a186550c30773be987e155e8163d8f"
1506 1603
 "checksum schannel 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "acece75e0f987c48863a6c792ec8b7d6c4177d4a027f8ccc72f849794f437016"
@@ -1512,21 +1609,21 @@ dependencies = [
1512 1609
 "checksum serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)" = "db99f3919e20faa51bb2996057f5031d8685019b5a06139b1ce761da671b8526"
1513 1610
 "checksum serde_json 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c9db7266c7d63a4c4b7fe8719656ccdd51acf1bed6124b174f933b009fb10bcb"
1514 1611
 "checksum serde_urlencoded 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ce0fd303af908732989354c6f02e05e2e6d597152870f2c6990efb0577137480"
1515
-"checksum servo-glutin 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3267faf3d12f1c2210f691e82826493d732f7288cd3842a0739db3c2ce3d5048"
1516 1612
 "checksum shared_library 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8254bf098ce4d8d7cc7cc6de438c5488adc5297e5b7ffef88816c0a91bd289c1"
1517
-"checksum shell32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9ee04b46101f57121c9da2b151988283b6beb79b34f5bb29a58ee48cb695122c"
1518 1613
 "checksum siphasher 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0df90a788073e8d0235a67e50441d47db7c8ad9debd91cbf43736a2a92d36537"
1519 1614
 "checksum slab 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "17b4fcaed89ab08ef143da37bc52adbcc04d4a69014f4c1208d6b51f0c47bc23"
1520 1615
 "checksum slab 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fdeff4cd9ecff59ec7e3744cbca73dfe5ac35c2aedb2cfba8a1c715a18912e9d"
1521 1616
 "checksum smallvec 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4c8cbcd6df1e117c2210e13ab5109635ad68a929fcbb8964dc965b76cb5ee013"
1522
-"checksum strsim 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b4d15c810519a91cf877e7e36e63fe068815c678181439f2f29e2562147c3694"
1617
+"checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550"
1523 1618
 "checksum take 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b157868d8ac1f56b64604539990685fa7611d8fa9e5476cf0c02cf34d32917c5"
1524
-"checksum tempdir 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "87974a6f5c1dfb344d733055601650059a3363de2a6104819293baff662132d6"
1619
+"checksum tempdir 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f73eebdb68c14bcb24aef74ea96079830e7fa7b31a6106e42ea7ee887c1e134e"
1620
+"checksum tempfile 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "11ce2fe9db64b842314052e2421ac61a73ce41b898dc8e3750398b219c5fc1e0"
1525 1621
 "checksum termcolor 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9065bced9c3e43453aa3d56f1e98590b8455b341d2fa191a1090c0dd0b242c75"
1526 1622
 "checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096"
1527 1623
 "checksum textwrap 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c0b59b6b4b44d867f1370ef1bd91bfb262bf07bf0ae65c202ea2fbc16153b693"
1528 1624
 "checksum thread_local 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "279ef31c19ededf577bfd12dfae728040a21f635b06a24cd670ff510edd38963"
1529 1625
 "checksum time 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "a15375f1df02096fb3317256ce2cee6a1f42fc84ea5ad5fc8c421cfe40c73098"
1626
+"checksum token_store 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a686838375fc11103b9c1529c6508320b7bd5e2401cd62831ca51b3e82e61849"
1530 1627
 "checksum tokio-core 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "52b4e32d8edbf29501aabb3570f027c6ceb00ccef6538f4bddba0200503e74e8"
1531 1628
 "checksum tokio-io 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "514aae203178929dbf03318ad7c683126672d4d96eccb77b29603d33c9e25743"
1532 1629
 "checksum tokio-proto 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8fbb47ae81353c63c487030659494b295f6cb6576242f907f203473b191b0389"
@@ -1540,19 +1637,25 @@ dependencies = [
1540 1637
 "checksum unicode-width 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "bf3a113775714a22dcb774d8ea3655c53a32debae63a063acc00a91cc586245f"
1541 1638
 "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56"
1542 1639
 "checksum url 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fa35e768d4daf1d85733418a49fb42e10d7f633e394fccab4ab7aba897053fe2"
1543
-"checksum user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4ef4711d107b21b410a3a974b1204d9accc8b10dad75d8324b5d755de1617d47"
1544 1640
 "checksum utf8-ranges 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "662fab6525a98beff2921d7f61a39e7d59e0b425ebc7d0d9e66d316e55124122"
1545 1641
 "checksum uuid 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bcc7e3b898aa6f6c08e5295b6c89258d1331e9ac578cc992fb818759951bdc22"
1546 1642
 "checksum vcpkg 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9e0a7d8bed3178a8fb112199d466eeca9ed09a14ba8ad67718179b4fd5487d0b"
1547 1643
 "checksum vec_map 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "887b5b631c2ad01628bbbaa7dd4c869f80d3186688f8d0b6f58774fbe324988c"
1548 1644
 "checksum version_check 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6b772017e347561807c1aa192438c5fd74242a670a6cffacc40f2defd1dc069d"
1549 1645
 "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
1646
+"checksum wayland-client 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2b90adf943117ee4930d7944fe103dcb6f36ba05421f46521cb5adbf6bf0fbc8"
1647
+"checksum wayland-kbd 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4fe0fb1c9917da9529d781659e456d84a693d74fe873d1658109758444616f76"
1648
+"checksum wayland-protocols 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fb5942dd2fc79d934db437c9ea3aabffceb49b546046ea453bcba531005e5537"
1649
+"checksum wayland-scanner 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dcffa55a621e6f2c3d436de64d840fc325e1d0a467b92ee5e7292e17552e08ad"
1650
+"checksum wayland-sys 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)" = "377a2f83063c463e801ca10ae8cb9666e6e597eecac0049ac36cc7b9a83b0db3"
1651
+"checksum wayland-window 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2d94d3c23f8f2e0a09d82c6ca765da3c1efe65ef0280f750d74a6c6c6bb4ca8f"
1550 1652
 "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
1551 1653
 "checksum winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "04e3bd221fcbe8a271359c04f21a76db7d0c6028862d1bb5512d85e1e2eb5bb3"
1552 1654
 "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
1553 1655
 "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
1554 1656
 "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
1555
-"checksum wincolor 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a39ee4464208f6430992ff20154216ab2357772ac871d994c51628d60e58b8b0"
1657
+"checksum wincolor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0878187fa88838d2006c0a76f30d64797098426245b375383f60acb6aed8a203"
1658
+"checksum winit 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7d4c24c4ed10a1ae93a58b41981ece79d0ee0b5231ee1f8eb3a1bda963075c1d"
1556 1659
 "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
1557 1660
 "checksum x11-dl 2.17.2 (registry+https://github.com/rust-lang/crates.io-index)" = "28ec50063128cfdbdfe683b0504a3740e07b779c7c75fa26e941218b5f95e098"
1558 1661
 "checksum xdg 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a66b7c2281ebde13cf4391d70d4c7e5946c3c25e72a7b859ca8f677dcd0b0c61"

+ 3
- 3
Cargo.toml 查看文件

@@ -13,15 +13,15 @@ license = "GPL-3.0"
13 13
 [dependencies]
14 14
 clap = "2.29"
15 15
 env_logger = "0.5.0-rc.2"
16
-gl = "0.9"
16
+gl = "0.10"
17 17
 image = "0.18"
18 18
 linked-hash-map = "0.5.0"
19 19
 log = "0.4"
20 20
 osmpbf = "0.1"
21 21
 reqwest = "0.8"
22
-servo-glutin = "0.13"
22
+glutin = "0.12"
23 23
 toml = "0.4"
24 24
 xdg = "2.1"
25 25
 
26 26
 [build-dependencies]
27
-gl_generator = "0.8"
27
+gl_generator = "0.9"

+ 2
- 3
build.rs 查看文件

@@ -6,11 +6,10 @@ use std::fs::File;
6 6
 use std::path::PathBuf;
7 7
 
8 8
 fn main() {
9
-    let dest = PathBuf::from(&env::var("OUT_DIR").unwrap());
10
-
11 9
     println!("cargo:rerun-if-changed=build.rs");
12 10
 
13
-    let mut file = File::create(&dest.join("gles_bindings.rs")).unwrap();
11
+    let dest = PathBuf::from(&env::var("OUT_DIR").unwrap()).join("gles_bindings.rs");
12
+    let mut file = File::create(&dest).unwrap();
14 13
     Registry::new(Api::Gles2, (3, 0), Profile::Core, Fallbacks::All, [])
15 14
             .write_bindings(gl_generator::StructGenerator, &mut file).unwrap();
16 15
 }

+ 2
- 1
src/context.rs 查看文件

@@ -1,4 +1,5 @@
1 1
 use glutin;
2
+use glutin::GlContext;
2 3
 use std::mem;
3 4
 use std::ffi::CStr;
4 5
 
@@ -31,7 +32,7 @@ macro_rules! check_gl_errors {
31 32
 }
32 33
 
33 34
 impl Context {
34
-    pub fn from_window(window: &glutin::Window) -> Context {
35
+    pub fn from_gl_window(window: &glutin::GlWindow) -> Context {
35 36
         let gl = gl::Gl::load_with(|ptr| window.get_proc_address(ptr) as *const _);
36 37
         let cx = Context { gl: gl };
37 38
 

+ 161
- 175
src/main.rs 查看文件

@@ -28,7 +28,7 @@ pub mod tile_source;
28 28
 
29 29
 use clap::Arg;
30 30
 use coord::ScreenCoord;
31
-use glutin::{ElementState, Event, MouseButton, MouseScrollDelta, VirtualKeyCode};
31
+use glutin::{ControlFlow, ElementState, Event, GlContext, MouseButton, MouseScrollDelta, VirtualKeyCode, WindowEvent};
32 32
 use map_view_gl::MapViewGl;
33 33
 use std::error::Error;
34 34
 use std::time::{Duration, Instant};
@@ -42,160 +42,131 @@ enum Action {
42 42
     Close,
43 43
 }
44 44
 
45
-#[derive(Copy, Clone, Debug, PartialEq, Eq)]
45
+#[derive(Copy, Clone, Debug, PartialEq)]
46 46
 struct InputState {
47
-    mouse_position: (i32, i32),
47
+    mouse_position: (f64, f64),
48 48
     mouse_pressed: bool,
49
-    lctrl_pressed: bool,
50
-    rctrl_pressed: bool,
51
-}
52
-
53
-impl InputState {
54
-    fn ctrl_pressed(&self) -> bool {
55
-        self.lctrl_pressed | self.rctrl_pressed
56
-    }
57 49
 }
58 50
 
59 51
 fn handle_event(event: &Event, map: &mut MapViewGl, input_state: &mut InputState, sources: &mut TileSources) -> Action {
60 52
     match *event {
61
-        Event::Closed => Action::Close,
62 53
         Event::Awakened => Action::Redraw,
63
-        Event::MouseInput(ElementState::Pressed, MouseButton::Left, position) => {
64
-            input_state.mouse_pressed = true;
65
-            if let Some(p) = position {
66
-                input_state.mouse_position = p;
67
-            }
68
-            Action::Nothing
69
-        },
70
-        Event::MouseInput(ElementState::Released, MouseButton::Left, position) => {
71
-            input_state.mouse_pressed = false;
72
-            if let Some(p) = position {
73
-                input_state.mouse_position = p;
74
-            }
75
-            Action::Nothing
76
-        },
77
-        Event::MouseMoved(x, y) => {
78
-            if input_state.mouse_pressed {
79
-                map.move_pixel(
80
-                    f64::from(input_state.mouse_position.0 - x),
81
-                    f64::from(input_state.mouse_position.1 - y),
82
-                );
83
-                input_state.mouse_position = (x, y);
84
-                Action::Redraw
85
-            } else {
86
-                input_state.mouse_position = (x, y);
54
+        Event::WindowEvent{ref event, ..} => match *event {
55
+            WindowEvent::Closed => Action::Close,
56
+            WindowEvent::MouseInput { state: ElementState::Pressed, button: MouseButton::Left, .. } => {
57
+                input_state.mouse_pressed = true;
87 58
                 Action::Nothing
88
-            }
89
-        },
90
-        Event::MouseWheel(delta, _, position) => {
91
-            let (dx, dy) = match delta {
92
-                MouseScrollDelta::LineDelta(dx, dy) => {
93
-                    // filter strange wheel events with huge values.
94
-                    // (maybe this is just a personal touchpad driver issue)
95
-                    if dx.abs() < 16.0 && dy.abs() < 16.0 {
96
-                        //TODO find a sensible line height value (servo (the glutin port) uses 38)
97
-                        (dx, dy * 38.0)
98
-                    } else {
99
-                        (0.0, 0.0)
100
-                    }
101
-                },
102
-                MouseScrollDelta::PixelDelta(dx, dy) => (dx, dy),
103
-            };
104
-            if let Some(p) = position {
105
-                input_state.mouse_position = p;
106
-            }
107
-
108
-            //TODO add option for default mouse wheel behavior (scroll or zoom?)
109
-            //TODO add option to reverse scroll/zoom direction
110
-
111
-            if input_state.ctrl_pressed() {
112
-                map.move_pixel(f64::from(-dx), f64::from(-dy));
113
-            } else {
114
-                map.zoom_at(
115
-                    ScreenCoord::new(
116
-                        f64::from(input_state.mouse_position.0),
117
-                        f64::from(input_state.mouse_position.1),
118
-                    ),
119
-                    f64::from(dy) * (1.0 / 320.0),
120
-                );
121
-            }
122
-            Action::Redraw
123
-        },
124
-        Event::KeyboardInput(glutin::ElementState::Pressed, _, Some(keycode)) => {
125
-            match keycode {
126
-                VirtualKeyCode::Escape => {
127
-                    Action::Close
128
-                },
129
-                VirtualKeyCode::LControl => {
130
-                    input_state.lctrl_pressed = true;
131
-                    Action::Nothing
132
-                },
133
-                VirtualKeyCode::RControl => {
134
-                    input_state.rctrl_pressed = true;
135
-                    Action::Nothing
136
-                },
137
-                VirtualKeyCode::PageUp => {
138
-                    sources.switch_to_prev();
139
-                    Action::Redraw
140
-                },
141
-                VirtualKeyCode::PageDown => {
142
-                    sources.switch_to_next();
143
-                    Action::Redraw
144
-                },
145
-                VirtualKeyCode::Left => {
146
-                    map.move_pixel(-50.0, 0.0);
147
-                    Action::Redraw
148
-                },
149
-                VirtualKeyCode::Right => {
150
-                    map.move_pixel(50.0, 0.0);
151
-                    Action::Redraw
152
-                },
153
-                VirtualKeyCode::Up => {
154
-                    map.move_pixel(0.0, -50.0);
155
-                    Action::Redraw
156
-                },
157
-                VirtualKeyCode::Down => {
158
-                    map.move_pixel(0.0, 50.0);
159
-                    Action::Redraw
160
-                },
161
-                VirtualKeyCode::Add => {
162
-                    if input_state.ctrl_pressed() {
163
-                        map.change_tile_zoom_offset(1.0);
164
-                    } else {
165
-                        map.step_zoom(1, 0.5);
166
-                    }
167
-                    Action::Redraw
168
-                },
169
-                VirtualKeyCode::Subtract => {
170
-                    if input_state.ctrl_pressed() {
171
-                        map.change_tile_zoom_offset(-1.0);
172
-                    } else {
173
-                        map.step_zoom(-1, 0.5);
174
-                    }
59
+            },
60
+            WindowEvent::MouseInput { state: ElementState::Released, button: MouseButton::Left, .. } => {
61
+                input_state.mouse_pressed = false;
62
+                Action::Nothing
63
+            },
64
+            WindowEvent::CursorMoved { position: (x, y), .. } => {
65
+                if input_state.mouse_pressed {
66
+                    map.move_pixel(
67
+                        input_state.mouse_position.0 - x,
68
+                        input_state.mouse_position.1 - y,
69
+                    );
70
+                    input_state.mouse_position = (x, y);
175 71
                     Action::Redraw
176
-                },
177
-                _ => Action::Nothing,
178
-            }
179
-        },
180
-        Event::KeyboardInput(glutin::ElementState::Released, _, Some(keycode)) => {
181
-            match keycode {
182
-                VirtualKeyCode::LControl => {
183
-                    input_state.lctrl_pressed = false;
184
-                    Action::Nothing
185
-                },
186
-                VirtualKeyCode::RControl => {
187
-                    input_state.rctrl_pressed = false;
72
+                } else {
73
+                    input_state.mouse_position = (x, y);
188 74
                     Action::Nothing
189
-                },
190
-                _ => Action::Nothing,
191
-            }
192
-        },
193
-        Event::Refresh => {
194
-            Action::Redraw
195
-        },
196
-        Event::Resized(w, h) => {
197
-            map.set_viewport_size(w, h);
198
-            Action::Redraw
75
+                }
76
+            },
77
+            WindowEvent::MouseWheel { delta, modifiers, .. } => {
78
+                let (dx, dy) = match delta {
79
+                    MouseScrollDelta::LineDelta(dx, dy) => {
80
+                        // filter strange wheel events with huge values.
81
+                        // (maybe this is just a personal touchpad driver issue)
82
+                        if dx.abs() < 16.0 && dy.abs() < 16.0 {
83
+                            //TODO find a sensible line height value (servo (the glutin port) uses 38)
84
+                            (dx, dy * 38.0)
85
+                        } else {
86
+                            (0.0, 0.0)
87
+                        }
88
+                    },
89
+                    MouseScrollDelta::PixelDelta(dx, dy) => (dx, dy),
90
+                };
91
+
92
+                //TODO add option for default mouse wheel behavior (scroll or zoom?)
93
+                //TODO add option to reverse scroll/zoom direction
94
+
95
+                if modifiers.ctrl {
96
+                    map.move_pixel(f64::from(-dx), f64::from(-dy));
97
+                } else {
98
+                    map.zoom_at(
99
+                        ScreenCoord::new(
100
+                            input_state.mouse_position.0,
101
+                            input_state.mouse_position.1,
102
+                        ),
103
+                        f64::from(dy) * (1.0 / 320.0),
104
+                    );
105
+                }
106
+                Action::Redraw
107
+            },
108
+            WindowEvent::KeyboardInput {
109
+                input: glutin::KeyboardInput {
110
+                    state: glutin::ElementState::Pressed,
111
+                    virtual_keycode: Some(keycode),
112
+                    modifiers,
113
+                    .. },
114
+                .. } => {
115
+                match keycode {
116
+                    VirtualKeyCode::Escape => {
117
+                        Action::Close
118
+                    },
119
+                    VirtualKeyCode::PageUp => {
120
+                        sources.switch_to_prev();
121
+                        Action::Redraw
122
+                    },
123
+                    VirtualKeyCode::PageDown => {
124
+                        sources.switch_to_next();
125
+                        Action::Redraw
126
+                    },
127
+                    VirtualKeyCode::Left => {
128
+                        map.move_pixel(-50.0, 0.0);
129
+                        Action::Redraw
130
+                    },
131
+                    VirtualKeyCode::Right => {
132
+                        map.move_pixel(50.0, 0.0);
133
+                        Action::Redraw
134
+                    },
135
+                    VirtualKeyCode::Up => {
136
+                        map.move_pixel(0.0, -50.0);
137
+                        Action::Redraw
138
+                    },
139
+                    VirtualKeyCode::Down => {
140
+                        map.move_pixel(0.0, 50.0);
141
+                        Action::Redraw
142
+                    },
143
+                    VirtualKeyCode::Add => {
144
+                        if modifiers.ctrl {
145
+                            map.change_tile_zoom_offset(1.0);
146
+                        } else {
147
+                            map.step_zoom(1, 0.5);
148
+                        }
149
+                        Action::Redraw
150
+                    },
151
+                    VirtualKeyCode::Subtract => {
152
+                        if modifiers.ctrl {
153
+                            map.change_tile_zoom_offset(-1.0);
154
+                        } else {
155
+                            map.step_zoom(-1, 0.5);
156
+                        }
157
+                        Action::Redraw
158
+                    },
159
+                    _ => Action::Nothing,
160
+                }
161
+            },
162
+            WindowEvent::Refresh => {
163
+                Action::Redraw
164
+            },
165
+            WindowEvent::Resized(w, h) => {
166
+                map.set_viewport_size(w, h);
167
+                Action::Redraw
168
+            },
169
+            _ => Action::Nothing,
199 170
         },
200 171
         _ => Action::Nothing,
201 172
     }
@@ -247,33 +218,32 @@ fn main() {
247 218
 
248 219
     let mut sources = TileSources::new(config.tile_sources()).unwrap();
249 220
 
250
-    let mut window = glutin::WindowBuilder::new().build().unwrap();
251
-    window.set_title(&("DeltaMap - ".to_string() + sources.current_name()));
221
+    let mut events_loop = glutin::EventsLoop::new();
222
+    let builder = glutin::WindowBuilder::new()
223
+        .with_title(format!("DeltaMap - {}", sources.current_name()));
252 224
 
253
-    //TODO Find a safe way to trigger a redraw from a resize callback.
254
-    //TODO The callback is only allowed to access static content.
255
-    window.set_window_resize_callback(None);
225
+    let gl_context = glutin::ContextBuilder::new();
226
+    let gl_window = glutin::GlWindow::new(builder, gl_context, &events_loop).unwrap();
227
+    let window = gl_window.window();
256 228
 
257
-    let _ = unsafe { window.make_current() };
258
-    let cx = context::Context::from_window(&window);
229
+    let _ = unsafe { gl_window.make_current() };
230
+    let cx = context::Context::from_gl_window(&gl_window);
259 231
 
260 232
     let mut map = {
261
-        let proxy = window.create_window_proxy();
233
+        let proxy = events_loop.create_proxy();
262 234
 
263 235
         map_view_gl::MapViewGl::new(
264 236
             &cx,
265
-            window.get_inner_size_pixels().unwrap(),
266
-            move || { proxy.wakeup_event_loop(); },
237
+            window.get_inner_size().unwrap(),
238
+            move || { proxy.wakeup().unwrap(); },
267 239
             !matches.is_present("offline"),
268 240
             !matches.is_present("sync"),
269 241
         )
270 242
     };
271 243
 
272 244
     let mut input_state = InputState {
273
-        mouse_position: (0, 0),
245
+        mouse_position: (0.0, 0.0),
274 246
         mouse_pressed: false,
275
-        lctrl_pressed: false,
276
-        rctrl_pressed: false,
277 247
     };
278 248
 
279 249
     let fps: f64 = matches.value_of("fps").map(|s| s.parse().unwrap()).unwrap_or_else(|| config.fps());
@@ -285,29 +255,39 @@ fn main() {
285 255
     let mut last_draw = Instant::now();
286 256
     let mut increase_atlas_size = true;
287 257
 
288
-    'outer: for event in window.wait_events() {
289
-        debug!("{:?}", &event);
290
-
258
+    loop {
291 259
         let start_source_id = sources.current().id();
292 260
         let mut redraw = false;
261
+        let mut close = false;
293 262
 
294
-        match handle_event(&event, &mut map, &mut input_state, &mut sources) {
295
-            Action::Close => break 'outer,
296
-            Action::Redraw => {
297
-                redraw = true;
298
-            },
299
-            Action::Nothing => {},
263
+        events_loop.run_forever(|event| {
264
+            match handle_event(&event, &mut map, &mut input_state, &mut sources) {
265
+                Action::Close => close = true,
266
+                Action::Redraw => redraw = true,
267
+                Action::Nothing => {},
268
+            }
269
+            ControlFlow::Break
270
+        });
271
+
272
+        if close {
273
+            break;
300 274
         }
301 275
 
302
-        for event in window.poll_events() {
303
-            debug!("{:?}", &event);
276
+        events_loop.poll_events(|event| {
304 277
             match handle_event(&event, &mut map, &mut input_state, &mut sources) {
305
-                Action::Close => break 'outer,
278
+                Action::Close => {
279
+                    close = true;
280
+                    return;
281
+                },
306 282
                 Action::Redraw => {
307 283
                     redraw = true;
308 284
                 },
309 285
                 Action::Nothing => {},
310 286
             }
287
+        });
288
+
289
+        if close {
290
+            break;
311 291
         }
312 292
 
313 293
         {
@@ -316,15 +296,21 @@ fn main() {
316 296
                 if let Some(dur) = duration_per_frame.checked_sub(est_draw_dur * 2) {
317 297
                     std::thread::sleep(dur);
318 298
 
319
-                    for event in window.poll_events() {
320
-                        debug!("after sleep {:?}", &event);
299
+                    events_loop.poll_events(|event| {
321 300
                         match handle_event(&event, &mut map, &mut input_state, &mut sources) {
322
-                            Action::Close => break 'outer,
301
+                            Action::Close => {
302
+                                close = true;
303
+                                return;
304
+                            },
323 305
                             Action::Redraw => {
324 306
                                 redraw = true;
325 307
                             },
326 308
                             Action::Nothing => {},
327 309
                         }
310
+                    });
311
+
312
+                    if close {
313
+                        break;
328 314
                     }
329 315
                 }
330 316
             }
@@ -335,7 +321,7 @@ fn main() {
335 321
             let draw_result = map.draw(sources.current());
336 322
             let draw_dur = draw_start.elapsed();
337 323
 
338
-            let _ = window.swap_buffers();
324
+            let _ = gl_window.swap_buffers();
339 325
 
340 326
             //TODO increase atlas size earlier to avoid excessive copying to the GPU
341 327
             //TODO increase max tile cache size?
@@ -364,7 +350,7 @@ fn main() {
364 350
 
365 351
         // set window title
366 352
         if sources.current().id() != start_source_id {
367
-            window.set_title(&("DeltaMap - ".to_string() + sources.current_name()));
353
+            window.set_title(&format!("DeltaMap - {}", sources.current_name()));
368 354
         }
369 355
     }
370 356
 }