1cb93a386Sopenharmony_ciGrGlInterface Autogeneration
2cb93a386Sopenharmony_ci============================
3cb93a386Sopenharmony_ci
4cb93a386Sopenharmony_ciBackground
5cb93a386Sopenharmony_ci----------
6cb93a386Sopenharmony_ci
7cb93a386Sopenharmony_ciAt a high level, the first three steps of making a GrGLInterface (a generic way to
8cb93a386Sopenharmony_ciinteract with a GL-like GPU) are:
9cb93a386Sopenharmony_ci
10cb93a386Sopenharmony_ci  - Assemble: Copy a set of function pointers into the struct
11cb93a386Sopenharmony_ci  - Validate: Make sure the function pointers advertised actually exist.
12cb93a386Sopenharmony_ci  - Capabilities: Compute what fast/slow paths are enabled based on the functions
13cb93a386Sopenharmony_ci        in the struct (GrGLCaps, for short)
14cb93a386Sopenharmony_ci
15cb93a386Sopenharmony_ciAutogeneration
16cb93a386Sopenharmony_ci--------------
17cb93a386Sopenharmony_ci
18cb93a386Sopenharmony_ciThe first two steps have been automated with a table-based generation script located
19cb93a386Sopenharmony_ciin this folder. The table is in JSON5 format (like JSON, but with comments). O
20cb93a386Sopenharmony_ci
21cb93a386Sopenharmony_ciOnce edited, the Assemble/Validate code can be re-generated by running
22cb93a386Sopenharmony_ci`make generate` in this folder.