/** \mainpage Pepper API (PPAPI) Reference Documentation
This reference documentation describes the Pepper plugin API (PPAPI),
a cross-platform, open-source API for browser plugins.
You can use the Pepper API
in Native Client
modules to communicate with the Google Chrome browser.
This page has the following contents:
- @ref reading
- @ref modules
- @ref about
- @ref todo
\section reading Before you start
This documentation assumes that you have read and understood
the following pages in the PPAPI project:
- Getting started
- Important concepts
For additional documentation and information
about Pepper, see the PPAPI project
homepage and
wiki.
\section modules API categories
The Pepper API consists of C API,
plus C++ classes
(in the pp namespace)
that we recommend you use if you're writing a C++ plugin.
You'll see three prefixes in the C API:
- PP_
- Data types,
such as ::PP_Instance and ::PP_Event.
- PPB_
- API that you can use to call into the browser,
such as ::PPB_Instance and ::PPB_GetInterface.
- PPP_
- API that you implement
so that the browser can call into your module.
Examples include ::PPP_Instance and ::PPP_InitializeModule.
The C++ API provides a layer over the C API.
For example, when you call the constructor
for the pp::Instance class,
you specify a ::PP_Instance variable.
For your convenience, pp::Instance defines methods such as
HandleEvent(), which implements ::PPP_Instance.HandleEvent, and
GetWindowObject(), which implements ::PPB_Instance.GetWindowObject.
\section about About this doc
The tabs at the top of each page
take you to the following sections.
- Main Page: This page
- Modules:
Lets you find API by functional area
— for example,
C++ API or
Data Types (PP).
Don't confuse this Doxygen term
with the Pepper concept of modules,
which are represented by pp::Module objects.
- Data Structures:
List of classes and data structures in PPAPI.
- Files:
The header files used to generate this documentation,
with file descriptions and links to generated doc.
Don't miss the File member index.
\section todo TO DO {PENDING: remove/comment this out before publishing}
- add include filenames to doc {NOTE: they're now at the end of each page. ok?}
- check whether private fields should be documented
- make sure naming is consistent and as understandable as possible
(modules? plugins? ...)
*/