A powerful C# library for Razer Chroma's SDK
This is very long overdue and it includes a lot of changes.
Much of the API has been completely re-organized and is not backwards compatible, users of the library will need to update their code. The new locations should hopefully feel more logical though.
The organization of the API felt off in many places, and has been adjusted to feel more natural. Hopefully everything should feel logical to our users. If there are any questions about this after the changes, don't be afraid to voice your concerns! Another breaking change would be unlikely very soon, but we will take any feedback into consideration.
As part of upgrading the project to support the SDK REST API and be async, the old extensions to enable integration with WPF and WinForms data classes were dropped. We will likely update these in the future to support the new version of Colore, but for now we felt like focusing on the main library.
Colore v6.0 brings support for Razer's REST API for the Chroma SDK.
All APIs in Colore have been reworked to support the async/await pattern. This was partly done in order to better support the REST API. If there is a need, we may look into adding back the synchronous versions of the APIs, mainly for use with the native SDK.
Apart from the major points above, we have of course done bug fixes in general and added support for new things that have appeared in the SDK.
After creating a new Chroma instance (ColoreProvider.Create...Async
) or manually initializing one (IChroma.InitializeAsync
), you have to delay the rest of the code interacting with Colore/Chroma by a second or two. This is due to internal undocumented delays in Razer's Chroma SDK that cannot be reliably predicted by Colore itself. This problem is detailed in issues #274 and #279.
An alternative, more reliable method, is to wait for the DeviceAccess
event on IChroma
to be raised with Granted
set to true
. This event being raised with Granted
set to true
means the SDK has finished initializing and you now have access to make calls to the hardware. For this to work you must have a Win32 event loop going, and register your window handle with IChroma.Register
, then forward any messages to IChroma.HandleMessage
.
Once the relevant message is dispatched and handled in Colore, the event will be raised.
We still recommend having a timer as a fallback in case the events fail to propagate fully.
This is a big change, but we know a fair amount of people have been using the release candidates of 6.0 for a while so hopefully most of our core users are familiar with the changes.
Again, if you have any concerns, all feedback is appreciated! You may create an issue if you have bugs or feature requests, or visit the discussions for more general questions and concerns.
The third (but first real) release candidate for version 6.0 of Colore!
You can install this either from the artifacts in this GitHub release (you probably want colore_6.0.0-rc.3_netstandard1.3_anycpu.zip
), or by getting it from NuGet or MyGet.
Until we do a stable release, you can refer to the latest development documentation for API references (and some usage guides).
The final release for the 5.x line!
This brings some fixes to various effect types and support for Chroma Link.
Many other changes have been made in 5.2.0 that are not related to the final binaries themselves, but more about project restructure.
As usual, you can either download the binaries from this release page or install Colore from NuGet!
You can read the documentation online or download the colore_5.2.0_docs.zip
in this release and open the index.html
file in your browser.
This release is also available on NuGet!
Documentation for Colore is available online or in the colore_docs.zip
file below.
If you are developing for Unity, the version you want is colore_5.1.0.99_unity.zip. You will need to import the Corale.Colore.dll
into a plugins
folder.
Colore will also be available in the Unity asset store for download soon!
This is the fifth major release of Colore and brings a lot of new things to the table, as well as fixing and improving some issues.
Some of the key features of this release include:
Clear()
methods to use Effect.None where it no longer causes delay.System.Diagnostics
instead of log4net, this now means that Colore has no third party dependencies outside of the Chroma SDK!This release is also available on NuGet!
From this version onwards, WPF and WinForms compatibility will be contained in separate packages. These extension packages are also available at NuGet as Colore.WPF and Colore.WinForms.
Documentation for Colore is available online or in the colore_docs.zip
file below.
If you are developing for Unity, the version you want is colore_5.0.0.97_anycpu.zip
.
Colore will also be available in the Unity asset store for download soon!
Can also be downloaded from NuGet!
Documentation for this release is not currently available online as the documentation generation failed, you can view it by downloading the colore_docs.zip
file or viewing it on TeamCity.
Corale.Colore.CoreChroma
calling SDK UnInit function under unsafe conditions.Corale.Colore.Core.Mousepad
.IsKeySafe
methods on Corale.Colore.Core.Keyboard
to give more flexibility around the SDK key ghosting.System.Windows.Media.Color
(yay WPF developers).Corale.Colore.Core.Color.Orange
so it is now ... actually orange.Documentation can be read online or found in the colore_docs.zip
archive in this release.