Skip to content

datael/bevy_mod_chroma

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bevy_mod_chroma

Crates.io License Bevy tracking

Razer Chroma support plugin for Bevy. Uses the Razer Chroma HTTP API to communicate with the Razer Chroma system.

Usage

You will need Razer Chroma software installed to properly use this plugin.
If you don't have certain types of hardware devices, Razer also provides an emulator that you can use to test your effects.

General flow is that you need to register effects via Chroma::create_effect to get an EffectHandle, and then you can pass that handle to Chroma::apply_effect to apply.

See the examples directory for more detailed examples.

System setup

Add the plugin to your app:

use bevy::prelude::*;
use bevy_mod_chroma::{
    Author, Category, ChromaPlugin, ChromaRunnerInitializationSettings, InitRequest, SupportedDevice,
};

fn main() {
    App::new()
        .add_plugins(ChromaPlugin::new(ChromaRunnerInitializationSettings::new(
            InitRequest {
                title: "Your Bevy app title goes here",
                description: "Your Bevy app description goes here",
                author: Author {
                    name: "Your name",
                    contact: "Your contact",
                },
                device_supported: vec![
                    SupportedDevice::Keyboard,
                    SupportedDevice::Mouse,
                    //...
                ],
                category: Category::Application, // or Category::Game
            },
        )))
        //...
        .run();
}

NOTE: The information you provide to ChromaRunnerInitializationSettings is displayed in the Razer Synapse connect menu!

Create and apply effects

Use the Chroma parameter in systems to create and apply effects:

use bevy_mod_chroma::{Chroma, Effect, EffectHandle, MouseEffect};

fn red_mouse(mut chroma: Chroma) {
    let red_handle = chroma.create_effect(Effect::Mouse(MouseEffect::Static {
        color: Color::RED.into(),
    }));

    chroma.apply_effect(&red_handle);
}

Compatible Bevy versions

The main branch is compatible with the latest Bevy release.

Compatibility of bevy_mod_chroma versions:

bevy_mod_chroma branch Compatible Bevy version
develop 0.11
bevy_0.10 0.10

TODOs

  • Documentation
  • Error handling
  • Retries
  • Reconnect after dropped connections

Wants

  • Websocket version
  • Built-in animations support

About

Razer Chroma support for Bevy

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages