1# Introduction 2 3This page describes how to add new extensions to ANGLE. 4 5# Adding EGL extensions 6 7Note: see also [anglebug.com/2621](http://anglebug.com/2621), linked 8from the [starter project](Starter-Projects.md) doc, to simplify some 9of these steps. 10 11For extensions requiring new entry points: 12 13* Add the extension xml to 14 [scripts/egl_angle_ext.xml](../scripts/egl_angle_ext.xml) . 15 16* Note the prototypes for the new entry points must be added to the 17 top of the file, and the functions themselves grouped under the 18 extension name to the bottom of the file. 19 20* Modify [scripts/registry_xml.py](../scripts/registry_xml.py) to add 21 the new extension as needed. 22 23* Run 24 [scripts/run_code_generation.py](../scripts/run_code_generation.py) 25 . 26 27* The entry point itself goes in 28 [entry_points_egl_ext.h](../src/libGLESv2/entry_points_egl_ext.h) 29 and 30 [entry_points_egl_ext.cpp](../src/libGLESv2/entry_points_egl_ext.cpp) 31 . 32 33* Add the new function to [libEGL.cpp](../src/libEGL/libEGL.cpp) and 34 [libEGL.def](../src/libEGL/libEGL.def) . 35 36* Update [eglext_angle.h](../include/EGL/eglext_angle.h) with the new 37 entry points and/or enums. 38 39* Add members to the appropriate Extensions struct in 40 [Caps.h](../src/libANGLE/Caps.h) and 41 [Caps.cpp](../src/libANGLE/Caps.cpp) . 42 43* Initialize extension availability in the `Display` subclass's 44 `generateExtensions` method for displays that can support the 45 extension; for example, 46 [DisplayCGL](../src/libANGLE/renderer/gl/cgl/DisplayCGL.mm). 47