blob: 577ec08077bf5aeed76e99a5ecd5bb100efba161 [file] [view]
# ANGLE EGL Headers
The EGL headers ANGLE uses are generated using the Khronos tools but modified to include function pointer types and function prototype guards.
### Regenerating EGL.h
1. Install **Python 3** (not 2) with the **lxml** addon. You can do this using `pip install lxml` from your Python's Scripts folder.
1. Clone [https://github.com/KhronosGroup/EGL-Registry.git](https://github.com/KhronosGroup/EGL-Registry.git).
1. Edit `EGL-Registry/api/genheaders.py` and add the following under `glesProtoPrefixStrings`:
```# EGL headers use a protection mechanism similar to GLES.
eglProtoPrefixStrings = [
'#ifndef EGL_EGL_PROTOTYPES',
'#define EGL_EGL_PROTOTYPES 1',
'#endif',
''
]
```
4. Also in `EGL-Registry/api/genheaders.py`:
1. Look for the section titled `# EGL API - EGL/egl.h (no function pointers, yet @@@)`
1. Set `prefixText` to `prefixStrings + eglPlatformStrings + eglProtoPrefixStrings + genDateCommentString`
1. Change `genFuncPointers = False,` to `genFuncPointers = True,`
1. Change `protectProto = False,` to `protectProto = 'nonzero',`
1. Change `protectProtoStr = 'EGL_EGLEXT_PROTOTYPES',` to `protectProtoStr = 'EGL_EGL_PROTOTYPES',`
1. Set your working directory to `EGL-Registry/api/`.
1. Run `python genheaders.py -registry egl.xml EGL/egl.h`
1. The generated header will now be in `EGL-Registry/api/EGL/egl.h`. You can copy the header over to this folder.
1. Also update `scripts/egl.xml` with the latest version from `EGL-Registry/api/`.