speedy2d 1.9.0

Hardware-accelerated drawing of shapes, images, and text, with an easy to use API. Speedy2D aims to be the simplest Rust API for creating a window, rendering graphics, and handling input.
Documentation
name: CI

on:
  push:
  pull_request:
  schedule:
    - cron: '30 5 * * *'

jobs:

  build:
    name: Build
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ ubuntu-latest, windows-latest, macOS-latest ]

    steps:
      -   uses: actions/checkout@v2

      -   name: Build
          run: cargo build

      - name: Build (release)
        run: cargo build --release

  test:
    name: Test
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Install xvfb
        run: sudo apt-get --yes install xvfb

      - name: Start X server and run tests
        run: xvfb-run --auto-servernum cargo test

      - name: Start X server and run tests in release mode
        run: xvfb-run --auto-servernum cargo test --release

  clippy:
    name: Clippy
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Clippy
        run: cargo clippy

  fmt:
    name: Formatting
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Install nightly toolchain
        run: rustup toolchain install nightly --component rustfmt --allow-downgrade

      - name: Formatting
        run: cargo +nightly fmt -- --check

  doc:
    name: Documentation
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Documentation
        run: cargo doc --no-deps

  build_wasm32:
    name: Build (wasm32)
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Setup wasm32 toolchain
        run: rustup target add wasm32-unknown-unknown

      - name: Build
        run: cargo build --target=wasm32-unknown-unknown

      - name: Build (no features)
        run: cargo build --target=wasm32-unknown-unknown --no-default-features

      - name: Build (no features, release)
        run: cargo build --target=wasm32-unknown-unknown --no-default-features --release

      - name: Clippy
        run: cargo clippy --target=wasm32-unknown-unknown

      - name: Install utilities
        run: cargo install just wasm-bindgen-cli

      - name: Build WebGL example
        run: just build-example-webgl

  build_features_disabled:
    name: Build (features disabled)
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ ubuntu-latest, windows-latest, macOS-latest ]

    steps:
      -   uses: actions/checkout@v2

      -   name: Build (no features)
          run: cargo build --no-default-features

      -   name: Build (no features, release)
          run: cargo build --no-default-features --release

  test_features_disabled:
    name: Test (features disabled)
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Install xvfb
        run: sudo apt-get --yes install xvfb

      - name: Start X server and run tests
        run: xvfb-run --auto-servernum cargo test --no-default-features --lib --examples --tests

      - name: Start X server and run tests (release)
        run: xvfb-run --auto-servernum cargo test --release --no-default-features --lib --examples --tests