A Rust library for blitting 2D sprites

Overview

blit

A Rust library for blitting 2D sprites

CI Cargo License: GPL-3.0 Downloads

Documentation

Usage

Add this to your Cargo.toml:

[dependencies]
blit = "0.5"

And this to your crate root:

extern crate blit;

Run the example

On Linux you need the xorg-dev package as required by minifb. sudo apt install xorg-dev

cargo run --example smiley

This should produce the following window:

Example

Examples

extern crate image;

use blit::*;

const WIDTH: usize = 180;
const HEIGHT: usize = 180;
const MASK_COLOR: u32 = 0xFF00FF;

let mut buffer: Vec<u32> = vec![0xFFFFFFFF; WIDTH * HEIGHT];

let img = image::open("examples/smiley.png").unwrap();
let img_rgb = img.as_rgb8().unwrap();

// Blit directly to the buffer
let pos = (0, 0);
img_rgb.blit(&mut buffer, WIDTH, pos, Color::from_u32(MASK_COLOR));

// Blit by creating a special blitting buffer first, this has some initial
// overhead but is a lot faster after multiple calls
let blit_buffer = img_rgb.to_blit_buffer(Color::from_u32(MASK_COLOR));

let pos = (10, 10);
blit_buffer.blit(&mut buffer, WIDTH, pos);
let pos = (20, 20);
blit_buffer.blit(&mut buffer, WIDTH, pos);

