MyNixOS website logo
Description

Functional interface for OpenGL 4.1+ and OpenGL ES 2.0+

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.

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.

Metadata

Version

0.8.3

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows