• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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