Skip to content

chroma-sdk/Colore

 
 

Repository files navigation

Colore

MIT License Latest GitHub release NuGet package

A powerful and elegant C# library for Razer Chroma's SDK.

Branch CI Coverage Codefactor
master Workflow status Codecov coverage CodeFactor
develop Workflow status Codecov coverage CodeFactor

Getting started

If you are a new developer and are looking for a helpful guide on how to get started, head on over to the documentation which describes getting Colore installed and running some example code.

Contributing

Discussions

For discussing, you can discuss right here in the repo. If you want to join the Slack chat, contact Adam Hellberg (sharparam@sharparam.com).

Contributors are very welcome! If you have code fixes, please submit a pull request here on GitHub.

If you want to join the development team, please contact Sharparam on GitHub.

All authors and contributors are listed in the AUTHORS file. Feel free to add yourself to this file under a relevant section in your pull request.

Please read the CONTRIBUTING.md file before making a pull request.

Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

License

Copyright © 2015-2022 by Adam Hellberg and Brandon Scott.

This project is licensed under the MIT license, please see the file LICENSE for more information.

Razer is a trademark and/or a registered trademark of Razer USA Ltd. All other trademarks are property of their respective owners.

Installing

Using Colore in your project is simple, all you have to do is install it with NuGet!

Install-Package Colore

Or using the .NET CLI tools:

dotnet add package Colore

You can also search for it in Visual Studio by right clicking your project and choosing "Manage NuGet Packages..." and install it the GUI way.

Pre-releases

New release candidate versions will be uploaded to NuGet and marked as pre-releases there (vX.Y.Z-rcDDDD).

You can also find pre-release versions for Colore and any additional extensions in the GitHub package registry. The GitHub package registry will be the place where you'll always find the most bleeding edge packages.

Extensions

The WPF and WinForms extension packages for Colore are not yet available for the new Colore version, but will be on NuGet soon™, so stay tuned!

Using

Obtain a reference to an IChroma instance by calling Colore.ColoreProvider.CreateNative().

This instance initializes the Chroma SDK so it is important you save this reference for the lifetime of your application! If you need to dispose of it and obtain a new one later, be sure to call the uninitialize method first!

Colore supports binding to both the native Chroma SDK and the REST API. To use the REST API, create an IChroma instance by calling Colore.ColoreProvider.CreateRestAsync(AppInfo). The REST API requires information about your application, so you'll have to pass an instance of AppInfo to CreateRestAsync containing details about your application or game.

For a more in-depth guide on how to get started, check out our wiki.

For more information on the native and REST SDKs that Colore uses, check out Razer's official page for the Chroma SDK and their page about SDK tools.

Dependencies

Colore depends on the Razer Chroma SDK (RzChromaSDK64.dll or RzChromaSDK.dll).

The Razer Chroma SDK is provided by Razer and installed together with the Synapse application. More information can be read on their website.

Other dependencies are installed via NuGet and listed in each project file.

Building

Colore currently builds for .NET Standard 2.1.

Visual Studio / Rider

Open the solution file (Colore.sln) in Visual Studio or Rider and build it as you would any other project.

.NET CLI

You can build Colore from the command line as you would any other .NET project, by running:

dotnet build

(Either from the root of the repo (where Colore.sln is) or inside the project folder for Colore.)

Cake (CLI)

We use Cake primarily to run the CI builds for Colore, which performs all the tasks necessary for building, testing, and generating other artifacts for the project. You can utilize it as well if you want to replicate any of those tasks.

Note that all Cake commands need to be run from the root of the repository.

First install the needed tools:

dotnet tool restore

(From the root of the repository.)

Then you can run dotnet cake from the command line to run the various Cake tasks. By default it will run tasks to build and test the project.

You can use the --configuration parameter to build it in release mode:

dotnet cake --configuration Release

Or use the "CI" build target to generate the same artifacts made available for each release of Colore:

dotnet cake --configuration Release --target CI

You will find the resulting artifact files under the artifacts folder in the root of the repository.

In order to run the Docs task from the Cake script, you need to have installed DocFx locally on your system.

Native Documentation

As Colore is built upon the native Chroma SDK for C++, it can be worth taking a look at their documentation.

REST Documentation

Colore's REST mode is built on Razer's official REST API, which has its own documentation.

Razer Chroma Workshop

Many of the games and apps featured on the Razer Chroma Workshop have used the Colore library.

The official Razer Chroma Workshop is your one-stop-shop to get the most out of your Chroma devices. Whether it's smart lighting based on in-game events, standalone apps or stunning profiles created by fans around the world, the Chroma Workshop is where you can explore, download and even share your own creations.

Games using Colore

The following games (powered by Unity) are using Colore:

DubWars Masquerada: Songs and Shadows Nevermind Please, Don't Touch Anything 3D Starcrawlers The Little Acre

Projects using Colore

Aurora - Unified lighting effects across multiple brands and various games. (GitHub)

There may be others we are unaware of, so please let us know if there are any others.