* Added not-yet-working draft implementation of proper X11 support for reading correct typed characters
* Made shift work for capital letters with X11, but compose key is still broken
* Compose key and numpad now work correctly in X11
* XIM and XIC are now freed when a window destructor runs
* Ran cargo fmt on x11.rs
* Removed commented-out empty-string
Closes#200
Replace calls to time::precise_time_s with std::time::Instant.
Also replaced the type of a time variable with std::time::Duration
because it played nicely with using Instant
* 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
* Initial Wayland struct and constructors
* Create Wayland window first
* Window::new constructor and removed error type
* Complete window creation
* More docs
* Fixed window creation
* Proper window creation
* Added byteorder
* Disallow resize and set_title
* Implement is_open() and get_window_handle()
* Fixed get_size() and implemented set_position()
* Wayland set_position was missing
* Added WIP update methods
* Improved update methods
* Added more prototype functions
* Get Keyboard and Mouse device
* outsource input device creation
* get proper mouse positions
* Properly get scroll wheel
* Implement HasRawWindowHandle for Wayland Window
* Implemented updaterate methods
* is active method
* More key handler methods
* Retrieve all events from keyboard and mouse
* Added more DisplayInfo methods
* Improvements for event handling
* Partial support for scaling
* Properly update buffer
* More imports
* Styling, etc.
* Merge
* More code to update the framebuffer
* Added scaling again
* Readded better event handling
* Properly render all colors as non-transparent ones
* Clear all events after being read
* update_with_buffer_stride is not WIP anymore
* Assume a connected keyboard and pointer device
* Moved keyboard and pointer from DisplayInfo into Window
* Support resizing and checking if the window is still open
* Rendering performance improvement
* Less warnings and some comments
* Byteorder now required anymore
* Not anymore resizing the ShmPool below its previous size and remove WlBuffers when told to
* Removed more magic numbers and added comments
* Proper size check of the buffer size
* Less conversions
* save the previous framebuffer size in DisplayInfo instead of seeking the fd
* Set the pixelformat statically depending on whether alpha channel is allowed or not
* Set the fd length only again when the size really changes
* Save resizability so that the size of the window doesnt get changed.
* Fix rerendering issue
* Fix rerendering issue
* Using unstable protocol to support server-side decorations
* Outsource buffer creation code
* Small improvements and comments
* Replaced usage of atomic types
* Cleanup
* Outsource Input handling into own struct
* Use mspc channels instead of Vec for input handling
* Implemented set_cursor_style()
* Proper cursorstyle into string decoding
* Implemented mouse buttons
* Scroll wheel fix
* Handle scroll events
* Updated code for new version of the wayland crate
* Reset scroll after each update
* Starting on keymap support with xkb
* Revert 19a590a
* Add missing bracket
* added missing minimum version for surface.damage_buffer()
* Fix for corrupted pointer images
* Implement scaling
* Remove comments
* Acknowledge only the last configure event when redrawing
* Assign the closure to the toplevel only once
* Own function for buffer filtering
* Dont truncate the fd anymore
* Proper damage surface
* Preventg display from getting dropped first
* custom BufferPool implementation
* Unneccessary printlns
* ack configure before committing
* set active field when keyboard focus enters/leaves the surface
* save modifiers each time they are changed
* Requires xkbcommon-sys to retrieve the keymap - will later be removed
* Prototype function to convert a key
* simplify keymap creation
* handle key event
* simplify button state evaluation
* Create wl_seat earlier so events are not getting missed
* Added key conversions and key offset
* Cargo fmt
* Update keyhandler
* Renaming
* Update xkb keys
* Input callback
* Numpad corrections
* Remove publicity from functions
* Retrieve input devices as early as possible
* TODO
* Small cleanup
* Proper key modifiers update
* Scale::FitScreen cant be implemented for now
* finish menu functions(copied from x11)
* Clean up some stuff
* unused variables
* Less warnings
* Comments and Variable naming improvements
* retrieve toplevel info now with an own method
* Constants
* Remove unused function
* Unused field
* Unused let binding
* Improve code readability
* Change note
* Comments
* Opinionated cleanup
* Comment out unused variables
Might be used later on
* Mouse buttons with boolean state
* Prototype UnixMenu functions
* Renaming
* unimplemented functions
* actually unimplemented
* Minor formatting change
* Remove unused fields
Even if they will be used later on, this would be a breaking change.
It's unnecessary to keep these around no matter what the future may
hold.
* Less unwraping now
* Feature gate x11 and wayland, both enabled by default
* Feature gate dependencies
* Menu is now is a new file for both x11 and wayland
* Feature gate everything
* Cargo fmt
* Simplify conditions
Co-Authored-By: Cole Helbling <cole.e.helbling@outlook.com>
* Missing paranthesis
Co-Authored-By: Cole Helbling <cole.e.helbling@outlook.com>
* Cargo fmt
* Proper debug message
* wayland deps
* xkb dev lib
* Update Cargo.toml
Co-Authored-By: Cole Helbling <cole.e.helbling@outlook.com>
* Update .github/workflows/ci.yml
Co-Authored-By: Cole Helbling <cole.e.helbling@outlook.com>
Co-authored-by: Antonino Siena <a.siena@gmx.de>
Co-authored-by: Cole Helbling <cole.e.helbling@outlook.com>
* 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
* 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
* 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
* 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
* 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
* 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
commit 2d8e0c1692120e9997bd8d376be8a7cc2536429d
Author: Daniel Collin <daniel@collin.com>
Date: Tue Oct 23 20:51:09 2018 +0200
Bump to 0.11 and added info about macOS Metal
commit 0f77968317194f2f72b86da287c04484aeee762a
Author: Daniel Collin <daniel@collin.com>
Date: Sun Oct 21 17:44:26 2018 +0200
Tripple buffer textures
commit d268c10576c7e9063bd4605aed4a939d956eeb6b
Author: Daniel Collin <daniel@collin.com>
Date: Sun Oct 21 16:59:20 2018 +0200
Some cleanup
commit 5544773e62afec6f69d0c3b6309e60a543905fef
Author: Daniel Collin <daniel@collin.com>
Date: Sun Oct 21 16:24:45 2018 +0200
Working but no proper sync yet
commit 843a6625cfddac5a6e2d8e61170f796e763e4002
Author: Daniel Collin <daniel@collin.com>
Date: Sun Oct 21 15:26:45 2018 +0200
Working texture
commit 1d4446f1f10c497dde07e0d20c92eb8bb6f836ec
Author: Daniel Collin <daniel@collin.com>
Date: Sun Oct 21 14:45:52 2018 +0200
Removed vertex data
We construct this in the shader instead
commit 2e8027d73a1635e26e412dbda6494193fd04a060
Author: Daniel Collin <daniel@collin.com>
Date: Sun Oct 21 14:42:36 2018 +0200
Fullscreen triangle setup
commit 5efd974704c11577944ffdeff9eb9dd4fa40bde0
Author: Daniel Collin <daniel@collin.com>
Date: Sun Oct 21 14:16:23 2018 +0200
Triangle on screen
commit d9cf4eb7557f73adfbe1764f3da94a837a4ef8d3
Author: Daniel Collin <daniel@collin.com>
Date: Sun Oct 21 12:17:04 2018 +0200
Some hacky metal with clear screen