#graphics #gui #opengl #rendering

nightly alloy_graphene

A pure-rust abstraction over the various graphics libraries

5 releases

Uses new Rust 2021

0.0.5 Jan 22, 2022
0.0.4 Jan 22, 2022
0.0.3 Jan 22, 2022
0.0.2 Jan 22, 2022
0.0.1 Jan 22, 2022

#378 in Graphics APIs

Download history 12/week @ 2022-03-12 21/week @ 2022-03-19 1/week @ 2022-03-26 1/week @ 2022-04-02 5/week @ 2022-04-09 4/week @ 2022-04-16 11/week @ 2022-04-23 14/week @ 2022-04-30 44/week @ 2022-05-07 88/week @ 2022-05-14 19/week @ 2022-05-21 35/week @ 2022-05-28 41/week @ 2022-06-04 3/week @ 2022-06-11 2/week @ 2022-06-18

81 downloads per month

BSD-3-Clause

24KB
271 lines

Overview

graphene is an abstraction library over the various graphic APIs with a specific focus on 2D and application development. graphene is part of a larger application development framework called alloy.

This document is a WIP and will be expanded upon as the project progresses.

Supported APIs

  • OpenGL
  • Vulkan
  • DirectX
  • Metal

This library has existed in multiple forms before. Two C++ versions and one previous rust version. You can find these projects (in ascending order of the creation date):

Features

  • Shaders & Shaderprograms
  • Textures
  • Vertex Pipelines

Compatiblity

The minimum OpenGL version used is 3.3. This is because of the following required features:

  • Dual Source Blending
  • Multisampled Framebuffers

Other APIs haven't been looked at in detail yet and won't be necessary for alloy in the near future. Should any restrictions come up during their installation they will be documented here.

Contributing

alloy is open source and is supposed to benefit from the inclusion of other people. However I do reserve the rights to deny any feature requests or pull requests but am always open to discussion and having my mind changed. If you're uncertain whether or not a certain pull request would be appreciated and don't want to waste effort without knowing whether it's worth it, feel free to open an issue and ask. All code should be formatted using the same guideline. For this please use rustfmt. In the future a customised rustfmt stylisation might be used. File and directory names are are to be formatted using snake_case. Excluded from this rule are files that have a certain convention such as .gitignore, LICENCE.txt and markdown files.

Support

I have a fulltime job and can only afford so much time for alloy. If you would like to change that in the future consider donating to the project (note: Donating link will follow, alloy isn't worth donating yet). I also appreciate feedback (next to constructive criticism) so feel free to email me at coding@folling.de.

Naming

graphene is the foundation of graphite, so to speak. The same works in a chemical sense: Graphite is made out of graphene layers.

Dependencies

~0.7–1.2MB
~25K SLoC