Development Notes¶
Adding Extensions¶
To add a new GL extension to Mesa you have to do at least the following.
- If - glext.hdoesn’t define the extension, edit- include/GL/gl.hand add code like this:- #ifndef GL_EXT_the_extension_name #define GL_EXT_the_extension_name 1 /* declare the new enum tokens */ /* prototype the new functions */ /* TYPEDEFS for the new functions */ #endif 
- In the - src/mapi/glapi/gen/directory, add the new extension functions and enums to the- gl_API.xmlfile. Then, a bunch of source files must be regenerated by executing the corresponding Python scripts.
- Add a new entry to the - gl_extensionsstruct in- consts_exts.hif the extension requires driver capabilities not already exposed by another extension.
- Add a new entry to the - src/mesa/main/extensions_table.hfile.
- From this point, the best way to proceed is to find another extension, similar to the new one, that’s already implemented in Mesa and use it as an example. 
- If the new extension adds new GL state, the functions in - get.c,- enable.cand- attrib.cwill most likely require new code.
- To determine if the new extension is active in the current context, use the auto-generated - _mesa_has_##name_str()function defined in- src/mesa/main/extensions.h.