// Save the blit buffer to a file
blit_buffer.save("smiley.blit");
Comments
  • Update image requirement from 0.23.3 to 0.24.4

    Update image requirement from 0.23.3 to 0.24.4

    Updates the requirements on image to permit the latest version.

    Changelog

    Sourced from image's changelog.

    Version 0.24.4

    New Features:

    • Encoding for webp is now available with the native library. This needs to be activate explicitly with the web-encoder feature.
    • exr decoding has gained basic limit support.

    Bug fixes:

    • The Iterator::size_hint implementation of pixel iterators has been fixed to return the current length indicated by its ExactSizeIterator hint.
    • Typos and bad references in the documentation have been removed.

    Performance:

    • ImageBuffer::get_pixel{,_mut} is now marked inline.
    • resize now short-circuits when image dimensions are unchanged.

    Version 0.24.3

    New Features:

    • TiffDecoder now supports setting resource limits.

    Bug fixes:

    • Fix compile issues on little endian systems.
    • Various panics discovered by fuzzing.

    Version 0.24.2

    Structural changes:

    • CI now runs cargo-deny, checking dependent crates to an OSS license list and against RUSTSEC advisories.

    New Features:

    • The WebP decoder recognizes and decodes images with VP8X header.
    • The DDS decoder recognizes and decodes images with DX10 headers.

    Bug fixes:

    • Calling DynamicImage/ImageBuffer's methods write_to and save will now work properly even if the backing container is larger than the image layout requires. Only the relevant slice of pixel data is passed to the encoder.
    • Fixed a OOM-panic caused by malformed images in the gif decoder.

    Version 0.24.1

    Bug Fixes:

    • ImageBuffer::get_pixel_checked would sometimes return the incorrect pixel.
    • PNG encoding would sometimes not recognize unsupported color.

    Version 0.24.0

    Breaking changes

    ... (truncated)

    Commits
    • d298607 Changes and release notes for 0.24.4
    • 162a343 Merge pull request #1792 from kianmeng/fix-typos
    • 1375fed Fix typos
    • 8624b71 Merge pull request #1784 from cycraig/master
    • 74e22f5 Merge pull request #1790 from GabrielDertoni/size_hint
    • baa5af2 fix: implement size_hint for ImageBuffer iterators
    • 794d98f Annotate C libraries in README.md
    • 7b2e1bc Fix potential overflow in WebPEncoder::encode
    • e9ccfcf Add webp-encoder
    • b354376 Merge pull request #1787 from gents83/master
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Update image requirement from 0.23.3 to 0.24.3

    Update image requirement from 0.23.3 to 0.24.3

    Updates the requirements on image to permit the latest version.

    Changelog

    Sourced from image's changelog.

    Version 0.24.3

    New Features:

    • TiffDecoder now supports setting resource limits.

    Bug fixes:

    • Fix compile issues on little endian systems.
    • Various panics discovered by fuzzing.

    Version 0.24.2

    Structural changes:

    • CI now runs cargo-deny, checking dependent crates to an OSS license list and against RUSTSEC advisories.

    New Features:

    • The WebP decoder recognizes and decodes images with VP8X header.
    • The DDS decoder recognizes and decodes images with DX10 headers.

    Bug fixes:

    • Calling DynamicImage/ImageBuffer's methods write_to and save will now work properly even if the backing container is larger than the image layout requires. Only the relevant slice of pixel data is passed to the encoder.
    • Fixed a OOM-panic caused by malformed images in the gif decoder.

    Version 0.24.1

    Bug Fixes:

    • ImageBuffer::get_pixel_checked would sometimes return the incorrect pixel.
    • PNG encoding would sometimes not recognize unsupported color.

    Version 0.24.0

    Breaking changes

    Structural changes:

    • Minimum Rust version is now 1.56 and may change in minor versions until further notice. It is now tracked in the library's Cargo.toml, instead, by the standard [package.rust-version] field. Note: this applies to the library itself. You may need different version resolutions for dependencies when using a non-stable version of Rust.
    • The math::utils::{nq, utils} modules have been removed. These are better served through the color_quant crate and the standard library respectively.
    • All codecs are now available through image::codecs, no longer top-level.
    • ExtendedColorType and DynamicImage have been made #[non_exhaustive], providing more methods instead of exhaustive matching.
    • Reading images through the generic io::Reader, as well as generic convenience interfaces, now requires the underlying reader to be BufRead + Seek. This allows more efficient support more formats. Similarly, writing now requires writers to be Write + Seek.

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Update image requirement from 0.23.3 to 0.24.2

    Update image requirement from 0.23.3 to 0.24.2

    Updates the requirements on image to permit the latest version.

    Changelog

    Sourced from image's changelog.

    Version 0.24.2

    Structural changes:

    • CI now runs cargo-deny, checking dependent crates to an OSS license list and against RUSTSEC advisories.

    New Features:

    • The WebP decoder recognizes and decodes images with VP8X header.
    • The DDS decoder recognizes and decodes images with DX10 headers.

    Bug fixes:

    • Calling DynamicImage/ImageBuffer's methods write_to and save will now work properly even if the backing container is larger than the image layout requires. Only the relevant slice of pixel data is passed to the encoder.
    • Fixed a OOM-panic caused by malformed images in the gif decoder.

    Version 0.24.1

    Bug Fixes:

    • ImageBuffer::get_pixel_checked would sometimes return the incorrect pixel.
    • PNG encoding would sometimes not recognize unsupported color.

    Version 0.24.0

    Breaking changes

    Structural changes:

    • Minimum Rust version is now 1.56 and may change in minor versions until further notice. It is now tracked in the library's Cargo.toml, instead, by the standard [package.rust-version] field. Note: this applies to the library itself. You may need different version resolutions for dependencies when using a non-stable version of Rust.
    • The math::utils::{nq, utils} modules have been removed. These are better served through the color_quant crate and the standard library respectively.
    • All codecs are now available through image::codecs, no longer top-level.
    • ExtendedColorType and DynamicImage have been made #[non_exhaustive], providing more methods instead of exhaustive matching.
    • Reading images through the generic io::Reader, as well as generic convenience interfaces, now requires the underlying reader to be BufRead + Seek. This allows more efficient support more formats. Similarly, writing now requires writers to be Write + Seek.
    • The Bgra* variants of buffers, which were only half-supported, have been removed. The owning buffer types ImageBuffer and DynamicImage fundamentally already make a choice in supported pixel representations. This allows for more consistent internal behavior. Callers are expected to convert formats when using those buffers, which they are required to do in any case already, and which is routinely performed by decoders.

    Trait reworks:

    • The Pixel trait is no longer implemented quite as liberally for structs

    ... (truncated)

    Commits
    • e42b402 Change notes and metadata for 0.24.2
    • f2855f1 Merge pull request #1696 from 5225225/fix-gif-oom
    • 95b53b9 Use free_usize instead of a u64::try_from in gif.rs
    • b41b4bb Fix OOM when decoding gif with very large buffer
    • ae1e661 Merge pull request #1703 from johannesvollmer/update-exrs-license
    • 035778d update openexr (exr crate license was updated)
    • 2f6d97a Merge pull request #1702 from gents83/master
    • a7f080b Fixing clippy warnings
    • 5fe5764 Merge pull request #1700 from linkmauve/direct-rgba
    • 3862f76 avif-decoder: Convert directly to RGBA
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Update minifb requirement from 0.16.0 to 0.22.0

    Update minifb requirement from 0.16.0 to 0.22.0

    Updates the requirements on minifb to permit the latest version.

    Changelog

    Sourced from minifb's changelog.

    Changelog

    This project follows semantic versioning.

    v0.22 (2022-03-27)

    • [fixed] Updated docs to make it a bit more clear that only one of update_with_buffer or update should be used for updating a window.

    v0.21 (2022-03-27)

    • [fixed] Holding down a key on x11 would no repeat correctly
    • [fixed] Windows dependency cleanups (Thanks Arnab Animesh Das!)
    • [fixed] Fixed mouse button being "stuck" when moved out side of window, released and then moved by in on Windows (Thanks Arnab Animesh Das for bug report!)
    • [fixed] Memory-map the keymap FD on Wayland to fix EOF error (Thanks Greg Depoire--Ferrer!)
    • [added] getter for window position (Thanks Andreas Neukoetter!)
    • [fixed] Fix clippy lints under windows (Thanks Kevin K!)
    • [added] Add set_icon() method to set a window icon at runtime (Thanks Kevin K!)
    • [added] inputcallback: add a callback for key events and key_handler: add a callback for key events (Thanks xobs and vemoo!)
    • [fixed] macOS: Fix segmentation fault when resizing window. (Thanks KaDiWa!)
    • [fixed] Various x11 and wayland fixes, version updates (Thanks vemoo!)

    v0.20 (2021-11-28)

    • [API BREAKAGE] Changing return types of get_keys from Option (Thanks Zij-IT!)
    • [fixed] get_scroll_wheel() would get "stuck" on macOS. (Thanks NikoUY for bug report!)

    v0.19.3 (2021-03-23)

    • [fixed] Fixed typos in description (Thanks hiqua!)
    • [fixed] update wayland to 0.28 and small cleanup (Thanks xMAC94x!)
    • [fixed] Bump xkbcommon-sys to 0.7.5
    • [fixed] wayland missing cursor (Thanks dc740!)
    • [fixed] windows: use c_void from winapi (Thanks xobs!)

    v0.19.2 (2021-01-18)

    TODO

    v0.19 (2020-09-22)

    • [fixed] Removed dummy logging

    v0.19 (2020-09-16)

    • [added] Added char_callback example on how to capture data.
    • [added] Support for topmost on Windows (Thanks phillvancejr!)
    • [fixed] ARM (Raspberry Pi) now builds and runs. (Thanks derpeter!)
    • [changed] Removed a bunch of dependencies not needed anymore (Thanks RazrFalcon!)

    v0.18 (2020-08-14)

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Update image requirement from 0.23.3 to 0.24.1

    Update image requirement from 0.23.3 to 0.24.1

    Updates the requirements on image to permit the latest version.

    Changelog

    Sourced from image's changelog.

    Version 0.24.1

    Bug Fixes:

    • ImageBuffer::get_pixel_checked would sometimes return the incorrect pixel.
    • PNG encoding would sometimes not recognize unsupported color.

    Version 0.24.0

    Breaking changes

    Structural changes:

    • Minimum Rust version is now 1.56 and may change in minor versions until further notice. It is now tracked in the library's Cargo.toml, instead, by the standard [package.rust-version] field. Note: this applies to the library itself. You may need different version resolutions for dependencies when using a non-stable version of Rust.
    • The math::utils::{nq, utils} modules have been removed. These are better served through the color_quant crate and the standard library respectively.
    • All codecs are now available through image::codecs, no longer top-level.
    • ExtendedColorType and DynamicImage have been made #[non_exhaustive], providing more methods instead of exhaustive matching.
    • Reading images through the generic io::Reader, as well as generic convenience interfaces, now requires the underlying reader to be BufRead + Seek. This allows more efficient support more formats. Similarly, writing now requires writers to be Write + Seek.
    • The Bgra* variants of buffers, which were only half-supported, have been removed. The owning buffer types ImageBuffer and DynamicImage fundamentally already make a choice in supported pixel representations. This allows for more consistent internal behavior. Callers are expected to convert formats when using those buffers, which they are required to do in any case already, and which is routinely performed by decoders.

    Trait reworks:

    • The Pixel trait is no longer implemented quite as liberally for structs defined in the crate. Instead, it is now restricted to a set of known channel which ensures accuracy in computations involving those channels.
    • The ImageDecoderExt trait has been renamed to ImageDecoderRect, according to its actual functionality.
    • The Pixel trait and its Subpixel field no longer require (or provide) a 'static lifetime bound.
    • The Pixel trait no longer requires specifying an associated, constant ColorType. This was of little relevance to computation but made it much harder to implement and extend correctly. Instead, the private PixelWithColorType extension is added for interfaces that require a properly known variant.
    • Reworked how SubImage interacts with the GenericImage trait. It is now a default implementation. Note that SubImage now has inherent methods that avoid double-indirection, the trait's method will no longer avoid this.
    • The Primitive trait now requires implementations to provide a minimum and maximum logical bound for the purpose of converting to other primitive

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Update image requirement from 0.23.3 to 0.24.0

    Update image requirement from 0.23.3 to 0.24.0

    Updates the requirements on image to permit the latest version.

    Changelog

    Sourced from image's changelog.

    Version 0.24.0

    Breaking changes

    Structural changes:

    • Minimum Rust version is now 1.56 and may change in minor versions until further notice. It is now tracked in the library's Cargo.toml, instead, by the standard [package.rust-version] field. Note: this applies to the library itself. You may need different version resolutions for dependencies when using a non-stable version of Rust.
    • The math::utils::{nq, utils} modules have been removed. These are better served through the color_quant crate and the standard library respectively.
    • All codecs are now available through image::codecs, no longer top-level.
    • ExtendedColorType and DynamicImage have been made #[non_exhaustive], providing more methods instead of exhaustive matching.
    • Reading images through the generic io::Reader, as well as generic convenience interfaces, now requires the underlying reader to be BufRead + Seek. This allows more efficient support more formats. Similarly, writing now requires writers to be Write + Seek.
    • The Bgra* variants of buffers, which were only half-supported, have been removed. The owning buffer types ImageBuffer and DynamicImage fundamentally already make a choice in supported pixel representations. This allows for more consistent internal behavior. Callers are expected to convert formats when using those buffers, which they are required to do in any case already, and which is routinely performed by decoders.

    Trait reworks:

    • The Pixel trait is no longer implemented quite as liberally for structs defined in the crate. Instead, it is now restricted to a set of known channel which ensures accuracy in computations involving those channels.
    • The ImageDecoderExt trait has been renamed to ImageDecoderRect, according to its actual functionality.
    • The Pixel trait and its Subpixel field no longer require (or provide) a 'static lifetime bound.
    • The Pixel trait no longer requires specifying an associated, constant ColorType. This was of little relevance to computation but made it much harder to implement and extend correctly. Instead, the private PixelWithColorType extension is added for interfaces that require a properly known variant.
    • Reworked how SubImage interacts with the GenericImage trait. It is now a default implementation. Note that SubImage now has inherent methods that avoid double-indirection, the trait's method will no longer avoid this.
    • The Primitive trait now requires implementations to provide a minimum and maximum logical bound for the purpose of converting to other primitive representations.

    Additions

    Image formats:

    • Reading lossless WebP is now supported.

    ... (truncated)

    Commits
    • 63489d5 Move planned initialization changes to Unrelease section
    • 899fe92 Bump version number to 0.24
    • dda8c62 Fix unfinished note on AvifEncoder
    • 2c457a5 Fix release note typos caught in review
    • 0da83d6 Draft of Changelog for v0.24
    • 5231652 Merge pull request #1661 from HeroicKatora/upgrade-and-fixes-for-0.24
    • 30e42a1 Comment exception in utils quickcheck
    • dee5590 Succeed early on unusual resize quickcheck case
    • 9a1e601 Update public-private dependency spec
    • 35feee4 Upgrade dependencies
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Update minifb requirement from 0.16.0 to 0.20.0

    Update minifb requirement from 0.16.0 to 0.20.0

    Updates the requirements on minifb to permit the latest version.

    Changelog

    Sourced from minifb's changelog.

    Changelog

    This project follows semantic versioning.

    v0.20 (2021-11-28)

    • [API BREAKAGE] Changing return types of get_keys from Option (Thanks Zij-IT!)
    • [fixed] get_scroll_wheel() would get "stuck" on macOS. (Thanks NikoUY for bug report!)

    v0.19.3 (2021-03-23)

    • [fixed] Fixed typos in description (Thanks hiqua!)
    • [fixed] update wayland to 0.28 and small cleanup (Thanks xMAC94x!)
    • [fixed] Bump xkbcommon-sys to 0.7.5
    • [fixed] wayland missing cursor (Thanks dc740!)
    • [fixed] windows: use c_void from winapi (Thanks xobs!)

    v0.19.2 (2021-01-18)

    TODO

    v0.19 (2020-09-22)

    • [fixed] Removed dummy logging

    v0.19 (2020-09-16)

    • [added] Added char_callback example on how to capture data.
    • [added] Support for topmost on Windows (Thanks phillvancejr!)
    • [fixed] ARM (Raspberry Pi) now builds and runs. (Thanks derpeter!)
    • [changed] Removed a bunch of dependencies not needed anymore (Thanks RazrFalcon!)

    v0.18 (2020-08-14)

    • [fixed] get_released_keys wasn't working under Wayland.

    v0.17 (2020-07-09)

    • [changed] unix renamed to posix. (Thanks LoganDark)
    • [changed] bunch of Linux/x11 fixes by Antonino Siena. Such as Transparency support, Borderless, Cursor Visibility. Thanks!
    • [changed] use std::ptr::null_mut() to Windows PeekMessageW it fix alt-tab stall on Window 7. Thanks lynnux for the report!
    • [added] Implemented std::error::Error for minifb::Error. (Thanks Christofer Nolander!)

    v0.16 (2020-04-05)

    • [added] Wayland support. (Big thanks to Antonino Siena add this support with assistance by Cole Helbling!)
    • [added] Added get_released_keys (Thanks to Alex Melville!)
    • [added] Added Topmost/Always on Top functionality to macOS (Thanks phillvancejr!)
    • [fixed] Removed left over logging on macOS (Thanks phillvancejr!)

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Update minifb requirement from 0.16.0 to 0.19.1

    Update minifb requirement from 0.16.0 to 0.19.1

    Updates the requirements on minifb to permit the latest version.

    Changelog

    Sourced from minifb's changelog.

    Changelog

    This project follows semantic versioning.

    v0.19.3 (2021-03-23)

    • [fixed] Fixed typos in description (Thanks hiqua!)
    • [fixed] update wayland to 0.28 and small cleanup (Thanks xMAC94x!)
    • [fixed] Bump xkbcommon-sys to 0.7.5
    • [fixed] wayland missing cursor (Thanks dc740!)
    • [fixed] windows: use c_void from winapi (Thanks xobs!)

    v0.19.2 (2021-01-18)

    TODO

    v0.19 (2020-09-22)

    • [fixed] Removed dummy logging

    v0.19 (2020-09-16)

    • [added] Added char_callback example on how to capture data.
    • [added] Support for topmost on Windows (Thanks phillvancejr!)
    • [fixed] ARM (Raspberry Pi) now builds and runs. (Thanks derpeter!)
    • [changed] Removed a bunch of dependencies not needed anymore (Thanks RazrFalcon!)

    v0.18 (2020-08-14)

    • [fixed] get_released_keys wasn't working under Wayland.

    v0.17 (2020-07-09)

    • [changed] unix renamed to posix. (Thanks LoganDark)
    • [changed] bunch of Linux/x11 fixes by Antonino Siena. Such as Transparency support, Borderless, Cursor Visibility. Thanks!
    • [changed] use std::ptr::null_mut() to Windows PeekMessageW it fix alt-tab stall on Window 7. Thanks lynnux for the report!
    • [added] Implemented std::error::Error for minifb::Error. (Thanks Christofer Nolander!)

    v0.16 (2020-04-05)

    • [added] Wayland support. (Big thanks to Antonino Siena add this support with assistance by Cole Helbling!)
    • [added] Added get_released_keys (Thanks to Alex Melville!)
    • [added] Added Topmost/Always on Top functionality to macOS (Thanks phillvancejr!)
    • [fixed] Removed left over logging on macOS (Thanks phillvancejr!)

    v0.15.3 (2020-01-21)

    • [Added] On macOS NSView (MTKView) is supplied with raw_window_handle now

    v0.15.2 (2020-01-21)

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    dependencies 
    opened by dependabot[bot] 1
  • Update minifb requirement from 0.16.0 to 0.19.2

    Update minifb requirement from 0.16.0 to 0.19.2

    Updates the requirements on minifb to permit the latest version.

    Changelog

    Sourced from minifb's changelog.

    v0.19.2 (2021-01-18)

    TODO:

    v0.19 (2020-09-22)

    • [fixed] Removed dummy logging

    v0.19 (2020-09-16)

    • [added] Added char_callback example on how to capture data.
    • [added] Support for topmost on Windows (Thanks phillvancejr!)
    • [fixed] ARM (Raspberry Pi) now builds and runs. (Thanks derpeter!)
    • [changed] Removed a bunch of dependencies not needed anymore (Thanks RazrFalcon!)

    v0.18 (2020-08-14)

    • [fixed] get_released_keys wasn't working under Wayland.

    v0.17 (2020-07-09)

    • [changed] unix renamed to posix. (Thanks LoganDark)
    • [changed] bunch of Linux/x11 fixes by Antonino Siena. Such as Transparency support, Borderless, Cursor Visibility. Thanks!
    • [changed] use std::ptr::null_mut() to Windows PeekMessageW it fix alt-tab stall on Window 7. Thanks lynnux for the report!
    • [added] Implemented std::error::Error for minifb::Error. (Thanks Christofer Nolander!)

    v0.16 (2020-04-05)

    • [added] Wayland support. (Big thanks to Antonino Siena add this support with assistance by Cole Helbling!)
    • [added] Added get_released_keys (Thanks to Alex Melville!)
    • [added] Added Topmost/Always on Top functionality to macOS (Thanks phillvancejr!)
    • [fixed] Removed left over logging on macOS (Thanks phillvancejr!)

    v0.15.3 (2020-01-21)

    • [Added] On macOS NSView (MTKView) is supplied with raw_window_handle now

    v0.15.2 (2020-01-21)

    • [fixed] Fixed forever block on macOS when using update and not update_with_buffer

    v0.15.1 (2019-12-27)

    • [fixed] Fixed access to raw_window_handle()

    v0.15 (2019-12-16)

    • [API BREAKAGE] - update_with_buffer now always take width and height parameters.
    • [added] scale_mode in WindowOptions now allow for aspect correct scaling, center of non-scaled buffers and more.
    • [added] Added limit_update_rate(..) in order to reduce CPU usage and not hammer the native system calls.

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 1
  • Update minifb requirement from 0.16.0 to 0.19.1

    Update minifb requirement from 0.16.0 to 0.19.1

    Updates the requirements on minifb to permit the latest version.

    Changelog

    Sourced from minifb's changelog.

    Changelog

    This project follows semantic versioning.

    v0.19 (2020-09-22)

    • [fixed] Removed dummy logging

    v0.19 (2020-09-16)

    • [added] Added char_callback example on how to capture data.
    • [added] Support for topmost on Windows (Thanks phillvancejr!)
    • [fixed] ARM (Raspberry Pi) now builds and runs. (Thanks derpeter!)
    • [changed] Removed a bunch of dependencies not needed anymore (Thanks RazrFalcon!)

    v0.18 (2020-08-14)

    • [fixed] get_released_keys wasn't working under Wayland.

    v0.17 (2020-07-09)

    • [changed] unix renamed to posix. (Thanks LoganDark)
    • [changed] bunch of Linux/x11 fixes by Antonino Siena. Such as Transparency support, Borderless, Cursor Visibility. Thanks!
    • [changed] use std::ptr::null_mut() to Windows PeekMessageW it fix alt-tab stall on Window 7. Thanks lynnux for the report!
    • [added] Implemented std::error::Error for minifb::Error. (Thanks Christofer Nolander!)

    v0.16 (2020-04-05)

    • [added] Wayland support. (Big thanks to Antonino Siena add this support with assistance by Cole Helbling!)
    • [added] Added get_released_keys (Thanks to Alex Melville!)
    • [added] Added Topmost/Always on Top functionality to macOS (Thanks phillvancejr!)
    • [fixed] Removed left over logging on macOS (Thanks phillvancejr!)

    v0.15.3 (2020-01-21)

    • [Added] On macOS NSView (MTKView) is supplied with raw_window_handle now

    v0.15.2 (2020-01-21)

    • [fixed] Fixed forever block on macOS when using update and not update_with_buffer

    v0.15.1 (2019-12-27)

    • [fixed] Fixed access to raw_window_handle()

    v0.15 (2019-12-16)

    • [API BREAKAGE] - update_with_buffer now always take width and height parameters.
    • [added] scale_mode in WindowOptions now allow for aspect correct scaling, center of non-scaled buffers and more.
    • [added] Added limit_update_rate(..) in order to reduce CPU usage and not hammer the native system calls.
    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 1
  • Update minifb requirement from 0.16.0 to 0.19.0

    Update minifb requirement from 0.16.0 to 0.19.0

    Updates the requirements on minifb to permit the latest version.

    Changelog

    Sourced from minifb's changelog.

    Changelog

    This project follows semantic versioning.

    v0.19 (2020-09-16)

    • [added] Added char_callback example on how to capture data.
    • [added] Support for topmost on Windows (Thanks phillvancejr!)
    • [fixed] ARM (Raspberry Pi) now builds and runs. (Thanks derpeter!)
    • [changed] Removed a bunch of dependencies not needed anymore (Thanks RazrFalcon!)

    v0.18 (2020-08-14)

    • [fixed] get_released_keys wasn't working under Wayland.

    v0.17 (2020-07-09)

    • [changed] unix renamed to posix. (Thanks LoganDark)
    • [changed] bunch of Linux/x11 fixes by Antonino Siena. Such as Transparency support, Borderless, Cursor Visibility. Thanks!
    • [changed] use std::ptr::null_mut() to Windows PeekMessageW it fix alt-tab stall on Window 7. Thanks lynnux for the report!
    • [added] Implemented std::error::Error for minifb::Error. (Thanks Christofer Nolander!)

    v0.16 (2020-04-05)

    • [added] Wayland support. (Big thanks to Antonino Siena add this support with assistance by Cole Helbling!)
    • [added] Added get_released_keys (Thanks to Alex Melville!)
    • [added] Added Topmost/Always on Top functionality to macOS (Thanks phillvancejr!)
    • [fixed] Removed left over logging on macOS (Thanks phillvancejr!)

    v0.15.3 (2020-01-21)

    • [Added] On macOS NSView (MTKView) is supplied with raw_window_handle now

    v0.15.2 (2020-01-21)

    • [fixed] Fixed forever block on macOS when using update and not update_with_buffer

    v0.15.1 (2019-12-27)

    • [fixed] Fixed access to raw_window_handle()

    v0.15 (2019-12-16)

    • [API BREAKAGE] - update_with_buffer now always take width and height parameters.
    • [added] scale_mode in WindowOptions now allow for aspect correct scaling, center of non-scaled buffers and more.
    • [added] Added limit_update_rate(..) in order to reduce CPU usage and not hammer the native system calls.
    • [changed] x11 now uses C for it's scaling in software mode in order to always have opts on even in debug build.
    • [changed] Several fixes with rescaling on all platforms
    • [changed] on x11 some window mangers will resize a non-resizable windows and minifb handles this now correctly.
    • [fixed] Cursor was behaving bad on Windows. This has now been fixed
    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 1
  • Update image requirement from 0.23.3 to 0.24.5

    Update image requirement from 0.23.3 to 0.24.5

    Updates the requirements on image to permit the latest version.

    Changelog

    Sourced from image's changelog.

    Version 0.24.5

    Structural changes:

    • Increased the minimum supported Rust version (MSRV) to 1.61.
    • Increased the version requirement for the tiff crate to 0.8.0.
    • Increased the version requirement for the jpeg crate to 0.3.0.

    Bug fixes:

    • The as_rgb32f function of DynamicImage is now correctly documented.
    • Fixed a crash when decoding ICO images. Added a regression test.
    • Fixed a panic when transforming webp images. Added a regression test.
    • Added a check to prevent integer overflow when calculating file size for BMP images. The missing check could panic in debug mode or else set an incorrect file size in release mode.
    • Upgraded the PNG image encoder to use the newer PngEncoder::write_image instead of the deprecated PngEncoder::encode which did not account for byte order and could result in images with incorrect colors.
    • Fixed InsufficientMemory error when trying to decode a PNG image.
    • Fix warnings and CI issues.
    • Typos and links in the documentation have been corrected.

    Performance:

    • Added check for dynamic image dimensions before resizing. This improves performance in cases where the image does not need to be resized or has already been resized.

    Version 0.24.4

    New Features:

    • Encoding for webp is now available with the native library. This needs to be activate explicitly with the web-encoder feature.
    • exr decoding has gained basic limit support.

    Bug fixes:

    • The Iterator::size_hint implementation of pixel iterators has been fixed to return the current length indicated by its ExactSizeIterator hint.
    • Typos and bad references in the documentation have been removed.

    Performance:

    • ImageBuffer::get_pixel{,_mut} is now marked inline.
    • resize now short-circuits when image dimensions are unchanged.

    Version 0.24.3

    New Features:

    • TiffDecoder now supports setting resource limits.

    Bug fixes:

    • Fix compile issues on little endian systems.
    • Various panics discovered by fuzzing.

    ... (truncated)

    Commits
    • aa1e81e Changes and release notes for 0.24.5
    • 88aadcb Merge pull request #1821 from micahsnyder/bump-jpeg-dependency
    • dffefce Bump the 'jpeg' version requirement to 0.3.0
    • bf0a96b Merge pull request #1812 from fintelia/png-with-limits
    • a7026e9 Merge pull request #1817 from Flashover89/Check-dimensions-for-dyn-image-befo...
    • 392798c Fix white spacing
    • 2be3d17 Merge branch 'image-rs:master' into Check-dimensions-for-dyn-image-before-res...
    • 4681225 Fix review findings
    • 1361f4a Add PngDecoder::with_limits
    • 1878c88 Merge pull request #1815 from fintelia/fix-ci
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Update criterion requirement from 0.3.1 to 0.4.0

    Update criterion requirement from 0.3.1 to 0.4.0

    Updates the requirements on criterion to permit the latest version.

    Changelog

    Sourced from criterion's changelog.

    [0.4.0] - 2022-09-10

    Removed

    • The Criterion::can_plot function has been removed.
    • The Criterion::bench_function_over_inputs function has been removed.
    • The Criterion::bench_functions function has been removed.
    • The Criterion::bench function has been removed.

    Changed

    • HTML report hidden behind non-default feature flag: 'html_reports'
    • Standalone support (ie without cargo-criterion) feature flag: 'cargo_bench_support'
    • MSRV bumped to 1.57
    • rayon and plotters are optional (and default) dependencies.
    • Status messages ('warming up', 'analyzing', etc) are printed to stderr, benchmark results are printed to stdout.
    • Accept subsecond durations for --warm-up-time, --measurement-time and --profile-time.
    • Replaced serde_cbor with ciborium because the former is no longer maintained.
    • Upgrade clap to v3 and regex to v1.5.

    Added

    • A --discard-baseline flag for discarding rather than saving benchmark results.
    • Formal support for benchmarking code compiled to web-assembly.
    • A --quiet flag for printing just a single line per benchmark.
    • A Throughput::BytesDecimal option for measuring throughput in bytes but printing them using decimal units like kilobytes instead of binary units like kibibytes.

    Fixed

    • When using bench_with_input, the input parameter will now be passed through black_box before passing it to the benchmark.

    [0.3.6] - 2022-07-06

    Changed

    • MSRV bumped to 1.49
    • Symbol for microseconds changed from ASCII 'us' to unicode 'µs'
    • Documentation fixes
    • Clippy fixes

    [0.3.5] - 2021-07-26

    Fixed

    • Corrected Criterion.toml in the book.
    • Corrected configuration typo in the book.

    Changed

    • Bump plotters dependency to always include a bug-fix.
    • MSRV bumped to 1.46.

    ... (truncated)

    Commits
    • 5e27b69 Merge branch 'version-0.4'
    • 4d6d69a Increment version numbers.
    • 935c632 Add Throughput::BytesDecimal. Fixes #581.
    • f82ce59 Remove critcmp code (it belongs in cargo-criterion) (#610)
    • a18d080 Merge branch 'master' into version-0.4
    • f9c6b8d Merge pull request #608 from Cryptex-github/patch-1
    • 8d0224e Fix html report path
    • 2934163 Add missing black_box for bench_with_input parameters. Fixes 566.
    • dfd7b65 Add duplicated benchmark ID to assertion message.
    • ce8259e Bump criterion-plot version number.
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Configure Renovate

    Configure Renovate

    Mend Renovate

    Welcome to Renovate! This is an onboarding PR to help you understand and configure settings before regular Pull Requests begin.

    🚦 To activate Renovate, merge this Pull Request. To disable Renovate, simply close this Pull Request unmerged.


    Detected Package Files

    • Cargo.toml (cargo)
    • .github/workflows/rust.yml (github-actions)

    Configuration

    🔡 Renovate has detected a custom config for this PR. Feel free to ask for help if you have any doubts and would like it reviewed.

    Important: Now that this branch is edited, Renovate can't rebase it from the base branch any more. If you make changes to the base branch that could impact this onboarding PR, please merge them manually.

    What to Expect

    With your current configuration, Renovate will create 13 Pull Requests:

    Update Rust crate num-traits to 0.2.15
    • Schedule: ["at any time"]
    • Branch name: renovate/num-traits-0.x
    • Merge into: master
    • Upgrade num-traits to 0.2.15
    Update Rust crate serde to 1.0.147
    • Schedule: ["at any time"]
    • Branch name: renovate/serde-1.x
    • Merge into: master
    • Upgrade serde to 1.0.147
    Update Rust crate serde_derive to 1.0.147
    • Schedule: ["at any time"]
    • Branch name: renovate/serde_derive-1.x
    • Merge into: master
    • Upgrade serde_derive to 1.0.147
    Update Rust crate serde_json to 1.0.88
    • Schedule: ["at any time"]
    • Branch name: renovate/serde_json-1.x
    • Merge into: master
    • Upgrade serde_json to 1.0.88
    Update Rust crate bincode to 1.3.3
    • Schedule: ["at any time"]
    • Branch name: renovate/bincode-1.x
    • Merge into: master
    • Upgrade bincode to 1.3.3
    Update Rust crate criterion to 0.4.0
    • Schedule: ["at any time"]
    • Branch name: renovate/criterion-0.x
    • Merge into: master
    • Upgrade criterion to 0.4.0
    Update Rust crate image to 0.24.5
    • Schedule: ["at any time"]
    • Branch name: renovate/image-0.x
    • Merge into: master
    • Upgrade image to 0.24.5
    Update Rust crate minifb to 0.23.0
    • Schedule: ["at any time"]
    • Branch name: renovate/minifb-0.x
    • Merge into: master
    • Upgrade minifb to 0.23.0
    Update Rust crate quick-error to v2
    • Schedule: ["at any time"]
    • Branch name: renovate/quick-error-2.x
    • Merge into: master
    • Upgrade quick-error to 2.0.1
    Update actions/checkout action to v3
    • Schedule: ["at any time"]
    • Branch name: renovate/actions-checkout-3.x
    • Merge into: master
    • Upgrade actions/checkout to v3
    Update actions/setup-dotnet action to v3
    • Schedule: ["at any time"]
    • Branch name: renovate/actions-setup-dotnet-3.x
    • Merge into: master
    • Upgrade actions/setup-dotnet to v3
    Update actions/setup-node action to v3
    • Schedule: ["at any time"]
    • Branch name: renovate/actions-setup-node-3.x
    • Merge into: master
    • Upgrade actions/setup-node to v3
    Update actions/setup-python action to v4
    • Schedule: ["at any time"]
    • Branch name: renovate/actions-setup-python-4.x
    • Merge into: master
    • Upgrade actions/setup-python to v4

    🚸 Branch creation will be limited to maximum 2 per hour, so it doesn't swamp any CI resources or spam the project. See docs for prhourlylimit for details.


    ❓ Got questions? Check out Renovate's Docs, particularly the Getting Started section. If you need any further assistance then you can also request help here.


    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • Update minifb requirement from 0.16.0 to 0.23.0

    Update minifb requirement from 0.16.0 to 0.23.0

    Updates the requirements on minifb to permit the latest version.

    Changelog

    Sourced from minifb's changelog.

    Changelog

    This project follows semantic versioning.

    v0.23 (2022-04-19)

    • [fixed] wayland: Fix key character callback & Reduce wayland dependencies (Thanks vmedea!)
    • [fixed] Use coercion on types failing compilation on 64 bit raspbian bullseye (Thanks wtfuzz!)
    • [added] WASM support. Thanks dc740 and tversteeg! See https://github.com/dc740/minifb-async-examples for example.

    v0.22 (2022-03-27)

    • [fixed] Updated docs to make it a bit more clear that only one of update_with_buffer or update should be used for updating a window.

    v0.21 (2022-03-27)

    • [fixed] Holding down a key on x11 would no repeat correctly
    • [fixed] Windows dependency cleanups (Thanks Arnab Animesh Das!)
    • [fixed] Fixed mouse button being "stuck" when moved out side of window, released and then moved by in on Windows (Thanks Arnab Animesh Das for bug report!)
    • [fixed] Memory-map the keymap FD on Wayland to fix EOF error (Thanks Greg Depoire--Ferrer!)
    • [added] getter for window position (Thanks Andreas Neukoetter!)
    • [fixed] Fix clippy lints under windows (Thanks Kevin K!)
    • [added] Add set_icon() method to set a window icon at runtime (Thanks Kevin K!)
    • [added] inputcallback: add a callback for key events and key_handler: add a callback for key events (Thanks xobs and vemoo!)
    • [fixed] macOS: Fix segmentation fault when resizing window. (Thanks KaDiWa!)
    • [fixed] Various x11 and wayland fixes, version updates (Thanks vemoo!)

    v0.20 (2021-11-28)

    • [API BREAKAGE] Changing return types of get_keys from Option (Thanks Zij-IT!)
    • [fixed] get_scroll_wheel() would get "stuck" on macOS. (Thanks NikoUY for bug report!)

    v0.19.3 (2021-03-23)

    • [fixed] Fixed typos in description (Thanks hiqua!)
    • [fixed] update wayland to 0.28 and small cleanup (Thanks xMAC94x!)
    • [fixed] Bump xkbcommon-sys to 0.7.5
    • [fixed] wayland missing cursor (Thanks dc740!)
    • [fixed] windows: use c_void from winapi (Thanks xobs!)

    v0.19.2 (2021-01-18)

    TODO

    v0.19 (2020-09-22)

    • [fixed] Removed dummy logging

    v0.19 (2020-09-16)

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Update quick-error requirement from 1.2.3 to 2.0.1

    Update quick-error requirement from 1.2.3 to 2.0.1

    Updates the requirements on quick-error to permit the latest version.

    Commits
    • 25ab982 Version bumped to v2.0.1
    • e7a8571 Merge pull request #56 from Byron/master
    • a344b67 Revert whitespace changes
    • bdad05b Add compatibility with 'deny(rust_2018_idioms)'
    • 3b09136 Version bumped to v2.0.0
    • 9c397ac Remove old cargo token
    • a236246 Merge pull request #54 from Byron/master
    • 26b7cbb Add 'dyn' keyword to remove compile warnings
    • 759d59e Use 'source(…)' instead of 'cause(…)' in README
    • aad5701 Merge pull request #51 from Byron/master
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    dependencies 
    opened by dependabot[bot] 0
  • Update minifb requirement from 0.16.0 to 0.19.3

    Update minifb requirement from 0.16.0 to 0.19.3

    ⚠️ Dependabot Preview has been deactivated ⚠️

    This pull request was created by Dependabot Preview, and you've upgraded to Dependabot. This means it won't respond to dependabot commands nor will it be automatically closed if a new version is found.

    If you close this pull request, Dependabot will re-create it the next time it checks for updates and everything will work as expected.


    Updates the requirements on minifb to permit the latest version.

    Changelog

    Sourced from minifb's changelog.

    v0.19.3 (2021-03-23)

    • [fixed] Fixed typos in description (Thanks hiqua!)
    • [fixed] update wayland to 0.28 and small cleanup (Thanks xMAC94x!)
    • [fixed] Bump xkbcommon-sys to 0.7.5
    • [fixed] wayland missing cursor (Thanks dc740!)
    • [fixed] windows: use c_void from winapi (Thanks xobs!)

    v0.19.2 (2021-01-18)

    TODO

    v0.19 (2020-09-22)

    • [fixed] Removed dummy logging

    v0.19 (2020-09-16)

    • [added] Added char_callback example on how to capture data.
    • [added] Support for topmost on Windows (Thanks phillvancejr!)
    • [fixed] ARM (Raspberry Pi) now builds and runs. (Thanks derpeter!)
    • [changed] Removed a bunch of dependencies not needed anymore (Thanks RazrFalcon!)

    v0.18 (2020-08-14)

    • [fixed] get_released_keys wasn't working under Wayland.

    v0.17 (2020-07-09)

    • [changed] unix renamed to posix. (Thanks LoganDark)
    • [changed] bunch of Linux/x11 fixes by Antonino Siena. Such as Transparency support, Borderless, Cursor Visibility. Thanks!
    • [changed] use std::ptr::null_mut() to Windows PeekMessageW it fix alt-tab stall on Window 7. Thanks lynnux for the report!
    • [added] Implemented std::error::Error for minifb::Error. (Thanks Christofer Nolander!)

    v0.16 (2020-04-05)

    • [added] Wayland support. (Big thanks to Antonino Siena add this support with assistance by Cole Helbling!)
    • [added] Added get_released_keys (Thanks to Alex Melville!)
    • [added] Added Topmost/Always on Top functionality to macOS (Thanks phillvancejr!)
    • [fixed] Removed left over logging on macOS (Thanks phillvancejr!)

    v0.15.3 (2020-01-21)

    • [Added] On macOS NSView (MTKView) is supplied with raw_window_handle now

    v0.15.2 (2020-01-21)

    • [fixed] Fixed forever block on macOS when using update and not update_with_buffer

    v0.15.1 (2019-12-27)

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
Releases(v0.5.12)
Owner
Thomas Versteeg
Thomas Versteeg
🎨 Procedurally generate 2D sprites

sprite (Executable) Run On Linux you need the gtk-rs dependencies to compile: cargo install sprite sprite This should produce the following window: s

Thomas Versteeg 68 Nov 25, 2022
Materials for sprites in Bevy

bevy_sprite_material Materials for sprites in Bevy This bevy plugin changes the bevy_sprite implementation using a material. You might be interested i

Félix Lescaudey de Maneville 6 Aug 21, 2022
Use sprites in a 3d bevy scene.

bevy_sprite3d Use 2d sprites in a 3d bevy scene. This is a pretty common setup in other engines (unity, godot, etc). Useful for: 2d games using bevy's

null 46 Apr 24, 2023
Explicitly set sprite layers for sprites in Bevy games.

extol_sprite_layer lets you specify the drawing order for sprites in your Bevy game using a separate component rather than via the z-coordinate of you

Ash 5 May 2, 2023
A Rust wrapper and bindings of Allegro 5 game programming library

RustAllegro A thin Rust wrapper of Allegro 5. Game loop example extern crate allegro; extern crate allegro_font; use allegro::*; use allegro_font::*;

null 80 Dec 31, 2022
High performance Rust ECS library

Legion aims to be a feature rich high performance Entity component system (ECS) library for Rust game projects with minimal boilerplate. Getting Start

Amethyst Engine 1.4k Jan 5, 2023
Rust library to create a Good Game Easily

ggez What is this? ggez is a Rust library to create a Good Game Easily. The current version is 0.6.0-rc0. This is a RELEASE CANDIDATE version, which m

null 3.6k Jan 7, 2023
Rust bindings for libtcod 1.6.3 (the Doryen library/roguelike toolkit)

Warning: Not Maintained This project is no longer actively developed or maintained. Please accept our apologies. Open pull requests may still get merg

Tomas Sedovic 226 Nov 17, 2022
a rust library to find near-duplicate video files

Video Duplicate Finder vid_dup_finder finds near-duplicate video files on disk. It detects videos whose frames look similar, and where the videos are

null 12 Oct 28, 2022
FPS library for gdnative written in Rust.

gd_rusty_fps FPS library for gdnative written in Rust. This projects aims to create easy to use .dll library to be used with godot engine for FPS game

null 1 Jan 4, 2022
A low-level library for OpenGL context creation, written in pure Rust.

glutin - OpenGL, UTilities and INput A low-level library for OpenGL context creation, written in pure Rust. [dependencies] glutin = "0.28.0" Documenta

Rust Windowing 1.8k Jan 5, 2023
A low-level library for OpenGL context creation, written in pure Rust.

glutin - OpenGL, UTilities and INput A low-level library for OpenGL context creation, written in pure Rust. [dependencies] glutin = "0.28.0" Documenta

Rust Windowing 1.8k Dec 25, 2022
Pleco is a chess Engine & Library derived from Stockfish, written entirely in Rust

Pleco Pleco is a chess Engine & Library derived from Stockfish, written entirely in Rust. This project is split into two crates, pleco, which contains

Stephen Fleischman 225 Dec 18, 2022
A Rust library for reading asset files and resource packs for any version of Minecraft

minecraft-assets A Rust library for reading asset files and resource packs for any version of Minecraft. Example use minecraft_assets::api::AssetPack;

Ben Reeves 7 Aug 14, 2022
Rust library to download and run Minecraft instances.

Rust library to download and run Minecraft instances. Build the code To build the library, the do the following command: carbo build Run the example Y

Louis Bailleau 3 Oct 19, 2022
General purpose client/server networking library written in Rust, built on top of the QUIC protocol which is implemented by quinn

Overview "This library stinks!" ... "Unless you like durian" durian is a client-server networking library built on top of the QUIC protocol which is i

Michael 92 Dec 31, 2022
A simple space shooter game. Runs in the terminal using characters-based UI. Fully written in Rust, using the "ruscii" library.

Thrust - a terminal shooter game Originally created as a project for the "Missing Semester" course at JKU Linz (338.006). The game is entirely written

Mathias Wöß 3 Jan 16, 2023
A simple and minimal game engine library built in rust.

Neptune A brand new free, open-source minimal and compact game engine built in rust. Design Goals We plan to make Neptune a small and minimal engine,

Levitate 17 Jan 25, 2023
Rust-lang Continuous Wavelet Transform(CWT) library inspired by fCWT.

fastcwt Rust-lang Continuous Wavelet Transform(CWT) library inspired by fCWT. This crate is a direct translation of fCWT Library written in C++ by Art

null 3 May 2, 2023