Commit Graph

7 Commits

Author SHA1 Message Date
ice_iix c80372a1f1 Rename project to Stevenarella (#83)
This fork has significantly diverged from the original, it is time
to make it official, as a new distinct project. Forked from
https://github.com/thinkofname/steven into https://github.com/iceiix/steven,
now moved to https://github.com/iceiix/stevenarella and renamed accordingly.

* Update readme

* Update logo

* Update binary name

* Update window title

* Update splash text
2019-01-11 20:41:19 -08:00
iceiix bd4a521072
Update to Rust stable 1.31.0. Closes https://github.com/iceiix/steven/issues/47 (#60) 2018-12-06 18:16:57 -08:00
iceiix 936fb17d1a
AppVeyor: skip building branches and 32-bit Windows (#39)
AppVeyor as configured is too slow, so make it do less:

* Prevent duplicate AppVeyor builds on pull requests https://github.com/appveyor/ci/issues/882

* Only allow AppVeyor to build updates branch, https://www.appveyor.com/docs/branches/#white--and-blacklisting

* Only build for 64-bit Windows (x64) to improve CI times; remove x86
2018-12-01 09:29:18 -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
iceiix e72cf4787c
Update to Visual Studio 2017 (#28)
* Update readme for Windows with rustup and VS17

* Update AppVeyor to build with Visual Studio 2017

* Drop Visual Studio 2015 support in favor of 2017
2018-11-20 07:06:31 -08:00
iceiix 1589a29685
Remove use of OpenSSL for RSA PKCS1 encryption (#12). Closes #2
* Add handwritten RSA PKCS1 encryption using num-bigint and simple_asn1

* Add more logging to compare OpenSSL with/without side-by-side

* Log message and ciphertext in hex

* Print N and e as hexadecimal integers

* Fix bad encryption caused by zeros in PKCS1 padding

PS field in https://tools.ietf.org/html/rfc8017#section-7.2.1
Must be nonzero

* Use rand fill instead of rand_bytes

* Remove OpenSSL!

* Update CI scripts and docs to not install OpenSSL

* Remove copying OpenSSL DLLs (libeay and ssleay) in AppVeyor script

* Change rsa_public_encrypt_pkcs1 to return a Result<Vec<u8>, String>

* Add error checking, returning Err<String> on failure; RFC comments

* Add the required message representative range checking

* Use expect() instead of unwrap() on from_der

* Map the ASN.1 error to a String to return it from rsa_public_encrypt_pkcs1() instead of panicking

* Move RSA to a new crate, rsa_public_encrypt_pkcs1

https://github.com/iceiix/rsa_public_encrypt_pkcs1

* Update to rsa_public_encrypt_pkcs1 with simple_asn 0.1.0

https://github.com/iceiix/rsa_public_encrypt_pkcs1/issues/1

* Update to published version of rsa_public_encrypt_pkcs1, 0.1.0

* Remove unnecessarily added blank line

* Remove libssl-dev from .travis.yml
2018-11-04 09:40:51 -08:00
iceiix 24f71cf959
Add Appveyor for Windows continuous integration (#9)
* Add appveyor based on https://users.rust-lang.org/t/rust-appveyor-windows-ci-scripts/4437/2

* Add build script in a separate file, based on https://github.com/briansmith/ring/blob/master/mk/appveyor.bat

* Add pacman installation packages from https://github.com/Thinkofname/steven/wiki/Compiling-and-or-running#compiling-on-windows

* Run msys2_shell from https://github.com/appveyor/ci/issues/352

* Set msys64 and mingw PATH

f000540506

* Add --noconfirm option to pacman

https://unix.stackexchange.com/questions/52277/pacman-option-to-assume-yes-to-every-question#52278

* Try installing OpenSSL using vcpkg

https://www.appveyor.com/docs/lang/cpp/#vc-packaging-tool

* Attempt to install OpenSSL using rust-openssl's appveyor.yml

https://github.com/sfackler/rust-openssl/blob/master/appveyor.yml

* Revert "Attempt to install OpenSSL using rust-openssl's appveyor.yml"

This reverts commit 50106089798615f5a6576651fe9ca88af9a43a0d.

* Set OPENSSL_DIR to C:\OpenSSL

* List contents of C:\OpenSSL

* List C:\OpenSSL after installation

* No such directory

* Use appveyor script from thinkofname

https://github.com/Thinkofname/steven/issues/72#issuecomment-433889692

* Enable echo in appveyor.bat

* Add exported build script, merge working with existing

* Remove environment matrix, nightly-2018-10-24 vs nightly

* Remove debug/release because it builds both in one go

* Echo the platform variable before forcing it

* Set platforms to x86 (not Win32) and x64

* Build x64 first

* Only install the proper platform for OpenSSL, not both
2018-10-31 19:22:16 -07:00