bgfx is switching to IDL to generate API
bgfx main API is using basic C++ that looks like C, but it's C++ enough that can't be used directly in C projects. C is important as it provides ability to bind API to other languages, and also as sanity check for API design.
Every time API changes manual process of process for adding/changing API for C99 bindings was changing header declarations of function and function type for interface virtual table (I'll use
bgfx::createVertexBuffer function as an example):
/* ... bunch of funcs ... */ /**/ BGFX_C_API bgfx_vertex_buffer_handle_t bgfx_create_vertex_buffer(