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.