Hash :
5927706b
Author :
Date :
2020-07-14T17:26:27
Revise documentation on adding EGL extensions. Provided more links and steps per earlier advice from geofflang@. Bug: angleproject:4842 No-Try: true Change-Id: I9c9361b4b71a63fd36f79a87d45e0f4b04c4140c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2297528 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
This page describes how to add new extensions to ANGLE.
Note: see also anglebug.com/2621, linked from the starter project doc, to simplify some of these steps.
For extensions requiring new entry points:
Add the extension xml to 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 to add the new extension as needed.
The entry point itself goes in entry_points_egl_ext.h and entry_points_egl_ext.cpp .
Add the new function to libEGL.cpp and libEGL.def .
Update eglext_angle.h with the new entry points and/or enums.
Add members to the appropriate Extensions struct in Caps.h and Caps.cpp .
Initialize extension availability in the Display subclass’s
generateExtensions method for displays that can support the
extension; for example,
DisplayCGL.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
# 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).