[![Contributors][contributors-shield]][contributors-url] [![Forks][forks-shield]][forks-url] [![Stargazers][stars-shield]][stars-url] [![Issues][issues-shield]][issues-url] [![MIT License][license-shield]][license-url] [![Crates.io][crates-shield]][crates-url] [![Downloads][crates-dl-shield]][crates-dl-url] [![Discord][discord-shield]][discord-url]

projectM-sys

Rust bindings for ProjectM, built using Bindgen

Docs · Example · Report Bug · Request Feature


Table of Contents
  1. Getting Started
  2. Usage
  3. Building
  4. Contributing
  5. License
  6. Support
  7. Contact

## Getting Started To get this crate up and running properly, you'll need to install some prerequisites. ### Prerequisites Depending on the OS/distribution and packaging system, libraries might be split into separate packages with binaries and development files. To build projectM, both binaries and development files need to be installed. #### General build dependencies for all platforms: * [**Rust**](https://www.rust-lang.org/tools/install) * A working build toolchain. * [**CMake**](https://cmake.org/): Used to generate platform-specific build files. * **OpenGL**: 3D graphics library. Used to render the visualizations. * or **GLES3**: OpenGL libraries for embedded systems, version 3. Required to build projectM on Android devices, Raspberry Pi, Emscripten and the Universal Windows Platform. * [**glm**](https://github.com/g-truc/glm): OpenGL Mathematics library. Optional, will use a bundled version with autotools or if not installed. * [**SDL2**](https://github.com/libsdl-org/SDL): Simple Directmedia Layer. Version 2.0.5 or higher is required to build the test UI. * [**LLVM**](https://llvm.org/): Low-Level Virtual Machine. Optional and **experimental**, used to speed up preset execution by leveraging the LLVM JIT compiler. #### Only relevant for Windows: * [**vcpkg**](https://github.com/microsoft/vcpkg): C++ Library Manager for Windows. _Optional_, but recommended to install the aforementioned library dependencies. * [**GLEW**](http://glew.sourceforge.net/): The OpenGL Extension Wrangler Library. Only required if using CMake to configure the build, the pre-created solutions use a bundled copy of GLEW.

(back to top)

## Usage ``` cargo.toml [dependencies] projectm-sys = { version = "1.0", features = [] } # Available features: playlist ```

(back to top)

## Building
### Windows Platform To compile the ProjectM library from source, you are required to set the VCPKG_INSTALLATION_ROOT env variable. ```powershell # Powershell $Env:VCPKG_INSTALLATION_ROOT="C:\path\to\vcpkg"; cargo build ```

(back to top)

## Contributing Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**. If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again! 1. Fork the Project 2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`) 3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`) 4. Push to the Branch (`git push origin feature/AmazingFeature`) 5. Open a Pull Request

(back to top)

## License Distributed under the LGPL-2.1 license. See `LICENSE` for more information.

(back to top)

## Support [![Discord][discord-shield]][discord-url]

(back to top)

## Contact Blaquewithaq (Discord: SoFloppy#1289) - [@anomievision](https://twitter.com/anomievision) - anomievision@gmail.com

(back to top)

[contributors-shield]: https://img.shields.io/github/contributors/projectM-visualizer/projectm-sys.svg?style=for-the-badge [contributors-url]: https://github.com/projectM-visualizer/projectm-sys/graphs/contributors [forks-shield]: https://img.shields.io/github/forks/projectM-visualizer/projectm-sys.svg?style=for-the-badge [forks-url]: https://github.com/projectM-visualizer/projectm-sys/network/members [stars-shield]: https://img.shields.io/github/stars/projectM-visualizer/projectm-sys.svg?style=for-the-badge [stars-url]: https://github.com/projectM-visualizer/projectm-sys/stargazers [issues-shield]: https://img.shields.io/github/issues/projectM-visualizer/projectm-sys.svg?style=for-the-badge [issues-url]: https://github.com/projectM-visualizer/projectm-sys/issues [license-shield]: https://img.shields.io/github/license/projectM-visualizer/projectm-sys.svg?style=for-the-badge [license-url]: https://github.com/projectM-visualizer/projectm-sys/blob/master/LICENSE [crates-shield]: https://img.shields.io/crates/v/projectm-sys?style=for-the-badge [crates-url]: https://crates.io/crates/projectm-sys [crates-dl-shield]: https://img.shields.io/crates/d/projectm-sys?style=for-the-badge [crates-dl-url]: https://crates.io/crates/projectm-sys [discord-shield]: https://img.shields.io/discord/737206408482914387?style=for-the-badge [discord-url]: https://discord.gg/7fQXN43n9W