The opengles package

[Tags:lgpl, library, test]

A functional OpenGL [ES] wrapper library. Made complicated OpenGL APIs easy yet keep flexible enough. Resulting binary size is relatively small so that apps launches faster. Works on both desktop and mobile.


[Skip to Readme]

Properties

Versions 0.4.0, 0.5.0, 0.6.0, 0.7.0, 0.8.2, 0.8.3
Change log CHANGELOG.md
Dependencies base (>=4.7 && <5), bytestring, distributive, fixed, future-resource (==0.4.0.0), ghc-prim (==0.4.*), GLFW-b, half, lens, linear (>=1.20), opengles, packer (>=0.1.9 && <0.2), random, time, transformers, vector [details]
License LGPL-3
Copyright 2014-2016 capsjac
Author capsjac <capsjac at gmail.com>
Maintainer capsjac <capsjac at gmail.com>
Category Graphics
Home page https://github.com/capsjac/opengles#readme
Source repository head: git clone https://github.com/capsjac/opengles
Uploaded Fri Mar 11 08:48:18 UTC 2016 by capsjac
Distributions NixOS:0.8.3
Downloads 839 total (26 in the last 30 days)
Votes
1 []
Status Docs available [build log]
Last success reported on 2016-03-11 [all 1 reports]
Hackage Matrix CI

Modules

[Index]

Flags

NameDescriptionDefaultType
useegl

By default, EGL APIs are used to get OpenGL function pointers. If Disabled, use native library instead of EGL. e.g. WGL, GLX or dlsym.

EnabledAutomatic
staticlinkes3

By default, OpenGL ES 3.0 APIs are dynamic linked. If Enabled, may cause runtime link error on unsupported environment. OpenGL ES 2.0 APIs are always statically linked.

DisabledAutomatic
staticlinkegl15

By default, EGL 1.5 APIs are dynamic linked. If Enabled, may cause runtime link error on unsupported environment. EGL 1.4 APIs are always statically linked.

DisabledAutomatic
buildexampleEnabledAutomatic

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

Downloads

Maintainer's Corner

For package maintainers and hackage trustees

Readme for opengles

Readme for opengles-0.8.3

OpenGL ES: Open Graphics API for Embeded Systems

Hackage

opengles is a Haskell wrapper library around OpenGL, OpenGL ES and EGL. Made complicated OpenGL APIs easy yet keep flexible enough. Resulting binary size is relatively small so that apps launches faster. Works on both desktop and mobile.

Documentation is available through hackage for the current and preceding releases.

Props

  • Garbage collection for GPU objects
  • Pointer operation free
  • Simplified nearly state-free rendering API
  • Compile-time type check of buffers, textures, programs and so on
  • Run on Linux (Mesa), Windows and Android (OS X / iOS contribution is welcome)
  • Vertex Array Object Extension with fallback
  • Multi Draw Extension with fallback

Cons

  • Poor documentation and lack of tutorial
  • No legacy APIs
  • No uncommon extensions
  • No support for most of glGet* functionality that harm performance

Examples

See examples/ directory.

Contact Information

Contributions and bug reports are welcome!

Please feel free to contact me through github or email.