This is the ANGLE project from:

https://chromium.googlesource.com/angle/angle/+/master/README.md

The upstream version used here can be found in:

src/common/version.h

This copy of the library has been modified with several patches
that can be found in the 'patches' subdirectory.

Updating ANGLE
-------------------------------------------------------------
To update to a newer version of ANGLE, extract the archive
directly into the 'src/3rdparty/angle' directory. ANGLE contains
a .gitignore file that will overwrite the one in Qt, but this is
not desirable so the ANGLE one should be discarded and the one in
Qt should be kept. If there are new source/header files in ANGLE
(git status -u) then they should be added to the relevant .pro
file before committing.

The patches in src/angle/patches should be applied on top.

ANGLE ships with .def files for exporting functions in
3rdparty/angle/src/libEGL/libEGL.def and
3rdparty/angle/src/libGLESv2/libGLESv2.def.
Since we build debug and release versions
(libbEGL.dll/libEGLd.dll, respectively), debug versions of
the .def files (libEGLd.def) must be created as copies
with the LIBRARY name entry adapted.

MinGW-w64 32-bit requires function exports in the .def files
to be decorated. Modified versions of the .def files are created as
<library>_mingw32.def. The decorated names of each function can be found
using the nm command to list the symbols in libEGL.o and libGLESv2.o.

Using a custom ANGLE
-------------------------------------------------------------
Qt supports building a version of ANGLE other than the one that
is contained in the source tree. To get Qt to build a different
copy of ANGLE, you can set the ANGLE_DIR environment variable
to point to the location of the custom ANGLE before building Qt.

