luminance: Type-safe, type-level and stateless graphics framework

[ bsd3, graphics, library ] [ Propose Tags ]

This package exposes several modules to work with GPUs in a stateless and type-safe way. Currently, it uses OpenGL as backend hardware technology but others will be added later on, such as Vulkan.

One very important point is the fact that luminance has nothing to do with 3D engines or scene development kits. Don’t expect to find materials, lights or mesh loaders. It’s just a graphics framework initiated to fix the design choices of OpenGL. It won’t change in any other way. However, as it grows, the plan is to make luminance a good graphics framework following the Haskell philosophy. In the end, it should be used as-is, not as an OpenGL abstraction.

luminance is a small yet powerful graphics API. It was designed so that people can quickly get their feet wet and start having fun with graphics in Haskell. The main idea is to unleash the graphical and visual properties of GPUs in a stateless and type-safe way.

This library doesn’t expose any architectural patterns or designs. It’s up to you to design your program as you want and following your own plans.

In the end, as many people has asked me since the beginning of the development, the OpenGL version – current is 4.5 – will be lowered. You’ll be able to choose the backend to use through compilation flags.

Flags

Manual Flags

NameDescriptionDefault
debug-gl

Enable OpenGL stdout debug (for development only)

Disabled
gl45

Compile with the OpenGL 4.5 backend

Disabled
gl45-bindless-textures

Compile with the OpenGL 4.5 + bindless textures backend

Disabled
gl32

Compile with the OpenGL 3.2 backend

Enabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1, 0.1.1, 0.1.1.1, 0.2, 0.3, 0.3.0.1, 0.3.1, 0.3.1.1, 0.3.1.2, 0.4, 0.4.1, 0.5, 0.5.1, 0.5.2, 0.5.2.1, 0.6, 0.6.0.1, 0.6.0.2, 0.6.0.3, 0.6.0.5, 0.7, 0.7.1, 0.7.2, 0.8, 0.8.1, 0.8.2, 0.8.2.1, 0.9, 0.9.1, 0.9.1.1, 0.9.1.2, 0.10, 0.10.0.1, 0.10.0.2, 0.11, 0.11.0.1, 0.11.0.2, 0.11.0.3, 0.11.0.4
Change log CHANGELOG.md
Dependencies base (>=4.8 && <4.9), containers (>=0.5 && <0.6), contravariant (>=1.3 && <1.4), dlist (>=0.7 && <0.8), gl (>=0.7 && <0.8), linear (>=1.19 && <1.21), mtl (>=2.2 && <2.3), resourcet (>=1.1 && <1.2), semigroups (>=0.16 && <0.19), transformers (>=0.4 && <0.5), vector (>=0.11 && <0.12), void (>=0.7 && <0.8) [details]
License BSD-3-Clause
Copyright Dimitri Sabadie
Author Dimitri Sabadie <dimitri.sabadie@gmail.com>
Maintainer Dimitri Sabadie <dimitri.sabadie@gmail.com>
Category Graphics
Home page https://github.com/phaazon/luminance
Bug tracker https://github.com/phaazon/luminance/issues
Source repo head: git clone git://github.com/phaazon/luminance.git
Uploaded by DimitriSabadie at 2015-11-25T23:10:29Z
Distributions
Downloads 20578 total (81 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]