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