* WIP on wasm support
Fix canvas not showing by actually placing it in the document
Also set the initial title
Use the js! macro to draw pixels
Draw to the canvas using ImageData
It doesn't work because an animation frame needs to be requested somehow
* Complete WASM work into a usable state.
This works on the previous commits and makes it usable.
There is a multi platform example about how to use it here:
https://github.com/dc740/minifb-async-examples
Co-authored-by: Thomas Versteeg <thomasversteeg@gmx.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
* 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>
* 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
* 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
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