1use glutin;
2
3pub const CLOSE: isize = 1;
16
17pub const PERLIN: [isize; 512] = [
20 151,
21 160,
22 137,
23 91,
24 90,
25 15,
26 131,
27 13,
28 201,
29 95,
30 96,
31 53,
32 194,
33 233,
34 7,
35 225,
36 140,
37 36,
38 103,
39 30,
40 69,
41 142,
42 8,
43 99,
44 37,
45 240,
46 21,
47 10,
48 23,
49 190,
50 6,
51 148,
52 247,
53 120,
54 234,
55 75,
56 0,
57 26,
58 197,
59 62,
60 94,
61 252,
62 219,
63 203,
64 117,
65 35,
66 11,
67 32,
68 57,
69 177,
70 33,
71 88,
72 237,
73 149,
74 56,
75 87,
76 174,
77 20,
78 125,
79 136,
80 171,
81 168,
82 68,
83 175,
84 74,
85 165,
86 71,
87 134,
88 139,
89 48,
90 27,
91 166,
92 77,
93 146,
94 158,
95 231,
96 83,
97 111,
98 229,
99 122,
100 60,
101 211,
102 133,
103 230,
104 220,
105 105,
106 92,
107 41,
108 55,
109 46,
110 245,
111 40,
112 244,
113 102,
114 143,
115 54,
116 65,
117 25,
118 63,
119 161,
120 1,
121 216,
122 80,
123 73,
124 209,
125 76,
126 132,
127 187,
128 208,
129 89,
130 18,
131 169,
132 200,
133 196,
134 135,
135 130,
136 116,
137 188,
138 159,
139 86,
140 164,
141 100,
142 109,
143 198,
144 173,
145 186,
146 3,
147 64,
148 52,
149 217,
150 226,
151 250,
152 124,
153 123,
154 5,
155 202,
156 38,
157 147,
158 118,
159 126,
160 255,
161 82,
162 85,
163 212,
164 207,
165 206,
166 59,
167 227,
168 47,
169 16,
170 58,
171 17,
172 182,
173 189,
174 28,
175 42,
176 223,
177 183,
178 170,
179 213,
180 119,
181 248,
182 152,
183 2,
184 44,
185 154,
186 163,
187 70,
188 221,
189 153,
190 101,
191 155,
192 167,
193 43,
194 172,
195 9,
196 129,
197 22,
198 39,
199 253,
200 19,
201 98,
202 108,
203 110,
204 79,
205 113,
206 224,
207 232,
208 178,
209 185,
210 112,
211 104,
212 218,
213 246,
214 97,
215 228,
216 251,
217 34,
218 242,
219 193,
220 238,
221 210,
222 144,
223 12,
224 191,
225 179,
226 162,
227 241,
228 81,
229 51,
230 145,
231 235,
232 249,
233 14,
234 239,
235 107,
236 49,
237 192,
238 214,
239 31,
240 181,
241 199,
242 106,
243 157,
244 184,
245 84,
246 204,
247 176,
248 115,
249 121,
250 50,
251 45,
252 127,
253 4,
254 150,
255 254,
256 138,
257 236,
258 205,
259 93,
260 222,
261 114,
262 67,
263 29,
264 24,
265 72,
266 243,
267 141,
268 128,
269 195,
270 78,
271 66,
272 215,
273 61,
274 156,
275 180,
276 151,
277 160,
278 137,
279 91,
280 90,
281 15,
282 131,
283 13,
284 201,
285 95,
286 96,
287 53,
288 194,
289 233,
290 7,
291 225,
292 140,
293 36,
294 103,
295 30,
296 69,
297 142,
298 8,
299 99,
300 37,
301 240,
302 21,
303 10,
304 23,
305 190,
306 6,
307 148,
308 247,
309 120,
310 234,
311 75,
312 0,
313 26,
314 197,
315 62,
316 94,
317 252,
318 219,
319 203,
320 117,
321 35,
322 11,
323 32,
324 57,
325 177,
326 33,
327 88,
328 237,
329 149,
330 56,
331 87,
332 174,
333 20,
334 125,
335 136,
336 171,
337 168,
338 68,
339 175,
340 74,
341 165,
342 71,
343 134,
344 139,
345 48,
346 27,
347 166,
348 77,
349 146,
350 158,
351 231,
352 83,
353 111,
354 229,
355 122,
356 60,
357 211,
358 133,
359 230,
360 220,
361 105,
362 92,
363 41,
364 55,
365 46,
366 245,
367 40,
368 244,
369 102,
370 143,
371 54,
372 65,
373 25,
374 63,
375 161,
376 1,
377 216,
378 80,
379 73,
380 209,
381 76,
382 132,
383 187,
384 208,
385 89,
386 18,
387 169,
388 200,
389 196,
390 135,
391 130,
392 116,
393 188,
394 159,
395 86,
396 164,
397 100,
398 109,
399 198,
400 173,
401 186,
402 3,
403 64,
404 52,
405 217,
406 226,
407 250,
408 124,
409 123,
410 5,
411 202,
412 38,
413 147,
414 118,
415 126,
416 255,
417 82,
418 85,
419 212,
420 207,
421 206,
422 59,
423 227,
424 47,
425 16,
426 58,
427 17,
428 182,
429 189,
430 28,
431 42,
432 223,
433 183,
434 170,
435 213,
436 119,
437 248,
438 152,
439 2,
440 44,
441 154,
442 163,
443 70,
444 221,
445 153,
446 101,
447 155,
448 167,
449 43,
450 172,
451 9,
452 129,
453 22,
454 39,
455 253,
456 19,
457 98,
458 108,
459 110,
460 79,
461 113,
462 224,
463 232,
464 178,
465 185,
466 112,
467 104,
468 218,
469 246,
470 97,
471 228,
472 251,
473 34,
474 242,
475 193,
476 238,
477 210,
478 144,
479 12,
480 191,
481 179,
482 162,
483 241,
484 81,
485 51,
486 145,
487 235,
488 249,
489 14,
490 239,
491 107,
492 49,
493 192,
494 214,
495 31,
496 181,
497 199,
498 106,
499 157,
500 184,
501 84,
502 204,
503 176,
504 115,
505 121,
506 50,
507 45,
508 127,
509 4,
510 150,
511 254,
512 138,
513 236,
514 205,
515 93,
516 222,
517 114,
518 67,
519 29,
520 24,
521 72,
522 243,
523 141,
524 128,
525 195,
526 78,
527 66,
528 215,
529 61,
530 156,
531 180,
532];
533
534#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
536pub enum MouseButton {
537 Left,
538 Right,
539 Middle,
540 Button4,
541 Button5,
542 Button6,
543 Button7,
544 Button8,
545}
546
547impl From<MouseButton> for glutin::MouseButton {
548 fn from(btn: MouseButton) -> Self {
549 match btn {
550 MouseButton::Left => glutin::MouseButton::Left,
551 MouseButton::Right => glutin::MouseButton::Right,
552 MouseButton::Middle => glutin::MouseButton::Middle,
553 MouseButton::Button4 => glutin::MouseButton::Other(4),
554 MouseButton::Button5 => glutin::MouseButton::Other(5),
555 MouseButton::Button6 => glutin::MouseButton::Other(6),
556 MouseButton::Button7 => glutin::MouseButton::Other(7),
557 MouseButton::Button8 => glutin::MouseButton::Other(8),
558 }
559 }
560}
561
562#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
564pub enum Key {
565 Num1,
566 Num2,
567 Num3,
568 Num4,
569 Num5,
570 Num6,
571 Num7,
572 Num8,
573 Num9,
574 Num0,
575 A,
576 B,
577 C,
578 D,
579 E,
580 F,
581 G,
582 H,
583 I,
584 J,
585 K,
586 L,
587 M,
588 N,
589 O,
590 P,
591 Q,
592 R,
593 S,
594 T,
595 U,
596 V,
597 W,
598 X,
599 Y,
600 Z,
601 Escape,
602 F1,
603 F2,
604 F3,
605 F4,
606 F5,
607 F6,
608 F7,
609 F8,
610 F9,
611 F10,
612 F11,
613 F12,
614 F13,
615 F14,
616 F15,
617 Snapshot,
618 Scroll,
619 Pause,
620 Insert,
621 Home,
622 Delete,
623 End,
624 PageDown,
625 PageUp,
626 Left,
627 Up,
628 Right,
629 Down,
630 Back,
631 Return,
632 Space,
633 Compose,
634 Numlock,
635 Numpad0,
636 Numpad1,
637 Numpad2,
638 Numpad3,
639 Numpad4,
640 Numpad5,
641 Numpad6,
642 Numpad7,
643 Numpad8,
644 Numpad9,
645 AbntC1,
646 AbntC2,
647 Add,
648 Apostrophe,
649 Apps,
650 At,
651 Ax,
652 Backslash,
653 Calculator,
654 Capital,
655 Colon,
656 Comma,
657 Convert,
658 Decimal,
659 Divide,
660 Equals,
661 Grave,
662 Kana,
663 Kanji,
664 LAlt,
665 LBracket,
666 LControl,
667 LShift,
669 LWin,
670 Mail,
671 MediaSelect,
672 MediaStop,
673 Minus,
674 Multiply,
675 Mute,
676 MyComputer,
677 NavigateForward,
678 NavigateBackward,
679 NextTrack,
680 NoConvert,
681 NumpadComma,
682 NumpadEnter,
683 NumpadEquals,
684 OEM102,
685 Period,
686 PlayPause,
687 Power,
688 PrevTrack,
689 RAlt,
690 RBracket,
691 RControl,
692 RShift,
694 RWin,
695 Semicolon,
696 Slash,
697 Sleep,
698 Stop,
699 Subtract,
700 Sysrq,
701 Tab,
702 Underline,
703 Unlabeled,
704 VolumeDown,
705 VolumeUp,
706 Wake,
707 WebBack,
708 WebFavorites,
709 WebForward,
710 WebHome,
711 WebRefresh,
712 WebSearch,
713 WebStop,
714 Yen,
715}
716
717impl From<Key> for glutin::VirtualKeyCode {
718 fn from(btn: Key) -> Self {
719 match btn {
720 Key::Num1 => glutin::VirtualKeyCode::Key1,
721 Key::Num2 => glutin::VirtualKeyCode::Key2,
722 Key::Num3 => glutin::VirtualKeyCode::Key3,
723 Key::Num4 => glutin::VirtualKeyCode::Key4,
724 Key::Num5 => glutin::VirtualKeyCode::Key5,
725 Key::Num6 => glutin::VirtualKeyCode::Key6,
726 Key::Num7 => glutin::VirtualKeyCode::Key7,
727 Key::Num8 => glutin::VirtualKeyCode::Key8,
728 Key::Num9 => glutin::VirtualKeyCode::Key9,
729 Key::Num0 => glutin::VirtualKeyCode::Key0,
730 Key::A => glutin::VirtualKeyCode::A,
731 Key::B => glutin::VirtualKeyCode::B,
732 Key::C => glutin::VirtualKeyCode::C,
733 Key::D => glutin::VirtualKeyCode::D,
734 Key::E => glutin::VirtualKeyCode::E,
735 Key::F => glutin::VirtualKeyCode::F,
736 Key::G => glutin::VirtualKeyCode::G,
737 Key::H => glutin::VirtualKeyCode::H,
738 Key::I => glutin::VirtualKeyCode::I,
739 Key::J => glutin::VirtualKeyCode::J,
740 Key::K => glutin::VirtualKeyCode::K,
741 Key::L => glutin::VirtualKeyCode::L,
742 Key::M => glutin::VirtualKeyCode::M,
743 Key::N => glutin::VirtualKeyCode::N,
744 Key::O => glutin::VirtualKeyCode::O,
745 Key::P => glutin::VirtualKeyCode::P,
746 Key::Q => glutin::VirtualKeyCode::Q,
747 Key::R => glutin::VirtualKeyCode::R,
748 Key::S => glutin::VirtualKeyCode::S,
749 Key::T => glutin::VirtualKeyCode::T,
750 Key::U => glutin::VirtualKeyCode::U,
751 Key::V => glutin::VirtualKeyCode::V,
752 Key::W => glutin::VirtualKeyCode::W,
753 Key::X => glutin::VirtualKeyCode::X,
754 Key::Y => glutin::VirtualKeyCode::Y,
755 Key::Z => glutin::VirtualKeyCode::Z,
756 Key::Escape => glutin::VirtualKeyCode::Escape,
757 Key::F1 => glutin::VirtualKeyCode::F1,
758 Key::F2 => glutin::VirtualKeyCode::F2,
759 Key::F3 => glutin::VirtualKeyCode::F3,
760 Key::F4 => glutin::VirtualKeyCode::F4,
761 Key::F5 => glutin::VirtualKeyCode::F5,
762 Key::F6 => glutin::VirtualKeyCode::F6,
763 Key::F7 => glutin::VirtualKeyCode::F7,
764 Key::F8 => glutin::VirtualKeyCode::F8,
765 Key::F9 => glutin::VirtualKeyCode::F9,
766 Key::F10 => glutin::VirtualKeyCode::F10,
767 Key::F11 => glutin::VirtualKeyCode::F11,
768 Key::F12 => glutin::VirtualKeyCode::F12,
769 Key::F13 => glutin::VirtualKeyCode::F13,
770 Key::F14 => glutin::VirtualKeyCode::F14,
771 Key::F15 => glutin::VirtualKeyCode::F15,
772 Key::Snapshot => glutin::VirtualKeyCode::Snapshot,
773 Key::Scroll => glutin::VirtualKeyCode::Scroll,
774 Key::Pause => glutin::VirtualKeyCode::Pause,
775 Key::Insert => glutin::VirtualKeyCode::Insert,
776 Key::Home => glutin::VirtualKeyCode::Home,
777 Key::Delete => glutin::VirtualKeyCode::Delete,
778 Key::End => glutin::VirtualKeyCode::End,
779 Key::PageDown => glutin::VirtualKeyCode::PageDown,
780 Key::PageUp => glutin::VirtualKeyCode::PageUp,
781 Key::Left => glutin::VirtualKeyCode::Left,
782 Key::Up => glutin::VirtualKeyCode::Up,
783 Key::Right => glutin::VirtualKeyCode::Right,
784 Key::Down => glutin::VirtualKeyCode::Down,
785 Key::Back => glutin::VirtualKeyCode::Back,
786 Key::Return => glutin::VirtualKeyCode::Return,
787 Key::Space => glutin::VirtualKeyCode::Space,
788 Key::Compose => glutin::VirtualKeyCode::Compose,
789 Key::Numlock => glutin::VirtualKeyCode::Numlock,
790 Key::Numpad0 => glutin::VirtualKeyCode::Numpad0,
791 Key::Numpad1 => glutin::VirtualKeyCode::Numpad1,
792 Key::Numpad2 => glutin::VirtualKeyCode::Numpad2,
793 Key::Numpad3 => glutin::VirtualKeyCode::Numpad3,
794 Key::Numpad4 => glutin::VirtualKeyCode::Numpad4,
795 Key::Numpad5 => glutin::VirtualKeyCode::Numpad5,
796 Key::Numpad6 => glutin::VirtualKeyCode::Numpad6,
797 Key::Numpad7 => glutin::VirtualKeyCode::Numpad7,
798 Key::Numpad8 => glutin::VirtualKeyCode::Numpad8,
799 Key::Numpad9 => glutin::VirtualKeyCode::Numpad9,
800 Key::AbntC1 => glutin::VirtualKeyCode::AbntC1,
801 Key::AbntC2 => glutin::VirtualKeyCode::AbntC2,
802 Key::Add => glutin::VirtualKeyCode::Add,
803 Key::Apostrophe => glutin::VirtualKeyCode::Apostrophe,
804 Key::Apps => glutin::VirtualKeyCode::Apps,
805 Key::At => glutin::VirtualKeyCode::At,
806 Key::Ax => glutin::VirtualKeyCode::Ax,
807 Key::Backslash => glutin::VirtualKeyCode::Backslash,
808 Key::Calculator => glutin::VirtualKeyCode::Calculator,
809 Key::Capital => glutin::VirtualKeyCode::Capital,
810 Key::Colon => glutin::VirtualKeyCode::Colon,
811 Key::Comma => glutin::VirtualKeyCode::Comma,
812 Key::Convert => glutin::VirtualKeyCode::Convert,
813 Key::Decimal => glutin::VirtualKeyCode::Decimal,
814 Key::Divide => glutin::VirtualKeyCode::Divide,
815 Key::Equals => glutin::VirtualKeyCode::Equals,
816 Key::Grave => glutin::VirtualKeyCode::Grave,
817 Key::Kana => glutin::VirtualKeyCode::Kana,
818 Key::Kanji => glutin::VirtualKeyCode::Kanji,
819 Key::LAlt => glutin::VirtualKeyCode::LAlt,
820 Key::LBracket => glutin::VirtualKeyCode::LBracket,
821 Key::LControl => glutin::VirtualKeyCode::LControl,
822 Key::LShift => glutin::VirtualKeyCode::LShift,
824 Key::LWin => glutin::VirtualKeyCode::LWin,
825 Key::Mail => glutin::VirtualKeyCode::Mail,
826 Key::MediaSelect => glutin::VirtualKeyCode::MediaSelect,
827 Key::MediaStop => glutin::VirtualKeyCode::MediaStop,
828 Key::Minus => glutin::VirtualKeyCode::Minus,
829 Key::Multiply => glutin::VirtualKeyCode::Multiply,
830 Key::Mute => glutin::VirtualKeyCode::Mute,
831 Key::MyComputer => glutin::VirtualKeyCode::MyComputer,
832 Key::NavigateForward => glutin::VirtualKeyCode::NavigateForward,
833 Key::NavigateBackward => glutin::VirtualKeyCode::NavigateBackward,
834 Key::NextTrack => glutin::VirtualKeyCode::NextTrack,
835 Key::NoConvert => glutin::VirtualKeyCode::NoConvert,
836 Key::NumpadComma => glutin::VirtualKeyCode::NumpadComma,
837 Key::NumpadEnter => glutin::VirtualKeyCode::NumpadEnter,
838 Key::NumpadEquals => glutin::VirtualKeyCode::NumpadEquals,
839 Key::OEM102 => glutin::VirtualKeyCode::OEM102,
840 Key::Period => glutin::VirtualKeyCode::Period,
841 Key::PlayPause => glutin::VirtualKeyCode::PlayPause,
842 Key::Power => glutin::VirtualKeyCode::Power,
843 Key::PrevTrack => glutin::VirtualKeyCode::PrevTrack,
844 Key::RAlt => glutin::VirtualKeyCode::RAlt,
845 Key::RBracket => glutin::VirtualKeyCode::RBracket,
846 Key::RControl => glutin::VirtualKeyCode::RControl,
847 Key::RShift => glutin::VirtualKeyCode::RShift,
849 Key::RWin => glutin::VirtualKeyCode::RWin,
850 Key::Semicolon => glutin::VirtualKeyCode::Semicolon,
851 Key::Slash => glutin::VirtualKeyCode::Slash,
852 Key::Sleep => glutin::VirtualKeyCode::Sleep,
853 Key::Stop => glutin::VirtualKeyCode::Stop,
854 Key::Subtract => glutin::VirtualKeyCode::Subtract,
855 Key::Sysrq => glutin::VirtualKeyCode::Sysrq,
856 Key::Tab => glutin::VirtualKeyCode::Tab,
857 Key::Underline => glutin::VirtualKeyCode::Underline,
858 Key::Unlabeled => glutin::VirtualKeyCode::Unlabeled,
859 Key::VolumeDown => glutin::VirtualKeyCode::VolumeDown,
860 Key::VolumeUp => glutin::VirtualKeyCode::VolumeUp,
861 Key::Wake => glutin::VirtualKeyCode::Wake,
862 Key::WebBack => glutin::VirtualKeyCode::WebBack,
863 Key::WebFavorites => glutin::VirtualKeyCode::WebFavorites,
864 Key::WebForward => glutin::VirtualKeyCode::WebForward,
865 Key::WebHome => glutin::VirtualKeyCode::WebHome,
866 Key::WebRefresh => glutin::VirtualKeyCode::WebRefresh,
867 Key::WebSearch => glutin::VirtualKeyCode::WebSearch,
868 Key::WebStop => glutin::VirtualKeyCode::WebStop,
869 Key::Yen => glutin::VirtualKeyCode::Yen,
870 }
871 }
872}