| Mojo Public C API | 
 | ================= | 
 |  | 
 | This directory contains C language bindings for the Mojo Public API. | 
 |  | 
 | Environment | 
 | ----------- | 
 |  | 
 | The environment/ subdirectory defines some common things that, while not part of | 
 | the system API, may be required for GLES2 (for example). These are things that a | 
 | Mojo application may be required to provide to the GLES2 (for example) library | 
 | in order to use it. (However, the Mojo application may implement these things as | 
 | it sees fit.) | 
 |  | 
 | GLES2 | 
 | ----- | 
 |  | 
 | The gles2/ subdirectory defines the GLES2 C API that's available to Mojo | 
 | applications. To use GLES2, Mojo applications must link against a dynamic | 
 | library (the exact mechanism being platform-dependent) and use the header files | 
 | in this directory as well as the standard Khronos GLES2 header files. | 
 |  | 
 | The reason for this, rather than providing GLES2 using the standard Mojo IPC | 
 | mechanism, is performance: The protocol (and transport mechanisms) used to | 
 | communicate with the Mojo GLES2 service is not stable nor "public" (mainly for | 
 | performance reasons), and using the dynamic library shields the application from | 
 | changes to the underlying system. | 
 |  | 
 | System | 
 | ------ | 
 |  | 
 | The system/ subdirectory provides definitions of the basic low-level API used by | 
 | all Mojo applications (whether directly or indirectly). These consist primarily | 
 | of the IPC primitives used to communicate with Mojo services. | 
 |  | 
 | Though the message protocol is stable, the implementation of the transport is | 
 | not, and access to the IPC mechanisms must be via the primitives defined in this | 
 | directory. | 
 |  | 
 | Test Support | 
 | ------------ | 
 |  | 
 | This directory contains a C API for running tests. This API is only available | 
 | under special, specific test conditions. It is not meant for general use by Mojo | 
 | applications. |