Commit graph

267 commits

Author SHA1 Message Date
Daniel Collin acc25a0176 Added NSView for raw_window_handle on macOS 2020-01-21 22:11:46 +01:00
Daniel Collin b310fd372c Bump to 0.15.2 2020-01-21 21:35:53 +01:00
Daniel Collin 635e2a58e0 Fixed block forever on macOS 2020-01-21 21:32:37 +01:00
Antonino Siena 0a72653310 Restructure Unix implementation in preparation for Wayland support
* Wayland implementation restructuration

* Moved previous X11 code into own module

* Moved some data into a common struct between wayland and x11

* Added glue

* Moved common unix functions into module

* Revert commits

* Update x11.rs

* Update x11.rs

* Cargo fmt

* Cargo fmt
2020-01-18 09:15:15 +01:00
Daniel Collin 703477f742 Removed required version 2020-01-10 09:55:56 +01:00
Daniel Collin c95faa8c50 Added default rustfmt config 2020-01-02 16:20:37 +01:00
Daniel Collin 6d616640dc Rustfmt pass 2020-01-01 09:53:28 +01:00
Daniel Collin e02b44629c Add check for rustfmt 2020-01-01 09:51:10 +01:00
Antonino Siena 51bdfcc5ca Moved codebase to edition 2018 (#127)
* Moved to Rust edition 2018

* Changed redox code as well

* Undo typo

* Another correction
2019-12-30 19:34:27 +01:00
Daniel Collin 5cf1708938 Bump to 0.15.1 2019-12-27 13:28:49 +01:00
Daniel Collin 745cfec45e Added proper access to HasRawWindowHandle 2019-12-27 13:26:41 +01:00
Daniel Collin cf64bf872b Removed non-needed file 2019-12-16 13:57:49 +01:00
Daniel Collin be316da65a
Update CHANGELOG.md 2019-12-16 09:49:52 +01:00
Daniel Collin 84242d62b7 rustfmt pass 2019-12-16 08:41:06 +01:00
Daniel Collin fd3852e5fd
Update CHANGELOG.md 2019-12-16 08:27:44 +01:00
Daniel Collin 8b3c2e9b37
Merge dev -> master (#119)
* Deprecated update_with_buffer and added a temporary (update_with_buffer_size) for now. This will later be removed and the update_with_buffer is requiring the size to bu suplied

* Reparation for 0.14 release

* Missed one case

* Minor cleanup

* Switch to C scalar for Unix + rename

Reason is so we can always use optimized scalar even in debug.
Also removed _size so only update_with_buffer(..) takes width, height of the input buffer

* Implemented AspectRatio aware scale on nix

* Implemented image center

* Added UpperLeft center mode for unix

* Moving macOS over to sized update

* Fixed resize not working on macOS

* WIP on macOS

* More WIP on macOS version

* Bunch of macOS updates and fixes

* Fixed broken bg color on macOS

* Windows fixes WIP

* Remove some spamming

* More windows fixes

* Windows fixes for cursor and warnings

* Some cleanup

* rustfmt pass

* Fixed typo

* Added support for limiting update rate

* Added update rate to Windows

* Added update rate to macOS

* Misc fixes

* Fixed resources and maintance badge

* Updated readme

* Updated changelog

* Added rate limit
2019-12-16 08:24:48 +01:00
Daniel Collin f181e2d67c Fixed resize not working on macOS 2019-12-07 20:11:11 +01:00
Daniel Collin 01e0ead2ad fixed typo 2019-12-03 15:36:55 +01:00
Daniel Collin daa57e9fa9 Set arrow as default cursor on Windows 2019-12-03 15:31:45 +01:00
Daniel Collin 5772cc5380
Merge dev -> master (#111)
* Deprecated update_with_buffer and added a temporary (update_with_buffer_size) for now. This will later be removed and the update_with_buffer is requiring the size to bu suplied

* Reparation for 0.14 release

* Missed one case
2019-12-03 15:24:03 +01:00
Daniel Collin a2633f78ad
Raw window handle (#110)
* Added support for raw-window-handle

Ref #104

* Fixed some typos

* Fixed more typos

* windows fix

* Another windows fix

* Another typo

* More typos

* More windwos fixes

* Yet anonther Windows fix
2019-12-02 15:51:46 +01:00
Florian Blasius 9c86b47ec5 Add support for raspberry pi. (#108) 2019-11-29 19:54:52 +01:00
Daniel Collin 8de9567541 rustfmt pass 2019-11-27 08:03:33 +01:00
Daniel Collin 38fa50a4ef rustfmt 2019-11-27 07:59:15 +01:00
mishazawa 8d8c8a56db Add example Julia set (#106) 2019-11-27 07:57:32 +01:00
Daniel Collin bac71b2979
Switched from Travis/Appveyor to GH Actions (#103)
* Inital CI for GH

* Added Windows and macOS

* Lets try again

* Readme now points to GH CI

* Removed travis and appveor configs
2019-11-11 15:29:43 +01:00
Gary Guo bf4eb2d092 Handle missing Alt keys in X11 (#99) 2019-11-04 08:15:19 +01:00
Gary Guo e2acdad0c2 Fix window close handling (#98)
Currently we interned WM_DELETE_WINDOW but does not call
XSetWMProtocols to listen to it, causing a fatal error when
closing the window by clicking "X". This patch fixes the issue.
2019-11-02 09:03:49 +01:00
Venceslas 5234be4283 fix 'attempt to subtract with overflow' bug (#96)
* fix 'attempt to subtract with overflow' bug

* Little mistake
2019-10-29 09:30:18 +01:00
Daniel Collin 24d2ce4a99 Better modifier handling on macOS 2019-10-28 09:39:38 +01:00
Daniel Collin 644ff06483 Stop spam 2019-10-28 09:39:02 +01:00
Daniel Collin b4675905d2 WIP on macOS resizing support 2019-10-01 16:36:33 +02:00
Arif Roktim 0e3bf4a7e2 Improve documentation for method update_with_buffer of Window (#89) 2019-09-27 09:24:57 +02:00
Gary Guo c56ea6dae9 Improvement in doc and doc tests (#86)
* Fixed a few mistakes in docs
* Convert `ignore` examples to `no_run` examples, so `cargo test` will
  make sure they compiles.
2019-09-24 07:55:26 +02:00
Daniel Collin b8d4ad098f Bump to 0.13 2019-08-30 17:43:42 +02:00
Johannes Stölp e20257db79 unix: replaced scale functions with macro and added missing invocations (#79) 2019-08-23 07:26:14 +02:00
Daniel Collin 85459c8b43 Fixed typo 2019-07-21 12:09:43 +02:00
Daniel Collin 36dbf92a3a Bump version again 2019-07-21 11:09:09 +02:00
Daniel Collin c3c9591788 Bump to 0.12 2019-07-21 11:06:04 +02:00
Daniel Collin b62382bf0c Fixed some compiler warnings 2019-07-21 10:37:47 +02:00
Daniel Collin 29721b0eeb Set back width to 640 2019-07-21 10:36:33 +02:00
Chris West 2b8094cc6c x11 and examples: resize (#72)
* warnings / clippy

* x11: remove deprecated, ignored position hints

* x11: only non-resizable windows have fixed size

* x11: handle resizes of ximage
2019-04-01 10:19:23 +02:00
Chris West d6271e513d Rewrite linux backend in rust (#70)
* x11-rs : don't build libminifb_native.a

* x11-rs : commented out all calls to the mfb_xxx functions.

* x11-rs : added handle field to Window, type is xlib::Window.

Also implemented the get_window_handle() method.

* x11-rs : created a DisplayInfo struct with a setup() method.

* x11-rs : fleshed out DisplayInfo::setup() method some more.

* x11-rs : updated Cargo.toml to require x11_dl "2.16".

That is because we need the XContext type, which seems to be
unavailable in the 2.14 version.

* x11-rs : code to call the XCreateWindow() function.

* x11-rs : call XMapRaise() and XFlush() on our window.

* x11-rs : more work on Window::new() -- ported more stuff from mfb_open().

* x11-rs : create the 'ximage' field in Window::new().

* x11-rs : removed SharedData struct, moved fields into Window.

* x11-rs : ported the set_window_title() method.

* x11-rs : ported creating a "draw_buffer" and the 1:1 scaling code.

* x11-rs : ported the scale_2x() function.

* x11-rs : ported the scale_4x() function.

* x11-rs : ported the set_position() method.

* x11-rs : ported the mfb_close() code, i.e. Drop trait on a Window.

* x11-rs : tidied up code computing "scale" value for a new window.

* x11-rs : implemented Drop trait for DisplayInfo.

* x11-rs : updated the get_scroll_wheel() method.

* x11-rs : tidy up update_with_buffer() and check buffer size.

* x11-rs : ported the check_formats() code.

* x11-rs : ported the init_cursors() code.

* x11-rs : ported the set_cursor_style() code.

* x11-rs : ported the raw_get_mouse_pos() code.

* x11-rs : moved the code implementing Drop trait for Window.

* x11-rs : ported the basic event loop (i.e. raw_process_events).

* x11-rs : ported code handling the WM_DELETE_WINDOW client message.

* x11-rs : added code file "src/os/unix/key_mapping.rs"

This file contains code to map an X keysym to a Unicode char,
which is done via a binary search on a large table.  I ported
the code to Rust and rewrote the binary search as a recursive
function.

* x11-rs : ported the XkbQueryExtension() code.

* x11-rs : fleshed out the process_key() code.

* x11-rs : added test code for keysym_to_unicode(), fixed a table entry.

* x11-rs : another test value for the key_mapping test code.

* x11-rs : ported the update_key_state() code.

* x11-rs : ported the char_callback() code.

* x11-rs : ported the mouse button handling code.

* x11-rs : ported code handling the XConfigureNotify event.

* x11-rs : code tidying, silence most compiler warnings.

* x11-rs : removed the native C code: X11MiniFB.c

* x11-rs : fixed bug in the button handling code.

* x11-rs : made the scale_2x() and scale_4x() code faster.

* merge error

* whitespace

* fix cursors: bad string handling

* upgrade x11-dl

* merge scaling implementations

* multi-window example
2019-03-30 08:18:42 +01:00
Richard Hozák 6c4cba9895 Update winapi (#69)
* Remove duplicate windows dependencies in favor of cfg attribute

* Replace user32 with winuser from winapi

* More replacements from winapi-rs

* Fix remaining type imports

* Remove user32, kernel32 and gdi32 sys crates

Everything comes from winapi-rs now.

* Specify only the features of winapi-rs we need

* Remove star glob imports
2019-03-21 09:55:06 +01:00
Chris West ac624f5a26 raise shared_data update (#68)
This helps the check_buffer_size run against the actual
window size, which stops us from segfaulting if the
window size has changed unexpectedly, e.g. because a
window manager is evil.
2019-03-14 16:29:59 +01:00
Nagy Tibor ceadd15e6c Bump orbclient to 0.3.20 on Redox, remove alpha handling hacks (#67) 2019-01-15 06:10:05 +01:00
Holden 0b5e39c396 Add additional derived traits to Key enum (#65)
* Add partial ord and partial eq to keys enum

* Derive eq on key

* Derive ord
2018-12-29 08:37:56 +01:00
tdaffin fb403498f0 Bump version to 0.11.2 (#64) 2018-12-20 07:22:36 +01:00
tdaffin 95d0e6f5e5 Update appveyor.yml to use starkat99's version (#63) 2018-12-18 17:41:14 +01:00
tdaffin 3aaf613edd Added Window.is_key_released (#62)
* Added Window.is_key_released

* Add is_key_released for the other platforms
2018-12-18 11:20:32 +01:00