Diligent Engine API Reference: GLEW - The OpenGL Extension Wrangler Library

Diligent Engine API Reference

GLEW - The OpenGL Extension Wrangler Library

http://glew.sourceforge.net/

https://github.com/nigels-com/glew

## Downloads

Current release is 2.1.0. (Change Log)

Sources available as ZIP or TGZ.

Windows binaries for 32-bit and 64-bit.

### Recent snapshots

Snapshots may contain new features, bug-fixes or new OpenGL extensions ahead of tested, official releases.

## Build

It is highly recommended to build from a tgz or zip release snapshot. The code generation workflow is a complex brew of gnu make, perl and python, that works best on Linux or Mac. For most end-users of GLEW the official releases are the best choice, with first class support.

### Linux and Mac

#### Using GNU Make

##### Install build tools

Debian/Ubuntu/Mint: `$ sudo apt-get install build-essential libxmu-dev libxi-dev libgl-dev libosmesa-dev`

RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel`

##### Build

    $ make
    $ sudo make install
    $ make clean

Targets: `all, glew.lib (sub-targets: glew.lib.shared, glew.lib.static), glew.bin, clean, install, uninstall`

Variables: `SYSTEM=linux-clang, GLEW_DEST=/usr/local, STRIP=`

Note: may need to make auto folder

#### Using cmake

CMake 2.8.12 or higher is required.

##### Install build tools

Debian/Ubuntu/Mint: `$ sudo apt-get install build-essential libXmu-dev libXi-dev libgl-dev cmake`

RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel cmake`

##### Build

    $ cd build
    $ cmake ./cmake
    $ make -j4

Target | Description
--- | ---
glew | Build the glew shared library.
glew_s | Build the glew static library.
glewinfo | Build the `glewinfo` executable (requires `BUILD_UTILS` to be `ON`).
visualinfo | Build the `visualinfo` executable (requires `BUILD_UTILS` to be `ON`).
install | Install all enabled targets into `CMAKE_INSTALL_PREFIX`.
clean | Clean up build artifacts.
all | Build all enabled targets (default target).

Variables | Description
--- | ---
BUILD_UTILS | Build the `glewinfo` and `visualinfo` executables.
GLEW_REGAL | Build in Regal mode.
GLEW_OSMESA | Build in off-screen Mesa mode.
BUILD_FRAMEWORK | Build as MacOSX Framework. Setting `CMAKE_INSTALL_PREFIX` to `/Library/Frameworks` is recommended.

### Windows

#### Visual Studio

Use the provided Visual Studio project file in build/vc12/

Projects for vc6 and vc10 are also provided

#### MSYS/Mingw

Available from Mingw

Requirements: bash, make, gcc

    $ mingw32-make
    $ mingw32-make install
    $ mingw32-make install.all

Alternative toolchain: `SYSTEM=mingw-win32`

#### MSYS2/Mingw-w64

Available from Msys2 and/or Mingw-w64

Requirements: bash, make, gcc

    $ pacman -S gcc make  mingw-w64-i686-gcc mingw-w64-x86_64-gcc
    $ make
    $ make install
    $ make install.all

Alternative toolchain: `SYSTEM=msys, SYSTEM=msys-win32, SYSTEM=msys-win64`

## glewinfo

`glewinfo` is a command-line tool useful for inspecting the capabilities of an OpenGL implementation and GLEW support for that. Please include `glewinfo.txt` with bug reports, as appropriate.

## GLEW Extension Info

GLEW version 2.0.0 Reporting capabilities of pixelformat 3 Running on a Intel(R) HD Graphics 3000 from Intel OpenGL version 3.1.0 - Build 9.17.10.4229 is supported

## GL_VERSION_1_1: OK

## GL_VERSION_1_2: OK

glCopyTexSubImage3D: OK glDrawRangeElements: OK glTexImage3D: OK glTexSubImage3D: OK

...

## Code Generation

A Unix or Mac environment is needed for building GLEW from scratch to include new extensions, or customize the code generation. The extension data is regenerated from the top level source directory with:

    make extensions

An alternative to generating the GLEW sources from scratch is to download a pre-generated (unsupported) snapshot:

https://sourceforge.net/projects/glew/files/glew/snapshots/

Travis-built snapshots are also available:

https://glew.s3.amazonaws.com/index.html

## Authors

GLEW is currently maintained by Nigel Stewart with bug fixes, new OpenGL extension support and new releases.

GLEW was developed by Milan Ikits and Marcelo Magallon. Aaron Lefohn, Joe Kniss, and Chris Wyman were the first users and also assisted with the design and debugging process.
The acronym GLEW originates from Aaron Lefohn. Pasi Kärkkäinen identified and fixed several problems with GLX and SDL. Nate Robins created the `wglinfo` utility, to which modifications were made by Michael Wimmer.

## Copyright and Licensing

GLEW is originally derived from the EXTGL project by Lev Povalahev. The source code is licensed under the Modified BSD License, the Mesa 3-D License (MIT) and the Khronos License (MIT).

The automatic code generation scripts are released under the GNU GPL.