libepoxy: Epoxy

libepoxy 1.5.10

Epoxy

# Introduction

Epoxy is a library for handling OpenGL function pointer management for you.

It hides the complexity of `dlopen()`, `dlsym()`, `glXGetProcAddress()`, `eglGetProcAddress()`, etc. from the app developer, with very little knowledge needed on their part. They get to read GL specs and write code using undecorated function names like `glCompileShader()`.

Don't forget to check for your extensions or versions being present before you use them, just like before! We'll tell you what you forgot to check for instead of just segfaulting, though.

# Features

- Automatically initializes as new GL functions are used.
- GL 4.6 core and compatibility context support.
- GLES 1/2/3 context support.
- Knows about function aliases so (e.g.) `glBufferData()` can be used with `GL_ARB_vertex_buffer_object` implementations, along with GL 1.5+ implementations.
- EGL, GLX, and WGL support.
- Can be mixed with non-epoxy GL usage.

# Using Epoxy

Using Epoxy should be as easy as replacing:

#include <GL/gl.h>
#include <GL/glx.h>
#include <GL/glext.h>

with:

#include <epoxy/gl.h>
#include <epoxy/glx.h>
gl.h
Provides an implementation of a GL dispatch layer using either global function pointers or a hidden v...
glx.h
Provides an implementation of a GLX dispatch layer using global function pointers.

## Headers

Epoxy comes with the following public headers:

- `epoxy/gl.h` - For GL API
- `epoxy/egl.h` - For EGL API
- `epoxy/glx.h` - For GLX API
- `epoxy/wgl.h` - For WGL API

# Additional links

The latest version of the Epoxy code is available on GitHub.

For bug reports and enhancements, please use the Issues link.

The scope of this API reference does not include the documentation for OpenGL and OpenGL ES. For more information on those programming interfaces please visit:

- Khronos
- OpenGL page on Khronos.org
- OpenGL ES page on Khronos.org
- docs.GL