Commit Graph

34 Commits

Author SHA1 Message Date
ice_iix 3a359267dd Fix backspace not deleting in textfields, but shows ⌂. Closes https://github.com/iceiix/steven/issues/55 2018-12-04 15:51:20 -08:00
iceiix c099a68168
Use glutin to replace sdl2 (#35)
* Add glutin dependency

* Create a glutin window

* Use the glutin window, basics work

* Store DPI factor on game object, update on Resized

* Use physical size for rendering only. Fixes UI scaled too small

Fixes https://github.com/iceiix/steven/pull/35#issuecomment-442683373
See also https://github.com/iceiix/steven/issues/22

* Begin adding mouse input events

* Listen for DeviceEvents

* Call hover_at on mouse motion

* Listen for CursorMoved window event, hovering works

Glutin has separate WindowEvent::CursorMoved and
DeviceEvent::MouseMotion events, for absolute cursor and relative mouse
motion, respectively, instead of SDL's Event::MouseMotion for both.

* Use tuple pattern matching instead of nested if for MouseInput

* Implement left clicking

* Use grab_cursor() to capture the cursor

* Hide the cursor when grabbing

* Implement MouseWheel event

* Listen for keyboard input, escape key release

* Keyboard input: console toggling, glutin calls backquote 'grave'

* Implement fullscreen in glutin, updates https://github.com/iceiix/steven/pull/31

* Update settings for glutin VirtualKeyCode

* Keyboard controls (note: must clear conf.cfg to use correct bindings)

* Move DeviceEvent match arm up higher for clarity

* Remove SDL

* Pass physical dimensions to renderer tick so blit_framebuffer can use full size but the ui is still sized logically.

* Listen for DeviceEvent::Text

* Implement text input using ReceivedCharacter window event, works

https://github.com/iceiix/steven/pull/35#issuecomment-443247267

* Request specific version of OpenGL, version 3.2

* Request OpenGL 3.2 but fallback to OpenGL ES 2.0 if available (not tested)

* Set core profile and depth 24-bits, stencil 0-bits

* Allow changing vsync, but require restarting (until https://github.com/tomaka/glutin/issues/693)

* Clarify specific Rust version requirement

* Import glutin::* in handle_window_event() to avoid overly repetitive code

* Linux in VM fix: manually calculate delta in MouseMotion

For the third issue on https://github.com/iceiix/steven/pull/35#issuecomment-443084458
https://github.com/tomaka/glutin/issues/1084 MouseMotion event returns absolute instead of relative values, when running Linux in a VM

* Heuristic to detect absolute/relative MouseMotion from delta:(xrel, yrel); use a higher scaling factor

* Add clipboard pasting with clipboard crate instead of sdl2

https://github.com/iceiix/steven/pull/35#issuecomment-443307295
2018-11-30 11:35:35 -08:00
ice_iix 77cd4ecf35 Use field init shorthand, instead of x:x, just x,
https://rust-lang-nursery.github.io/edition-guide/rust-2018/data-types/field-init-shorthand.html

find src -name '*.rs' -exec perl -pe 's/\b(\w+): \1,/$1,/g' -i {} \;
2018-11-04 13:43:30 -08:00
ice_iix a40cd43a2e Update to use crate:: for current crate, for Rust 2018 edition
From `cargo fix --edition`, see https://rust-lang-nursery.github.io/edition-guide/print.html#the-crate-keyword-refers-to-the-current-crate
2018-11-04 12:06:00 -08:00
ice_iix d2b59fbd10 Update to rand 0.5.5 for https://github.com/iceiix/steven/issues/4
Useful guide: https://github.com/rust-random/rand/blob/master/UPDATING.md
2018-09-30 19:05:20 -07:00
ice_iix 47aeb83da2 Use std::time instead of time crate for logo text, progress on https://github.com/iceiix/steven/issues/3 2018-09-29 20:01:13 -07:00
satoshinm 2f950a749c Fix use of deprecated Rc:would_unwrap 2017-05-14 09:58:34 +01:00
llogiq 5e0c041a71 Fixed another batch of clippy warnings
Those are mostly readability-related. Also did a cargo update.
2016-09-15 15:15:52 +01:00
Kyle Wood 8d95965d40 Enable paste in textboxes 2016-04-26 00:50:16 +01:00
Thinkofname a7caa50b6f Rewrite the UI system (Closes #12) 2016-04-24 12:29:25 +01:00
Thinkofname 380a844272 Implement a background for the option menus 2016-04-21 11:00:05 +01:00
Thinkofname 6f708d35f2 Remove unused 'use' 2016-04-03 00:44:45 +01:00
Thinkofname b975a01f30 Remove some unsafe code from the ui system 2016-04-02 20:08:21 +01:00
Thinkofname 357c695a3a Fix some lock ordering issues 2016-03-29 20:54:08 +01:00
Thinkofname c70f9548c6 Follow some of clippy's suggestions 2016-03-26 14:24:26 +00:00
Thinkofname 9f04c09a8f Switch from glutin to sdl2 2016-03-25 13:15:35 +00:00
Thinkofname 1fc161c53c Allow connecting to servers 2016-03-21 10:55:31 +00:00
Thinkofname ae2703418b Fully implement the login screen (Closes #6) 2016-03-20 23:43:31 +00:00
Thinkofname b418625a48 Work on login screen, added ui buttons and textboxes (plus tab fixes) 2016-03-20 20:17:21 +00:00
Thinkofdeath 70b6738d87 Update copyright 2016-03-16 18:25:35 +00:00
Thinkofdeath 3704b9eeb8 Reformat using rustfmt 2015-10-07 19:36:59 +01:00
Thinkofdeath 12a88b07b9 Base console implementation 2015-09-29 22:33:24 +01:00
Thinkofdeath 302af6393d Tidy up 2015-09-29 20:09:36 +01:00
Thinkofdeath bdfc002e99 Clean up 2015-09-28 23:37:14 +01:00
Thinkofdeath db1c687c53 Split up the ui system using include!
Not the nicest system but it works
2015-09-27 22:18:49 +01:00
Thinkofdeath 8a2c24796c Minor changes 2015-09-27 19:38:58 +01:00
Thinkofdeath fcacd91e3a Clean up 2015-09-25 15:20:55 +01:00
Thinkofdeath 0d3ff98ad5 Implement the refresh button 2015-09-25 14:48:35 +01:00
Thinkofdeath 3bcfc6aa4c Kinda functional server list 2015-09-25 14:00:49 +01:00
Thinkofdeath 93edfa3828 Base of server list 2015-09-23 20:16:25 +01:00
Thinkofdeath 876e88ec95 Basic logo impl 2015-09-21 21:11:30 +01:00
Thinkofdeath 64d0768fb4 Basic logo work 2015-09-21 13:08:06 +01:00
Thinkofdeath 1ab2683a53 Base of ui system 2015-09-18 22:02:08 +01:00
Thinkofdeath 72e27968eb Add license 2015-09-17 16:23:07 +01:00