Age | Commit message (Collapse) | Author |
|
In bridge mode, mapi no longer implements glapi.h. It becomes a user of
glapi.h. Imagine an app that uses both libGL.so and libGLESv2.so.
There will be two copies of glapi in the app's memory. It is possible
that _glapi_get_dispatch does not return what _glapi_set_dispatch set,
if they access different copies of the global variables. The solution
to this situation to build either one of the libraries as a bridge to
the other. Or build both libraries as bridges to another shared
glapi library.
|
|
Fix GLAPIPrinter, ES1APIPrinter, and ES2APIPrinter to output files that
are ready for compilation. Since gl_and_es_API.xml is based on
gl_API.xml, the hidden and handcode attributes of entries have to be
overridden for ES1APIPrinter and ES2APIPrinter.
|
|
Treat prefix as macro when it is all uppercase. Generate PREFIX(name)
instead of PREFIXname when it is a macro.
|
|
A prerequisite if we want to convert vgapi.csv to vgapi.xml, or to use
mapi for glapi.
|
|
Given a dispatch slot, entry_get_public returns the address of the
corresponding public entry point. There may be more than one of them.
But since they are all equivalent, it is fine to return any one of them.
With entry_get_public, the address of any public entry point can be
calculated at runtime when an assembly dispatcher is used. There is no
need to have a mapping table in such case. This omits the unnecessary
relocations from the binary.
|
|
For example, a printer may ask not to output noop dispatch table.
|
|
Hidden entries are just like normal entries except that they are not
exported. Since it is not always possible to hide them, and two hidden
aliases can share the same entry, the name of hidden aliases are mangled
to '_dispatch_stub_<slot>'.
|
|
Entries with handcode attribute will be handled normally, except no
entry point will be generated for them.
|
|
Split out function name generation from _c_decl to _c_function, and use
it everywhere. Add an optional 'export' argument to _cdecl. It is
prepended to the returned string.
|
|
An entry can hold more info than plain name.
|
|
The preprocessor magic in mapi was nothing but obfuscation. Rewrite
mapi_abi.py to generate real C code.
This commit removes the hack added in
43121f20866bb89e8dac92bd92ec85a943704b7e.
|
|
The idea is to have an API generate a header using mapi_abi.py. The API
can then use the header to build a dispatcher.
|