| # Introduction |
| |
| This page describes how to add new extensions to ANGLE. |
| |
| # Adding EGL extensions |
| |
| Note: see also [anglebug.com/2621](http://anglebug.com/2621), linked |
| from the [starter project](Starter-Projects.md) doc, to simplify some |
| of these steps. |
| |
| For extensions requiring new entry points: |
| |
| * Add the extension xml to |
| [scripts/egl_angle_ext.xml](../scripts/egl_angle_ext.xml) . |
| |
| * Note the prototypes for the new entry points must be added to the |
| top of the file, and the functions themselves grouped under the |
| extension name to the bottom of the file. |
| |
| * Modify [scripts/registry_xml.py](../scripts/registry_xml.py) to add |
| the new extension as needed. |
| |
| * Run |
| [scripts/run_code_generation.py](../scripts/run_code_generation.py) |
| . |
| |
| * The entry point itself goes in |
| [entry_points_egl_ext.h](../src/libGLESv2/entry_points_egl_ext.h) |
| and |
| [entry_points_egl_ext.cpp](../src/libGLESv2/entry_points_egl_ext.cpp) |
| . |
| |
| * Add the new function to [libEGL.cpp](../src/libEGL/libEGL.cpp) and |
| [libEGL.def](../src/libEGL/libEGL.def) . |
| |
| * Update [eglext_angle.h](../include/EGL/eglext_angle.h) with the new |
| entry points and/or enums. |
| |
| * Add members to the appropriate Extensions struct in |
| [Caps.h](../src/libANGLE/Caps.h) and |
| [Caps.cpp](../src/libANGLE/Caps.cpp) . |
| |
| * Initialize extension availability in the `Display` subclass's |
| `generateExtensions` method for displays that can support the |
| extension; for example, |
| [DisplayCGL](../src/libANGLE/renderer/gl/cgl/DisplayCGL.mm). |